first_mine
This commit is contained in:
107
main.py
107
main.py
@@ -1,76 +1,31 @@
|
|||||||
|
import vk_api
|
||||||
import vk_api
|
from vk_api.longpoll import VkLongPoll, VkEventType
|
||||||
import time
|
import threading
|
||||||
import os
|
|
||||||
import chime
|
TARGET_GROUP_ID = 'ID_целевого_сообщества'
|
||||||
import os.path
|
ACCESS_TOKEN = 'ваш_токен'
|
||||||
import pickle
|
|
||||||
|
def like_post(event, vk):
|
||||||
|
try:
|
||||||
# Введите ваш token и id группы
|
vk.likes.add(type='post', owner_id=event.group_id, item_id=event.wall_id)
|
||||||
access_token = 'vk1.a.5QW0di9TmTh9LV2GalJgCbVolvGlRSZ1DgjXU6NizdeMiZUT3HZGdELZsU8AV2-l9gkuLY9Sh85t5x_ohC_Qp2XKBhg5ve25IzlLXPVJs44oTW4vshYkr4fjoZyppcmtiz-B94oiZNY15PlECXOuEfe1Y30AjOVmYoHxnb56g0W_u5w3ekdjqTYuMu-wmsn7ucEwxVxfJXEDaaEagUZWng'
|
print("Пост от {} успешно лайкнут.".format(event.group_id))
|
||||||
group_id = '58767484'
|
except vk_api.exceptions.ApiError as e:
|
||||||
|
print("Ошибка VK API при лайке поста:", e)
|
||||||
# Создание сессии ВКонтакте и авторизация пользователя
|
except Exception as e:
|
||||||
vk_session = vk_api.VkApi(token=access_token)
|
print("Необработанная ошибка при лайке поста:", e)
|
||||||
vk = vk_session.get_api()
|
|
||||||
|
def process_events(vk, longpoll):
|
||||||
|
print("Бот запущен. Лайкать посты из сообщества {}.".format(TARGET_GROUP_ID))
|
||||||
# Получение id группы
|
for event in longpoll.listen():
|
||||||
group = vk.groups.getById(group_id=group_id)
|
if event.type == VkEventType.WALL_POST_NEW and str(event.group_id) == TARGET_GROUP_ID:
|
||||||
group_id = group[0]['id']
|
thread = threading.Thread(target=like_post, args=(event, vk))
|
||||||
|
thread.start()
|
||||||
|
|
||||||
# Автолайк
|
def main():
|
||||||
count = 1 # количество постов для получения
|
vk_session = vk_api.VkApi(token=ACCESS_TOKEN)
|
||||||
posts = vk.wall.get(domain=group_id, count=count)['items']
|
vk = vk_session.get_api()
|
||||||
|
longpoll = VkLongPoll(vk_session)
|
||||||
i = 1
|
process_events(vk, longpoll)
|
||||||
|
|
||||||
# Основной цикл программы
|
if __name__ == '__main__':
|
||||||
while True:
|
main()
|
||||||
try:
|
|
||||||
|
|
||||||
if not os.path.exists('last_post_id.txt'):
|
|
||||||
with open('last_post_id.txt', 'w') as f:
|
|
||||||
f.write('0')
|
|
||||||
|
|
||||||
# Получение списка записей в группе
|
|
||||||
response = vk.wall.get(owner_id=-group_id, count=1)
|
|
||||||
last_post_id = response['items'][0]['id']
|
|
||||||
|
|
||||||
# Сохранение id последней записи
|
|
||||||
with open('last_post_id.txt', 'r+') as f:
|
|
||||||
try:
|
|
||||||
saved_post_id = int(f.read())
|
|
||||||
except:
|
|
||||||
saved_post_id = last_post_id
|
|
||||||
f.write(f"{last_post_id}")
|
|
||||||
print(f"{i}")
|
|
||||||
|
|
||||||
# Проверка наличия новой записи
|
|
||||||
if last_post_id != saved_post_id:
|
|
||||||
chime.success()
|
|
||||||
print(f"Новая запись! https://vk.com/wall{group_id}_{last_post_id}")
|
|
||||||
|
|
||||||
# Добавляем лайк и получаем ответ от API
|
|
||||||
likes_added = vk.likes.add(type='post', owner_id=-group_id, item_id=last_post_id)
|
|
||||||
|
|
||||||
if likes_added['likes']:
|
|
||||||
print(f"Лайк успешно добавлен на запись id {last_post_id}")
|
|
||||||
else:
|
|
||||||
print(f"Ошибка при добавлении лайка на запись id {last_post_id}")
|
|
||||||
with open('last_post_id.txt', 'w') as f:
|
|
||||||
f.write(f"{last_post_id}")
|
|
||||||
|
|
||||||
# Задержка на 10 секунд
|
|
||||||
time.sleep(15)
|
|
||||||
|
|
||||||
except vk_api.exceptions.ApiError as error:
|
|
||||||
print(f"Ошибка API: {error}")
|
|
||||||
time.sleep(15)
|
|
||||||
|
|
||||||
except Exception as error:
|
|
||||||
print(f"Неизвестная ошибка: {error}")
|
|
||||||
time.sleep(15)
|
|
||||||
i = i + 1
|
|
||||||
|
|||||||
@@ -1,6 +1,2 @@
|
|||||||
vk_api
|
vk_api
|
||||||
time
|
threads
|
||||||
os
|
|
||||||
chime
|
|
||||||
os.path
|
|
||||||
pickle
|
|
||||||
|
|||||||
Reference in New Issue
Block a user