mirror of
https://github.com/sochix/TLSharp.git
synced 2025-12-06 08:02:00 +01:00
Merge a69db6ba27 into 687eca968a
This commit is contained in:
commit
d12da6d2f4
|
|
@ -69,13 +69,18 @@ namespace TLSharp.Core
|
||||||
public long LastMessageId { get; set; }
|
public long LastMessageId { get; set; }
|
||||||
public int SessionExpires { get; set; }
|
public int SessionExpires { get; set; }
|
||||||
public TLUser TLUser { get; set; }
|
public TLUser TLUser { get; set; }
|
||||||
|
public ISessionStore Store { get { return _store; }}
|
||||||
private Random random;
|
private Random random;
|
||||||
|
|
||||||
private ISessionStore _store;
|
private ISessionStore _store;
|
||||||
|
|
||||||
public Session(ISessionStore store)
|
public Session(ISessionStore store, string sessionUserId)
|
||||||
{
|
{
|
||||||
random = new Random();
|
random = new Random();
|
||||||
|
Id = GenerateRandomUlong ();
|
||||||
|
SessionUserId = sessionUserId;
|
||||||
|
ServerAddress = defaultConnectionAddress;
|
||||||
|
Port = defaultConnectionPort;
|
||||||
_store = store;
|
_store = store;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -133,7 +138,7 @@ namespace TLSharp.Core
|
||||||
|
|
||||||
var authData = Serializers.Bytes.read(reader);
|
var authData = Serializers.Bytes.read(reader);
|
||||||
|
|
||||||
return new Session(store)
|
return new Session(store, sessionUserId)
|
||||||
{
|
{
|
||||||
AuthKey = new AuthKey(authData),
|
AuthKey = new AuthKey(authData),
|
||||||
Id = id,
|
Id = id,
|
||||||
|
|
@ -155,15 +160,9 @@ namespace TLSharp.Core
|
||||||
_store.Save(this);
|
_store.Save(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Session TryLoadOrCreateNew(ISessionStore store, string sessionUserId)
|
public static Session GetSession(ISessionStore store, string sessionUserId, Session provided)
|
||||||
{
|
{
|
||||||
return store.Load(sessionUserId) ?? new Session(store)
|
return store.Load (sessionUserId) ?? provided ?? new Session (store, sessionUserId);
|
||||||
{
|
|
||||||
Id = GenerateRandomUlong(),
|
|
||||||
SessionUserId = sessionUserId,
|
|
||||||
ServerAddress = defaultConnectionAddress,
|
|
||||||
Port = defaultConnectionPort
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ulong GenerateRandomUlong()
|
private static ulong GenerateRandomUlong()
|
||||||
|
|
|
||||||
|
|
@ -30,23 +30,22 @@ namespace TLSharp.Core
|
||||||
private List<TLDcOption> dcOptions;
|
private List<TLDcOption> dcOptions;
|
||||||
private TcpClientConnectionHandler _handler;
|
private TcpClientConnectionHandler _handler;
|
||||||
|
|
||||||
|
public Session Session { get { return _session; } }
|
||||||
|
|
||||||
public TelegramClient(int apiId, string apiHash,
|
public TelegramClient(int apiId, string apiHash,
|
||||||
ISessionStore store = null, string sessionUserId = "session", TcpClientConnectionHandler handler = null)
|
Session session = null, string sessionUserId = "session", TcpClientConnectionHandler handler = null)
|
||||||
{
|
{
|
||||||
if (apiId == default(int))
|
if (apiId == default(int))
|
||||||
throw new MissingApiConfigurationException("API_ID");
|
throw new MissingApiConfigurationException("API_ID");
|
||||||
if (string.IsNullOrEmpty(apiHash))
|
if (string.IsNullOrEmpty(apiHash))
|
||||||
throw new MissingApiConfigurationException("API_HASH");
|
throw new MissingApiConfigurationException("API_HASH");
|
||||||
|
|
||||||
if (store == null)
|
|
||||||
store = new FileSessionStore();
|
|
||||||
|
|
||||||
TLContext.Init();
|
TLContext.Init();
|
||||||
_apiHash = apiHash;
|
_apiHash = apiHash;
|
||||||
_apiId = apiId;
|
_apiId = apiId;
|
||||||
_handler = handler;
|
_handler = handler;
|
||||||
|
|
||||||
_session = Session.TryLoadOrCreateNew(store, sessionUserId);
|
_session = Session.GetSession(session?.Store ?? new FileSessionStore(), session?.SessionUserId ?? sessionUserId, session);
|
||||||
_transport = new TcpTransport(_session.ServerAddress, _session.Port, _handler);
|
_transport = new TcpTransport(_session.ServerAddress, _session.Port, _handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue