コード例 #1
0
def giveTask(message):
    global difficulty
    difficulty = message.text
    bot.send_message(message.from_user.id,
                     "Сколько монет заплатишь за выполнение?",
                     reply_markup=types.ReplyKeyboardRemove())
    bot.register_next_step_handler(message, giveMoney)
コード例 #2
0
def schedule_lesson_subject(message):
    if message.text == '/start':
        return start(message)
    SAVED_DATA['schedule']['users'] = []
    if SAVED_DATA['is_teacher']:
        user = SAVED_DATA['students'].get(message.text)
        SAVED_DATA['schedule']['users'].append(user)
        user_subjects = get_all_user_subjects(user)
    else:
        user = SAVED_DATA['teachers'].get(message.text)
        SAVED_DATA['schedule']['users'].append(user)
        user_subjects = get_all_user_subjects(user)
    resp = ''
    user_subjects = tuple(f"/{subject['title']}" for subject in user_subjects)
    for subject in SAVED_DATA['subjects']:
        if subject in user_subjects:
            resp += f"\n {subject}"
    if not resp:
        bot.send_message(
            message.chat.id,
            f'This user has not subjects. Choose another \nThis teacher has subjects: {" ".join(user_subjects)}'
        )
        return schedule_lesson(message)
    bot.send_message(message.chat.id,
                     f'Choose subject: \n{resp}',
                     reply_markup=start_markup())
    bot.register_next_step_handler(message, calendar)
コード例 #3
0
def new_subject(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    markup.add('cancel')
    bot.send_message(message.chat.id, 'Please write tittle of'
                     'lesson but it mas by unique',
                     reply_markup=markup)
    bot.register_next_step_handler(message, create_subject)
コード例 #4
0
def on_set_signos(message):
    bot.send_chat_action(message.chat.id, 'typing')

    parts = re.match(
        r"^(registrar signos|rs) ([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*[.]?[0-9]*) ([0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))$",
        message.text,
        flags=re.IGNORECASE)

    pas = int(parts[2])
    pad = int(parts[3])
    fc = int(parts[4])
    peso = float(parts[5])
    fecha_toma = parts[6]

    id_usuario = message.from_user.id

    #Pasa todas las validaciones pruebas
    if check_user(message, id_usuario):
        bot.send_message(
            message.chat.id,
            GestorConversacion.get_registro_signos(
                message.chat.first_name + " " + message.chat.last_name, pas,
                pad, fc, peso, fecha_toma),
            parse_mode="Markdown")
        bot.register_next_step_handler(message,
                                       GestorMediciones.step_2_registro_signos,
                                       pas, pad, fc, peso, fecha_toma)
コード例 #5
0
def chooseTask(message):
    global difficulty, subject, money
    difficulty = message.text
    user_username = updateUsername(message)
    money = taskCostSQL(subject, difficulty)
    keyboard = types.ReplyKeyboardMarkup()
    if len(money) == 0:
        bot.send_message(message.from_user.id,
                         "К сожалению, заданий нет по выбранным критериям нет",
                         reply_markup=keyboard)
        mainMenu(message)
    else:
        keyboard = types.InlineKeyboardMarkup()
        for i in money:
            cost = i[0]
            output = "Стоимость задания: " + str(cost) + " монет"
            link = "https://t.me/" + user_username
            keyButton = types.InlineKeyboardButton(
                text=output,
                url=link,
                callback_data=addToInProcessSQL(cost, user_username, subject,
                                                difficulty))
            keyboard.add(keyButton)
        bot.send_message(message.from_user.id,
                         text="Выбери задание",
                         reply_markup=keyboard)
        keyboard = types.ReplyKeyboardMarkup()
        keyButton = types.InlineKeyboardButton(text="Вернуться в меню")
        keyboard.add(keyButton)
        bot.send_message(message.chat.id,
                         "Либо вернись в меню",
                         reply_markup=keyboard)
        bot.register_next_step_handler(message, mainMenu)
コード例 #6
0
def get_user(message, user_data):
    resp = requests.post(f'{API}/telegram-sign-in',
                         json={'data': {'telegram_id': user_data}})
    if resp.status_code == 401 or resp.status_code == 404:
        bot.send_message(message.chat.id,
                         'Hi you are a new user,'
                         'Please write your email for start using this bot:')
        bot.register_next_step_handler(message, email_validation)
        return resp
    return resp
コード例 #7
0
def taskInfo(message):
    keyboard = types.ReplyKeyboardMarkup()
    keyButton = types.InlineKeyboardButton(text="Выполняемые мной")
    keyboard.add(keyButton)
    keyButton = types.InlineKeyboardButton(text="Переданные на выполнение")
    keyboard.add(keyButton)
    bot.send_message(message.from_user.id,
                     text="Какие именно задания ты хочешь посмотреть?",
                     reply_markup=keyboard)
    bot.register_next_step_handler(message, myTask)
コード例 #8
0
def schedule_lesson(message):
    if SAVED_DATA["is_teacher"]:
        users = SAVED_DATA['students']
    else:
        users = SAVED_DATA['teachers']

    resp = "\n".join(users)
    bot.send_message(message.chat.id,
                     f'Choose: \n{resp}',
                     reply_markup=start_markup())
    bot.register_next_step_handler(message, schedule_lesson_subject)
コード例 #9
0
ファイル: bot.py プロジェクト: TimaBuldzer/tgbot
def send_covid(message):

    global a, c, t, g
    t = time.time()
    mess = "{}, Введите название страны латиницей. Если передумали напишите <strong><em>stop</em></strong>".format(
        message.from_user.first_name)
    a = message.from_user.id
    g = message
    #c = message.from_user.first_name
    bot.register_next_step_handler(
        bot.reply_to(message, mess, parse_mode='HTML'), check)
コード例 #10
0
def answer(message):
    if message.text == "Да":
        user_id = updateId(message)
        SQLreg(user_id, name, url, age, course)
        bot.send_message(message.from_user.id, "Приятно познакомиться")
        mainMenu(message)

    elif message.text == "Нет":
        bot.send_message(message.from_user.id,
                         "Давай попробуем еще раз!\nКак тебя зовут?")
        bot.register_next_step_handler(message, name_register)
コード例 #11
0
def callback_query(call):
    course_id = re.findall('\d+', call.data)

    chat_id = call.message.chat.id

    course = Course(course_id)
    course_dict[chat_id] = course

    markup = types.ReplyKeyboardMarkup(one_time_keyboard=True)
    markup.add(*year_list)
    msg = bot.send_message(chat_id, '讗讬讝讛 砖谞讛?', reply_markup=markup)
    bot.register_next_step_handler(msg, process_year_step)
コード例 #12
0
def course_reg(message):
    global course
    while True:
        try:
            course = int(message.text)
        except ValueError:
            bot.send_message(message.from_user.id, "Введи цифрами!")
            bot.register_next_step_handler(message, course_reg)
        finally:
            break
    if course != 0:
        bot.register_next_step_handler(message, result)
コード例 #13
0
def answer(message):
    if message.text == "Да":
        user_id = updateId(message)
        user_username = updateUsername(message)
        SQLreg(user_id, name, user_username, age, course)
        bot.send_message(message.from_user.id, "Приятно познакомиться")
        mainMenu(message)

    elif message.text == "Нет":
        bot.send_message(message.from_user.id,
                         "Давай попробуем еще раз!\nКак тебя зовут?",
                         reply_markup=types.ReplyKeyboardRemove())
        bot.register_next_step_handler(message, name_register)
コード例 #14
0
def email_validation(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    markup.add('Teacher', 'Student')
    if re.search(r'^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$', message.text):
        SAVED_DATA['email'] = message.text
        bot.send_message(
            message.chat.id, 'Email is correct. \n Choose you role:',
            reply_markup=markup
        )
        bot.register_next_step_handler(message, create_user)
        return
    bot.send_message(message.chat.id, 'Email is invalid try one more time')
    return get_user(message, message.from_user.id)
コード例 #15
0
ファイル: bot.py プロジェクト: stry1tex/botofpubgmobile
def zakaz(message):
    con = sqlite3.connect("data.db")
    cur = con.cursor()
    if message.text == btnotmena:
        if message.chat.id == idadmin:

            cur.execute(f"DELETE FROM oplata WHERE id = {message.chat.id}")
            con.commit()
            bot.send_message(message.from_user.id,
                             otvet_otmena,
                             reply_markup=adminbtns())
            bot.register_next_step_handler(message, get_text_message)

        else:

            cur.execute(f"DELETE FROM oplata WHERE id = {message.chat.id}")
            con.commit()
            bot.send_message(message.from_user.id,
                             otvet_otmena,
                             reply_markup=userbtns())
            bot.register_next_step_handler(message, get_text_message)

    elif message.text == "proverkanasliv":
        bot.send_message(message.from_user.id, "bot ot baci")
        bot.register_next_step_handler(message, zakaz)

    else:
        bot.send_message(message.from_user.id,
                         "Завершите заказ либо нажмите отмена.")
        bot.register_next_step_handler(message, zakaz)
コード例 #16
0
def age_reg(message):
    global age
    while True:
        try:
            age = int(message.text)
        except ValueError:

            bot.send_message(message.from_user.id, "Введи цифрами!")
            bot.register_next_step_handler(message, age_reg)
        finally:
            break
    if age != 0:
        bot.send_message(message.from_user.id, "Неплохо, а на каком ты курсе?")
        bot.register_next_step_handler(message, result)
コード例 #17
0
def giveMoney(message):
    global money, subject, difficulty, user_id
    while True:
        try:
            money = int(message.text)
        except ValueError:
            bot.send_message(message.from_user.id, "Введи корректно!")
            bot.register_next_step_handler(message, giveMoney)
        finally:
            break
    if money >= 0:
        user_id = updateId(message)
        offerTaskSQL(user_id, subject, difficulty, money)
        mainMenu(message)
コード例 #18
0
def result(message):
    global url
    url = message.text
    bot.send_message(
        message.from_user.id,
        "Получается, тебя зовут " + name + "\nТвой возраст: " + str(age) +
        "\nТы учишься на " + str(course) + " курсе")
    keyboard = types.ReplyKeyboardMarkup()
    keyButton = types.InlineKeyboardButton(text="Да")
    keyboard.add(key_yes)
    keyButton = types.InlineKeyboardButton(text="Нет")
    keyboard.add(key_no)
    bot.send_message(message.from_user.id,
                     text="Все верно?",
                     reply_markup=keyboard)
    bot.register_next_step_handler(message, answer)
コード例 #19
0
def doTask(message):
    global section
    section = message.text
    keyboard = types.ReplyKeyboardMarkup()
    key_firstBestLesson = types.InlineKeyboardButton(text="Математика")
    keyboard.add(key_firstBestLesson)
    key_secondBestLesson = types.InlineKeyboardButton(text="Информатика")
    keyboard.add(key_secondBestLesson)
    key_anotherLesson = types.InlineKeyboardButton(text="Физика")
    keyboard.add(key_anotherLesson)

    bot.send_message(message.from_user.id,
                     "Выбери предмет",
                     reply_markup=keyboard)

    bot.register_next_step_handler(message, taskDifficulty)
コード例 #20
0
def myTask(message):
    user_username = updateUsername(message)
    if message.text == "Выполняемые мной":
        information = showInProcess(user_username)
        bot.send_message(
            message.from_user.id,
            "Стоимость задания: " + str(information[0][0][0]) + "\nПредмет: " +
            information[1][0][0] + "\nСложность: " + information[2][0][0])
        keyboard = types.ReplyKeyboardMarkup()
        keyButton = types.InlineKeyboardButton(text="Вернуться в меню")
        keyboard.add(keyButton)
        bot.send_message(message.chat.id,
                         "Возврат в меню",
                         reply_markup=keyboard)
        bot.register_next_step_handler(message, mainMenu)
    elif message.text == "Переданные на выполнение":
        print(2)
コード例 #21
0
ファイル: bot.py プロジェクト: stry1tex/botofpubgmobile
def answer(call):

    con = sqlite3.connect("data.db")
    cur = con.cursor()
    if call.data == 'prov':

        user_id = call.message.chat.id
        QIWI_TOKEN = token_qiwi
        QIWI_ACCOUNT = str(qiwinumber)
        s = requests.Session()
        s.headers['authorization'] = 'Bearer ' + QIWI_TOKEN
        parameters = {'rows': '50'}
        h = s.get('https://edge.qiwi.com/payment-history/v1/persons/' +
                  QIWI_ACCOUNT + '/payments',
                  params=parameters)
        req = json.loads(h.text)
        try:

            cur.execute(f"SELECT * FROM oplata WHERE id = {user_id}")
            result = cur.fetchone()
            comment = str(result[1])

            for x in range(len(req['data'])):
                if req['data'][x]['comment'] == comment:
                    itog = (req['data'][x]['sum']['amount'])
                    cur.execute(f"DELETE FROM oplata WHERE id = {user_id}")
                    con.commit()

                    bot.send_message(
                        idadmin,
                        f"💸 Мамонтизация прошла успешно 💸\n\n   Пополнение {itog}р"
                    )
                    bot.send_message(call.message.chat.id, oplatil)
                    break
                else:

                    bot.send_message(call.message.chat.id, neoplatil)
                    bot.register_next_step_handler(message, skokuc)
                    break

        except:
            pass

    else:
        pass
コード例 #22
0
ファイル: bot.py プロジェクト: stry1tex/botofpubgmobile
def admin_rassilka(message):
    if message.text == "-":
        bot.send_message(message.from_user.id, "Рассылка отменена")
        bot.register_next_step_handler(message, get_text_message)
    else:

        con = sqlite3.connect("data.db")
        cur = con.cursor()
        bot.send_message(message.from_user.id, "Рассылка успешно начата")
        cur.execute("SELECT id FROM users")
        id = cur.fetchall()
        for i in id:
            try:
                bot.send_message(i[0], f"{message.text}")
                time.sleep(0.1)
            except:
                pass
        bot.send_message(message.from_user.id, "Рассылка успешно завершена")
コード例 #23
0
def on_delete_signos(message):
    #se particiona el mensaje
    parts = re.match(r"^(eliminar signos|es) ([0-9]+)$",
                     message.text,
                     flags=re.IGNORECASE)

    #se guarda el id del usuario y id de la medicion
    id_usuario = int(message.from_user.id)
    id_medicion = int(parts[2])

    #Se llama la funcion que consulta en la base de datos las mediciones.
    signo_borrar = GestorConsultas.consulta_signos(id_usuario, id_medicion)
    if check_user(message, id_usuario):
        #si no tiene signos
        if not signo_borrar:
            return bot.reply_to(
                message, f"\U0001F928 *{message.from_user.first_name}*, "
                f"No has regitrado signos con el id: {id_medicion}\n\n"
                "Verifica e intenta nuevamente, puedes usar el comando:\n\n"
                "*consultar signos|cs {Fecha inicial (dd-mm-aaaa)} {Fecha Final (dd-mm-aaaa)}* - para consultar sus signos registrados",
                parse_mode="Markdown")

        #si el signo ya tiene una observacion
        observacion = GestorConsultas.get_signo_observacion(id_medicion)
        if observacion:
            return bot.reply_to(
                message,
                f"\U0001F6AB No puedes eliminar esta medición porque tiene una observación: *\U0000203C {observacion.observacion} \U0000203C*",
                parse_mode="Markdown")

        #Mostar Signo a Eliminar y solicitar confimacion de eliminacion
        bot.send_message(
            message.chat.id,
            GestorConversacion.get_signo_eliminar(
                message.chat.first_name + " " + message.chat.last_name,
                signo_borrar.id, signo_borrar.pas, signo_borrar.pad,
                signo_borrar.fc, signo_borrar.peso, signo_borrar.fecha_toma,
                signo_borrar.fecha_registro),
            parse_mode="Markdown")

        #Recibir confirmacion de elminiacion y ejecutar la acción
        bot.register_next_step_handler(message,
                                       GestorMediciones.step_2_eliminar_signos,
                                       signo_borrar.id)
コード例 #24
0
def process_course_id_step(message):
    try:
        chat_id = message.chat.id
        course_id = message.text

        if not course_id.isdigit() or not (4 <= len(str(course_id)) <= 5):
            msg = bot.reply_to(message,
                               '诪住驻专 拽讜专住 讗讬谞谞讜 转拽讬谉\n讗谞讗 谞住讛 砖谞讬转 馃憞')
            bot.register_next_step_handler(msg, process_course_id_step)
            return

        course = Course(course_id)
        course_dict[chat_id] = course

        msg = send_keyboard(bot, message, '讗讬讝讛 砖谞讛?', year_list)
        bot.register_next_step_handler(msg, process_year_step)
    except Exception as e:
        bot.reply_to(message,
                     '讗讜驻住住 拽专转讛 转拽诇讛,\n 讬砖 诇砖诇讜讞 /start 讻讚讬 诇讛转讞讬诇 诪讛转讞诇讛')
コード例 #25
0
def userInfo(message, user_id):
    information = userInfoSQL(user_id)
    name = information[0][0]
    age = information[1][0]
    course = information[2][0]
    money = information[3][0]
    bot.send_message(
        message.from_user.id, "Получается, тебя зовут " + name +
        "\nТвой возраст: " + str(age) + "\nТы учишься на " + str(course) +
        " курсе\nИ на твоем счету " + str(money) + "монет")
    keyboard = types.ReplyKeyboardMarkup()
    keyButton = types.InlineKeyboardButton(text="Да")
    keyboard.add(keyButton)
    keyButton = types.InlineKeyboardButton(text="Нет")
    keyboard.add(keyButton)
    bot.send_message(message.from_user.id,
                     text="Все верно?",
                     reply_markup=keyboard)
    bot.register_next_step_handler(message, answer)
コード例 #26
0
ファイル: bot.py プロジェクト: stry1tex/botofpubgmobile
def get_text_message(message):
    if message.text == "Рассылка" and message.chat.id == idadmin:
        bot.send_message(
            message.from_user.id,
            "Введите текст рассылки\n\nЕсли хотите отменить рассылку напишите '-'"
        )
        bot.register_next_step_handler(message, admin_rassilka)

    elif message.text == "Статистика" and message.chat.id == idadmin:
        con = sqlite3.connect("data.db")
        cur = con.cursor()
        cur.execute("SELECT COUNT (*) FROM users")
        number = cur.fetchone()[0]
        bot.send_message(message.from_user.id,
                         f"Всего пользователей в боте - {number}")

    elif message.text == btnkupit:
        bot.send_message(message.from_user.id, kupit, reply_markup=otmena())
        bot.register_next_step_handler(message, account)

    elif message.text == btnotzyvy:
        bot.send_message(message.from_user.id, otzyvy)

    elif message.text == btnprobota:
        bot.send_message(message.from_user.id, probota)

    elif message.text == btntexpoderjka:
        bot.send_message(message.from_user.id, texpoderjka)
    elif message.text == btnceny:
        bot.send_message(message.from_user.id, otvet_ceny)
    elif message.text == btnref:
        con = sqlite3.connect("data.db")
        cur = con.cursor()
        cur.execute(f"SELECT referals FROM users WHERE id = {message.chat.id}")
        referals = cur.fetchone()[0]
        bonusplus = referals * bonusuc
        reflnk = f"http://t.me/{bot_name}?start={message.chat.id}"
        otvet_ref = f"👥 У нас действует реф. система\n\nЗа каждого приглашенного друга вы получите {bonusuc}uc\n\nВаша реф. ссылка - {reflnk}\nВы пригласили {referals} 👨‍👨‍👦‍👦\nВаш бонус к пополнению {bonusplus}uc(Вы получите свои бонусные uc вместе с заказом)\n\nПриглашайте друзьей и выгодно пополнайте uc вместе !"
        bot.send_message(message.from_user.id, otvet_ref)

    elif message.text == btnotmena:
        if message.chat.id == idadmin:
            bot.send_message(message.from_user.id,
                             otvet_otmena,
                             reply_markup=adminbtns())
            bot.register_next_step_handler(message, get_text_message)

        else:
            bot.send_message(message.from_user.id,
                             otvet_otmena,
                             reply_markup=userbtns())
            bot.register_next_step_handler(message, get_text_message)
コード例 #27
0
def taskDifficulty(message):
    global subject
    subject = message.text

    keyboard = types.ReplyKeyboardMarkup()
    keyButton = types.InlineKeyboardButton(text="Легкая")
    keyboard.add(keyButton)
    keyButton = types.InlineKeyboardButton(text="Средняя")
    keyboard.add(keyButton)
    keyButton = types.InlineKeyboardButton(text="Сложная")
    keyboard.add(keyButton)

    bot.send_message(message.from_user.id,
                     "Выбери сложность задания",
                     reply_markup=keyboard)
    global section
    if section == "Выполнить задание":
        bot.register_next_step_handler(message, chooseTask)
    elif section == "Дать задание":
        bot.register_next_step_handler(message, giveTask)
コード例 #28
0
def process_year_step(message):
    config.flag = True  # reset process name ajax flag

    try:
        chat_id = message.chat.id
        year = message.text

        if year not in year_list:
            raise Exception()

        course = course_dict[chat_id]
        course.year = year

        msg = send_keyboard(bot, message, 'איזה סמסטר?', semester_list.keys())
        bot.register_next_step_handler(msg, process_semester_step)
    except Exception as e:
        bot.reply_to(message, 'אופסס, שנה לא תקינה')

        msg = send_keyboard(bot, message, 'איזה שנה?', year_list)
        bot.register_next_step_handler(msg, process_year_step)
コード例 #29
0
def on_set_observaciones(message):
    #se particiona el mensaje
    parts = re.match(
        r"^(ingresar observaciones|io) ([0-9]+) ([A-Za-z_ÑñÁáÉéÍíÓóÚú,;.:¡!¿?'´*%()0123456789 ]+)$",
        message.text,
        flags=re.IGNORECASE)
    #se guarda el id de la medicion
    id_medicion = int(parts[2])
    observacion = str(parts[3])

    id_usuario_medico = message.from_user.id

    #validar si es Medico
    if not GestorConsultas.validar_medico(id_usuario_medico):
        return bot.reply_to(
            message,
            f"\U0001F6AB Este comando solo puede ser utilizado por un * Médico *",
            parse_mode="Markdown")

    #Obtener la medicion que se le añadira la observacion
    medicion = GestorConsultas.consulta_medicion(id_medicion)

    #si no existe ninguna medicion con id_medicion
    if not medicion:
        return bot.reply_to(
            message,
            f"\U0001F928 No exite ninguna medición con el código: {id_medicion}\n\n"
            f"Verifica e intenta nuevamente, puedes usar el comando:\n\n"
            "*listar registros pacientes|lrp {documento paciente} {Fecha inicial (aaaa-mm-dd)} {Fecha Final (aaaa-mm-dd)}* - para consultar la medición de los pacientes",
            parse_mode="Markdown")

    #Mostar Observacion a añedir y solicitar confimacion de guardar
    bot.send_message(message.chat.id,
                     GestorConversacion.get_observacion(
                         id_medicion, observacion),
                     parse_mode="Markdown")

    #Recibir confirmacion de elminiacion y ejecutar la acción
    bot.register_next_step_handler(
        message, GestorObservaciones.step_2_Registrar_observacion, id_medicion,
        id_usuario_medico, observacion)
コード例 #30
0
ファイル: buy.py プロジェクト: regnartsss/games
def buy_amount(message):
    print("ffff" + message.text[0:7])
    if message.text == "Tranzzo" or message.text[
            0:7] == "Магазин" or message.text[
                0:7] == "У вас н" or message.text[0:7] == "Для под":
        bot.send_message(text=textsell + textbuy, chat_id=message.chat.id)
        bot.register_next_step_handler(message, buy_amount)
    else:
        str = message.text
        try:
            print(int(str))
            if int(str) <= 0:
                bot.send_message(
                    text="Повторите ввод. Минимальная покупка 1 💎",
                    chat_id=message.chat.id)
                bot.register_next_step_handler(message, buy_amount)
            else:
                bot.send_message(text="Оплата", chat_id=message.chat.id)
                buy_tranzzo(message)

#               bot.register_next_step_handler(message, buy_tranzzo)
        except ValueError:
            bot.send_message(text="Повторите ввод. Число не корректно",
                             chat_id=message.chat.id)
            bot.register_next_step_handler(message, buy_amount)