public async Task <TLAbsMessages> GetHistoryAsync(TLAbsInputPeer peer, int offsetId = 0, int offsetDate = 0, int addOffset = 0, int limit = 100, int maxId = 0, int minId = 0, CancellationToken token = default(CancellationToken))
        {
            var req = new TLRequestGetHistory()
            {
                Peer       = peer,
                OffsetId   = offsetId,
                OffsetDate = offsetDate,
                AddOffset  = addOffset,
                Limit      = limit,
                MaxId      = maxId,
                MinId      = minId
            };

            return(await SendAuthenticatedRequestAsync <TLAbsMessages>(req, token)
                   .ConfigureAwait(false));
        }
Exemple #2
0
        public async Task <TLAbsMessages> GetHistoryAsync(TLAbsInputPeer peer, int offset, int max_id, int limit)
        {
            if (!IsUserAuthorized())
            {
                throw new InvalidOperationException("Authorize user first!");
            }

            var req = new TLRequestGetHistory()
            {
                Peer      = peer,
                AddOffset = offset,
                MaxId     = max_id,
                Limit     = limit
            };

            return(await SendRequestAsync <TLAbsMessages>(req));
        }
Exemple #3
0
        public async Task <List <Message> > GetChannelMessagesAsync(int channelId, long accessHash, int?offsetId, int?offsetDate, int?limit)
        {
            var req = new TLRequestGetHistory()
            {
                Peer = new TLInputPeerChannel()
                {
                    ChannelId = channelId, AccessHash = accessHash
                },
                OffsetId   = offsetId ?? 0,
                OffsetDate = offsetDate ?? 0,
                Limit      = limit ?? 0
            };
            TLChannelMessages messages = new TLChannelMessages();

            messages = await _client.SendRequestAsync <TLChannelMessages>(req);

            return(RefineMessages(messages));
        }
Exemple #4
0
        public async Task <IList <TLMessage> > GetMessagesAsync(TLAbsInputPeer peer, int limit = 1)
        {
            var r = new TLRequestGetHistory
            {
                peer       = peer,//new TLInputPeerUser { user_id = 52086439, access_hash = -5263285720256180879 },
                max_id     = 0,
                limit      = limit,
                offset_id  = 0,//maxid
                add_offset = 0
            };

            var result = await _telegramClient.SendRequestAsync <object>(r);

            if (result is TLMessagesSlice)
            {
                return(((TLMessagesSlice)result).messages.lists.OfType <TLMessage>().ToList());
            }
            return(((TLMessages)result).messages.lists.OfType <TLMessage>().ToList());
        }
Exemple #5
0
        public async Task <TLAbsMessages> GetHistoryAsync(TLAbsInputPeer peer, int offsetId = 0, int offsetDate = 0, int addOffset = 0, int limit = 100, int maxId = 0, int minId = 0)
        {
            if (!IsUserAuthorized())
            {
                throw new InvalidOperationException("Authorize user first!");
            }

            var req = new TLRequestGetHistory()
            {
                Peer       = peer,
                OffsetId   = offsetId,
                OffsetDate = offsetDate,
                AddOffset  = addOffset,
                Limit      = limit,
                MaxId      = maxId,
                MinId      = minId
            };

            return(await SendRequestAsync <TLAbsMessages>(req));
        }
Exemple #6
0
        public async Task <IList <TLUser> > GetAddUserMessagesAsync(int chatId, int limit = 1)
        {
            var r = new TLRequestGetHistory
            {
                peer = new TLInputPeerChat {
                    chat_id = chatId
                },
                max_id     = 0,
                limit      = limit,
                offset_id  = 0,//maxid
                add_offset = 0
            };

            var history = await _telegramClient.SendRequestAsync <TLMessagesSlice>(r);

            var result = new List <TLUser>();

            foreach (var message in history.messages.lists.Where(
                         m => m is TLMessageService && ((TLMessageService)m).action is TLMessageActionChatAddUser)
                     .OfType <TLMessageService>()
                     .ToList())
            {
                foreach (var id in ((TLMessageActionChatAddUser)message.action).users.lists)
                {
                    if (result.Any(u => u.id == id))
                    {
                        continue;
                    }
                    var user = history.users.lists.FirstOrDefault(u => u is TLUser && ((TLUser)u).id == id);
                    if (user != null)
                    {
                        result.Add((TLUser)user);
                    }
                }
            }

            return(result);
        }