From 633d22bdc5a139f39219e473f2df980e18c37f1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=A5=D1=80?= =?UTF-8?q?=D0=B0=D0=BC=D0=BE=D0=B2?= Date: Sun, 26 May 2024 21:29:56 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- news-bot.py | 64 +++++++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index f67d835..7cdcf54 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ .fleet __pycache__ -keys.py +keys*.py vkdel.py \ No newline at end of file diff --git a/news-bot.py b/news-bot.py index b1dfc32..a49a9cd 100755 --- a/news-bot.py +++ b/news-bot.py @@ -35,7 +35,7 @@ params_get = { } logger = logging.getLogger() -logger.setLevel(logging.INFO) +logger.setLevel(logging.DEBUG) handler = colorlog.StreamHandler() handler.setFormatter(colorlog.ColoredFormatter( @@ -304,7 +304,8 @@ async def get_discord_messages(client, channel_id): return [] messages = [] - async for message in channel.history(limit=999999): + async for message in channel.history(limit=999): + logging.debug(message) messages.append(message.content) pattern = re.compile(r'----------------------------------------------------------\n### (.*?)\t\n', re.DOTALL) for message in messages: @@ -331,28 +332,29 @@ def check_discord_public(): list_for_public = [] for topic_id, topic_title in list_titles_and_ids: - if topic_title not in discord_messages: + if topic_title not in discord_messages and topic_id > 693: list_for_public.append((topic_id, topic_title)) + if not list_for_public: logging.info(f"Новостей для публикации в дискорд нет") await client.close() else: logging.info(f"Новости для публикации в дискорд: {list_for_public}") + channel = client.get_channel(channel_id) + if not channel: + logging.error(f"ID канала Discord {channel_id} не существует") + await client.close() + return - channel = client.get_channel(channel_id) - if not channel: - logging.error(f"ID канала Discord {channel_id} не существует") - await client.close() - return - - for topic_id, topic_title in reversed(list_for_public): - text_data = news_content(topic_id) - if text_data: - content = f"----------------------------------------------------------\n### {topic_title}\t\n" + text_data + "\n" - # Разбиваем содержимое на части по 4000 символов - for i in range(0, len(content), 2000): - await channel.send(content[i:i+2000]) + for topic_id, topic_title in reversed(list_for_public): + text_data = news_content(topic_id) + if text_data: + content = f"----------------------------------------------------------\n### {topic_title}\t\n" + text_data + "\n" + # Разбиваем содержимое на части по 4000 символов + for i in range(0, len(content), 2000): + await channel.send(content[i:i+2000]) await client.close() + client.run(keys.discord_token) @@ -428,24 +430,28 @@ def check_vk_posts(): # Сравнение заголовков с текстами постов if not any(topic_title in vk_posts for vk_posts in vk_posts): list_for_public.append((topic_id, topic_title)) + if not list_for_public: logging.info(f"Новостей для публикации в ВК нет") else: - logging.info(f"Новости для публикации в ВК: {list_for_public}") for topic_id, topic_title in reversed(list_for_public): - text_data = news_content(topic_id) - if text_data: - content = f"----------------------------------------------------------\n{topic_title}\t\n" + text_data + "\n" - content = remove_markdown_links(content) - links = extract_links(content) - if "Обновление скриптов" in topic_title: - # Пример добавления изображения с постом - vk_post(url_vk_post, content, "photo-99238527_457244491") - else: - if links: - vk_post(url_vk_post, content, links) + if topic_id > 693: + logging.info(f"Новости для публикации в ВК: {list_for_public}") + text_data = news_content(topic_id) + if text_data: + content = f"----------------------------------------------------------\n{topic_title}\t\n" + text_data + "\n" + content = remove_markdown_links(content) + links = extract_links(content) + if "Обновление скриптов" in topic_title: + # Пример добавления изображения с постом + vk_post(url_vk_post, content, "photo-99238527_457244491") else: - vk_post(url_vk_post, content) + if links: + vk_post(url_vk_post, content, links) + else: + vk_post(url_vk_post, content) + else: + logging.info(f"Новостей для публикации в ВК нет") if __name__ == '__main__':