def main(): vk_session = vk_api.VkApi(token=TOKEN) longpoll = VkBotLongPoll(vk_session, 195095163) upload = VkUpload(vk_session) vk = vk_session.get_api() for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: vk.messages.send( user_id=event.obj.message['from_id'], random_id=get_random_id(), message="Введи название местности которую хочешь увидеть. Например Калуга" ) for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: toponim = event.obj.message['text'] keyboard = VkKeyboard(one_time=True) keyboard.add_button( 'map (схема)', color=VkKeyboardColor.DEFAULT) keyboard.add_button( 'sat (спутник)', color=VkKeyboardColor.POSITIVE) keyboard.add_button( 'skl (гибрид)', color=VkKeyboardColor.NEGATIVE) keyboard.add_line() keyboard.add_location_button() vk.messages.send(user_id=event.obj.message['from_id'], message="Выберите тип карты на клавиатуре", keyboard=keyboard.get_keyboard(), random_id=get_random_id()) for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: map_type = { 'map (схема)': 'map', 'sat (спутник)': 'sat', 'skl (гибрид)': 'skl'} im = get_image( toponim, map_type[event.obj.message['text']]) photo = upload.photo_messages(photos=im)[0] attachments = 'photo{}_{}'.format( photo['owner_id'], photo['id']) vk.messages.send( user_id=event.obj.message['from_id'], attachment=attachments, random_id=get_random_id(), message=f"Это {toponim}. Что вы еще хотите увидеть?" ) break else: print(event.type)
class Bot: def __init__(self): authorize = vk_api.VkApi(token=config["group"]["group_token"]) self.longpoll = VkBotLongPoll( authorize, group_id=config["group"]["group_id"] ) self.bot = authorize.get_api() def destroy(self, chat_id): # Создаём интригу time.sleep(random.randint(1, 5)) self.bot.messages.send( chat_id=chat_id, message=random.choice(quotes), random_id=get_random_id() ) # Создаём интригу time.sleep(random.randint(1, 30)) # Получаем участников беседы chat_members = self.bot.messages.getConversationMembers( peer_id=2000000000 + chat_id, group_id=config["group"]["group_id"], )["items"] users = [] # Не трогаем админов и ботов for user in chat_members: if user["member_id"] > 0 and "is_admin" not in user: users.append(user) # Начинаем выборку for _ in range(len(users) // 2): user = random.choice(users) self.bot.messages.removeChatUser( chat_id=chat_id, user_id=user["member_id"] ) users.remove(user) print("Success") def run(self): print("Начинаю мониторинг сообщений...") # Отслеживаем каждое событие в беседе while True: try: for event in self.longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat and event.message.get("text") != "": if event.message.get("text").lower() == "танос": self.destroy(event.chat_id) except Exception as e: print(e)
class Bot(threading.Thread): """ Основная часть бота в ней проходит подключение к вк и определение метода отправки сообщения, т.к. это возможно и для клиента и для админа. """ def __init__(self, main_token, group_id, *args, **kwargs): # Инициализация бота super(Bot, self).__init__(*args, **kwargs) self.group_id = group_id # id группы передаётся из файла settings.py self.vk_session = vk_api.VkApi( token=main_token) # Запуск ВК сессии при помощи токена API self.vk = self.vk_session.get_api() self.longpool = None self.upload = VkUpload(self.vk) def run(self): """ Запуск бесконечного мониторинга событий сообщества. Если состоялось событие, то вызываем метод on_event из дочернего класса client_bot. Так же вызов on_event обвёрнут в try/except что бы работа бота не прикращалась. """ while True: try: self.longpool = VkBotLongPoll(self.vk_session, self.group_id) print('Работа бота началась:') for event in self.longpool.listen(): self.on_event(event) except (requests.exceptions.ReadTimeout, requests.exceptions.ConnectionError): print("\n Переподключение к серверам ВК \n") time.sleep(5) except Exception as exc: print('Ошибка в обработке: ', exc) time.sleep(5) def send_message(self, user_id, text, sticker_id=None, attachment=None): """Отправка сообщений от бота""" if isinstance(user_id, list): for id in user_id: self.vk.messages.send(user_id=id, message=text, attachment=attachment, random_id=0) # Отправка стикера if sticker_id: self.vk.messages.send(user_id=id, sticker_id=sticker_id, random_id=0) else: self.vk.messages.send(user_id=user_id, message=text, attachment=attachment, random_id=0) # Отправка стикера if sticker_id: self.vk.messages.send(user_id=user_id, sticker_id=sticker_id, random_id=0)
def main(): try: file = open("data.json") data = json.load(file) token = data['token'] group_id = data['groupId'] except FileNotFoundError: print("Data file not found, make it by starting setup.py") input("Press <enter> to exit. ") return fileForErrors = open('errorLog.txt', 'w') while True: try: vk_session = vk_api.VkApi(token) longpoll = VkBotLongPoll(vk_session, group_id) bot = Bot(vk_session) for event in longpoll.listen(): if event.from_chat: t = threading.Thread(target=bot.parseChat, args=(event, event.obj.text)) t.start() except Exception as e: print(e) fileForErrors.write(str(type(e)) + ':' + str(e) + '\n') print("Happened error. Restarting...")
class Server: def __init__(self, api_token, group_id, server_name: str = "Empty"): self.api_token = api_token # TOKEN группы self.group_id = group_id # ID группы self.server_name = server_name # Имя сервера self.vk = vk_api.VkApi(token=api_token) # Сессия self.longpoll = VkBotLongPoll(self.vk, group_id) # LongPoll сервер self.vk_api = self.vk.get_api() # Для вызова методов из vk_api self.users = {} # Словарь для каждого пользователя def send_message(self, obj): return self.vk.method("messages.send", obj) def start(self): for event in self.longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: user_id = event.object.from_id msg_text = event.object.text if user_id not in self.users: self.users[user_id] = Controller(user_id) self.send_message(self.users[user_id].input(msg_text))
def main(): vk_session = vk_api.VkApi( token= 'd793c36d91cff1c0f93a216c5a95549a62788fe1cc65cee98728d74d41d90afd3e5a5cfbd789227b6c1e2' ) #токен к моему сообществу longpoll = VkBotLongPoll(vk_session, '193282244') for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: print(event) print('Новое сообщение:') print('Для меня от:', event.obj.message['from_id']) print('Текст:', event.obj.message['text']) vk = vk_session.get_api() weekday = [ 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье' ] try: y, m, d = event.obj.message['text'].split('-') message = f"^˵◕ω◕˵^) это был {weekday[datetime.datetime(int(y), int(m), int(d)).weekday()]}\n" vk.messages.send(user_id=event.obj.message['from_id'], message=message, random_id=random.randint(0, 2**64)) except: vk.messages.send( user_id=event.obj.message['from_id'], message=f"(×﹏×) Введи другую дату в формате YYYY-MM-DD", random_id=random.randint(0, 2**64))
def main(): OWNER_ID = -int(GROUP_ID) user_vk_session = vk_api.VkApi(LOGIN, PASSWORD) try: user_vk_session.auth(token_only=True) except vk_api.AuthError as error_msg: print(error_msg) return user_vk = user_vk_session.get_api() group_vk_session = vk_api.VkApi( token=TOKEN) group_vk = group_vk_session.get_api() longpoll = VkBotLongPoll(group_vk_session, GROUP_ID) photos_ids = get_photos_ids(user_vk, OWNER_ID) for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: message = event.object.message from_id = message['from_id'] user = user_vk.users.get(user_id=from_id)[0] print(f"{user['first_name']} {user['last_name']}: {message['text']}") answer = f"Привет, {user['first_name']}!" photo = get_random_url(OWNER_ID, photos_ids) random_id = random.randint(0, 2 ** 64) group_vk.messages.send(user_id=from_id, message=answer, random_id=random_id, attachment=photo)
def main(): vk_session = vk_api.VkApi(token=group_token) longpoll = VkBotLongPoll(vk_session, group_id) vk = vk_session.get_api() def check_myself(): if event.obj.from_me and event.obj.random_id == get_last_rnd_int(): send_message( vk, event, f'"Я на дебила похож, с самим собой разговаривать?", - {choose_random(chat_said_eugene)} Юджин.' ) return False return True print(vk.messages.getConversationMembers(peer_id=2000000000 + 6)) while True: try: for event in longpoll.listen(): print(event) if event.type == VkBotEventType.MESSAGE_NEW: if "парта сбор" in event.obj.text: tag_all_users( vk, event, parta_id ) #hard_coded id ( change to make it for your conversation) if event.obj.from_id == 129884708: send_message(vk, event, 'Ахахахааххахахаха') except Exception as e: logger.error("type error: " + str(e)) logger.error(traceback.format_exc())
def server(): bot_session = vk_api.VkApi( token= '9cda2485cc311a9de96a60797b9d4c35c3eea2be9cb2559244f69e11cdb7ccecebf399242b47d9f92f6ba' ) vk = bot_session.get_api() while True: try: longpoll = VkBotLongPoll(bot_session, 187703257) db.msg('STARTED') for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: if event.obj.message['from_id'] > 0: if 'reply_message' in event.obj.message: handler = Handler( event.obj.message['peer_id'], vk.users.get( user_ids=event.obj.message['from_id'], fields=['sex'])[0], event.obj.message['reply_message']) handler.drop(event.obj.message['text']) else: handler = Handler( event.obj.message['peer_id'], vk.users.get( user_ids=event.obj.message['from_id'], fields=['sex'])[0], False) handler.drop(event.obj.message['text']) except Exception as e: db.msg(f'ERR: {e}')
def main(): # Инициализация бота vk_session = vk_api.VkApi(token=token) longpoll_session = VkBotLongPoll(vk_session, group_vk) vk = vk_session.get_api() # Прослушивание событий for event in longpoll_session.listen(): # Из всех событий нас интересуют только новые сообщения if event.type == VkBotEventType.MESSAGE_NEW: if event.obj.from_id == 209832291: if event.obj.text == "stop": exit(111) res = classifier.Messages.parse(event.obj.text) if res["is_to_bot"]: if "schedule" in res["type"]: mes, keyboard = data_controller.Schedule.response(res, event.obj.from_id) elif "profile" in res["type"]: mes, keyboard = data_controller.Profile.response(res, event.obj.from_id) else: pass else: mes = texts.no_to_bot_mes() vk.messages.send( peer_id=event.obj.from_id, random_id=get_random_id(), message=mes)
def main(): vk_session = vk_api.VkApi( token='d793c36d91cff1c0f93a216c5a95549a62788fe1cc65cee98728d74d41d90afd3e5a5cfbd789227b6c1e2') #токен к моему сообществу longpoll = VkBotLongPoll(vk_session, '193282244') for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: print(event) print('Новое сообщение:') print('Для меня от:', event.obj.message['from_id']) print('Текст:', event.obj.message['text']) vk = vk_session.get_api() weekday = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'] date = datetime.datetime.now() if 'время' in event.obj.message['text'] or 'число' in event.obj.message['text'] or \ 'дата' in event.obj.message['text'] or 'день' in event.obj.message['text']: message = f"Сегодня {str(date).split()[0]}, {weekday[date.weekday()]}\n" \ f"Время {str(date).split()[1].split('.')[0]}" vk.messages.send(user_id=event.obj.message['from_id'], message=message, random_id=random.randint(0, 2 ** 64)) else: message = 'Я умею говорить дату и время. ' \ 'Для этого в твоем сообщении должны быть слова: ' \ '"время", "дата", "число" или "день" ' vk.messages.send(user_id=event.obj.message['from_id'], message=message, random_id=random.randint(0, 2 ** 64))
def long_poll(self): tag = 'VK - Message LongPoll' from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType long_poll_bot = VkBotLongPoll( self.vk_bot, int(self.config.read(self.settings_tag, "community_id"))) for event in long_poll_bot.listen(): try: if event.type == VkBotEventType.MESSAGE_NEW: Log().info( tag, f'Новое сообщение от \"https://vk.com/id{event.obj.from_id}\".\n' f'Текст сообщения:\t\n{event.obj.text}\n' f'Прикрепленные аттачи:\t\n{event.obj.attachments}\n' f'Пересланные сообщения:\t\n{event.obj.fwd_messages}') self.listener(event) elif event.type == VkBotEventType.MESSAGE_REPLY: Log().info(tag, f'Бот ответил в чате {event.obj.peer_id}.') else: Log().info( tag, f'Обнаружено новое действие: {event.type} от ' f'\"https://vk.com/id{event.obj.from_id}\"') except Exception as e: Log().error(tag, e)
def main(): vk_session = vk_api.VkApi( token='') longpoll = VkBotLongPoll(vk_session, '193846592') for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: vk = vk_session.get_api() ot = '' if 'покажи ответ на задачу' in str(event.obj.message).lower(): otv = str(event.obj.message['text']).lower().split() if otv[-1] == 'физике': ot = check_zad(otv, 'fiz') elif otv[-1] == 'математике': ot = check_zad(otv, 'math') elif otv[-1] == 'информатике': ot = check_zad(otv, 'inform') else: ot = 'Вы где-то допустили ошибку , проверьте ещё раз' vk.messages.send(user_id=event.obj.message['from_id'], message=f"{ot}", random_id=random.randint(0, 2 ** 64)) elif 'помоги мне' == str(event.obj.message['text']).lower(): vk.messages.send(user_id=event.obj.message['from_id'], message=f"Я могу показывать ответ на задачу для этого нужно написать:" f"покажи ответ на задачу задача по предмет", random_id=random.randint(0, 2 ** 64))
def main(): vk_session = vk_api.VkApi( token='7216621803de07eafa776329fb518f1eeb5f5764fae3c32e24769bb3dd76d2817b50403d52a1dbf217f69') longpoll = VkBotLongPoll(vk_session, 193461113) user_id = None for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: print(event) print('Новое сообщение:') print('Для меня от:', event.obj.message['from_id']) print('Текст:', event.obj.message['text']) text = event.obj.message['text'].lower() if text == 'привет' or text == 'здравствуйте': reply = 'И вам не хворать' elif text == 'тест': reply = 'хорош меня тестить!' else: reply = 'Сейчас отвечу, если не сплю' vk = vk_session.get_api() user_id = event.obj.message['from_id'] vk.messages.send(user_id=user_id, message=reply, random_id=random.randint(0, 2 ** 64))
def run_server(*args): """ Точка начала работы бота, здесь находится прослушка от VKBotLongPoll. При получении сообщения оно попадает в обработчик handler_message. """ import vk_api as api from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType bot_session = api.VkApi(token=SETTINGS.token) botAPI = bot_session.get_api() longpoll = VkBotLongPoll(bot_session, SETTINGS.bot_chat_id) state_init, err_init = init_components() if not state_init: logging.warning(err_init) logging.info("------- Бот запущен / Bot is runing -------") try: for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: handler_message( event. obj, # Весь объект класса event (вся информация об полученном сообщении) event.obj. peer_id, # Id чата откуда было получено сообщение botAPI # API для работы с действиями бота ) except ConnectionError as err: logging.error("Произошел разрыв соединения с сервером.\n" + err)
def run(self): vk_session = vk_api.VkApi(token=Settings.VK_APP_KEY) vk = vk_session.get_api() longpoll = VkBotLongPoll(vk_session, Settings.VK_GROUP) vk = vk_session.get_api() event: VkBotMessageEvent for event in longpoll.listen(): print(1) if event.type == VkBotEventType.MESSAGE_NEW and event.message: print(2) if event.from_chat: # Если написали в Беседе print(3) if self.check_message(event.message['text']): print(4) vk.messages.send( # ответ chat_id=event.chat_id, message='Передал 20ИМ', random_id=get_random_id()) vk.messages.send( # ответ chat_id=Settings.VK_TO_GROUP_ID, message="Сообщение от деканата!\n" + event.message['text'], random_id=get_random_id()) print(5)
def main(): vk_session = vk_api.VkApi( token= 'd793c36d91cff1c0f93a216c5a95549a62788fe1cc65cee98728d74d41d90afd3e5a5cfbd789227b6c1e2' ) #токен к моему сообществу longpoll = VkBotLongPoll(vk_session, '193282244') for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: print(event) print('Новое сообщение:') print('Для меня от:', event.obj.message['from_id']) print('Текст:', event.obj.message['text']) vk = vk_session.get_api() name = vk.users.get( user_id=event.obj.message['from_id'])[0]['first_name'] try: city = vk.users.get(user_id=event.obj.message['from_id'], fields=['city'])[0]['city']['title'] vk.messages.send(user_id=event.obj.message['from_id'], message=f"Привет, {name}!\n" f"Как поживает {city}?", random_id=random.randint(0, 2**64)) except: vk.messages.send(user_id=event.obj.message['from_id'], message=f"Привет, {name}!", random_id=random.randint(0, 2**64))
def main(): vk_session = vk_api.VkApi(token=TOKEN) longpoll = VkBotLongPoll(vk_session, 195095163) for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: print(event) print('Новое сообщение:') print('Для меня от:', event.obj.message['from_id']) print('Текст:', event.obj.message['text']) vk = vk_session.get_api() user = get_user(event.obj.message['from_id'], vk) mes = f"Привет {user[0]}!" if 'Хочу узнать о' in event.obj.message[ 'text'] or 'Что такое' in event.obj.message['text']: wikipedia.set_lang("ru") zapros = event.obj.message['text'].replace( 'Хочу узнать о', '').replace('Что такое', '') mes = wikipedia.summary(zapros, sentences=1) else: mes += "\nЧто хотите узнать?. Напишите 'Хочу узнать о...' или 'Что такое ...'" vk.messages.send(user_id=event.obj.message['from_id'], message=mes, random_id=random.randint(0, 2**64)) else: print(event.type)
class Bot: def __init__(self): vk_session = vk_api.VkApi(token=VK_TOKEN) self.vk = vk_session.get_api() self.longpoll = VkBotLongPoll(vk_session, group_id=GROUP_ID) self.plugins = [] self.load_plugins() self.bot_logger = get_logger('Bot') def load_plugins(self): """This function initializes plugins.""" ss = set(os.listdir('plugins')) sys.path.insert(0, 'plugins') for s in ss: if s != '__pycache__': __import__(os.path.splitext(s)[0], None, None, ['']) for plugin in Plugin.__subclasses__(): p = plugin() print('Added plugin', p) self.plugins.append(p) p.on_load() def loop(self): """Main process of the bot. """ for event in self.longpoll.listen(): print(event) for plugin in self.plugins: try: if plugin.check(event, self.vk): continue except Exception as e: if enable_logging: self.bot_logger.error( f'{plugin} crushed with error {e}')
def main(): vk_session = vk_api.VkApi(token='token') print('Bot started!') vk = vk_session.get_api() group_id = int(id) longpoll = VkBotLongPoll(vk_session, str(group_id)) upload = vk_api.VkUpload(vk_session) def listener(event, vk, vk_session, upload, longpoll, group_id): if event.type == VkBotEventType.MESSAGE_NEW and event.object.text.strip( ) != '': uid = event.obj.from_id text = event.obj.text messages(event, vk_session, vk, longpoll, upload, uid, text, start_keyboard) if 'payload' in event.object: payload = event.object['payload'] if payload[:8] == '{"key":"': uid = event.obj.from_id text = payload[8:][:-2] keyfunc(uid, text, vk, vk_session, event) for event in longpoll.listen(): listen = Thread(target=listener, name=str(random()), args=(event, vk, vk_session, upload, longpoll, group_id)) listen.start()
def first_group(group_id, token): engine = create_engine('sqlite:///chat_ids.sqlite', echo=False) data_base.init_db(engine) vk_session = vk_api.VkApi(token=token) longpoll = VkBotLongPoll(vk_session, group_id, wait=25) smi_tags = [ "#АктивистЭМИТ", "#АнонсЭМИТ", "#ВнеЭМИТ", "#ЛичностьЭМИТ", "#НовостиЭМИТ", "#ПартнерыЭМИТ", "#ПослевкусиеЭМИТ", "#СтудСоветЭМИТ", "#УмныйЭМИТ", "#1337pacan" ] while True: try: for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: session: Session with data_base.session_scope() as session: if session.query(data_base.ChatIds).get( event.object['peer_id']) is None: session.add( data_base.ChatIds(event.object['peer_id'])) print(f'Новая беседа:{event.object["peer_id"]}') if event.type == VkBotEventType.WALL_POST_NEW: if any(tags in event.object['text'] for tags in smi_tags): mailing(event.object['owner_id'], event.object['id']) except Exception as pain: print(f"В первом процессе произошел: {pain}")
def daylik_competition(vk,keyboard): longpoll = VkBotLongPoll(vk, group_id) for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: if event.object.message['attachments']: if event.object.message['attachments'][0]['type'] == 'photo': # photo vk_message.method('messages.getConversations', {"peer_id": event.object.message['peer_id'], # выведет ок если пришло фото 'message': "", 'random_id': 0}) url = event.object.message['attachments'][0]['photo']['sizes'][6]['url'] messages = vk_message.method("messages.getConversations", {'offset': 0, 'count': 20, 'filter': 'unread'}) id = event.object.message['peer_id'] # id отправителя body = event.object.message['text'] # сам текст #album_Com_id = vk_photo.method('photos.createAlbum',# создает альбом для конкурсов # {'title': str(day_t() + 1) + " День. Конкурсы, ", 'group_id': group_id})['id'] photo(body,id, url, group_id, album_challenge_id) getpicture(event.object.message['peer_id'], 0, 2,apib,spreadsheetid) vk_message.method('messages.send', {"peer_id": event.object.message['peer_id'], 'message': "Отлично, работа принята!", 'random_id': 0}) return event if "Назад" in event.object.message['text']: break
def run(self): log.info("Reading answer requests") while True: try: vk_session = vk_api.VkApi(token=token) longpoll = VkBotLongPoll(vk_session, '192336844') for event in longpoll.listen(): log.info("new event" + str(event.type)) if event.type == VkBotEventType.MESSAGE_NEW: log.info('------------') log.info('from ' + str(event.message.from_id)) log.info('text ' + str(event.message.text)) log.info('peer_id ' + str(event.message.peer_id)) log.info('------------') peer_id = event.message.peer_id answerRequest = re.search("[DT]\d\d?\.\d\d?", event.message.text) if answerRequest != None: Thread(target=answerTheoremDefinition, args=( answerRequest.group(0), peer_id, )).start() randomRequest = re.search( "rand(.*D.*T|.*T.*D|.*T|.*D|)", event.message.text) if randomRequest != None: Thread(target=answerRand, args=( randomRequest.group(0), peer_id, )).start() except Exception as e: log.error("Answer error - " + str(e))
def main(): vk_session = vk_api.VkApi(token=TOKEN) # токен к моему сообществу longpoll = VkBotLongPoll(vk_session, id) # id сообщества for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: if 'время' in event.obj.message['text'] or \ 'число' in event.obj.message['text'] or \ 'дата' in event.obj.message['text'] or \ 'день' in event.obj.message['text']: date_and_time = datetime.datetime.now( pytz.timezone('Europe/Moscow')) date, time = str(date_and_time).split()[0], str( date_and_time).split()[1].split('.')[0] weekday = DAYS[date_and_time.today().weekday()] vk = vk_session.get_api() vk.messages.send( user_id=event.obj.message['from_id'], message= f"Сегодняшняя дата: {date}\nТекущее время (UTC+3): {time}\nДень недели: {weekday}", random_id=random.randint(0, 2**64)) else: vk = vk_session.get_api() vk.messages.send( user_id=event.obj.message['from_id'], message= f"А я умею говорить, какой сегодня день недели и не только!\n" f"Твое сообщение должно содежать слово 'время', или 'дата', или 'день', или 'число'", random_id=random.randint(0, 2**64))
def main(): vk_session = vk_api.VkApi( token=TOKEN) longpoll = VkBotLongPoll(vk_session, 193460958) message_count = 0 for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: message_count += 1 vk = vk_session.get_api() if message_count == 1: vk.messages.send(user_id=event.obj.message['from_id'], message="Добро пожаловать в ЯндексБота \n Как дела?", random_id=random.randint(0, 2 ** 64)) elif message_count == 2: vk.messages.send(user_id=event.obj.message['from_id'], message="У меня тоже " + str(event.obj.message['text']) + "\n Что делаешь?", random_id=random.randint(0, 2 ** 64)) elif message_count == 3: vk.messages.send(user_id=event.obj.message['from_id'], message="Я тоже часто " + str(event.obj.message['text']), random_id=random.randint(0, 2 ** 64)) else: vk.messages.send(user_id=event.obj.message['from_id'], message="Я устал,давай отдохнём,это уже " + str(message_count) + " по счёту сообщение", random_id=random.randint(0, 2 ** 64))
def main(): privar = [ "Ghbdtn", "Здарова", "хай", "привет", "дарова", "привет", ] bot_session = vk_api.VkApi(token=token) bot_api = bot_session.get_api() while True: longpoll = VkBotLongPoll(bot_session, g_id) try: for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: if event.object.text in privar: print(event.object.text) bot_api.messages.send(random_id=random.getrandbits(32), peer_id=event.obj.peer_id, message=random.choice(privar)) if event.object.text.find(']') != -1: if event.object.text[event.object.text.find(']') + 2:] in privar: print(event.object.text) bot_api.messages.send( random_id=random.getrandbits(32), peer_id=event.obj.peer_id, message=random.choice(privar)) except requests.exceptions.ReadTimeout as timeout: continue
def launch(self): session = vk_api.VkApi(token=self.keys.public_token, api_version='5.103') lp = VkBotLongPoll(session, self.keys.public_id) while self.is_active: try: for event in lp.listen(): if self.is_active == False: return if event.type == VkBotEventType.MESSAGE_NEW: msg = event.object.message.get('text') if not msg.startswith( ('do', 'Do')) and not msg.startswith( ('python', 'Python')): continue user = str(event.object.message.get('from_id')) self.log('There is message ' + msg + ' from user ' + user) if msg.startswith(('do', 'Do')): command = msg[3:] self.doer(command, user) elif msg.startswith(('python', 'Python')): command = msg[7:] self.launch_python(command, user) except ReadTimeout: time.sleep(30) except ConnectionError: time.sleep(30) except Exception as e: self.sender.report("Exception in Helper!\n" + str(type(e)) + '\n' + str(e)) self.log(str(type(e)) + '\n' + str(e))
def main(): login, password = LOGIN, PASSWORD vk_session = vk_api.VkApi(login, password) try: vk_session.auth(token_only=True) except vk_api.AuthError as error_msg: print(error_msg) return 1 vk = vk_session.get_api() id_group = input("id_group input: ") response = vk.photos.get(album_id=input("id_album input heree: "), group_id=id_group) photo_to_send = '' if response['items']: photo_to_send = random.choice( [f"photo{i['owner_id']}_{i['id']}" for i in response['items']]) lp = VkBotLongPoll(vk_session, id_group) for event in lp.listen(): vk = vk_session.get_api() if event.obj.message: name = vk.users.get( user_id=event.obj.message['from_id'])[0]['first_name'] city = None try: city = vk.users.get(user_id=event.obj.message['from_id'], fields='city')[0]['city']['title'] except Exception: pass vk.messages.send(peer_id=event.obj.message['from_id'], message=f'Привет, {name}!', attachment=photo_to_send)
def main(): long_poll = VkBotLongPoll(bot.vk, bot.group_id) print('VkBot started') for event in long_poll.listen(): user = User.query.get(event.message.from_id) message = None keyboard = None if user is None: message = \ f"Ваш профиль не зарегестрирован на сайте.\n" \ f"Перейдите по ссылке чтобы зарегестрироваться: " \ f"{url_for('auth.login')}" elif not user.notify: user.notify = True db.session.add(user) message = \ "Уведомления включены.\n" \ "Для отключения уведомлений напишите \"Отключить\"" elif 'отключить' in event.message.text.lower(): user.notify = False db.session.add(user) message = \ "Уведомления отключены.\n" \ "Для включения уведомлений напишите любое сообщение." db.session.commit() if message is not None: bot.send_message(peer_id=event.message.peer_id, message=message, keyboard=keyboard)
def main(): vk_session = vk_api.VkApi(token=TOKEN) longpoll = VkBotLongPoll(vk_session, 195095163) for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: print(event) print('Новое сообщение:') print('Для меня от:', event.obj.message['from_id']) print('Текст:', event.obj.message['text']) vk = vk_session.get_api() try: dt = parser.parse(event.obj.message['text']) mes = dt.strftime("%A") except: mes = 'Напишите дату - я скажу день недели' vk.messages.send(user_id=event.obj.message['from_id'], message=mes, random_id=random.randint(0, 2**64)) else: print(event.type)
def main(): """ Пример использования bots longpoll https://vk.com/dev/bots_longpoll """ vk_session = vk_api.VkApi(token='your_group_token') longpoll = VkBotLongPoll(vk_session, 'your_group_id') for event in longpoll.listen(): if event.type == VkBotEventType.MESSAGE_NEW: print('Новое сообщение:') print('Для меня от: ', end='') print(event.obj.from_id) print('Текст:', event.obj.text) print() elif event.type == VkBotEventType.MESSAGE_REPLY: print('Новое сообщение:') print('От меня для: ', end='') print(event.obj.peer_id) print('Текст:', event.obj.text) print() elif event.type == VkBotEventType.MESSAGE_TYPING_STATE: print('Печатает ', end='') print(event.obj.from_id, end=' ') print('для ', end='') print(event.obj.to_id) print() elif event.type == VkBotEventType.GROUP_JOIN: print(event.obj.user_id, end=' ') print('Вступил в группу!') print() elif event.type == VkBotEventType.GROUP_LEAVE: print(event.obj.user_id, end=' ') print('Покинул группу!') print() else: print(event.type) print()