Нужен C# код на заказ

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
Приветствую!

Нужен C# код который:

У телеграмм есть 2 API (API BOT и API пользователя "обычный аккаунт")
Нужно сделать шаблон который парсит (каналы "закрытые, открытые", чаты) все через ссылку или ссылку приглашения (как вариант можно сделать 1 раз по ссылке получаем ID и записываем в переменную ID чтобы я потом в db записал
Создаем в директории папку (посты->{-random-}) здесь должны быть все файлы поста - txt фото видео и тд после выполнения ничего делать не нужно кроме того как написать в переменную log информацию "Нет новых постов/пост спарсили"
Проверку на новые посты думаю стоит сделать через базу данных - получаем пост и проверяем его в db (ссылка текст и тому подобное)
Если уникальное (новое) записываем все в файл

Все входные данные должны быть из переменной
Такие как:
apiId
apiHash
phoneNumber

ss - ссылка может быть формата @ или https://t.me/

Дополняю
Важно авторизоваться только 1 раз (чтобы постоянно не вводить код)

Пишите в личное сообщение телеги
 
Последнее редактирование:

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
GTP-3 кинул написанное на форуме тз, если нужно):
using System;
using System.IO;
using System.Threading.Tasks;
using Telegram.Bot;
using Telegram.Bot.Args;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
using Telegram.Bot.Types.InputFiles;

namespace TelegramBot
{
    class Program
    {
        private static TelegramBotClient botClient;

        static async Task Main(string[] args)
        {
            string apiId = "your_api_id"; // Ваш ID приложения API
            string apiHash = "your_api_hash"; // Ваш API хэш
            string phoneNumber = "+1234567890"; // Ваш номер телефона

            botClient = new TelegramBotClient(apiId, apiHash);

            var me = await botClient.GetMeAsync();
            Console.WriteLine($"Идентификатор бота: {me.Id}. Имя бота: {me.FirstName}.");

            var chatId = "channel_name"; // имя или ID канала, который нужно спарсить

            var lastMessageId = 0; // ID последнего сообщения в канале
            var messages = await botClient.GetMessagesAsync(chatId, lastMessageId, limit: 10);

            if (messages.TotalCount > 0)
            {
                // создаем папку для постов
                var postsDirectory = "posts";
                if (!Directory.Exists(postsDirectory))
                {
                    Directory.CreateDirectory(postsDirectory);
                }

                foreach (var message in messages)
                {
                    // проверяем, является ли сообщение постом
                    if (message.Type == MessageType.Photo || message.Type == MessageType.Video || message.Type == MessageType.Text)
                    {
                        // проверяем, существует ли уже такой пост
                        var postDirectory = Path.Combine(postsDirectory, message.Id.ToString());
                        if (!Directory.Exists(postDirectory))
                        {
                            Directory.CreateDirectory(postDirectory);

                            // сохраняем файлы поста
                            if (message.Type == MessageType.Photo)
                            {
                                var photo = message.Photo[0];
                                var file = await botClient.GetFileAsync(photo.FileId);
                                var filePath = Path.Combine(postDirectory, file.FileId + Path.GetExtension(file.FilePath));
                                using (var saveImageStream = new FileStream(filePath, FileMode.Create))
                                {
                                    await botClient.DownloadFileAsync(file.FilePath, saveImageStream);
                                }
                            }
                            else if (message.Type == MessageType.Video)
                            {
                                var video = message.Video;
                                var file = await botClient.GetFileAsync(video.FileId);
                                var filePath = Path.Combine(postDirectory, file.FileId + Path.GetExtension(file.FilePath));
                                using (var saveVideoStream = new FileStream(filePath, FileMode.Create))
                                {
                                    await botClient.DownloadFileAsync(file.FilePath, saveVideoStream);
                                }
                            }
                            else if (message.Type == MessageType.Text)
                            {
                                var text = message.Text;
                                var filePath = Path.Combine(postDirectory, "text.txt");
                                using (var saveTextStream = new StreamWriter(filePath))
                                {
                                    await                            saveTextStream.Write(text);
                            }
                        }

                        Console.WriteLine($"Сообщение с идентификатором {message.Id} сохраненный в {postDirectory}");
                    }
                    else
                    {
                        Console.WriteLine($"Сообщение с идентификатором {message.Id} уже существует");
                    }
                }
            }

            Console.WriteLine("Все новые сообщения были сохранены");
        }
        else
        {
            Console.WriteLine("Новых сообщений не найдено");
        }

        Console.ReadLine();
    }

    private static void OnMessage(object sender, MessageEventArgs e)
    {
        // здесь можно обработать входящие сообщения, если это необходимо
    }
}
}
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)