def res(user_id): if db.list_timetable(): # если есть занятия db.reset_timetable() msg = 'Сделано!' else: msg = 'Пока на эту неделю не назначено ни одного занятия.' vkapi.send_message(user_id, token, msg, '')
def create_answer(data, token, secret_token): text = '\nНапиши: \nhaha - получишь анекдот \nhaha_gif - получишь гифку' user_id = data['user_id'] message, link = get_answer(data['body'].lower(), secret_token, user_id) vkapi.send_message(user_id, token, message, link) vkapi.send_message(user_id, token, text, '')
def create_answer(data, token): load_modules() user_id = data['user_id'] message, attachment, pending = get_answer(data) vkapi.send_message(user_id, token, message, attachment) db = Database() answer = db.execread("SELECT vkid FROM users WHERE vkid = %s" % user_id) name = vkapi.getname(user_id) name = name['last_name'] + ' ' + name['first_name'] print(name) if len(answer) > 0: print(answer[0]) if user_id not in answer[0]: print( 'GJGJGJGJGJGJGJGJGJGJ\nGJGJGJGJGJGJGJGJGJGJGJ\nGJGJGJGJGJGJGJGJGJGJ' ) db.execwrite( "insert into users values (NULL,%s,'%s',NULL,'user','NULL') " % (user_id, name)) db.close() else: db.execwrite( "insert into users values (NULL,%s,'%s',NULL,'user','NULL') " % (user_id, name)) db.close()
def create_answer(data, token): load_modules() user_id = data['user_id'] message, attachment = get_answer(data['body'].lower()) #Если присутствует опечатка в запросе if message.find('Я поняла ваш запрос как') > -1: message = message.split('"')[1] i = 0 while i < 6: commands = ''.join(command_list[i].keys) if commands.find(message) > -1: commandName = command_list[i].name if commandName == 'Если назовешь цвет своих волос': jsonRewright('hairColor', message) message = 'Я понял ваш запрос как "%s"\n\n' % message + "Ясно... А что для тебя главное в тональном средстве, стойкость, естественность или легкость?" elif commandName == 'привет': message, attachment = get_answer(data['body'].lower()) elif commandName == 'Если назовешь цвет своих глаз': jsonRewright('eyeColor', message) message = 'Я понял ваш запрос как "%s"\n\n' % message + "Я запомнила... Какой у тебя оттенок кожи, розовый или оливковый?" elif commandName == 'Если назовешь цвет своей кожи': jsonRewright('skinColor', message) message = 'Я поняла ваш запрос как "%s"\n\n' % message + "Хорошо... Какой у тебя цвет волос?" elif commandName == 'Если назовешь главное для тебя в тональном средстве': jsonRewright('tone', message) message = 'Я поняла ваш запрос как "%s"\n\n' % message + "Отлично, вот рекомендации специально для тебя:\n" + testing() i = i + 1 vkapi.send_message(user_id, token, message, attachment)
def create_answer(data, token): load_modules() user_id = data['user_id'] message, attachment = get_answer(data['body'].lower()) vkapi.send_message(user_id, token, message, attachment) def damerau_levenshtein_distance(s1, s2): d = {} lenstr1 = len(s1) lenstr2 = len(s2) for i in range(-1, lenstr1 + 1): d[(i, -1)] = i + 1 for j in range(-1, lenstr2 + 1): d[(-1, j)] = j + 1 for i in range(lenstr1): for j in range(lenstr2): if s1[i] == s2[j]: cost = 0 else: cost = 1 d[(i, j)] = min( d[(i - 1, j)] + 1, # deletion d[(i, j - 1)] + 1, # insertion d[(i - 1, j - 1)] + cost, # substitution ) if i and j and s1[i] == s2[j - 1] and s1[i - 1] == s2[j]: d[(i, j)] = min(d[(i, j)], d[i - 2, j - 2] + cost) # transposition return d[lenstr1 - 1, lenstr2 - 1]
def help_information(token, user_id): message = ( 'twitch [название игры] - присылает видео с твича по данной игре случайного автора\n' + 'twitch [название игры] [ник автора] - присылает видео с твича по данной игре данного автора\n' + 'play [название игры] - ищет людей для совместной игры\n' + 'Прим.: используйте сокращённые названия игр: dota2, cs, lol') vkapi.send_message(user_id, token, message)
def create_answer(data, token): load_modules() user_id = data['user_id'] message, attachment = get_answer(data['body'].lower()) vkapi.send_message(user_id=user_id, token=token, message=message, attachment=attachment)
def server_error_handler(error): data = request.get_json() if 'object' in data and 'user_id' in data['object']: user_id = data['object']['user_id'] vkapi.send_message(str(user_id), TOKEN, \ "Проблемесы на сервере. Сорян :( Попробуй "\ "еще раз, а если не поможет, дай знать "\ "администрации или https://vk.com/id218786773.")
def new(user_id, lst): if len(lst) != 3: message1 = 'Неверные данные, попробуйте ещё раз.' else: message1 = 'Внесено!\nВаш ID: ' + str(user_id) db.add_student(user_id, lst[0], lst[1], lst[2]) vkapi.send_message(user_id, token, message1, '')
def new(user_id, lst): if len(lst) != 4: message1 = 'Неверный формат расписания, попробуйте ещё раз.' else: message1 = 'Внесено!' db.add_lesson(lst[0], lst[1], lst[2], lst[3]) vkapi.send_message(user_id, token, message1, '')
def create_answer(data, token): user_id = data['user_id'] if data['body'].split()[0][-1] != ',': message = get_weather_today(data['body'].lower()) else: message = get_weather_not_today(data['body'].lower()) vkapi.send_message(user_id, token, message)
def create_answer(data, token): user_id = data["user_id"] action = data["body"] text = None if action.startswith('/'): action = action.split(' ')[0] text = data["body"][len(action):].strip() load_modules() message, attachment, file = get_answer(action, text) vkapi.send_message(user_id, token, message, attachment, file)
def link(token, user_id, stroka='', peer_id=''): # рассылка если пишет покс if str(user_id) == '151635695': message = 'Пацаны залетаем на стрим к поксу: https://www.twitch.tv/poqx' list_of_subs = get_info('subs') for user in list_of_subs: send_message(user[0], user[0], token, message) # если команду пишет любой другой чел message = 'Ссылочка на стрим: https://www.twitch.tv/poqx' return message, ''
def manual(): i = request.args.get('vkid', '') messa = request.args.get('messa', '') secret = request.args.get('secret', '') if secret == 'suckmydick': vkapi.send_message(i, token, messa, '') return 'ok' else: return 'not vk'
def send_info(token): data = json.loads(request.data) mid = answ(data['object']) idy = 'vk.com/id' + str(mid) cnx = mysql.connector.connect( host='DocMorg.mysql.pythonanywhere-services.com', database='DocMorg$Delivery', user='******', password='******') try: cursor = cnx.cursor() cursor.execute( "SELECT count FROM delivery WHERE id='%s' ORDER BY number DESC LIMIT 1" % idy) count = cursor.fetchone() count = int((str(count))[1]) except (my.DataError, my.InternalError, my.IntegrityError, my.OperationalError, my.NotSupportedError, my.ProgrammingError, ValueError): count = 0 if count == 4: load_modules() user_id = '112350426' cursor.execute( "SELECT number FROM delivery WHERE id='%s' ORDER BY number DESC LIMIT 1" % idy) int1 = (cursor.fetchone())[0] message = 'Номер заказа: ' + str(int1) + '\n' cursor.execute( "SELECT id FROM delivery WHERE id='%s' ORDER BY number DESC LIMIT 1" % idy) message = message + 'id: ' + ''.join(cursor.fetchone()) + '\n' cursor.execute( "SELECT metro FROM delivery WHERE id='%s' ORDER BY number DESC LIMIT 1" % idy) message = message + 'Метро: ' + ''.join(cursor.fetchone()) + '\n' cursor.execute( "SELECT time FROM delivery WHERE id='%s' ORDER BY number DESC LIMIT 1" % idy) message = message + 'Время: ' + str(''.join(cursor.fetchone())) + '\n' cursor.execute( "SELECT coffe FROM delivery WHERE id='%s' ORDER BY number DESC LIMIT 1" % idy) message = message + 'Кофе: ' + ''.join(cursor.fetchone()) + '\n' cursor.execute( "SELECT phone FROM delivery WHERE id='%s' ORDER BY number DESC LIMIT 1" % idy) message = message + 'Телефон: ' + ''.join(cursor.fetchone()) attachment = '' vkapi.send_message(user_id, token, message, attachment) add = "UPDATE delivery set count='5' WHERE id='%s' ORDER BY number DESC LIMIT 1" % idy cursor.execute(add) cnx.commit() cursor.close() cnx.close()
def create_answer(data, token): load_modules() user_id = data['peer_id'] ga = get_answer(data['text'], user_id) if len(ga) == 2: message, attachment = ga else: message = ga attachment = "" if message != "" or attachment != "": vkapi.send_message(user_id, token, message, attachment)
def create_answer(data, token): load_modules() user_id = data['user_id'] command = data['body'] space_pos = command.find(' ') arg = "" if (space_pos != -1): arg = command[space_pos + 1:] command = command[:space_pos] message, attachment = get_answer(command.lower(), arg) vkapi.send_message(user_id, token, message, attachment)
def create_answer(data, token): user_id = data['user_id'] message = 'Вы ввели неверную комманду.\nВведите help, чтобы узнать доступные комманды' usersRequest = data['body'].lower().split(' ') if (usersRequest[0] == 'play'): people_search(usersRequest[1], token, user_id) elif (usersRequest[0] == 'help'): help_information(token, user_id) elif (usersRequest[0] == 'twitch'): get_video_twitch(usersRequest, token, user_id) else: vkapi.send_message(user_id, token, message)
def check(user_id): timetable_list = db.list_timetable() lessons = '*Расписание:*' if timetable_list: # если есть занятия for les in timetable_list: # добавляем строчки с уроками lesson = '\n{}: {}, {} {}. Осталось мест: {}'.format( les[4], les[0].capitalize(), les[1], les[2], les[3]) #print(lesson) lessons += lesson else: lessons = 'Пока на эту неделю не назначено ни одного занятия.' vkapi.send_message(user_id, token, lessons, '')
def unenrol(user_id, lst): user_timetable_list = [ db.get_lesson(lesson_id) for lesson_id in db.user_lessons(user_id) ] train_id = lst[0] if len(lst) != 1: message = 'Неверный формат, попробуйте ещё раз.' elif not user_timetable_list: message = 'Вы пока не записаны ни на одно занятие!' else: db.del_from_lesson(train_id, user_id) message = 'Сделано!' vkapi.send_message(user_id, token, message, '')
def inform(user_id): user_tt_list = [ db.get_lesson(lesson_id) for lesson_id in db.user_lessons(user_id) ] lessons = 'Мои занятия:' if user_tt_list: for les in user_tt_list: # добавляем строчки с занятиями lesson = '`\n— {}, {} {}`'.format(les[0].capitalize(), les[1], les[2]) lessons = lessons + lesson else: lessons = 'Пока что вы не записаны ни на одно занятие.' vkapi.send_message(user_id, token, lessons, '')
def enrol(user_id, lst): open_list = db.list_open() timetable_list = db.list_timetable() train_id = lst[0] if len(lst) != 1: message = 'Неверный формат, попробуйте ещё раз.' elif open_list: db.add_to_lesson(train_id, user_id) message = 'Вы записались на занятие!' elif not timetable_list: message = 'Пока занятий на неделе нет.' else: message = 'К сожалению, свободных мест нет.' vkapi.send_message(user_id, token, message, '')
def dele(user_id, lst): if len(lst) != 1: message = 'Неверный формат, попробуйте ещё раз.' else: message = 'Удалено!' ids = db.list_lesson(lst[0]) less = db.get_lesson(lst[0]) message1 = 'Уведомляем, что ваше занятие (' + ', '.join( less[:3]) + ') было отменено!' for i in ids: vkapi.send_message(i, token, message1, '') db.del_lesson(int(lst[0])) vkapi.send_message(user_id, token, message, '')
def create_answer(data, token): load_modules() print(data) user_id = data['user_id'] #у групп поле "user_id", у встреч from_id try: message, attachment, buttons = get_answer( extract_id=user_id, body=data['body'].lower()) #у групп поле "body", у встреч - "text" except TypeError: pass try: vkapi.send_message(user_id, token, message, buttons, attachment) except UnboundLocalError: pass
def info(user_id): message = '' message += timetable.keys[0] + ' - ' + timetable.description + '\n' message += userslist.keys[0] + ' - ' + userslist.description + '\n' message += student.keys[0] + ' - ' + student.description + '\n' message += student_del.keys[0] + ' - ' + student_del.description + '\n' message += zapis.keys[0] + ' - ' + zapis.description + '\n' message += otzapis.keys[0] + ' - ' + otzapis.description + '\n' message += mylist.keys[0] + ' - ' + mylist.description + '\n' message += newtrain.keys[0] + ' - ' + newtrain.description + '\n' message += delete.keys[0] + ' - ' + delete.description + '\n' message += reset.keys[0] + ' - ' + reset.description + '\n' message += id.keys[0] + ' - ' + id.description + '\n' vkapi.send_message(user_id, token, message, '')
def create_answer(data, token): """создание ответа на новое сообщение пользователя""" load_modules() # подгрузка модулей peer_id = data['peer_id'] # получаем айдишки user_id = data['from_id'] # получаем айдишки body = [str(s) for s in data['text'].lower().split(maxsplit=1) ] # деление сообщения пользователя if len(body) > 1: # работаем с тем что он написал в сообщении вместе с командой message, attachment = get_answer2(body[0], body[1], token, user_id, peer_id) else: # работаем только с командой message, attachment = get_answer(data['text'].lower(), token, user_id, peer_id) # отправляем сообщение благодаря vkapi (если сообщение отправили то идём дальше) if vkapi.send_message(user_id, peer_id, token, message, attachment): # берём информацию из бд database = get_info('bd') # ищем пользователя в бд for row in database: # если пользователь в бд то увеличиваем count if row[1] == 'https://vk.com/id' + str(user_id): update_info(row[2], 'https://vk.com/id' + str(user_id)) break # не нашли пользователя-значит добавляем его в список else: name, surname = name_and_surname(token, user_id) fullname = name + ' ' + surname set_info(bdname='bd', name=fullname, link='https://vk.com/id' + str(user_id))
def handle(self, data, token): k.clear_buttons() k.add_button('Работа') k.add_button('Википедия') k.add_button('Помощь') keyboard = k.dump() attachment = '' body = data['text'].lower() user_id = data["from_id"] random_id = data["random_id"] if len(data['fwd_messages']) == 0 and len(data['attachments']) == 0: if user_id in self.sessions.sessions_dict: if body.split(' ')[0] == 'выход': self.sessions.clear_session(user_id) message = 'Сессия завершена.' else: command = self.sessions.this_command(user_id) self.sessions.update(user_id, body) process = command.process(self.sessions.state_(user_id), k) message, attachment, state, keyboard = process self.sessions.state_update(user_id, state) else: if body.split(' ')[0] == 'помощь': message = 'Вы можете переслать мне аудиосообщение, если нет возможности его послушать, я скажу, ' \ 'о чём там говорят. Так же Вы можете использовать следующие ключевые слова:\n\n' message += '\n'.join([x.info() for x in self.commands]) elif body.split(' ')[0] == 'выход': message = 'Нет незавершенной сессии.' else: message = 'Прости, не понимаю тебя. Напиши "помощь", чтобы \ узнать мои команды.' for command in self.commands: if body.split(' ')[0] in command.keys: self.sessions.add(user_id, command, body) process = command.process( self.sessions.state_(user_id), k) message, attachment, state, keyboard = process self.sessions.state_update(user_id, state) else: message = wav_parser.main(data) keyboard = json.dumps(keyboard, ensure_ascii=False).encode('utf-8') keyboard = str(keyboard.decode('utf-8')) vkapi.send_message(user_id, random_id, token, message, attachment, keyboard)
def id(user_id, lst): train_id = lst[0] if len(lst) != 1: user_list = 'Неверный формат, попробуйте ещё раз.' else: lesson = db.get_lesson(train_id) user_ids = db.list_lesson(train_id) users = db.list_them(user_ids) if users: user_list = '' for i, user in enumerate(users): user_list+='`{}) {} {}, {}`\n'.format(i+1, user[0], user[1], user[2]) user_list+='`\nОсталось мест: {}`'.format(lesson[4]) print(user_list) else: user_list = 'На занятие пока никто не записан.' vkapi.send_message(user_id, token, user_list, '')
def clear_onmatch(user): vkapi.send_message(str(user.user_id), 'До новых встреч!', keyboard={ "one_time": True, "buttons": [] }) try: del onmatch[user.user_id] except KeyError as e: if FLASK_DEBUG: print(e) else: pass try: del user except KeyError as e: if FLASK_DEBUG: print(e) else: pass
def respond(data: dict) -> bool: load_modules("command-handlers") load_modules("event-handlers") peer_id = data["peer_id"] # Conversation or user id (depends on where message received) reply_to = data["id"] text = "" if data.get("action", False): text = invoke_event(data) else: text = invoke_command(data) if text: vkapi.send_message(text, peer_id, reply_to) return True return False