コード例 #1
0
        private async void forward()
        {
            List <TLChannel> TargetChannel = new List <TLChannel>();

            TLChannel          targetchanel = TargetChannel[0];
            TLInputPeerChannel cha          = new TLInputPeerChannel();

            cha.ChannelId  = targetchanel.Id;
            cha.AccessHash = (long)targetchanel.AccessHash;


            Random rand = new Random();

            TLVector <long> a = new TLVector <long>();

            a.lists.Add(rand.Next());
            TLVector <int> b = new TLVector <int>();

            b.lists.Add(tlMessage.id);
            TLRequestForwardMessages aa = new TLRequestForwardMessages();

            aa.FromPeer    = peer;
            aa.ToPeer      = cha;
            aa.RandomId    = a;
            aa.MessageId   = tlMessage.id;
            aa.Id          = b;
            aa.Silent      = true;
            aa.WithMyScore = true;

            TLUpdates rr = await client.SendRequestAsync <TLUpdates>(aa);
        }
コード例 #2
0
        public static async Task ForwardMessage(TelegramClient client, TLAbsInputPeer fromPeer, TLAbsInputPeer toPeer, int messageId)
        {
            var randomIds = new TLVector <long> {
                TLSharp.Core.Utils.Helpers.GenerateRandomLong()
            };
            var forwardRequest = new TLRequestForwardMessages
            {
                FromPeer = fromPeer,
                Id       = new TLVector <int> {
                    messageId
                },
                ToPeer   = toPeer,
                RandomId = randomIds
            };

            await client.SendRequestAsync <TLUpdates>(forwardRequest);
        }
コード例 #3
0
        private async Task ForwardMessagesToChannelWithKeywords(TLDialogs dialogs, IEnumerable <TLMessage> messages,
                                                                TLInputPeerChannel target, TLSharp.Core.TelegramClient telegram)
        {
            var messagesFiltered = messages
                                   .Where(
                p => Regex.IsMatch(
                    p.Message.ToLower(),
                    string.Join("|", _keywordsConfiguration.Keywords),
                    RegexOptions.IgnoreCase
                    )
                );

            if (messagesFiltered.ToList().Count < 1)
            {
                return;
            }

            var channel = dialogs.Chats
                          .OfType <TLChannel>()
                          .FirstOrDefault(c => c.Title == _myChannelConfiguration.ChannelWithKeywordsName);
            var mgs = new TLRequestForwardMessages()
            {
                Id     = new TLVector <int>(messagesFiltered.Select(p => p.Id)),
                ToPeer = new TLInputPeerChannel()
                {
                    ChannelId  = channel.Id,
                    AccessHash = channel.AccessHash.Value
                },
                FromPeer = new TLInputPeerChannel()
                {
                    ChannelId  = target.ChannelId,
                    AccessHash = target.AccessHash
                },
                RandomId = new TLVector <long>(messagesFiltered.Select(p => Helpers.GenerateRandomLong()))
            };
            await Task.Delay(10000);

            await telegram.SendRequestAsync <TLUpdates>(mgs);
        }
コード例 #4
0
        private async Task ForwardMessagesToChannelHeap(TLDialogs dialogs, IEnumerable <TLMessage> messages,
                                                        TLInputPeerChannel target, TLSharp.Core.TelegramClient telegram)
        {
            var channel = dialogs.Chats
                          .OfType <TLChannel>()
                          .FirstOrDefault(c => c.Title == _myChannelConfiguration.ChannelHeapName);
            var mgs = new TLRequestForwardMessages()
            {
                Id     = new TLVector <int>(messages.Select(p => p.Id)),
                ToPeer = new TLInputPeerChannel()
                {
                    ChannelId = channel.Id, AccessHash = channel.AccessHash.Value
                },
                FromPeer = new TLInputPeerChannel()
                {
                    ChannelId = target.ChannelId, AccessHash = target.AccessHash
                },
                RandomId = new TLVector <long>(messages.Select(p => Helpers.GenerateRandomLong()))
            };
            await Task.Delay(10000);

            await telegram.SendRequestAsync <TLUpdates>(mgs);
        }
コード例 #5
0
        public async Task ForwardMessgae(TLMessage message, TLChannel from, TLUser to)
        {
            Random rand = new Random();

            TLInputPeerChannel cha = new TLInputPeerChannel
            {
                ChannelId  = from.Id,
                AccessHash = from.AccessHash.Value
            };


            TLInputPeerUser us = new TLInputPeerUser
            {
                AccessHash = to.AccessHash.Value,
                UserId     = to.Id
            };


            TLVector <long> a = new TLVector <long>();

            a.Add(rand.Next());
            TLVector <int> b = new TLVector <int>();

            b.Add(message.Id);
            TLRequestForwardMessages aa = new TLRequestForwardMessages();

            aa.FromPeer  = cha;
            aa.ToPeer    = us;
            aa.RandomId  = a;
            aa.MessageId = message.Id;
            aa.Id        = b;

            aa.Silent      = true;
            aa.WithMyScore = true;

            TLUpdates rr = await telegramClient.SendRequestAsync <TLUpdates>(aa);
        }