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

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

3
.gitignore vendored
View File

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

View File

@@ -19,7 +19,7 @@ from telethon.errors import FloodWaitError
import keys
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_get = "https://api.vk.com/method/wall.get"
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.setLevel(logging.INFO)
logger.setLevel(logging.DEBUG)
handler = colorlog.StreamHandler()
handler.setFormatter(colorlog.ColoredFormatter(
@@ -73,6 +73,7 @@ def make_soup(resp_changelog):
def html_to_text(html_content):
logging.debug(f"Вызываем html_to_text")
logging.debug(f"HTML на входе {html_content}")
h = html2text.HTML2Text()
h.ignore_links = False # Сохранение ссылок
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'^(?!\*).*?\n(?!\*)', lambda x: x.group(0).replace('\n', ' '), markdown_text, flags=re.MULTILINE)
# Преобразование всех ссылок с параметрами URL
markdown_text = convert_links(markdown_text)
@@ -134,6 +129,9 @@ def html_to_text(html_content):
re.sub(r'^.*\* \* \*.*$', '', markdown_text)
markdown_text = re.sub(r'История изменений:', r'\n', markdown_text)
# Удаление лишних отступов для строк, начинающихся с '*'
markdown_text = re.sub(r' \*', r'*', markdown_text)
logging.debug(f"Текст после обработки {markdown_text}")
return markdown_text
@@ -145,6 +143,7 @@ def convert_links(text):
logging.debug(f"Возврат url_pattern {url_pattern}")
return url_pattern
def decode_url_params(url):
logging.debug(f"Входим в decode_url_params")
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}")
return non_empty_lines
def remove_markdown_links(markdown_text):
logging.debug(f"Входим в remove_markdown_links")
# Регулярное выражение для поиска Markdown-ссылок и замена их на только URL
@@ -251,7 +251,7 @@ def news_content(post_id):
return None
def response_get(url, heads_site):
def response_get(url, heads_site=None):
try:
if heads_site == params_get:
return requests.get(url, params=params_get)
@@ -321,25 +321,28 @@ def check_version(last_changelog, resp_changelog):
return None
numbers = [extract_number(title) for _, title in list_titles_and_ids if extract_number(title) is not None]
last_topics_script = max(numbers)
logging.info(f"Последняя новость на сайте о версии: {last_topics_script}")
if numbers:
last_topics_script = max(numbers)
logging.info(f"Последняя новость на сайте о версии: {last_topics_script}")
if last_topics_script < last_changelog:
list_new_ver = []
if last_topics_script < last_changelog:
list_new_ver = []
for script_ver in range(last_topics_script + 1, last_changelog + 1):
list_new_ver.append(script_ver)
logging.info(f"Найдена новая версия скрипта {script_ver}")
changelog_text, post_data, params = script_content(script_ver, resp_changelog)
if post_data:
logging.debug(f"Публикуем {post_data}")
site_post(url_post, heads_site, post_data)
for script_ver in range(last_topics_script + 1, last_changelog + 1):
list_new_ver.append(script_ver)
logging.info(f"Найдена новая версия скрипта {script_ver}")
changelog_text, post_data, params = script_content(script_ver, resp_changelog)
if post_data:
logging.debug(f"Публикуем {post_data}")
site_post(url_post, heads_site, post_data)
if not list_new_ver:
logging.warning(f"Не найдена новая версия скрипта")
sys.exit()
if not list_new_ver:
logging.warning(f"Не найдена новая версия скрипта")
sys.exit()
else:
logging.warning("Нет новых версий скриптов PortProton")
else:
logging.warning("Нет новых версий скриптов PortProton")
logging.warning("На сайте нет новостей о скриптах")
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):
text_data = news_content(topic_id)
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 символов
for i in range(0, len(content), 2000):
await channel.send(content[i:i+2000])