import os from time import sleep import vk_api import redis from dotenv import load_dotenv from loguru import logger from requests.exceptions import ReadTimeout from vk_api.bot_longpoll import VkBotEventType, VkBotLongPoll from vk_api.utils import get_random_id load_dotenv() vk_session = vk_api.VkApi(token=os.environ.get("ACCESS_TOKEN")) longpoll = VkBotLongPoll(vk_session, os.environ.get("GROUP_ID")) vk = vk_session.get_api() ADMIN_ID = "92540660" def send_message(to_id, message: str) -> None: vk.messages.send(peer_id=to_id, random_id=get_random_id(), message=message) _redis = None def get_redis(): global _redis if _redis is None: _redis = redis.from_url(os.environ.get('REDISTOGO_URL'))
from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm.session import sessionmaker # достаем токен и id группы из файла with open('./data_for_connect.json', 'r', encoding='utf-8') as file: # считываем данные, которые уже есть в файле token_and_group_id = json.load(file) file.close() # токен и id группы token = token_and_group_id['token'] group_id = token_and_group_id['group_id'] # авторизуемся в вк апи vk_session = vk_api.VkApi(token=token) # подключаем бота к longpoll серверу longpoll = VkBotLongPoll(vk_session, group_id=group_id) # строка с командами commands_msg = '"кнопки" - чтобы получить кнопки.\n' \ '"команды" - чтобы получить список команд, доступных боту.\n' \ '"словарь" - чтобы добавить свои слова в словарь.\n' \ '"слова" - чтобы посмотреть слова, которые уже есть в словаре.\n\n' \ 'p.s. команды нужно водить без ковычек.\n' \ 'p.p.s. для ввода команд можно использовать кнопки.' # когда человек хочет найти слово в своем словаре, ему присылается это сообщение string_for_slova = 'Если вы хотите получить список слов из вашего словаря, начинающихся на какую-то русскую букву, то вам нужно ввести rus - *буква*\n ' \ 'Пример:\nrus - г\n Если вы хотите получить список слов, начинающихся на какую-то английскую букву, то вам нужно ввести eng - *буква*\n ' \ 'Пример:\neng - q\n Если хотите закончить поиск слова, введите команду "закончить", или воспользуйтесь кнопкой.' # когда человек хочет добавить слово в своем словаре, ему присылается это сообщение
import vk_api from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType import redis import bot_common r = redis.Redis(decode_responses=True) vk_session = vk_api.VkApi(token='', api_version=5.95) vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, 185018457) commands = ['/reg', '/account', '/reset', '/help'] AAA = None BBB = None CCC = None for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: if event.object.text.lower() == '/reg': mh = vk.messages.getHistory(peer_id=event.object.peer_id, count=200) for msgg in mh['items']: if "Вы успешно зарегистрировались" in msgg["text"]: AAA = 'A' if AAA is None: uid, passwd = bot_common.new_account(r) r.set(f"passwd", "uid") vk.messages.send(peer_id=event.object.peer_id, message="[🎉] Вы успешно зарегистрировались\n\n[🔥] Ваш логин: " + str(uid) + "\n[🔥] Ваш пароль " + str(passwd), random_id=0) else: vk.messages.send(peer_id=event.object.peer_id, message='Вы уже зарегистрированы', random_id=0) AAA = None if event.object.text.lower() == '/account':
def __doLogin(self): vk_session = vk_api.VkApi(token=self.token) self.vk = vk_session.get_api() self.bot = VkBotLongPoll(vk_session, self.group_id)
import requests import bs4 from datetime import datetime import log_module import tg_module import foodr # CONSTANTS DAMN = "197381393" # for test VEG = "139197081" # for prod GROUP_ID = VEG # vk auth vk_session = vk_api.VkApi(token=TOKEN_VEG) vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, GROUP_ID) # check type of user def type_of_user(userid): # user is group if str(userid)[0] == "-": try: group = vk.groups.getById(group_id=userid) User = [{ 'id': group[0]['id'], 'first_name': group[0]['name'], 'last_name': "" }] urlid = "club"
import Case from data import token import data import random import re from vk_api import VkUpload from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType from vk_api.utils import get_random_id from datetime import datetime vk_session = vk_api.VkApi(token=token) # #Регистрация vk = vk_session.get_api() today = datetime.today().weekday() # #номер для недели upload = VkUpload(vk_session) # #Для загрузки изображений longpoll = VkBotLongPoll(vk_session, 178266951) COMMANDS = [ '!курс', '!иб', 'извините', ] ANSWERS = [ 'КУПИТЕ КУРС', 'ИБЭЭЭЭЭ', 'Прощаю', ] STICK_CMD = ['хоба', 'слышь, работать'] STICKS = [6111, 6138]
import os import urllib import wget import xlrd import time vk = vk_api.VkApi( token= "853ef0df30751a1ad0e0086b0be9a6b855d850bcadea940e3da0a49d899d49067d83b551e33276ee68ada" ) vk._auth_token() vk.get_api() longpoll = VkBotLongPoll(vk, 191998639) while True: for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: if event.object.peer_id != event.object.from_id: userText = event.object.text.lower() if userText == "!#": date = datetime.datetime.now() day = date.day dayPlus1 = date.day + 1 dayPlus2 = date.day + 2 month = date.month year = str(date.year)
def main(): token = ( 'e454041c2d0bc35bd37e0e8437c83e42b25742216d9c57643e18c61974f29d725c3a7bd796b73f98acd56' ) vk_session = vk_api.VkApi(token=token) vk_session._auth_token() botlongpool = VkBotLongPoll(vk_session, group_id=188220345) vk = vk_session.get_api() print('Бот запущен.') iam_timer() global usr_dict kick_msg = False for event in botlongpool.listen(): if event.type == VkBotEventType.MESSAGE_NEW: parsing_str = str(event.object.message) parsed_str = ast.literal_eval(parsing_str) msg_id = parsed_str['conversation_message_id'] usr_id = parsed_str['from_id'] #print(parsing_str) if event.chat_id == 2: print('Тестовый чат') if event.chat_id == 3: print('Пошлый Чат') if event.chat_id == 4: print('Ламповый Чат') print(msg_id) bot_pi_keyword = parsing_str.lower().find('бот пиздюк') if bot_pi_keyword > -1: vk.messages.send(chat_id=event.chat_id, message='Я не пиздюк!', random_id=randint()) try: ogg_url = parsed_str['attachments'][0]['audio_message'][ 'link_ogg'] mp3_url = parsed_str['attachments'][0]['audio_message'][ 'link_mp3'] print(ogg_url) if event.chat_id < 4: d = usr_dict.get(usr_id) if d is not None: if int(d) > 4: print('Превышен лимит') kick_msg = True else: usr_dict[usr_id] = int(d) + 1 else: usr_dict[usr_id] = 1 print('Первое предупреждение') try: vk_user = vk.users.get(user_ids=usr_id, fields='', name_case='Nom') len_str = len(str(vk_user)) vk_user_str = (str(vk_user)[1:(len_str - 1)]) vk_user_parsed = ast.literal_eval(vk_user_str) first_name = vk_user_parsed['first_name'] last_name = vk_user_parsed['last_name'] except: first_name = '' last_name = '' print('Не смог получить имя') print('Голосовое сообщение') voice = urllib.request.urlopen(ogg_url).read() mp3 = urllib.request.urlopen(mp3_url).read() try: v2t = WitAi.recognize(mp3) except: v2t = s2t('b1g0g1nrj67c0se5efad', key, voice) try: if first_name != '': if kick_msg == True: message = ( '[' + first_name + ' ' + last_name + ']:\n' + 'Напоминаю о лимите в 5 сообщений в час\n' 'Скоро за превышение будет пред.\n' + 'Текст сообщения:\n' + v2t) kick_msg = False else: message = ('[' + first_name + ' ' + last_name + ']:\n' + v2t) print(message) else: message = v2t vk.messages.send(chat_id=event.chat_id, message=message, random_id=randint()) except: print('Ошибка отправки текста госового сообщения') except: pass
import sys import requests import vk_api from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType import random vk_session = vk_api.VkApi( token=input('inter token' )) longpoll = VkBotLongPoll(vk_session, input('group id')) vk = vk_session.get_api() def map_type(): return f"Choose type of map" def get_coords(toponym_to_find): geocoder_api_server = "http://geocode-maps.yandex.ru/1.x/" geocoder_params = { "apikey": "40d1649f-0493-4b70-98ba-98533de7710b", "geocode": toponym_to_find, "format": "json"} response = requests.get(geocoder_api_server, params=geocoder_params) if response: json_response = response.json() toponym = json_response["response"]["GeoObjectCollection"][
import traceback from vk_api import VkApi, VkUpload from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType if __name__ == '__main__': vk = VkApi(token='токен от группы') upload = VkUpload(vk) longpoll = VkBotLongPoll(vk, 'id группы') api = vk.get_api() while True: try: for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: peer_id = event.obj.message['peer_id'] text = event.obj.message['text'] print(peer_id, text) with open('text.txt', 'r') as f: msg = f.read().strip() img = upload.photo_messages('test.jpg', peer_id)[0] img = f'photo{img["owner_id"]}_{img["id"]}' if text.lower() == 'logs': m = api.messages.send(peer_id=peer_id, random_id=0, message=msg, attachment=img)
import requests def getConnection(): connection = pymysql.connect(host='sql11.freemysqlhosting.net', user='******', password='******', db='sql11407890', charset='utf8mb4', cursorclass=mymysql.cursors.DictCursor) return connection vk_session = vk_api.VkApi( token= "1d1698a3e7f848ae7b8966dd63d07c1e2458ce99d9317f03747c2bb5f75086f7298dfbc42064948753e07" ) vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, "204161431") #Проверка действий for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: #Проверяем не пустое ли сообщение нам пришло if event.obj.text != '': #Проверяем пришло сообщение от пользователя или нет if event.from_user: #Отправляем сообщение vk.messages.send(user_id=event.obj.from_id, random_id=get_random_id(), message=event.obj.text)
def main(): print('Как скажите') rules = f'{random.choice(["Куда встал? Сиди пиши правила", "Ладно сидим и пишем это гов...", "А игру кто-нибудь деелает?"])}' gruop_id = 194651076 vk_session = vk_api.VkApi( token= 'bb37681562bc4a86332f6e6ca1e9110af1e817d2dd7872f1fba77fb13df2e4d15a94e4d4aed37f9040816' ) vk = vk_session.get_api() long_poll = VkBotLongPoll(vk_session, gruop_id) for event in long_poll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: msg = event.message uid = msg.from_id user = vk.users.get(user_ids=uid, fields=['city'])[0] if msg['text'] not in ['1', '2', '3', '4']: vk.messages.send( user_id=uid, message=f'Привет, {user["first_name"]} {user["last_name"]}', random_id=get_random_id()) vk.messages.send(user_id=uid, message=f'Как жиза? Чё надо?', random_id=get_random_id()) vk.messages.send( user_id=uid, message= f'Мои ухи недоразвиты (как и можг) поэтому только заранее заложенные команды.', random_id=get_random_id()) vk.messages.send(user_id=uid, message=f'Вот список команд', random_id=get_random_id(), keyboard=keyboard) vk.messages.send(user_id=uid, message=f'Вот список команд', random_id=get_random_id()) vk.messages.send(user_id=uid, message=f'1 - Список команд', random_id=get_random_id()) vk.messages.send(user_id=uid, message=f'2 - Правила игры', random_id=get_random_id()) vk.messages.send(user_id=uid, message=f'3 - Инффа о разрабах', random_id=get_random_id()) vk.messages.send(user_id=uid, message=f'4 - Последняя новость', random_id=get_random_id()) elif msg['text'] == '1': vk.messages.send(user_id=uid, message=f'Вот список команд', random_id=get_random_id()) vk.messages.send(user_id=uid, message=f'1 - Список команд', random_id=get_random_id()) vk.messages.send(user_id=uid, message=f'2 - Правила игры', random_id=get_random_id()) vk.messages.send(user_id=uid, message=f'3 - Инффа о разрабах', random_id=get_random_id()) vk.messages.send(user_id=uid, message=f'4 - Последняя новость', random_id=get_random_id()) elif msg['text'] == '2': vk.messages.send( user_id=uid, message=f'Z--z-z-z-z-z-z-z-z--z-z-z-z--z-z-z-z-z--z-z-z', random_id=get_random_id()) vk.messages.send(user_id=uid, message=f'Пацаны он ушел?', random_id=get_random_id()) vk.messages.send(user_id=uid, message=rules, random_id=get_random_id()) elif msg['text'] == '3': vk.messages.send(user_id=uid, message=f'Ну там есть Илья, Иван и Леха', random_id=get_random_id()) elif msg['text'] == '4': f1 = open('news.txt', 'r') vk.messages.send(user_id=uid, message=f'{f1.read()}', random_id=get_random_id()) f1.close()
import requests import random from vk_api.longpoll import VkLongPoll, VkEventType from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType session = requests.Session() token = '38b60dcff0e7f2091a4d36c4ef30655cad47036013860f7104977b7ed6daeff142ee245ed702dfe3404b3' vk_session = vk_api.VkApi(token=token) vk = vk_session.get_api() # try: # vk_session.auth(token_only=True) # print(vk_session.api_version) # except vk_api.AuthError as error_msg: # print(error_msg) longpoll = VkBotLongPoll(vk_session, 116472426) vk = vk_session.get_api() print(vk_session.api_version) for event in longpoll.listen(): print("new event") if event.type == VkBotEventType.MESSAGE_NEW and event.object['text']: # Слушаем longpoll, если пришло сообщение то: if event.object['text'] == 'ты сука?' or event.object[ 'text'] == 'ты чо': # Если написали заданную фразу if event.from_user: # Если написали в ЛС vk.messages.send( # Отправляем сообщение user_id=event.user_id, message='слыш ты чо бля', random_id=random.randint(0, 999999999999999)) elif event.from_chat: # Если написали в Беседе vk.messages.send( # Отправляем собщение
"type": "text", "payload": json.dumps(payload), "label": label }, "color": color } vk = vk_api.VkApi(token=tokens.token #Вставь свой ) connected_peers = [] peers = os.listdir("./admins/") for peer in peers: connected_peers.append(int(os.path.basename(peer))) longpoll = VkBotLongPoll(vk, tokens.groupID, wait=259200) #Вставь свой ID группы в пустое поле hello = [ "Приветики)", "Hello", "👋🏻", "Привет!", "Здравствуй", "Приветики) Знаешь как пользоваться ботом?) Нет? Тогда напиши /help))" ] otvet = [ "Да)?", "Ммм?", "Я знаю, что ты хочешь 😏", "Дай угадать, зачем ты меня зoвешь 😉", "Да?", "Слушаю 😊", "Разработчик бота не несет никакой ответственности за его содержимое!" ] #Load pic count f = open("./pic", "r") pic = int(f.read()) f.close()
import vk_api import requests from vk_api.utils import get_random_id from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType vk_session = vk_api.VkApi( token= "878fce9d7476eb28d019f8aa393e2a720030c1350acb857e3cbe4150c96fc6981de6417ae556611573220" ) vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, "187553815") for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: if event.obj.text != '': if event.from_user: str = event.obj.text.split(' ') if str[0] == 'погода': city = input('Введите город:') res = requests.get( "http://api.openweathermap.org/data/2.5/weather", params={ 'q': city, 'units': 'metric', 'lang': 'ru', 'APPID': 'ff804351b97f7a93823cbf829df18b62' }) data = res.json() reply += "conditions:" + data['weather'][0]['description'] reply += "temp:", data['main']['temp'] reply += "temp_min:", data['main']['temp_min']
from random import randrange import vk_api from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType from weather import current_weather, time_of_sunrise, time_of_sunset from gif_maker import create_gif, shakalize # information files from config import token from info import number_base vk_session = vk_api.VkApi(token=token) # Передаем токен сообщества vk = vk_session.get_api() groupId = 202528897 longpoll = VkBotLongPoll(vk_session, groupId) def send_msg(id, text): sleep(0.5) return vk_session.method("messages.send", {'chat_id': id, 'message': text, "random_id": 0}) def send_photo(id, attachment): '''отправляем фото в чат''' sleep(0.3) return vk_session.method("messages.send", {'chat_id': id,
from random import random from vk_api import VkApi, VkUpload from datetime import datetime from vk_api.longpoll import VkLongPoll from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType from toks import mainToken, idGroup print( "\n\nWelcome to: ___ ___ \n ___ /__/| _____ / /\ ___ \n /__/\ | |:| / /::\ / /::\ / /\ \n \ \:\ | |:| / /:/\:\ / /:/\:\ / /:/ \n \ \:\ __| |:| / /:/~/::\ / /:/ \:\ / /:/ \n ___ \__\:\ /__/\_|:|____ /__/:/ /:/\:| /__/:/ \__\:\ / /::\ \n /__/\ | |:| \ \:\/:::::/ \ \:\/:/~/:/ \ \:\ / /:/ /__/:/\:\ \n \ \:\| |:| \ \::/___/ \ \::/ /:/ \ \:\ /:/ \__\/ \:\ \n \ \:\__|:| \ \:\ \ \:\/:/ \ \:\/:/ \ \:\ \n \ \::::/ \ \:\ \ \::/ \ \::/ \__\/\n \__\__/ \__\/ \__\/ \__\/ \nFuc$*ng bot for conversations! \n1. Comands: '/Старт', 'Бот инфо' 2. With users: none\n\n" ) vkSession = VkApi(token=mainToken) vk = vkSession.get_api() longpoll = VkBotLongPoll(vkSession, idGroup) upload = VkUpload(vkSession) start_day = int(1) minutka = 0 for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat: message = event.obj['message'] peer_id = message['peer_id'] text = message['text'] if text.lower() == 'бот инфо': random_id = round(random() * 10**9) chat_id = int(event.chat_id) vkMessage = "Всем привет, я бот ! Developer, но меня можно звать просто, бот."
import vk_api import requests from other import admin_token, admin_id from vk_api.bot_longpoll import VkBotLongPoll session = requests.Session() vk = vk_api.VkApi(token=admin_token) vk._auth_token() longpoll = VkBotLongPoll(vk, admin_id)
from vk_api import VkApi from vk_api.utils import get_random_id from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType from vk_api.keyboard import VkKeyboard, VkKeyboardColor import threading, datetime import json import pandas as pd # Общие GROUP_TOKEN = '724ac9ca603d6d82f66f9716a19b06fb26108aad5d533deaefd375b7dd38853c3471bce39905f155bad0f' API_VERSION = '5.120' # Запускаем бот vk_session = VkApi(token=GROUP_TOKEN, api_version=API_VERSION) vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, group_id=204037695) def create_empty_keyboard(): keyboardd = VkKeyboard.get_empty_keyboard() return keyboardd # Эта функция используется для закрытия клавиатуры def courses(event): global main_list msg_send( event.object.peer_id, 'Запустится поиск по ключевым словам\n' 'Список кружков: (сортировка в алфавитном порядке)\n' '(название кружка), (ссылка на группу), (Имя и фамилия преподавателя), (ссылка на его стр в вк), (Твоя средняя оценка)/(Средняя оценка по группе)', coutses_keyboard())
def main(): morph = pymorphy2.MorphAnalyzer() db_session.global_init('school_db') db_sess = db_session.create_session() vk_session = vk_api.VkApi(token=TOKEN) vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, -VK_ID) keyboard = VkKeyboard() keyboard.add_button('Мероприятия', color='primary') user_keyboard = keyboard.get_keyboard() admin_keyboard = deepcopy(keyboard) admin_keyboard.add_line() admin_keyboard.add_button('Добавить', color='positive') admin_keyboard.add_button('Удалить', color='negative') admin_keyboard = admin_keyboard.get_keyboard() cancel_keyboard = VkKeyboard() cancel_keyboard.add_button('Отмена', color='negative') cancel_keyboard = cancel_keyboard.get_keyboard() for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: vk_id = event.obj.message['from_id'] admin = db_sess.query(Admin).filter(Admin.vk_id == vk_id).first() text = event.obj.message['text'] params = { 'user_id': vk_id, 'random_id': random.randint(0, 2**64), 'message': '' } attachments = [] if admin: admin_event = db_sess.query(Event). \ filter(Event.owner == vk_id, Event.is_added.is_(False)).first() if admin.status == 0: if text == 'Добавить': admin.status = 1 if not admin_event: params['message'] = 'Для добавления мероприятия ' \ 'перешлите запись из данного сообщества ' \ 'о мероприятии в переписку' new_event = Event(owner=vk_id, is_added=False) db_sess.add(new_event) else: params[ 'message'] = 'Нельзя добавлять два мероприятия одновременно' elif text == 'Удалить': admin.status = 2 params['message'] = 'Для удаления мероприятия из списка' \ ' перешлите запись о мероприятии в переписку' elif admin.status == 1: if text == 'Отмена': params[ 'message'] = 'Вы больше не добавляете мероприятие' admin.status = 0 db_sess.query(Event).filter( Event.id == admin_event.id).delete() else: if not admin_event.post_id: is_added = False response_attachments = event.obj.message[ 'attachments'] ts = datetime.now().timestamp() current_events = db_sess.query(Event).filter( Event.is_added.is_(True), Event.time_to > ts) for a in response_attachments: if a['type'] == 'wall': wall = a['wall'] if wall['to_id'] == VK_ID: wall_id = wall['id'] in_list = False for ce in current_events: if ce.post_id == wall_id: in_list = True break if not in_list: admin_event.post_id = wall_id is_added = True break if is_added: params['message'] = 'Отлично. ' \ 'Теперь отправьте дату начала мероприятия ' \ 'в формате |ДД.ММ.ГГГГ ЧЧ:ММ|' else: params['message'] = 'Вы не отправили корректную ' \ 'запись из данного сообщества' elif not admin_event.time_from: r = text_to_seconds(text) if isinstance(r, str): params['message'] = f'{r}. Попробуйте ещё раз. ' \ f'Формат |ДД.ММ.ГГГГ ЧЧ:ММ|' else: admin_event.time_from = r params['message'] = 'Отлично. ' \ 'Теперь отправьте дату конца мероприятия ' \ 'в формате |ДД.ММ.ГГГГ ЧЧ:ММ|' elif not admin_event.time_to: r = text_to_seconds(text) if isinstance(r, str): params['message'] = f"{r}. Попробуйте ещё раз" else: admin_event.time_to = r params[ 'message'] = 'Запись добавлена в мероприятия' admin_event.is_added = True admin.status = 0 elif admin.status == 2: if text == 'Отмена': params['message'] = 'Вы больше не удаляете мероприятие' admin.status = 0 else: is_deleted = False response_attachments = event.obj.message['attachments'] for a in response_attachments: if a['type'] == 'wall': wall = a['wall'] if wall['to_id'] == VK_ID: wall_id = wall['id'] db_sess.query(Event).filter( Event.post_id == wall_id).delete() is_deleted = True break if is_deleted: params['message'] = 'Мероприятие удалено' admin.status = 0 else: params[ 'message'] = 'Вы не отправили запись из списка мероприятий' if not params['message']: if text == 'Начать': params['message'] = 'Привет! Нажми кнопку \"Мероприятия\", чтоб узнать' \ ' о событиях, которые скоро пройдут в школе' elif text == 'Мероприятия': timestamp = datetime.now().timestamp() attachments = db_sess.query(Event).filter( Event.is_added.is_(True), Event.time_to > timestamp).all() if not attachments: params['message'] = 'Нет доступных мероприятий' elif text.startswith(PREFIX): line = text.lstrip(PREFIX) c, *c_params = line.split() if c == 'get_admin': if len(c_params) != 1: params['message'] = 'Неверные параметры' else: key = c_params[0] free_key = db_sess.query(Key).filter( Key.key == key).first() if free_key: if admin: params['message'] = 'Вы уже администратор' else: user = Admin(vk_id=vk_id, status=0) db_sess.add(user) db_sess.delete(free_key) params[ 'message'] = 'Вы стали администратором' else: params['message'] = 'Неверный ключ' elif c == 'create_key': if admin: new_key = ''.join( random.choice(string.ascii_letters) for _ in range(10)) key = Key(key=new_key) db_sess.add(key) params['message'] = f'Новый ключ - {new_key}' else: params[ 'message'] = 'У вас нет доступа к этой команде' else: params['message'] = 'Такой команды нет' else: params['message'] = 'Некорректный ввод' if admin: if admin.status in [1, 2]: params['keyboard'] = cancel_keyboard else: params['keyboard'] = admin_keyboard else: params['keyboard'] = user_keyboard if attachments: attachments.sort(key=lambda at: at.time_to) for a in attachments: ts = datetime.now().timestamp() message = '' if a.time_from <= ts <= a.time_to: message = 'Уже идет! 🔥' elif ts < a.time_from: days = (a.time_from - ts) // (60 * 60 * 24) + 1 w = morph.parse('день')[0] message = f'Начнется через {int(days)} ' \ f'{w.make_agree_with_number(days).word} ' \ f'{random.choice("😀😄😋🤯🤪🥳😸✌✌️")}' vk.messages.send(user_id=params['user_id'], random_id=params['random_id'], attachment=f'wall-{-VK_ID}_{a.post_id}', message=message) params['random_id'] = random.randint(0, 2**64) else: vk.messages.send(**params) db_sess.commit()
import time import vk_api import random import config as c from threading import Thread from modules import sqlite_methods as m from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType vk = vk_api.VkApi(token=c.g_token) vk._auth_token() vk.get_api() longpoll = VkBotLongPoll(vk, c.group_id) def send_msg(peer_id: int, message: str, attachment: str = ""): return vk.method("messages.send", {**locals(), "random_id": 0}) message_user_ids = [] message_users = m.get_all_message_users() for user in message_users: message_user_ids.append(user[0]) photo_user_ids = [] photo_users = m.get_all_photo_users() for user in photo_users: photo_user_ids.append(user[0]) settings_result = [] settings = m.get_settings(2) for value in settings:
import vk_api, random, os token = str(os.environ.get('token')) from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType vk_session = vk_api.VkApi(token=token) vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, '199179454') a = 0 for event in longpoll.listen(): if event.type == VkBotEventType.GROUP_JOIN: vk.messages.send(peer_id=463342021, random_id=0, message="Кто-то подписался на группу!") if event.type == VkBotEventType.GROUP_LEAVE: vk.messages.send(peer_id=463342021, random_id=0, message="Кто-то отписался от группы!") if event.type == VkBotEventType.WALL_POST_NEW: for i in vk.messages.getConversations(count=200, fields="id", filter="all", extended=1)["items"]: id = i['conversation']['peer']['id'] if id == 2000000001: pass else: try: vk.messages.send(peer_id=id, message="В группе вышел новый пост!", random_id=0) except:
vk = vk_session.get_api() # chats = vk.messages.getConversationsById(peer_ids=[204074660]) # while True: # try: # $this->sendMessage(2000000000 + $i, $message); # $count++ # except: # if $e->getCode() == 10: # //значит такой беседы уже не существует, т.к. она является последней # exit($count) # # print(chats) # for chat in chats['items']: # print(chat) longpoll_ = VkBotLongPoll(vk_session, 204074660) file_read = open('dataBase.txt', 'r', encoding='windows-1251') temp = file_read.readlines() file_read.close() data = requests.get('https://api.vk.com/method/groups.getLongPollServer', params={ 'access_token': token, 'v': 5.21, 'group_id': 204074660 }).json()['response'] prob = 3 dict_commands = {'/пример', 'глеб', 'коля'} # for event in longpoll_.listen():
# Считываем данные с конфига with open(CONFIG_PATH, encoding="utf-8") as ymlFile: config = yaml.load(ymlFile.read(), Loader=yaml.Loader) logging.basicConfig(format='%(asctime)s - %(message)s', datefmt='%d-%b-%y %H:%M:%S', level=logging.INFO) logger = logging.getLogger('vk_api') logger.disabled = True # Авторизация бота authorize = vk_api.VkApi(token=config["group"]["group_token"]) longpoll = VkBotLongPoll(authorize, group_id=config["group"]["group_id"]) bot_upload = VkUpload(authorize) bot = authorize.get_api() # Авторизация в пользователя vk_session = vk_api.VkApi(token=config["user"]["user_token"]) vk = vk_session.get_api() vk_upload = VkUpload(vk_session) logging.info("Авторизация прошла успешно") class Utils: def get_random_member(self, chat_id): """Возвращает id случайного участника беседы"""
#token='33a9a82f77bf742fc80292d35da5750d21a5b962f8716859457ace67c1f5f800a9677ddcad428ed23e546' # -*- coding: utf-8 -*- from vk_api import VkApi, VkUpload from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType from vk_api.keyboard import VkKeyboard, VkKeyboardColor from vk_api.utils import get_random_id vk_session = VkApi( token= '33a9a82f77bf742fc80292d35da5750d21a5b962f8716859457ace67c1f5f800a9677ddcad428ed23e546' ) longpoll = VkBotLongPoll(vk_session, 196410704) upload = VkUpload(vk_session) vk = vk_session.get_api() def send_message(event): vk.messages.send( random_id=get_random_id(), peer_id=event.object.message['peer_id'], message=event.object.message['text'], ) def keyboard(event): keyboard = VkKeyboard(one_time=False) keyboard.add_button('Я знаю песню!', color=VkKeyboardColor.DEFAULT) vk.messages.send(peer_id=event.object.message['peer_id'], random_id=get_random_id(), keyboard=keyboard.get_keyboard(),
while True: schedule.run_pending() sleep(1) t = Thread(target=scheduler) t.start() # ///////////////////////////////////////////////////////// Конец планировщика ///////////////////////////////////////////////////////// #JASON accessToken = '2e8f08dbcc12368c29c609f894976aaa5ff4a25d0a43e8e9b084a3fbc6b13765b0f55a667330963279231' groupId = 183464879 vkBotSession = VkApi(token=accessToken) longPoll = VkBotLongPoll(vkBotSession, groupId) vk = vkBotSession.get_api() while True: try: for event in longPoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: from_id = event.obj['from_id'] peer_id = event.obj['peer_id'] message = event.obj['text'].lower() sender_name = list( filter(lambda name: name['id'] == event.obj.from_id, [ name for name in vk.messages.getConversationMembers( peer_id=event.obj.peer_id, fields='profiles') ['profiles'] ]))[0]
def create_session(group_id, token): api = vk_api.VkApi(token=token) longpoll = VkBotLongPoll(api, group_id) session = api.get_api() print('session created') return {'session': session, 'longpoll': longpoll}
import telebot import vk_api #импорт основного модуля from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType #импорт longpoll и типа ивента import threading bott = telebot.TeleBot('1578726351:AAGnwYTAUfiPZapoBJSsXaq83nipzSzrIlI') vk = vk_api.VkApi(token = '2d92a30dc044df0e72f7ad298ef7b4b6097e765ff2b37866508d8e6c62e3c0fceb72d35585c28d5100b5b') #токен группы session = vk.get_api() longpoll = VkBotLongPoll(vk, group_id='203184619') def sender(text): vk.method('messages.send', {'peer_id': 2000000001, 'message': text, 'random_id': 0}) @bott.message_handler(content_types=['text']) def get_text_messages(message): msg = message.text aut = str(message.from_user.first_name) print(f'{aut}: {msg}') sender(f'{aut}: {msg}') bott.polling(none_stop=True)
vk = vk_api.VkApi( token= "15a4c8cc3ceaa121d1afc5032f40846ef7f01b1655f97560950e5535986e165cb49d472b72c9ede63a1be" ) #longpoll = VkLongPoll(vk) bot_api = vk.get_api() otvet = '' # Функция посылающая сообщение def write_msg(peer_id, message): random_id = vk_api.utils.get_random_id() vk.method('messages.send', { 'peer_id': peer_id, 'message': message, 'random_id': random_id }) while True: longpoll = VkBotLongPoll(vk, 201978017) try: for event in longpoll.listen(): print(event) write_msg( event.object.peer_id, f'@id{event.object.from_id}(Пользователь) написал {event.object.text}' ) except Exception as e: print(e)
from vk_api import VkApi, VkUpload from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType from time import time token = "ee5ee2a15eae712b0b63dd92847a7a06cc9e5e0b4014d430b7fdde83897d9cd9cea7978a0754aae391607" group_id = 186084635 ortom_id = 146297737 god_party = [378922227, 169026012, 101014447, 135224919] # Для Long Poll vk_session = VkApi(token=token) # Для использоания Long Poll API longpoll = VkBotLongPoll(vk_session, group_id, wait=10) # Для загрузки фото и других мультимедиа в сообщения upload = VkUpload(vk_session) # Для вызова методов vk_api # vk_api = vk_session.get_api() greeted = {} """ Идея в том, что мы будем записывать ивенты для каждого отдельного пользователя в словарь. По одной штуке на пользователся (последний) В словаре имеется структура {id: [время ласт запроса:int, [доп. данные, ивент]]} По сообщению "Спасибо" массив очищается для отдельного пользователя И для пользователя, вызывавшего ту-же предпоследнюю команду (до Спасибо) Значения в events_of_users[sender_id][1][1]: