Подключите нашего Telegram-бота для уведомлений о новых проектах

Заказ закрыт
Доработка парсера

Разместить заказ
n
Заказчик
Отзывы фрилансеров: + 0 - 0
Зарегистрирован на сайте 1 год и 2 месяца
Бюджет: по договоренности
Необходимо доработать втоматический парсер Telegram-каналов, который собирает посты из заданных источников, обрабатывает их (переписывает текст, добавляет медиа) и публикует в целевые каналы с возможностью ручного управления через кнопки. Сначала опишу функционал, принцип работы и путь поста, в конце опишу что необходимо сделать:

Функционал парсера и принцип работы:

Если коротко, посты парсятся, отправляются на промежуточный канал на доработку и проверку после рерайта, если всё ок, прожимаются кнопки публикации через очередь или мгновенную публикацию на конечный канал

Логика работы

Скрипт парсит посты из Telegram-каналов, обрабатывает их и публикует с ручным управлением через кнопки.

Основные задачи:  
1. Сбор постов из source_channels.  
2. Обработка: переписка текста (Yandex GPT), фильтр мата, фото через Google Search.  
3. Публикация: в telegram_channel_id (проверка) и secondary_channel_id (финал).  
4. Управление кнопками (одобрение, редактура).  
5. Очереди для обработки и публикации.

Как работает:  
1. Запуск: Инициализация Telethon и AsyncTeleBot, загрузка очередей из .json.  
2. Сбор: handle_new_post ловит посты, игнорирует рекламу, качает медиа.  
3. Обработка: Текст → clean_text → Yandex GPT, фильтр (filter_profanity), фото (search_image).  
4. Очереди:  
   pending_posts: новый пост (оригинал + обработка).  
   publish_queue: для финальной публикации с таймингом.  
   task_queue: задачи (переписать, добавить фото).  
5. Публикация в основной канал: publish_next_post → telegram_channel_id (оригинал + с кнопками), хранение в posts_storage.  
6. Кнопки (handle_reaction):  
   ✅ → publish_queue (2-3 ч, до 23:30).  
   ➕ → переписать текст (+50-100 символов).  
   📓 → убрать/вернуть медиа.  
   📸 → новое фото.  
   💪 → сразу в secondary_channel_id.  
   ❌ → удалить.  
7. Финал: process_publish_queue публикует в secondary_channel_id с чередованием источников.  
8. Доп. функции:  
   Удаление постов > 24 ч (cleanup_old_messages).  
   Сброс pending_posts в 00:00 (reset_pending_queue).  
   Обновление статуса очередей (update_queue_message).  

Техдетали:  
Токены: Yandex IAM (автообновление), Google API.  
Логи: parser_detailed.log (10 МБ, 5 файлов).  
Асинхронность: asyncio, задачи в main.  
Переподключение: run_client_with_reconnect.

Что необходимо доработать:

1. Парсер не обрабатывает посты если в них больше 1 фото или если в посте видео. Надо что бы он обрабатывал их так же, как и посты с одним фото. Через очередь на рассмотрение опубликовывал их по одному (оригинал и рерайт вариант) на промежуточном канале. 

В случае одобрения к публикации пост с видео или всеми фото что в нём были или добавлены вручную должны уходить на публикацию (через очередь, в случае нажатия на кнопку "Like" или сразу на конечный канал при нажатии на кнопку "Publish Now")

2. Иногда парсер зависает, что приводит к потере работоспособности кнопок и необходимости перезапускать парсер, что влечёт за собой сброс очередей. Надо добавить ещё одну кнопку, которая будет сбрасывать текущий пост к рассмотрению, вызывая следующий

3. На этапе рассмотрения публикуется оригинал поста и его рерайт версия. Все изменения применяемые к рерайт версии поста (изменения форматирования, добавления абзацов, дополнительные отступы, эмодзи, добавление фотографий, видео и т. д.) должны сохраняться при его финальной публикации на конечный канал. Сейчас, к примеру, если на этапе рассмотрения я делаю текст жирным, на конечном канале пост публикуется * *так* * (без пробелов). Надо добиться сохранения всего редактирования что было применено к посту. В каком виде пост уходит с промежуточного канала, в таком виде он должен быть опубликован на конечный канал

4. Кнопки для редактирования поста должны быть только у версии поста после рерайта + у всех сообщений отправленных вручную в промежуточный канал (сейчас это работает). У оригинала их быть не должно, надо убрать появление кнопок у оригинала

5. Зашить в слово ОРИГИНАЛ, которым подписываются посты оригиналы, ссылку на пост оригинал, что бы это была гиперссылка

6. Функционал кнопки ➕ (переписать текст):

Действие: Расширяет текст поста, добавляя 50-100 символов новой информации.
Процесс:
Вызывается handle_reaction с call.data == "expand".
Задача добавляется в task_queue с параметром expand=True.
process_task_queue обрабатывает задачу:
Текст отправляется в rephrase_text_with_yandex_gpt с флагом расширения.
Yandex GPT переписывает текст в формальном стиле, добавляя новые детали.
Счётчик expand_count увеличивается.
Старый пост удаляется, новый публикуется с обновлённым текстом и кнопками.
Результат: Пост обновляется в telegram_channel_id с расширенным текстом, сохраняя медиа и метаданные в posts_storage.

Но по факту, при нажатии на неё не всегда происходит расширение текста, рерайт остаётся в том же виде. Надо починить функцию, кнопка должна производить рерайт по определённому промпту, но с добавлением доп. информации
Разделы:
Заказ
Опубликован:
09.04.2025 | 08:47 [поднят: 09.04.2025 | 08:47]
Заказ находится в архиве
Откликнуться Посмотреть другие заказы

Теги: Специалисты по парсингу, недорого, FL.ru

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».