new function with audio message. Read audio from db
This commit is contained in:
13
db.py
13
db.py
@@ -2,6 +2,7 @@ import sqlite3
|
|||||||
import configparser
|
import configparser
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import random
|
||||||
|
|
||||||
config_path = os.path.join(sys.path[0], 'settings.ini')
|
config_path = os.path.join(sys.path[0], 'settings.ini')
|
||||||
config = configparser.ConfigParser()
|
config = configparser.ConfigParser()
|
||||||
@@ -124,13 +125,15 @@ class BotDB:
|
|||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
print(error)
|
print(error)
|
||||||
|
|
||||||
def get_random_audio(self):
|
def get_random_audio(self, user_id):
|
||||||
"""Получает данные о войсе юзера из БД"""
|
"""Получает данные о войсе юзера из БД"""
|
||||||
try:
|
try:
|
||||||
result = self.cursor.execute(
|
file_name = self.cursor.execute(
|
||||||
"SELECT `file_name` FROM `audio_message_reference` WHERE `author_id` = ? ORDER BY date_added DESC LIMIT 1",
|
"SELECT `file_name` FROM `audio_message_reference` WHERE `author_id` <> ?", (user_id,))
|
||||||
(user_id,))
|
file_name_massive = file_name.fetchall()
|
||||||
return result.fetchone()[0]
|
number_element = random.randint(0, len(file_name_massive)-1)
|
||||||
|
audio_for_user = file_name_massive[number_element]
|
||||||
|
return audio_for_user
|
||||||
except sqlite3.Error as error:
|
except sqlite3.Error as error:
|
||||||
print(error)
|
print(error)
|
||||||
|
|
||||||
|
|||||||
55
main.py
55
main.py
@@ -1,5 +1,4 @@
|
|||||||
import configparser
|
import configparser
|
||||||
import itertools
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@@ -82,12 +81,13 @@ def telegram_bot():
|
|||||||
|
|
||||||
@bot.message_handler(commands=['end_command'])
|
@bot.message_handler(commands=['end_command'])
|
||||||
def after_post(message):
|
def after_post(message):
|
||||||
markup = types.ReplyKeyboardMarkup(row_width=2)
|
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
|
||||||
item1 = types.KeyboardButton("Предложить свой пост")
|
item1 = types.KeyboardButton("Предложить свой пост")
|
||||||
item2 = types.KeyboardButton("Связаться с админами")
|
item2 = types.KeyboardButton("Связаться с админами")
|
||||||
item3 = types.KeyboardButton("Удалить пост")
|
item3 = types.KeyboardButton("Удалить пост")
|
||||||
item4 = types.KeyboardButton("Сказать пока!")
|
item4 = types.KeyboardButton("Войти в режим стендапа")
|
||||||
markup.add(item1, item2, item3, item4)
|
item5 = types.KeyboardButton("Сказать пока!")
|
||||||
|
markup.add(item1, item2, item3, item4, item5)
|
||||||
bot.send_message(message.chat.id,
|
bot.send_message(message.chat.id,
|
||||||
"Выбери нужную кнопку внизу экрана".format(
|
"Выбери нужную кнопку внизу экрана".format(
|
||||||
message.from_user, bot.get_me()),
|
message.from_user, bot.get_me()),
|
||||||
@@ -128,10 +128,11 @@ def telegram_bot():
|
|||||||
bot.register_next_step_handler(msg, resend_message_in_group_for_message)
|
bot.register_next_step_handler(msg, resend_message_in_group_for_message)
|
||||||
|
|
||||||
elif message.text == "Войти в режим стендапа":
|
elif message.text == "Войти в режим стендапа":
|
||||||
markup = types.ReplyKeyboardMarkup(row_width=1)
|
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
|
||||||
item1 = types.KeyboardButton("Высказаться")
|
item1 = types.KeyboardButton("Высказаться")
|
||||||
item2 = types.KeyboardButton("Послушать")
|
item2 = types.KeyboardButton("Послушать")
|
||||||
markup.add(item1, item2)
|
item3 = types.KeyboardButton("Вернуться в меню")
|
||||||
|
markup.add(item1, item2, item3)
|
||||||
first_name = message.from_user.first_name
|
first_name = message.from_user.first_name
|
||||||
message_for_standup = BotDB.get_message_from_db('message_for_standup', first_name)
|
message_for_standup = BotDB.get_message_from_db('message_for_standup', first_name)
|
||||||
msg = bot.send_message(message.chat.id, message_for_standup, parse_mode='html', reply_markup=markup, disable_web_page_preview=not PREVIEW_LINK)
|
msg = bot.send_message(message.chat.id, message_for_standup, parse_mode='html', reply_markup=markup, disable_web_page_preview=not PREVIEW_LINK)
|
||||||
@@ -193,7 +194,7 @@ def telegram_bot():
|
|||||||
bot.forward_message(chat_id=GROUP_FOR_LOGS,
|
bot.forward_message(chat_id=GROUP_FOR_LOGS,
|
||||||
from_chat_id=message.chat.id,
|
from_chat_id=message.chat.id,
|
||||||
message_id=message.message_id)
|
message_id=message.message_id)
|
||||||
menu_standup(message=message)
|
#menu_standup(message=message)
|
||||||
|
|
||||||
def standup(message):
|
def standup(message):
|
||||||
try:
|
try:
|
||||||
@@ -202,29 +203,25 @@ def telegram_bot():
|
|||||||
msg = bot.send_message(chat_id=message.chat.id, text='Пришли мне свое голосовое сообщение', reply_markup=markup)
|
msg = bot.send_message(chat_id=message.chat.id, text='Пришли мне свое голосовое сообщение', reply_markup=markup)
|
||||||
bot.register_next_step_handler(msg, save_voice_message)
|
bot.register_next_step_handler(msg, save_voice_message)
|
||||||
elif message.text == 'Послушать':
|
elif message.text == 'Послушать':
|
||||||
#msg = bot.send_voice(chat_id=message.chat.id, open('voice_users/new_file.ogg', 'rb'))
|
file = BotDB.get_random_audio(user_id=message.from_user.id)[0]
|
||||||
msg = bot.send_message(chat_id=message.chat.id, text='Погоди, так еще не умею')
|
path = Path(f'voice_users/{file}.ogg')
|
||||||
bot.register_next_step_handler(msg, menu_standup)
|
voice = open(path, 'rb')
|
||||||
|
#Клавиатуру добавляем
|
||||||
|
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
|
||||||
|
item1 = types.KeyboardButton("Высказаться")
|
||||||
|
item2 = types.KeyboardButton("Послушать")
|
||||||
|
item3 = types.KeyboardButton("Вернуться в меню")
|
||||||
|
markup.add(item1, item2, item3)
|
||||||
|
msg = bot.send_voice(message.chat.id, voice=voice, reply_markup=markup)
|
||||||
|
bot.register_next_step_handler(msg, standup)
|
||||||
elif message.text == 'Вернуться в меню':
|
elif message.text == 'Вернуться в меню':
|
||||||
after_post(message=message)
|
after_post(message=message)
|
||||||
except:
|
except:
|
||||||
if LOGS:
|
if LOGS:
|
||||||
bot.send_message(chat_id=IMPORTANT_LOGS, text=BotDB.get_error_message_from_db(4))
|
bot.send_message(chat_id=IMPORTANT_LOGS, text=BotDB.get_error_message_from_db(4))
|
||||||
|
|
||||||
def menu_standup(message):
|
|
||||||
markup = types.ReplyKeyboardMarkup(row_width=2)
|
|
||||||
item1 = types.KeyboardButton("Высказаться еще")
|
|
||||||
item2 = types.KeyboardButton("Послушать")
|
|
||||||
item3 = types.KeyboardButton("Вернуться в меню")
|
|
||||||
markup.add(item1, item2, item3)
|
|
||||||
msg = bot.send_message(chat_id=message.chat.id,
|
|
||||||
text='Держи клавиатуру и выбери нужную кнопку внизу экрана!',
|
|
||||||
parse_mode='html', reply_markup=markup, disable_web_page_preview=not PREVIEW_LINK)
|
|
||||||
bot.register_next_step_handler(msg, standup)
|
|
||||||
|
|
||||||
def save_voice_message(message):
|
def save_voice_message(message):
|
||||||
if message.content_type == 'voice':
|
if message.content_type == 'voice':
|
||||||
#ret_msg = bot.send_voice(message.chat.id, open('voice_users/new_file.ogg', 'rb')) message_id, author_id, added_date
|
|
||||||
file_name = ''
|
file_name = ''
|
||||||
file_id = 1
|
file_id = 1
|
||||||
#Проверяем что запись о файле есть в базе данных
|
#Проверяем что запись о файле есть в базе данных
|
||||||
@@ -252,10 +249,18 @@ def telegram_bot():
|
|||||||
downloaded_file = bot.download_file(file_info.file_path)
|
downloaded_file = bot.download_file(file_info.file_path)
|
||||||
with open(f'voice_users/{file_name}.ogg', 'wb') as new_file:
|
with open(f'voice_users/{file_name}.ogg', 'wb') as new_file:
|
||||||
new_file.write(downloaded_file)
|
new_file.write(downloaded_file)
|
||||||
bot.send_message(chat_id=message.chat.id, text='Окей, сохранил!')
|
#инициализируем кнопки
|
||||||
menu_standup(message=message)
|
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
|
||||||
|
item1 = types.KeyboardButton("Вернуться в меню")
|
||||||
|
markup.add(item1)
|
||||||
|
bot.send_message(chat_id=message.chat.id, text='Окей, сохранил!', reply_markup=markup)
|
||||||
|
#menu_standup(message=message)
|
||||||
|
bot.register_next_step_handler(message, standup)
|
||||||
else:
|
else:
|
||||||
msg = bot.send_message(chat_id=message.chat.id, text='Я тебя не понимаю, запиши голосовое')
|
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
|
||||||
|
item1 = types.KeyboardButton("Вернуться в меню")
|
||||||
|
markup.add(item1)
|
||||||
|
msg = bot.send_message(chat_id=message.chat.id, text='Я тебя не понимаю, запиши голосовое', reply_markup=markup)
|
||||||
bot.register_next_step_handler(msg, save_voice_message)
|
bot.register_next_step_handler(msg, save_voice_message)
|
||||||
|
|
||||||
def resend_message_in_group_for_post(message):
|
def resend_message_in_group_for_post(message):
|
||||||
|
|||||||
Reference in New Issue
Block a user