обновление публикации новостей от stable до stable
This commit is contained in:
26
news-bot.py
26
news-bot.py
@@ -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"Новостей для публикации в ВК нет")
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user