mirror of
https://github.com/sochix/TLSharp.git
synced 2025-12-06 08:02:00 +01:00
Removes '_' symbol from private fields names in TelegramClient and MtProtoPlainSender
This commit is contained in:
parent
21f2d98f5e
commit
61915c20fa
|
|
@ -7,15 +7,15 @@ namespace TLSharp.Core.Network
|
||||||
{
|
{
|
||||||
public class MtProtoPlainSender
|
public class MtProtoPlainSender
|
||||||
{
|
{
|
||||||
private int _timeOffset;
|
private int timeOffset;
|
||||||
private long _lastMessageId;
|
private long lastMessageId;
|
||||||
private readonly Random _random;
|
private readonly Random random;
|
||||||
private readonly TcpTransport _transport;
|
private readonly TcpTransport transport;
|
||||||
|
|
||||||
public MtProtoPlainSender(TcpTransport transport)
|
public MtProtoPlainSender(TcpTransport transport)
|
||||||
{
|
{
|
||||||
_transport = transport;
|
this.transport = transport;
|
||||||
_random = new Random();
|
random = new Random();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task Send(byte[] data, CancellationToken token = default(CancellationToken))
|
public async Task Send(byte[] data, CancellationToken token = default(CancellationToken))
|
||||||
|
|
@ -33,7 +33,7 @@ namespace TLSharp.Core.Network
|
||||||
|
|
||||||
byte[] packet = memoryStream.ToArray();
|
byte[] packet = memoryStream.ToArray();
|
||||||
|
|
||||||
await _transport.Send(packet, token).ConfigureAwait(false);
|
await transport.Send(packet, token).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -42,7 +42,7 @@ namespace TLSharp.Core.Network
|
||||||
{
|
{
|
||||||
token.ThrowIfCancellationRequested();
|
token.ThrowIfCancellationRequested();
|
||||||
|
|
||||||
var result = await _transport.Receive(token).ConfigureAwait(false);
|
var result = await transport.Receive(token).ConfigureAwait(false);
|
||||||
|
|
||||||
using (var memoryStream = new MemoryStream(result.Body))
|
using (var memoryStream = new MemoryStream(result.Body))
|
||||||
{
|
{
|
||||||
|
|
@ -62,17 +62,17 @@ namespace TLSharp.Core.Network
|
||||||
private long GetNewMessageId()
|
private long GetNewMessageId()
|
||||||
{
|
{
|
||||||
long time = Convert.ToInt64((DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds);
|
long time = Convert.ToInt64((DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds);
|
||||||
long newMessageId = ((time / 1000 + _timeOffset) << 32) |
|
long newMessageId = ((time / 1000 + timeOffset) << 32) |
|
||||||
((time % 1000) << 22) |
|
((time % 1000) << 22) |
|
||||||
(_random.Next(524288) << 2); // 2^19
|
(random.Next(524288) << 2); // 2^19
|
||||||
// [ unix timestamp : 32 bit] [ milliseconds : 10 bit ] [ buffer space : 1 bit ] [ random : 19 bit ] [ msg_id type : 2 bit ] = [ msg_id : 64 bit ]
|
// [ unix timestamp : 32 bit] [ milliseconds : 10 bit ] [ buffer space : 1 bit ] [ random : 19 bit ] [ msg_id type : 2 bit ] = [ msg_id : 64 bit ]
|
||||||
|
|
||||||
if (_lastMessageId >= newMessageId)
|
if (lastMessageId >= newMessageId)
|
||||||
{
|
{
|
||||||
newMessageId = _lastMessageId + 4;
|
newMessageId = lastMessageId + 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
_lastMessageId = newMessageId;
|
lastMessageId = newMessageId;
|
||||||
return newMessageId;
|
return newMessageId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,12 @@ namespace TLSharp.Core
|
||||||
{
|
{
|
||||||
public class TelegramClient : IDisposable
|
public class TelegramClient : IDisposable
|
||||||
{
|
{
|
||||||
private MtProtoSender _sender;
|
private MtProtoSender sender;
|
||||||
private TcpTransport _transport;
|
private TcpTransport transport;
|
||||||
private readonly string _apiHash = "";
|
private readonly string apiHash = "";
|
||||||
private readonly int _apiId;
|
private readonly int apiId;
|
||||||
private List<TLDcOption> _dcOptions;
|
private List<TLDcOption> dcOptions;
|
||||||
private readonly TcpClientConnectionHandler _handler;
|
private readonly TcpClientConnectionHandler handler;
|
||||||
|
|
||||||
public Session Session { get; }
|
public Session Session { get; }
|
||||||
|
|
||||||
|
|
@ -41,12 +41,12 @@ namespace TLSharp.Core
|
||||||
if (store == null)
|
if (store == null)
|
||||||
store = new FileSessionStore();
|
store = new FileSessionStore();
|
||||||
|
|
||||||
_apiHash = apiHash;
|
this.apiHash = apiHash;
|
||||||
_apiId = apiId;
|
this.apiId = apiId;
|
||||||
_handler = handler;
|
this.handler = handler;
|
||||||
|
|
||||||
Session = Session.TryLoadOrCreateNew(store, sessionUserId);
|
Session = Session.TryLoadOrCreateNew(store, sessionUserId);
|
||||||
_transport = new TcpTransport(Session.DataCenter.Address, Session.DataCenter.Port, _handler);
|
transport = new TcpTransport(Session.DataCenter.Address, Session.DataCenter.Port, this.handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -56,18 +56,18 @@ namespace TLSharp.Core
|
||||||
|
|
||||||
if (Session.AuthKey == null || reconnect)
|
if (Session.AuthKey == null || reconnect)
|
||||||
{
|
{
|
||||||
var result = await Authenticator.DoAuthentication(_transport, token).ConfigureAwait(false);
|
var result = await Authenticator.DoAuthentication(transport, token).ConfigureAwait(false);
|
||||||
Session.AuthKey = result.AuthKey;
|
Session.AuthKey = result.AuthKey;
|
||||||
Session.TimeOffset = result.TimeOffset;
|
Session.TimeOffset = result.TimeOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
_sender = new MtProtoSender(_transport, Session);
|
sender = new MtProtoSender(transport, Session);
|
||||||
|
|
||||||
//set-up layer
|
//set-up layer
|
||||||
var config = new TLRequestGetConfig();
|
var config = new TLRequestGetConfig();
|
||||||
var request = new TLRequestInitConnection()
|
var request = new TLRequestInitConnection()
|
||||||
{
|
{
|
||||||
ApiId = _apiId,
|
ApiId = apiId,
|
||||||
AppVersion = "1.0.0",
|
AppVersion = "1.0.0",
|
||||||
DeviceModel = "PC",
|
DeviceModel = "PC",
|
||||||
LangCode = "en",
|
LangCode = "en",
|
||||||
|
|
@ -75,17 +75,17 @@ namespace TLSharp.Core
|
||||||
SystemVersion = "Win 10.0"
|
SystemVersion = "Win 10.0"
|
||||||
};
|
};
|
||||||
var invokewithLayer = new TLRequestInvokeWithLayer() { Layer = 66, Query = request };
|
var invokewithLayer = new TLRequestInvokeWithLayer() { Layer = 66, Query = request };
|
||||||
await _sender.Send(invokewithLayer, token).ConfigureAwait(false);
|
await sender.Send(invokewithLayer, token).ConfigureAwait(false);
|
||||||
await _sender.Receive(invokewithLayer, token).ConfigureAwait(false);
|
await sender.Receive(invokewithLayer, token).ConfigureAwait(false);
|
||||||
|
|
||||||
_dcOptions = ((TLConfig)invokewithLayer.Response).DcOptions.ToList();
|
dcOptions = ((TLConfig)invokewithLayer.Response).DcOptions.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ReconnectToDcAsync(int dcId, CancellationToken token)
|
private async Task ReconnectToDcAsync(int dcId, CancellationToken token)
|
||||||
{
|
{
|
||||||
token.ThrowIfCancellationRequested();
|
token.ThrowIfCancellationRequested();
|
||||||
|
|
||||||
if (_dcOptions == null || !_dcOptions.Any())
|
if (dcOptions == null || !dcOptions.Any())
|
||||||
throw new InvalidOperationException($"Can't reconnect. Establish initial connection first.");
|
throw new InvalidOperationException($"Can't reconnect. Establish initial connection first.");
|
||||||
|
|
||||||
TLExportedAuthorization exported = null;
|
TLExportedAuthorization exported = null;
|
||||||
|
|
@ -95,10 +95,10 @@ namespace TLSharp.Core
|
||||||
exported = await SendRequestAsync<TLExportedAuthorization>(exportAuthorization, token).ConfigureAwait(false);
|
exported = await SendRequestAsync<TLExportedAuthorization>(exportAuthorization, token).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
var dc = _dcOptions.First(d => d.Id == dcId);
|
var dc = dcOptions.First(d => d.Id == dcId);
|
||||||
var dataCenter = new DataCenter (dcId, dc.IpAddress, dc.Port);
|
var dataCenter = new DataCenter (dcId, dc.IpAddress, dc.Port);
|
||||||
|
|
||||||
_transport = new TcpTransport(dc.IpAddress, dc.Port, _handler);
|
transport = new TcpTransport(dc.IpAddress, dc.Port, handler);
|
||||||
Session.DataCenter = dataCenter;
|
Session.DataCenter = dataCenter;
|
||||||
|
|
||||||
await ConnectAsync(true, token).ConfigureAwait(false);
|
await ConnectAsync(true, token).ConfigureAwait(false);
|
||||||
|
|
@ -113,7 +113,7 @@ namespace TLSharp.Core
|
||||||
|
|
||||||
private async Task RequestWithDcMigration(TLMethod request, CancellationToken token)
|
private async Task RequestWithDcMigration(TLMethod request, CancellationToken token)
|
||||||
{
|
{
|
||||||
if (_sender == null)
|
if (sender == null)
|
||||||
throw new InvalidOperationException("Not connected!");
|
throw new InvalidOperationException("Not connected!");
|
||||||
|
|
||||||
var completed = false;
|
var completed = false;
|
||||||
|
|
@ -121,8 +121,8 @@ namespace TLSharp.Core
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await _sender.Send(request, token).ConfigureAwait(false);
|
await sender.Send(request, token).ConfigureAwait(false);
|
||||||
await _sender.Receive(request, token).ConfigureAwait(false);
|
await sender.Receive(request, token).ConfigureAwait(false);
|
||||||
completed = true;
|
completed = true;
|
||||||
}
|
}
|
||||||
catch(DataCenterMigrationException e)
|
catch(DataCenterMigrationException e)
|
||||||
|
|
@ -162,7 +162,7 @@ namespace TLSharp.Core
|
||||||
if (String.IsNullOrWhiteSpace(phoneNumber))
|
if (String.IsNullOrWhiteSpace(phoneNumber))
|
||||||
throw new ArgumentNullException(nameof(phoneNumber));
|
throw new ArgumentNullException(nameof(phoneNumber));
|
||||||
|
|
||||||
var request = new TLRequestSendCode() { PhoneNumber = phoneNumber, ApiId = _apiId, ApiHash = _apiHash };
|
var request = new TLRequestSendCode() { PhoneNumber = phoneNumber, ApiId = apiId, ApiHash = apiHash };
|
||||||
|
|
||||||
await RequestWithDcMigration(request, token).ConfigureAwait(false);
|
await RequestWithDcMigration(request, token).ConfigureAwait(false);
|
||||||
|
|
||||||
|
|
@ -334,7 +334,7 @@ namespace TLSharp.Core
|
||||||
|
|
||||||
public async Task SendPingAsync(CancellationToken token = default(CancellationToken))
|
public async Task SendPingAsync(CancellationToken token = default(CancellationToken))
|
||||||
{
|
{
|
||||||
await _sender.SendPingAsync(token).ConfigureAwait(false);
|
await sender.SendPingAsync(token).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<TLAbsMessages> GetHistoryAsync(TLAbsInputPeer peer, int offsetId = 0, int offsetDate = 0, int addOffset = 0, int limit = 100, int maxId = 0,
|
public async Task<TLAbsMessages> GetHistoryAsync(TLAbsInputPeer peer, int offsetId = 0, int offsetDate = 0, int addOffset = 0, int limit = 100, int maxId = 0,
|
||||||
|
|
@ -386,18 +386,18 @@ namespace TLSharp.Core
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (_transport == null)
|
if (transport == null)
|
||||||
return false;
|
return false;
|
||||||
return _transport.IsConnected;
|
return transport.IsConnected;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
if (_transport != null)
|
if (transport != null)
|
||||||
{
|
{
|
||||||
_transport.Dispose();
|
transport.Dispose();
|
||||||
_transport = null;
|
transport = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue