Софт Боты вк

Начинающий
Статус
Оффлайн
Регистрация
8 Янв 2020
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Есть ли у вас бот на node js менеджер бесед "чат-менеджера" или "Кая" ? Скиньте пожалуйста.
 
Последнее редактирование:
substandard rank
Забаненный
Статус
Оффлайн
Регистрация
21 Янв 2019
Сообщения
424
Реакции[?]
113
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Такс, мини гайдик для тебя.

Я node.js/javascript и тд не знаю, сделаю на python`e

Первым делом хостинг, у меня python. Я беру pythonanywhere.com (noad)

После тебе нужна заготовка для бота

Python:
import vk_api
import random
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType


#активация бота в вк

token = "токен"

vk = vk_api.VkApi(token=token)

vk._auth_token()

longpoll = VkBotLongPoll(vk, 'номер группы')

#--------------------------------------------



try:

    while True:

        for event in longpoll.listen(): #читаем все сообщения

        #если новое сообщение

            if event.type == VkBotEventType.MESSAGE_NEW:

                request = event.obj['text'] #переменная с тектом сообщения
                peer_id = event.obj['peer_id'] #id чата или пользователя
               

                if request == "Привет": #если текст сообщения "Привет", пишем в ответ Привет!
                    vk.method("messages.send", { "peer_id": peer_id, "message": "Привет!", "random_id": random.randint(1, 2147483647)})




except:

    print("Error") #это просто система "дебага", я ее сюда запихал чтобы бот не крашил и не останавливался

Это просто мини бот для вк, для создания чат-бота, нам нужна sql.


Python:
#Простая SQL для чат бота

import sqlite3

conn = sqlite3.connect('tst.db')
cur = conn.cursor()
cur.execute('create table if not exists tbl(ask text,answ text)') #создаем базу вопрос/ответ

while True:
    asked = input('Вопрос: ')  #просим ввод вопроса например "Привет"
    if not asked: #если пусто, остановка
        break
    cur.execute('select answ from tbl where ask==?',(asked,))
    answer = [i[0] for i in cur.fetchall()] #перечисляем все ответы
    if not answer:
        answers = input("Ответ: ")
        if not answers: continue #если пусто, продолжаем задавать вопросы
        cur.execute('insert into tbl values(?,?)',(asked,answers)) #добавляем вопрос и ответ к нему
    else: #иначе выводим ответ
        print('Ответ бота: {0}'.format(*answer))
conn.close() #отключаемся от базы


Теперь преобразуем все в одно.


Python:
import vk_api
import sqlite3
import random
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType





#активация бота в вк

token = "токен"
vk = vk_api.VkApi(token=token)
vk._auth_token()
longpoll = VkBotLongPoll(vk, 'номер группы')

#--------------------------------------------




conn = sqlite3.connect('bot.db')
cur = conn.cursor()
cur.execute('create table if not exists tbl(ask text,answ text)')


try:
    while True:
        for event in longpoll.listen(): #читаем все сообщения
     
        #если новое сообщение

            if event.type == VkBotEventType.MESSAGE_NEW:

                request = event.obj['text'] #переменная с тектом сообщения
                peer_id = event.obj['peer_id'] #id чата или пользователя

                if request == "Привет":
                    vk.method("messages.send", { "peer_id": peer_id, "message": "Привет!", "random_id": random.randint(1, 2147483647)})

                if request == "Старт" or request == "Начать":
                    vk.method("messages.send", { "peer_id": peer_id, "message": "Привет! Я обучаемый бот! Напиши любой вопрос, а после ответ!", "random_id": random.randint(1, 2147483647)})

                cur.execute('select answ from tbl where ask==?',(request,))
                answers = [i[0] for i in cur.fetchall()]
                if not answers:
                    a = request
                    if not a: continue
                    cur.execute('insert into tbl values(?,?)',(request,a))
                else:
                    vk.method("messages.send", { "peer_id": peer_id, "message": "Ответ: {0}".format(*answer), "random_id": random.randint(1, 2147483647)})




except:
    print("Error")
conn.close()
P.S.: В последнем коде есть некая антипаста (нет, мне просто лень придумывать как сохранить 1 реквест)
Вообщем нужно пофиксить сэйв вопроса/ответа, а так все норм.


скрин "работы"
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
8 Янв 2020
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Такс, мини гайдик для тебя.

Я node.js/javascript и тд не знаю, сделаю на python`e

Первым делом хостинг, у меня python. Я беру pythonanywhere.com (noad)

После тебе нужна заготовка для бота

Python:
import vk_api
import random
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType


#активация бота в вк

token = "токен"

vk = vk_api.VkApi(token=token)

vk._auth_token()

longpoll = VkBotLongPoll(vk, 'номер группы')

#--------------------------------------------



try:

    while True:

        for event in longpoll.listen(): #читаем все сообщения

        #если новое сообщение

            if event.type == VkBotEventType.MESSAGE_NEW:

                request = event.obj['text'] #переменная с тектом сообщения
                peer_id = event.obj['peer_id'] #id чата или пользователя
              

                if request == "Привет": #если текст сообщения "Привет", пишем в ответ Привет!
                    vk.method("messages.send", { "peer_id": peer_id, "message": "Привет!", "random_id": random.randint(1, 2147483647)})




except:

    print("Error") #это просто система "дебага", я ее сюда запихал чтобы бот не крашил и не останавливался

Это просто мини бот для вк, для создания чат-бота, нам нужна sql.


Python:
#Простая SQL для чат бота

import sqlite3

conn = sqlite3.connect('tst.db')
cur = conn.cursor()
cur.execute('create table if not exists tbl(ask text,answ text)') #создаем базу вопрос/ответ

while True:
    asked = input('Вопрос: ')  #просим ввод вопроса например "Привет"
    if not asked: #если пусто, остановка
        break
    cur.execute('select answ from tbl where ask==?',(asked,))
    answer = [i[0] for i in cur.fetchall()] #перечисляем все ответы
    if not answer:
        answers = input("Ответ: ")
        if not answers: continue #если пусто, продолжаем задавать вопросы
        cur.execute('insert into tbl values(?,?)',(asked,answers)) #добавляем вопрос и ответ к нему
    else: #иначе выводим ответ
        print('Ответ бота: {0}'.format(*answer))
conn.close() #отключаемся от базы


Теперь преобразуем все в одно.


Python:
import vk_api
import sqlite3
import random
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType





#активация бота в вк

token = "токен"
vk = vk_api.VkApi(token=token)
vk._auth_token()
longpoll = VkBotLongPoll(vk, 'номер группы')

#--------------------------------------------




conn = sqlite3.connect('bot.db')
cur = conn.cursor()
cur.execute('create table if not exists tbl(ask text,answ text)')


try:
    while True:
        for event in longpoll.listen(): #читаем все сообщения
    
        #если новое сообщение

            if event.type == VkBotEventType.MESSAGE_NEW:

                request = event.obj['text'] #переменная с тектом сообщения
                peer_id = event.obj['peer_id'] #id чата или пользователя

                if request == "Привет":
                    vk.method("messages.send", { "peer_id": peer_id, "message": "Привет!", "random_id": random.randint(1, 2147483647)})

                if request == "Старт" or request == "Начать":
                    vk.method("messages.send", { "peer_id": peer_id, "message": "Привет! Я обучаемый бот! Напиши любой вопрос, а после ответ!", "random_id": random.randint(1, 2147483647)})

                cur.execute('select answ from tbl where ask==?',(request,))
                answers = [i[0] for i in cur.fetchall()]
                if not answers:
                    a = request
                    if not a: continue
                    cur.execute('insert into tbl values(?,?)',(request,a))
                else:
                    vk.method("messages.send", { "peer_id": peer_id, "message": "Ответ: {0}".format(*answer), "random_id": random.randint(1, 2147483647)})




except:
    print("Error")
conn.close()
P.S.: В последнем коде есть некая антипаста (нет, мне просто лень придумывать как сохранить 1 реквест)
Вообщем нужно пофиксить сэйв вопроса/ответа, а так все норм.


скрин "работы"
У меня есть бот на node js, я хотел просмотреть как устроен чат менеджер
 
Сверху Снизу