обновление публикации новостей от stable до stable
This commit is contained in:
30
news-bot.py
30
news-bot.py
@@ -23,7 +23,8 @@ url_post = "https://linux-gaming.ru/posts.json"
|
|||||||
url_news = f"https://linux-gaming.ru/c/news/{keys.cat_num}.json"
|
url_news = f"https://linux-gaming.ru/c/news/{keys.cat_num}.json"
|
||||||
url_vk_post = "https://api.vk.com/method/wall.post"
|
url_vk_post = "https://api.vk.com/method/wall.post"
|
||||||
url_vk_get = "https://api.vk.com/method/wall.get"
|
url_vk_get = "https://api.vk.com/method/wall.get"
|
||||||
url_changelog = "https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/raw/master/data_from_portwine/changelog_ru"
|
url_changelog = "https://raw.githubusercontent.com/xpamych/test_LG_news/main/changelog_ru"
|
||||||
|
#"https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/raw/master/data_from_portwine/changelog_ru"
|
||||||
|
|
||||||
heads_site = {
|
heads_site = {
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
@@ -85,8 +86,6 @@ def html_to_text(html_content):
|
|||||||
|
|
||||||
logging.debug(f"Текст до обработки регулярками {markdown_text}")
|
logging.debug(f"Текст до обработки регулярками {markdown_text}")
|
||||||
|
|
||||||
#Удаляем лишние записи о версии скриптов
|
|
||||||
|
|
||||||
# Удаление переносов строк из-за -
|
# Удаление переносов строк из-за -
|
||||||
markdown_text = re.sub(r'-\s*\n\s*', '-', markdown_text, flags=re.DOTALL)
|
markdown_text = re.sub(r'-\s*\n\s*', '-', markdown_text, flags=re.DOTALL)
|
||||||
markdown_text = re.sub(r'-\s*\n*', '-', markdown_text, flags=re.DOTALL)
|
markdown_text = re.sub(r'-\s*\n*', '-', markdown_text, flags=re.DOTALL)
|
||||||
@@ -129,13 +128,21 @@ def html_to_text(html_content):
|
|||||||
# Удаление дублирующихся ссылок
|
# Удаление дублирующихся ссылок
|
||||||
markdown_text = remove_duplicate_links(markdown_text)
|
markdown_text = remove_duplicate_links(markdown_text)
|
||||||
|
|
||||||
# Добавление переноса после "История изменений:"
|
# # Добавление переноса после "История изменений:"
|
||||||
re.sub(r'^.*\* \* \*.*$', '', markdown_text)
|
# re.sub(r'^.*\* \* \*.*$', '', markdown_text)
|
||||||
markdown_text = re.sub(r'История изменений:', r'\n', markdown_text)
|
# markdown_text = re.sub(r'История изменений:', r'\n', markdown_text)
|
||||||
|
|
||||||
# Удаление лишних отступов для строк, начинающихся с '*'
|
# Удаление лишних отступов для строк, начинающихся с '*'
|
||||||
markdown_text = re.sub(r' \*', r'*', markdown_text)
|
markdown_text = re.sub(r' \*', r'*', markdown_text)
|
||||||
|
|
||||||
|
# Перемещение ссылки на изображение в конец последней строки
|
||||||
|
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
|
||||||
|
|
||||||
logging.debug(f"Текст после обработки {markdown_text}")
|
logging.debug(f"Текст после обработки {markdown_text}")
|
||||||
return markdown_text
|
return markdown_text
|
||||||
|
|
||||||
@@ -220,13 +227,14 @@ def script_content(script_ver, next_version, resp_changelog):
|
|||||||
index_script_ver = changelog_text_last.find(prev_text)
|
index_script_ver = changelog_text_last.find(prev_text)
|
||||||
changelog_text = changelog_text_last[index_script_ver:]
|
changelog_text = changelog_text_last[index_script_ver:]
|
||||||
changelog_text = re.sub(r'###Scripts version (\d+)### / Дата: (\d{2}\.\d{2}\.\d{4}) / Размер скачиваемого обновления: \d+ \S+', r'\1 - \2'":", changelog_text)
|
changelog_text = re.sub(r'###Scripts version (\d+)### / Дата: (\d{2}\.\d{2}\.\d{4}) / Размер скачиваемого обновления: \d+ \S+', r'\1 - \2'":", changelog_text)
|
||||||
|
changelog_text = re.sub(r'###Scripts version (\d+)### / stable / Дата: (\d{2}\.\d{2}\.\d{4}) / Размер скачиваемого обновления: \d+ \S+', r'\1 - \2'":", changelog_text)
|
||||||
post_text = (f"-----------------------------\n") + changelog_text
|
post_text = (f"-----------------------------\n") + changelog_text
|
||||||
site_text = (f"[center][img]/uploads/default/original/1X/5cfa59077a5275971401fab0114e56f3ffdd0ec4.png[/img][/center]\n{post_text}")
|
site_text = (f"[center][img]/uploads/default/original/1X/5cfa59077a5275971401fab0114e56f3ffdd0ec4.png[/img][/center]\n{post_text}")
|
||||||
|
|
||||||
logging.debug(f"Сообщение на сайт {site_text}")
|
logging.debug(f"Сообщение на сайт {site_text}")
|
||||||
|
|
||||||
post_data = {
|
post_data = {
|
||||||
"title": f"Обновление скриптов {script_ver}",
|
"title": f"Кумулятивное обновление скриптов {script_ver}",
|
||||||
"raw": site_text,
|
"raw": site_text,
|
||||||
"category": keys.cat_num
|
"category": keys.cat_num
|
||||||
}
|
}
|
||||||
@@ -314,7 +322,7 @@ def site_post(url, headers, json):
|
|||||||
|
|
||||||
def check_version(matches_changelog, last_changelog, resp_changelog):
|
def check_version(matches_changelog, last_changelog, resp_changelog):
|
||||||
list_titles_and_ids = news()
|
list_titles_and_ids = news()
|
||||||
pattern = re.compile(r'Обновление скриптов (\d+)')
|
pattern = re.compile(r'Кумулятивное обновление скриптов (\d+)')
|
||||||
|
|
||||||
def extract_number(title):
|
def extract_number(title):
|
||||||
match = pattern.search(title)
|
match = pattern.search(title)
|
||||||
@@ -406,7 +414,7 @@ async def check_discord_public():
|
|||||||
for topic_id, topic_title in reversed(list_for_public):
|
for topic_id, topic_title in reversed(list_for_public):
|
||||||
text_data = news_content(topic_id)
|
text_data = news_content(topic_id)
|
||||||
if text_data:
|
if text_data:
|
||||||
content = f"----------------------------------------------------------\n### {topic_title}\t\n" + text_data + "\n"
|
content = f"----------------------------------------------------------\n### {topic_title}\t\n" + text_data + "\n" + "@here"
|
||||||
# Разбиваем содержимое на части по 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])
|
||||||
@@ -500,7 +508,7 @@ def check_vk_posts():
|
|||||||
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:
|
||||||
# Пример добавления изображения с постом
|
# Пример добавления изображения с постом
|
||||||
vk_post(url_vk_post, content, "photo-99238527_457244491")
|
vk_post(url_vk_post, content, "photo-99238527_457244491")
|
||||||
else:
|
else:
|
||||||
@@ -569,7 +577,7 @@ if __name__ == '__main__':
|
|||||||
# Выполняем задачу немедленно при старте
|
# Выполняем задачу немедленно при старте
|
||||||
run_job()
|
run_job()
|
||||||
|
|
||||||
# Планируем выполнение задачи каждые 10 минут
|
# Планируем выполнение задачи каждые N минут
|
||||||
schedule.every(30).minutes.do(run_job)
|
schedule.every(30).minutes.do(run_job)
|
||||||
|
|
||||||
logger.info("Запуск планировщика задач")
|
logger.info("Запуск планировщика задач")
|
||||||
|
Reference in New Issue
Block a user