Исходник Бот вк с использованием YouAPI (yougame api)

Web developer / designer
Пользователь
Статус
Оффлайн
Регистрация
15 Ноя 2020
Сообщения
411
Реакции[?]
124
Поинты[?]
2K
Сначала была цель сделать нереального бота, но потом у меня пропало желание и осталось то, что осталось.
Извините за говнокод *(
Из идей могу подкинуть парочку:
1) Подключить бд к проекту, чтобы каждый пользователь мог зайти под своим акком через куки и юзерагент
2) Добавить рассылку ( там уже была заготовка) про новые посты из определённого треда
Дальше уже сами, делайте, что вашей душе угодно.

Python:
import vk_api
import threading
import random
from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
from pyyouapi import youapi


vk_session = vk_api.VkApi(token = "ТУТ ТОКЕН ОТ ГРУППЫ")
session_api = vk_session.get_api()
longpoll = VkLongPoll(vk_session)

cookie = "ТУТ КУКИ ОТ АККА ЮГЕЙМА"
useragent = "ТУТ ДАННЫЕ ЮЗЕРАГЕНТА"
client = youapi.Api(cookie, useragent)
thread_id = 661 # айди треда (в дальнейшем можно будет у юзера запрашивать)
uid = ""
time1 = ""
info = ""


def refresh():
    global uid, time1, info
    uid = client.getThreads(thread_id,1)[1]['href'].split('/')[2]
    time1 = client.getThreadInfo(uid)["time"]
    info = f"==================\nПоследняя тема в разделе исходники:{client.getThreads(thread_id,1)[1]['title']}Создатель: {client.getThreads(thread_id,1)[1]['creator']}\nДата создания: {time1}\nСсылка: yougame.bz{client.getThreads(thread_id,1)[1]['href']}\n=================="
    print("UPDATE")
    threading.Timer(5,refresh).start()


refresh()


def sender(id, text, keyboard = None):
    post = {
        "peer_id": id,
        "message": text,
        "random_id": random.randint(0,2**32),
    }
    if keyboard != None:
        post["keyboard"] = keyboard.get_keyboard()
    else:
        post = post
    vk_session.method("messages.send", post)


for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW:
        if event.to_me:

            msg = event.text.lower()
            id = event.user_id

            if msg == "/lp":
                keyboard = VkKeyboard(inline=True)
                keyboard.add_button("LIKE",VkKeyboardColor.POSITIVE)
                keyboard.add_button("DISLIKE",VkKeyboardColor.NEGATIVE)
                keyboard.add_button("COMMENT",VkKeyboardColor.SECONDARY)
                sender(id,info,keyboard)

            elif msg == "like":
                client.likePost(client.getPosts(uid,1)[0]['post_id'],1)
                sender(id,"Лайк был поставлен!")

            elif msg == "dislike":
                client.likePost(client.getPosts(uid, 1)[0]['post_id'], 6)
                sender(id, "Дизлайк был поставлен!")

            elif msg == "comment":
                keyboard = VkKeyboard(inline=True)
                keyboard.add_button("good release",VkKeyboardColor.POSITIVE)
                keyboard.add_button("stop sh1t posting",VkKeyboardColor.NEGATIVE)
                keyboard.add_button("fix brain",VkKeyboardColor.SECONDARY)
                sender(id,"Какой комментарий оставить?!",keyboard)


            elif msg == "good release":
                        client.createPost(uid,"good release")
                        sender(id,"Комметарий оставлен!")
            elif msg == "stop sh1t posting":
                        client.createPost(uid,"stop sh1t posting")
                        sender(id, "Комметарий оставлен!")
            elif msg == "fix brain":
                        client.createPost(uid,"fix brain")
                        sender(id, "Комметарий оставлен!")



            elif msg == "/help":
                keyboard = VkKeyboard(one_time=True)
                buttons = ["/lp","/np"]
                buttonscol = [VkKeyboardColor.PRIMARY,VkKeyboardColor.SECONDARY,VkKeyboardColor.POSITIVE]
                for btn in buttons:
                    keyboard.add_button(btn, buttonscol[2])
                sender(id,"Commands:\n/lp - Source thread last post\n/np -Sub for new posts", keyboard)
 

Вложения

Премиум
Статус
Оффлайн
Регистрация
10 Мар 2020
Сообщения
364
Реакции[?]
96
Поинты[?]
0
чето вообще непонятно и неудобно что и как работает. я б лучше сделал как скитбот в тг - чекнуть инфу о юзере, такое
 
Web developer / designer
Пользователь
Статус
Оффлайн
Регистрация
15 Ноя 2020
Сообщения
411
Реакции[?]
124
Поинты[?]
2K
чето вообще непонятно и неудобно что и как работает. я б лучше сделал как скитбот в тг - чекнуть инфу о юзере, такое
в апи такого не завезли, я сделал то, что посчитал нужным, сорри
 
Web developer / designer
Пользователь
Статус
Оффлайн
Регистрация
15 Ноя 2020
Сообщения
411
Реакции[?]
124
Поинты[?]
2K
Сверху Снизу