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