Ejemplo n.º 1
0
def res(user_id):
    if db.list_timetable():  # если есть занятия
        db.reset_timetable()
        msg = 'Сделано!'
    else:
        msg = 'Пока на эту неделю не назначено ни одного занятия.'
    vkapi.send_message(user_id, token, msg, '')
Ejemplo n.º 2
0
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, '')
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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]
Ejemplo n.º 6
0
def help_information(token, user_id):
    message = (
        'twitch [название игры] - присылает видео с твича по данной игре случайного автора\n'
        +
        'twitch [название игры] [ник автора] - присылает видео с твича по данной игре данного автора\n'
        + 'play [название игры] - ищет людей для совместной игры\n' +
        'Прим.: используйте сокращённые названия игр: dota2, cs, lol')
    vkapi.send_message(user_id, token, message)
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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.")
Ejemplo n.º 9
0
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, '')
Ejemplo n.º 10
0
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, '')
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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, ''
Ejemplo n.º 14
0
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'
Ejemplo n.º 15
0
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()
Ejemplo n.º 16
0
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)
Ejemplo n.º 17
0
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)
Ejemplo n.º 18
0
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)
Ejemplo n.º 19
0
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, '')
Ejemplo n.º 20
0
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, '')
Ejemplo n.º 21
0
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, '')
Ejemplo n.º 22
0
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, '')
Ejemplo n.º 23
0
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, '')
Ejemplo n.º 24
0
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
Ejemplo n.º 25
0
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, '')
Ejemplo n.º 26
0
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))
Ejemplo n.º 27
0
    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)
Ejemplo n.º 28
0
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, '')
Ejemplo n.º 29
0
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
Ejemplo n.º 30
0
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