обновление публикации новостей от stable до stable

This commit is contained in:
2024-07-25 20:53:10 +03:00
parent 570e0b58f9
commit bc22a8a129

View File

@@ -23,8 +23,7 @@ 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://raw.githubusercontent.com/xpamych/test_LG_news/main/changelog_ru" url_changelog = "https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/raw/master/data_from_portwine/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",
@@ -34,7 +33,7 @@ heads_site = {
params_get = { params_get = {
'access_token': keys.user_token_vk, 'access_token': keys.user_token_vk,
'v': '5.236', # Версия API 'v': '5.199', # Версия API
'owner_id': str(keys.own_id), 'owner_id': str(keys.own_id),
'count': str(100), 'count': str(100),
'offset': str(0), 'offset': str(0),
@@ -42,7 +41,7 @@ params_get = {
} }
logger = logging.getLogger() logger = logging.getLogger()
logger.setLevel(logging.DEBUG) logger.setLevel(logging.INFO)
handler = colorlog.StreamHandler() handler = colorlog.StreamHandler()
handler.setFormatter(colorlog.ColoredFormatter( handler.setFormatter(colorlog.ColoredFormatter(
@@ -426,24 +425,25 @@ async def check_discord_public():
def vk_post(url, post_text, links=None): def vk_post(url, post_text, links=None):
params_post = { params_post = {
'access_token': keys.api_key_vk, 'access_token': keys.api_key_vk,
'v': '5.236', # Версия API VK 'v': '5.199', # Версия API VK
'owner_id': str(keys.own_id), 'owner_id': str(keys.own_id)
'message': f'{post_text}'
# Дополнительные параметры можно добавить здесь # Дополнительные параметры можно добавить здесь
} }
data = {
'message': f'{post_text}' # Перемещаем текст статьи в тело POST-запроса
}
if links: if links:
params_post['attachments'] = links params_post['attachments'] = links
try: try:
# Отправляем POST-запрос к VK API # Отправляем POST-запрос к VK API
resp_post = requests.post(url=url, params=params_post) resp_post = requests.post(url=url, params=params_post, data=data)
if resp_post.status_code == 200: if resp_post.status_code == 200:
logging.info("Сообщение успешно опубликовано.") logging.info("Сообщение успешно опубликовано.")
logging.info(resp_post.json()) # Выводим ответ сервера в формате JSON logging.info(resp_post.json()) # Выводим ответ сервера в формате JSON
else: else:
logging.error(f"Ошибка при публикации сообщения в ВК:, {resp_post.status_code}") logging.error(f"Ошибка при публикации сообщения в ВК:, {resp_post.status_code} - {resp_post.reason}")
return resp_post return resp_post
except requests.RequestException as err: except requests.RequestException as err:
@@ -489,6 +489,7 @@ def check_vk_posts():
logging.warning(f"Постов на стене нет{vk_posts}") logging.warning(f"Постов на стене нет{vk_posts}")
list_titles_and_ids = news() list_titles_and_ids = news()
list_titles_and_ids = [pair for pair in list_titles_and_ids if pair[0] >= keys.start_topic_id]
if list_titles_and_ids: if list_titles_and_ids:
list_for_public = [] list_for_public = []
for topic_id, topic_title in list_titles_and_ids: for topic_id, topic_title in list_titles_and_ids:
@@ -499,8 +500,8 @@ def check_vk_posts():
if not list_for_public: if not list_for_public:
logging.warning(f"Новостей для публикации в ВК нет") logging.warning(f"Новостей для публикации в ВК нет")
else: else:
# Отфильтровываем посты ниже определенного ID статьи
for topic_id, topic_title in reversed(list_for_public): for topic_id, topic_title in reversed(list_for_public):
if topic_id > keys.start_topic_id:
logging.info(f"Новости для публикации в ВК: {list_for_public}") logging.info(f"Новости для публикации в ВК: {list_for_public}")
text_data = news_content(topic_id) text_data = news_content(topic_id)
if text_data: if text_data:
@@ -516,6 +517,9 @@ def check_vk_posts():
vk_post(url_vk_post, content, links) vk_post(url_vk_post, content, links)
else: else:
vk_post(url_vk_post, content) vk_post(url_vk_post, content)
else:
logging.warning(f"Не удалось получить текст новости {topic_id}")
break
else: else:
logging.warning(f"Новостей для публикации в ВК нет") logging.warning(f"Новостей для публикации в ВК нет")