def add_mark_to_bd(bot, update): query = bot.callback_query text = "С" if int(query.data) == 1 or int(query.data) == 2: text = "Обидно🤧\nНо с" user = query.message.chat.id con, cursor = main_csp.get_cursor() check = cursor.execute(f"SELECT user_id FROM marks").fetchall() mark = cursor.execute( f"SELECT mark FROM marks WHERE user_id = '{user}' ").fetchone() users = [us[0] for us in check] if user in users: update.bot.edit_message_caption( caption=f"Вы уже ставили оценку! Ваша оценка: {mark[0]}", chat_id=user, message_id=query.message.message_id) else: update.bot.edit_message_caption( caption=text + "пасибо за оценку! Этим вы помогаете мне понять, достаточно ли я хороша💞", chat_id=user, message_id=query.message.message_id) result = f'''INSERT INTO marks(user_id, username, name, mark) VALUES(?, ?, ?, ?)''' cursor.execute(result, (query.message.chat.id, query.message.chat.username, str(query.message.chat.first_name) + str(query.message.chat.last_name), int(query.data))) con.commit() con.close()
def author(update, context): update.message.reply_text("Спасибо, что поинтересовался❣\nМне очень приятно💓\n\nВот мои контакты:\n@sofa_gans") con, cursor = main_csp.get_cursor() cursor.execute(f"INSERT INTO counters_and_marks(username, name, contacts) VALUES(?, ?, ?)", (update.message.chat.username, str(update.message.chat.first_name) + str(update.message.chat.last_name), 0)) con.commit() con.close()
def get_rating(update, context): con, cursor = main_csp.get_cursor() result = cursor.execute(f"SELECT mark FROM marks").fetchall() summa, kolvo = main_csp.counter_comparison(result) update.message.reply_text("*🙊Рейтинг бота:*\n_👉" + str(summa / kolvo)[:4] + " / 5👈_\n\nКажется, я не так плоха💌", parse_mode=ParseMode.MARKDOWN, reply_markup=ReplyKeyboardMarkup(main_csp.SECTION_OTHER, resize_keyboard=True)) con.close()
def change_mark(bot, update): con, cursor = main_csp.get_cursor() user = bot.message.chat.id query = f"DELETE FROM marks WHERE user_id = '{user}' " cursor.execute(query) con.commit() con.close() bot.message.reply_text("Оценка удалена! Поставьте оценку заново:") set_mark(bot, update)
def english_speech(update, context): con, cursor = main_csp.get_cursor() letter = update.message.text goal = cursor.execute(f"SELECT goal, how_to_do FROM parts_of_speech WHERE part_of_sp ='{letter[1:-1]}' ").fetchone() update.message.reply_text("*Цель:* \n☑ _" + goal[0] + "_☑", parse_mode=ParseMode.MARKDOWN) update.message.reply_text("*Как выполнять:* \n🆙" + goal[1], parse_mode=ParseMode.MARKDOWN, reply_markup=ReplyKeyboardMarkup([["🤏цитата🤏"], ["🔙вернуться назад🔙"]], resize_keyboard=True)) con.close()
def know_result_many_words(): con, cursor = main_csp.get_cursor() result = cursor.execute( f"SELECT {letter} FROM counters_and_marks").fetchall() summa, kolvo = main_csp.counter_comparison(result) con.close() if value < (summa / kolvo): return value,\ "Вы сказали меньше слов, чем говорят в среднем. Но я уверена, это _неокончательный результат_!!!💜" else: return value, "Вы сказали больше слов, чем говорят в среднем. Мои поздравления! _Дальше - больше_💜"
def long_song_about(update, context): con, cursor = main_csp.get_cursor() letter = update.message.text print(letter[1:-1]) goal = cursor.execute(f""" SELECT goal, how_to_do, frequency FROM parts_of_speech WHERE part_of_sp = "{letter[1:-1]}" """).fetchone() update.message.reply_text("*Цель:* \n☑ _" + goal[0] + "_☑", parse_mode=ParseMode.MARKDOWN) update.message.reply_text("*Как выполнять:* \n🆙" + goal[1], parse_mode=ParseMode.MARKDOWN) update.message.reply_text("🅰🅱🅾🅱🅰\n🤓При регулярной практике вскоре вы сможете задвинуть часовую лекцию про ластик, " "стул или дверцу шкафа:))🤠", parse_mode=ParseMode.MARKDOWN) update.message.reply_text("*Частота выполнения:* \n♾♾♾♾♾♾♾♾\n" + goal[2] + "\n♾♾♾♾♾♾♾♾", parse_mode=ParseMode.MARKDOWN, reply_markup=ReplyKeyboardMarkup([["🤏словечко🤏"], ["🔙вернуться назад🔙"]], resize_keyboard=True)) con.close()
def add_review_to_file_and_bd(update, context): update.message.reply_text( "Спасибо за отзыв, он очень важен для меня🥰", reply_markup=ReplyKeyboardMarkup(main_csp.SECTION_OTHER, resize_keyboard=True)) rev = open("all_reviews.txt", "a", encoding="UTF-8") rev.write("\n" + update.message.text + "\n") rev.close() con, cursor = main_csp.get_cursor() result = f'''INSERT INTO reviews(user_id, username, name, review) VALUES(?, ?, ?, ?)''' cursor.execute(result, (update.message.chat.id, update.message.chat.username, str(update.message.chat.first_name) + str(update.message.chat.last_name), update.message.text)) con.commit() con.close()
def task(context): text = "❗Минута прошлА❗\n*Цель:*\n✅_выполнена_✅" updated.message.reply_text(text, parse_mode=ParseMode.MARKDOWN, reply_markup=ReplyKeyboardMarkup( [['🔙вернуться назад🔙']], resize_keyboard=True)) res, text = know_result_many_words() updated.message.reply_text("*Поздравляю!*👇\n_Ваш результат:_ " + str(res), parse_mode=ParseMode.MARKDOWN) updated.message.reply_text(text, parse_mode=ParseMode.MARKDOWN) con, cursor = main_csp.get_cursor() query = f'''INSERT INTO counters_and_marks({letter}, username, name) VALUES(?, ?, ?)''' cursor.execute(query, (res, updated.message.chat.username, str(updated.message.chat.first_name) + str(updated.message.chat.last_name))) con.commit() con.close()
def set_mark(bot, update): mark_keyboard = [[ InlineKeyboardButton("отлично", callback_data='5'), InlineKeyboardButton("хорошо", callback_data='4') ], [InlineKeyboardButton("удовлетворительно", callback_data='3')], [ InlineKeyboardButton("плохо", callback_data='2'), InlineKeyboardButton("ужасно", callback_data='1') ]] con, cursor = main_csp.get_cursor() result = cursor.execute( "SELECT file_id FROM names_of_pic WHERE name = 'kitten_gif' " ).fetchone() # в бд находится уже готовый id гифки, чтобы 1)не загружать в телеграм заново одно и то же; # 2) программа не тормозила con.close() update.bot.send_animation(chat_id=bot.message.chat.id, animation=result[0], reply_markup=InlineKeyboardMarkup(mark_keyboard))
def goals_many_words(update, context): con, cursor = main_csp.get_cursor() global letter letter = "".join(update.message.text.split()) print(letter) goal = cursor.execute(f""" SELECT goal, how_to_do, frequency FROM parts_of_speech WHERE part_of_sp = "{letter}" """ ).fetchone() update.message.reply_text("*Цель:* \n☑ _" + goal[0] + "_", parse_mode=ParseMode.MARKDOWN) update.message.reply_text("*Как выполнять:* \n🆙" + goal[1], parse_mode=ParseMode.MARKDOWN) update.message.reply_text( "🅰🅱🅾🅱🅰\nПовторяться нельзя❗\nПосле каждого сказанного слова нажмите на кнопку" " на клавиатуре(она появится, как только вы начнете(плюс))." "\n⭕Данное упражнение отлично _вытягивает_ " "слова из пассивного запаса⭕", parse_mode=ParseMode.MARKDOWN) update.message.reply_text( "*Частота выполнения:* \n♾♾♾♾♾♾♾♾\n" + goal[2] + "\n♾♾♾♾♾♾♾♾", parse_mode=ParseMode.MARKDOWN, reply_markup=ReplyKeyboardMarkup([["начнем!"], ["🔙вернуться назад🔙"]], resize_keyboard=True)) con.close()