исправление форматирования
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,3 +4,4 @@ keys*.py
|
|||||||
vkdel.py
|
vkdel.py
|
||||||
tgdel.py
|
tgdel.py
|
||||||
*.session
|
*.session
|
||||||
|
*del-tests.py
|
53
news-bot.py
53
news-bot.py
@@ -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])
|
||||||
|
Reference in New Issue
Block a user