Исправление цикла для ВК и небольшие правки

This commit is contained in:
2024-08-06 20:23:25 +03:00
parent bc22a8a129
commit 9483aad1fa

View File

@@ -136,10 +136,9 @@ def html_to_text(html_content):
# Перемещение ссылки на изображение в конец последней строки # Перемещение ссылки на изображение в конец последней строки
image_link = "[.](https://linux-gaming.ru/uploads/default/original/1X/5cfa59077a5275971401fab0114e56f3ffdd0ec4.png)" image_link = "[.](https://linux-gaming.ru/uploads/default/original/1X/5cfa59077a5275971401fab0114e56f3ffdd0ec4.png)"
if image_link in markdown_text:
# Удаляем строку с изображением из текста # Удаляем строку с изображением из текста
markdown_text = markdown_text.replace(image_link, '') markdown_text = markdown_text.replace(image_link, '')
markdown_text = markdown_text + image_link markdown_text = markdown_text + image_link
logging.debug(f"Текст после обработки {markdown_text}") logging.debug(f"Текст после обработки {markdown_text}")
@@ -368,7 +367,7 @@ async def get_discord_messages(client_discord, channel_id):
return [] return []
messages = [] messages = []
async for message in channel.history(limit=999): async for message in channel.history(limit=100):
logging.debug(message) logging.debug(message)
messages.append(message.content) messages.append(message.content)
pattern = re.compile(r'----------------------------------------------------------\n### (.*?)\t\n', re.DOTALL) pattern = re.compile(r'----------------------------------------------------------\n### (.*?)\t\n', re.DOTALL)
@@ -417,6 +416,7 @@ async def check_discord_public():
# Разбиваем содержимое на части по 4000 символов # Разбиваем содержимое на части по 4000 символов
for i in range(0, len(content), 2000): for i in range(0, len(content), 2000):
await channel.send(content[i:i+2000]) await channel.send(content[i:i+2000])
time.sleep(1.0)
await client_discord.close() await client_discord.close()
await client_discord.start(keys.discord_token) await client_discord.start(keys.discord_token)
@@ -429,12 +429,15 @@ def vk_post(url, post_text, links=None):
'owner_id': str(keys.own_id) 'owner_id': str(keys.own_id)
# Дополнительные параметры можно добавить здесь # Дополнительные параметры можно добавить здесь
} }
post_text = re.sub(r'\* ', '', post_text)
print(post_text)
post_text = re.sub(r'', '', post_text)
post_text = re.sub(r'', '', post_text)
data = { data = {
'message': f'{post_text}' # Перемещаем текст статьи в тело POST-запроса 'message': f'{post_text}' # Перемещаем текст статьи в тело POST-запроса
} }
if links: if links:
params_post['attachments'] = links params_post['attachments'] = links
try: try:
# Отправляем POST-запрос к VK API # Отправляем POST-запрос к VK API
resp_post = requests.post(url=url, params=params_post, data=data) resp_post = requests.post(url=url, params=params_post, data=data)
@@ -507,6 +510,7 @@ def check_vk_posts():
if text_data: if text_data:
content = f"{topic_title}\t\n" + text_data + "\n" content = f"{topic_title}\t\n" + text_data + "\n"
content = remove_markdown_links(content) content = remove_markdown_links(content)
content = re.sub(r'https://linux-gaming.ru/uploads/default/original/1X/5cfa59077a5275971401fab0114e56f3ffdd0ec4.png', '\n', content, flags=re.DOTALL) content = re.sub(r'https://linux-gaming.ru/uploads/default/original/1X/5cfa59077a5275971401fab0114e56f3ffdd0ec4.png', '\n', content, flags=re.DOTALL)
links = extract_links(content) links = extract_links(content)
if "Кумулятивное обновление скриптов" in topic_title: if "Кумулятивное обновление скриптов" in topic_title:
@@ -519,7 +523,7 @@ def check_vk_posts():
vk_post(url_vk_post, content) vk_post(url_vk_post, content)
else: else:
logging.warning(f"Не удалось получить текст новости {topic_id}") logging.warning(f"Не удалось получить текст новости {topic_id}")
break time.sleep(1.0)
else: else:
logging.warning(f"Новостей для публикации в ВК нет") logging.warning(f"Новостей для публикации в ВК нет")
@@ -533,7 +537,7 @@ def tg_post(post_text, client_tg):
async def get_tg_messages(client_tg, channel_username_tg): async def get_tg_messages(client_tg, channel_username_tg):
messages = [] messages = []
async for message in client_tg.iter_messages(channel_username_tg, limit=999): async for message in client_tg.iter_messages(channel_username_tg, limit=100):
if message.text: # Проверка на NoneType if message.text: # Проверка на NoneType
logging.debug(f"Найдены сообщения в Telegram канале {message.text}") logging.debug(f"Найдены сообщения в Telegram канале {message.text}")
messages.append(message.text) messages.append(message.text)
@@ -569,7 +573,8 @@ async def check_tg_news():
break break
except FloodWaitError as e: except FloodWaitError as e:
logging.warning(f"Flood wait error: нужно подождать {e.seconds} секунд.") logging.warning(f"Flood wait error: нужно подождать {e.seconds} секунд.")
await asyncio.sleep(e.seconds) # Ждем указанное время перед повторной попыткой await asyncio.sleep(e.seconds) # Ждем
time.sleep(1.0)# указанное время перед повторной попыткой
def run_job(): def run_job():