Исправление цикла для ВК и небольшие правки
This commit is contained in:
25
news-bot.py
25
news-bot.py
@@ -136,11 +136,10 @@ def html_to_text(html_content):
|
||||
|
||||
# Перемещение ссылки на изображение в конец последней строки
|
||||
image_link = "[.](https://linux-gaming.ru/uploads/default/original/1X/5cfa59077a5275971401fab0114e56f3ffdd0ec4.png)"
|
||||
|
||||
# Удаляем строку с изображением из текста
|
||||
markdown_text = markdown_text.replace(image_link, '')
|
||||
|
||||
markdown_text = markdown_text + image_link
|
||||
if image_link in markdown_text:
|
||||
# Удаляем строку с изображением из текста
|
||||
markdown_text = markdown_text.replace(image_link, '')
|
||||
markdown_text = markdown_text + image_link
|
||||
|
||||
logging.debug(f"Текст после обработки {markdown_text}")
|
||||
return markdown_text
|
||||
@@ -368,7 +367,7 @@ async def get_discord_messages(client_discord, channel_id):
|
||||
return []
|
||||
|
||||
messages = []
|
||||
async for message in channel.history(limit=999):
|
||||
async for message in channel.history(limit=100):
|
||||
logging.debug(message)
|
||||
messages.append(message.content)
|
||||
pattern = re.compile(r'----------------------------------------------------------\n### (.*?)\t\n', re.DOTALL)
|
||||
@@ -417,6 +416,7 @@ async def check_discord_public():
|
||||
# Разбиваем содержимое на части по 4000 символов
|
||||
for i in range(0, len(content), 2000):
|
||||
await channel.send(content[i:i+2000])
|
||||
time.sleep(1.0)
|
||||
await client_discord.close()
|
||||
|
||||
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)
|
||||
# Дополнительные параметры можно добавить здесь
|
||||
}
|
||||
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 = {
|
||||
'message': f'{post_text}' # Перемещаем текст статьи в тело POST-запроса
|
||||
}
|
||||
if links:
|
||||
params_post['attachments'] = links
|
||||
|
||||
try:
|
||||
# Отправляем POST-запрос к VK API
|
||||
resp_post = requests.post(url=url, params=params_post, data=data)
|
||||
@@ -507,6 +510,7 @@ def check_vk_posts():
|
||||
if text_data:
|
||||
content = f"{topic_title}\t\n" + text_data + "\n"
|
||||
content = remove_markdown_links(content)
|
||||
|
||||
content = re.sub(r'https://linux-gaming.ru/uploads/default/original/1X/5cfa59077a5275971401fab0114e56f3ffdd0ec4.png', '\n', content, flags=re.DOTALL)
|
||||
links = extract_links(content)
|
||||
if "Кумулятивное обновление скриптов" in topic_title:
|
||||
@@ -519,7 +523,7 @@ def check_vk_posts():
|
||||
vk_post(url_vk_post, content)
|
||||
else:
|
||||
logging.warning(f"Не удалось получить текст новости {topic_id}")
|
||||
break
|
||||
time.sleep(1.0)
|
||||
else:
|
||||
logging.warning(f"Новостей для публикации в ВК нет")
|
||||
|
||||
@@ -533,7 +537,7 @@ def tg_post(post_text, client_tg):
|
||||
|
||||
async def get_tg_messages(client_tg, channel_username_tg):
|
||||
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
|
||||
logging.debug(f"Найдены сообщения в Telegram канале {message.text}")
|
||||
messages.append(message.text)
|
||||
@@ -569,7 +573,8 @@ async def check_tg_news():
|
||||
break
|
||||
except FloodWaitError as e:
|
||||
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():
|
||||
|
Reference in New Issue
Block a user