исправление форматирования

This commit is contained in:
2024-06-16 16:04:34 +03:00
parent 54d1e022a6
commit 1b1746db06
2 changed files with 30 additions and 26 deletions

1
.gitignore vendored
View File

@@ -4,3 +4,4 @@ keys*.py
vkdel.py vkdel.py
tgdel.py tgdel.py
*.session *.session
*del-tests.py

View File

@@ -19,7 +19,7 @@ from telethon.errors import FloodWaitError
import keys import keys
url_post = "https://linux-gaming.ru/posts.json" url_post = "https://linux-gaming.ru/posts.json"
url_news = "https://linux-gaming.ru/c/news/6.json" url_news = f"https://linux-gaming.ru/c/news/6.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://gitlab.eterfund.ru/Castro-Fidel/PortWINE/raw/master/data_from_portwine/changelog_ru"
@@ -40,7 +40,7 @@ params_get = {
} }
logger = logging.getLogger() logger = logging.getLogger()
logger.setLevel(logging.INFO) logger.setLevel(logging.DEBUG)
handler = colorlog.StreamHandler() handler = colorlog.StreamHandler()
handler.setFormatter(colorlog.ColoredFormatter( handler.setFormatter(colorlog.ColoredFormatter(
@@ -73,6 +73,7 @@ def make_soup(resp_changelog):
def html_to_text(html_content): def html_to_text(html_content):
logging.debug(f"Вызываем html_to_text") logging.debug(f"Вызываем html_to_text")
logging.debug(f"HTML на входе {html_content}") logging.debug(f"HTML на входе {html_content}")
h = html2text.HTML2Text() h = html2text.HTML2Text()
h.ignore_links = False # Сохранение ссылок h.ignore_links = False # Сохранение ссылок
h.ignore_images = True # Игнорирование изображений h.ignore_images = True # Игнорирование изображений
@@ -95,12 +96,6 @@ def html_to_text(html_content):
# Удаление строк, содержащих '* * *' # Удаление строк, содержащих '* * *'
markdown_text = re.sub(r'^.*\* \* \*.*$', '', markdown_text, flags=re.MULTILINE) markdown_text = re.sub(r'^.*\* \* \*.*$', '', markdown_text, flags=re.MULTILINE)
# Фикс ненумерованных списков
markdown_text = re.sub(r'^.*\* ', '* ', markdown_text, flags=re.MULTILINE)
# Убираем переносы строк, кроме строк, начинающихся с *
markdown_text = re.sub(r'^(?!\*).*?\n(?!\*)', lambda x: x.group(0).replace('\n', ' '), markdown_text, flags=re.MULTILINE)
# Преобразование всех ссылок с параметрами URL # Преобразование всех ссылок с параметрами URL
markdown_text = convert_links(markdown_text) markdown_text = convert_links(markdown_text)
@@ -134,6 +129,9 @@ def html_to_text(html_content):
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)
logging.debug(f"Текст после обработки {markdown_text}") logging.debug(f"Текст после обработки {markdown_text}")
return markdown_text return markdown_text
@@ -145,6 +143,7 @@ def convert_links(text):
logging.debug(f"Возврат url_pattern {url_pattern}") logging.debug(f"Возврат url_pattern {url_pattern}")
return url_pattern return url_pattern
def decode_url_params(url): def decode_url_params(url):
logging.debug(f"Входим в decode_url_params") logging.debug(f"Входим в decode_url_params")
parsed_url = urllib.parse.urlparse(url) parsed_url = urllib.parse.urlparse(url)
@@ -164,6 +163,7 @@ def remove_empty_lines(text_data):
logging.debug(f"Возврат non_empty_lines {non_empty_lines}") logging.debug(f"Возврат non_empty_lines {non_empty_lines}")
return non_empty_lines return non_empty_lines
def remove_markdown_links(markdown_text): def remove_markdown_links(markdown_text):
logging.debug(f"Входим в remove_markdown_links") logging.debug(f"Входим в remove_markdown_links")
# Регулярное выражение для поиска Markdown-ссылок и замена их на только URL # Регулярное выражение для поиска Markdown-ссылок и замена их на только URL
@@ -251,7 +251,7 @@ def news_content(post_id):
return None return None
def response_get(url, heads_site): def response_get(url, heads_site=None):
try: try:
if heads_site == params_get: if heads_site == params_get:
return requests.get(url, params=params_get) return requests.get(url, params=params_get)
@@ -321,25 +321,28 @@ def check_version(last_changelog, resp_changelog):
return None return None
numbers = [extract_number(title) for _, title in list_titles_and_ids if extract_number(title) is not None] numbers = [extract_number(title) for _, title in list_titles_and_ids if extract_number(title) is not None]
last_topics_script = max(numbers) if numbers:
logging.info(f"Последняя новость на сайте о версии: {last_topics_script}") last_topics_script = max(numbers)
logging.info(f"Последняя новость на сайте о версии: {last_topics_script}")
if last_topics_script < last_changelog: if last_topics_script < last_changelog:
list_new_ver = [] list_new_ver = []
for script_ver in range(last_topics_script + 1, last_changelog + 1): for script_ver in range(last_topics_script + 1, last_changelog + 1):
list_new_ver.append(script_ver) list_new_ver.append(script_ver)
logging.info(f"Найдена новая версия скрипта {script_ver}") logging.info(f"Найдена новая версия скрипта {script_ver}")
changelog_text, post_data, params = script_content(script_ver, resp_changelog) changelog_text, post_data, params = script_content(script_ver, resp_changelog)
if post_data: if post_data:
logging.debug(f"Публикуем {post_data}") logging.debug(f"Публикуем {post_data}")
site_post(url_post, heads_site, post_data) site_post(url_post, heads_site, post_data)
if not list_new_ver: if not list_new_ver:
logging.warning(f"Не найдена новая версия скрипта") logging.warning(f"Не найдена новая версия скрипта")
sys.exit() sys.exit()
else:
logging.warning("Нет новых версий скриптов PortProton")
else: else:
logging.warning("Нет новых версий скриптов PortProton") logging.warning("На сайте нет новостей о скриптах")
async def discord_post(post_text, client): async def discord_post(post_text, client):
@@ -399,7 +402,7 @@ 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" + "@here" content = f"----------------------------------------------------------\n### {topic_title}\t\n" + text_data + "\n"
# Разбиваем содержимое на части по 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])