示例#1
0
        private async Task <TelegramClient> ConnectTelegramClientAsync(TelegramHelperVo telegramHelperVo)
        {
            var client = _telegramClientFactory.CreateClient(telegramHelperVo.Client.Id, telegramHelperVo.Client.Hash);

            _logger.LogInformation("Connecting the Telegram Client.");
            await client.ConnectAsync();

            return(client);
        }
示例#2
0
        async Task ITelegramHelper.MakeAuthenticationAsync(TelegramHelperVo telegramHelperVo)
        {
            _logger.LogInformation("Making authentication.");

            using (var client = await ConnectTelegramClientAsync(telegramHelperVo))
            {
                await client.MakeAuthAsync(telegramHelperVo.Client.PhoneNumber,
                                           telegramHelperVo.ConnectionVo.PhoneCodeHash,
                                           telegramHelperVo.ConnectionVo.Code);
            }
        }
示例#3
0
        async Task <TelegramCodeResponse> ITelegramHelper.StartAuthenticationAsync(TelegramHelperVo telegramHelperVo)
        {
            _logger.LogInformation("Starting authentication.");

            using (var client = await ConnectTelegramClientAsync(telegramHelperVo))
            {
                _logger.LogDebug($"Sending the code to phone. PhoneNumber: [{telegramHelperVo.Client.PhoneNumber}].");
                string phoneCodeHash = await client.SendCodeRequestAsync(telegramHelperVo.Client.PhoneNumber);

                return(BuildTelegramCodeResponse(phoneCodeHash));
            }
        }
示例#4
0
        async Task ITelegramHelper.ForwardLastMessageAsync(TelegramHelperVo telegramHelperVo)
        {
            _logger.LogInformation("Forwading last message.");

            using (var client = await ConnectTelegramClientAsync(telegramHelperVo))
            {
                var dialogs = (TLDialogs)await client.GetUserDialogsAsync();

                var lastMessage = FilterLastUserMessageSent(telegramHelperVo.FromUser.Id, dialogs);

                if (string.IsNullOrEmpty(lastMessage.Message))
                {
                    _logger.LogDebug("There is no message to forward.");
                }
                else
                {
                    SendMessageToChatAsync(telegramHelperVo.ToUsers, client, lastMessage);
                }
            }
        }
示例#5
0
        async Task <IEnumerable <TelegramContactResponse> > ITelegramHelper.FindContactsAsync(TelegramHelperVo telegramHelperVo)
        {
            _logger.LogInformation("Finding the contacts.");

            using (var client = await ConnectTelegramClientAsync(telegramHelperVo))
            {
                return((await GetContactsAsync(client)).Union(await GetContactsFromChatAsync(client)));
            }
        }
        Task INewService.Execute()
        {
            TelegramHelperVo telegramHelperVo = _mapper.Map <TelegramHelperVo>(_telegramConfiguration);

            return(_telegramHelper.ForwardLastMessageAsync(telegramHelperVo));
        }