Исправления косяков вывода текста в дискорд

This commit is contained in:
2024-05-26 12:24:08 +03:00
parent d0bd6f01be
commit 89f2c5f3f1

View File

@@ -73,6 +73,16 @@ def script_content(script_ver, resp_changelog):
soup = make_soup(resp_changelog)
page_text = str(soup)
page_text = page_text.replace("Вы можете помочь развитию проекта: https://linux-gaming.ru/donate/", '')
# Удаляем несколько различных вхождений с помощью регулярных выражений
patterns_to_remove = [
r'###Scripts version \d+###',
r'\d{4}×\d{3} \d+ KB',
r'/tag/scripts'
]
for pattern in patterns_to_remove:
page_text = re.sub(pattern, '', page_text)
# Находим текст до определенного текста, тега или класса (например, до тега <hr>)
last_text = f"###Scripts version {script_ver - 1}"
last_text = str(last_text)
@@ -109,7 +119,7 @@ def script_content(script_ver, resp_changelog):
def news_content(post_id):
logging.info(f"Запрос содержимого поста новости с ID: {post_id}")
logging.debug(f"Запрос содержимого поста новости с ID: {post_id}")
response = response_get(f"https://linux-gaming.ru/t/{post_id}.json")
if response and response.status_code == 200:
topic_data = response.json()
@@ -167,8 +177,7 @@ def news():
'«Новости»')]
return filtered_list_titles_and_ids
else:
logging.error(f"Ошибка при запросе тем с сайта: {resp_topics.status_code if resp_topics else
'Нет доступа к сайту'}")
logging.error(f"Ошибка при запросе тем с сайта: {resp_topics.status_code if resp_topics else 'Нет доступа к сайту'}")
return []
@@ -281,10 +290,12 @@ def check_discord_public():
for topic_id, topic_title in list_titles_and_ids:
if topic_title not in discord_messages:
list_for_public.append((topic_id, topic_title))
if list_for_public != []:
logging.info(f"Новости для публикации в дискорд: {list_for_public}")
else:
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} не существует")
@@ -301,7 +312,7 @@ def check_discord_public():
# Разбиваем содержимое на части по 4000 символов
for i in range(0, len(content), 4000):
await channel.send(content[i:i+4000])
await client.close()
client.run(keys.discord_token)