@commands.slash_command(name="add_a", description="Добавить звук")
async def add_a(self, ctx,
название: str = discord.Option(str, description="Название звука"),
звук = discord.Option(discord.Attachment, description="Закрепить аудио")):
await ctx.defer()
conn = sqlite3.connect('music.db')
cursor = conn.cursor()
cursor.execute("SELECT name FROM music WHERE name=?", (название,))
existing_sound = cursor.fetchone()
if existing_sound:
emb = discord.Embed(title='Звук', colour=discord.Color.red())
emb.set_footer(text=f'Звук с именем {название} уже существует!')
await ctx.respond(embed=emb)
await ctx.delete(delay=10)
else:
path = f"audio/{звук.filename}"
await звук.save(path)
try:
cursor.execute("INSERT INTO music (name, path) VALUES (?, ?)", (название, path))
conn.commit()
emb = discord.Embed(title='Звук', colour=discord.Color.green())
emb.set_footer(text=f'Аудиофайл {название} успешно добавлен!')
await ctx.respond(embed=emb)
await ctx.delete(delay=10)
except sqlite3.IntegrityError:
emb = discord.Embed(title='Звук', colour=discord.Color.red())
emb.set_footer(text=f'Звук с именем {название} уже существует!')
await ctx.respond(embed=emb)
await ctx.delete(delay=10)
finally:
conn.close()
@commands.slash_command(name="del_a", description="Удалить звук")
async def del_a(self, ctx, название = discord.Option(str, description="Выберите аудио для удаления", choices = audio_names)):
await ctx.defer()
conn = sqlite3.connect('music.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM music WHERE name=?", (название,))
row = cursor.fetchone()
if row:
cursor.execute("DELETE FROM music WHERE name=?", (название,))
conn.commit()
path = row[1]
if os.path.exists(path):
os.remove(path)
conn = sqlite3.connect('music.db')
cursor = conn.cursor()
cursor.execute("SELECT name FROM music")
result = cursor.fetchall()
audio_names = [row[0] for row in result]
emb = discord.Embed(title='Звук', colour=discord.Color.green())
emb.set_footer(text=f'Аудиофайл {название} успешно удален!')
await ctx.respond(embed=emb)
await ctx.delete(delay=10)
else:
emb = discord.Embed(title='Звук', colour=discord.Color.red())
emb.set_footer(text=f'Звук с именем {название} не найден!')
await ctx.respond(embed=emb)
await ctx.delete(delay=10)
conn.close()
import telegram
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from telegram import ReplyKeyboardMarkup, ReplyKeyboardRemove
# Обработчик команды /start
def start(update, context):
reply_text = "Здарова, я как понял ты хочешь вступить в нашу семью CARTIER GANG?\n" \
"Отлично, но тут у нас принимаются по определенным критериям\n" \
"Ответь на вопросы, если ты нам подходишь мы примим тебя в нашу семью CARTIER GANG"
reply_markup = ReplyKeyboardMarkup([["Согласен"]], one_time_keyboard=True)
update.message.reply_text(reply_text, reply_markup=reply_markup)
# Обработчик ответа пользователя на вопросы
def answer_questions(update, context):
message = update.message.text
if message == "Согласен":
context.user_data["username"] = None
context.user_data["years_in_state"] = None
context.user_data["lawfulness"] = None
context.user_data["rp_terms"] = None
context.user_data["age"] = None
context.user_data["adequacy_help"] = None
reply_text = "Для начала мне бы узнать твой ник в игре\nПример: Mahmud_Uzbekov"
update.message.reply_text(reply_text)
elif context.user_data["username"] is None:
if "_" not in message:
update.message.reply_text("Напиши свой ник через _")
elif any(char.isdigit() for char in message):
update.message.reply_text("В твоем нике не должна быть цифра")
else:
context.user_data["username"] = message
update.message.reply_text(f"{message}\nАха, запомнил")
reply_text = "Следующий вопрос, сколько лет проживаете в штате?\nОткрой инвентарь и посмотрите через паспорт"
update.message.reply_text(reply_text)
elif context.user_data["years_in_state"] is None:
if not message.isdigit():
update.message.reply_text("К сожалению ты нам не подходишь, так как ты в нашем штате недавно, и еще не ознакомлен с местностью")
elif int(message) < 5:
update.message.reply_text("К сожалению ты нам не подходишь, так как ты в нашем штате недавно, и еще не ознакомлен с местностью")
else:
context.user_data["years_in_state"] = message
update.message.reply_text("То что нужно, продолжаем вопрос")
reply_text = "Скажи ка мне свое законопослушность\nОткрой инвентарь и посмотрите через паспорт"
update.message.reply_text(reply_text)
elif context.user_data["lawfulness"] is None:
if not message.isdigit():
update.message.reply_text("К сожалению ты нам не подходишь, так как нам нужны законный члены семьи")
elif int(message) < 50:
update.message.reply_text("К сожалению ты нам не подходишь, так как нам нужны законный члены семьи")
else:
context.user_data["lawfulness"] = message
update.message.reply_text("Молодец не нарушаешь")
reply_text = "Теперь проверим твои знание на РП термины\n" \
"Что означает СК, ДМ, ТК - Напиши кратко и понятно"
update.message.reply_text(reply_text)
elif context.user_data["rp_terms"] is None:
context.user_data["rp_terms"] = message
update.message.reply_text("Хорошо, записал твой ответ")
reply_text = "Скажи ка свой возраст в реальности"
update.message.reply_text(reply_text)
elif context.user_data["age"] is None:
if not message.isdigit():
update.message.reply_text("К сожалению ты мал для нашей семьи")
elif int(message) < 14:
update.message.reply_text("К сожалению ты мал для нашей семьи")
else:
context.user_data["age"] = message
update.message.reply_text("Так-с записал")
reply_text = "Как вы оцениваете свое адекватность и будете ли помогать развивать семью?"
update.message.reply_text(reply_text)
elif context.user_data["adequacy_help"] is None:
context.user_data["adequacy_help"] = message
update.message.reply_text("И это тоже записал")
reply_text = "Теперь ожидайте одобрение от старшего в семье, мы сообщим вам если вас одобрят"
update.message.reply_text(reply_text)
# Отправка информации старшим пользователям
user_info = f"1.Ник: {context.user_data['username']}\n" \
f"2.В штате: {context.user_data['years_in_state']}\n" \
f"3.Законопослушности: {context.user_data['lawfulness']}\n" \
f"4.Рп термин: {context.user_data['rp_terms']}\n" \
f"5.Возраст: {context.user_data['age']}\n" \
f"Адекват и помощь: {context.user_data['adequacy_help']}"
context.bot.send_message(chat_id="@aziz_muhammadjonov", text=user_info)
context.bot.send_message(chat_id="@Akmal2337", text=user_info)
reply_markup = ReplyKeyboardMarkup([["Одобрить", "Отказать"]], one_time_keyboard=True)
update.message.reply_text("Ожидайте одобрение...", reply_markup=reply_markup)
# Обработчик кнопок "Одобрить" и "Отказать"
def decision(update, context):
message = update.message.text
if message == "Одобрить":
reply_text = "Вы были приняты в семью, ожидаем вас у нашего дома пока нету"
else:
reply_text = "К сожалению вы нам не подходите"
update.message.reply_text(reply_text, reply_markup=ReplyKeyboardRemove())
# Обработчик некорректных сообщений
def handle_invalid_message(update, context):
update.message.reply_text("Извините, я не понимаю ваш ответ.")
def main():
updater = Updater(
"Token"
)
dp = updater.dispatcher
dp.add_handler(CommandHandler("start", start))
dp.add_handler(MessageHandler(Filters.text() & ~Filters.command, answer_questions))
dp.add_handler(MessageHandler(Filters.regex(r"^(Одобрить|Отказать)$"), decision))
dp.add_handler(MessageHandler(Filters.all, handle_invalid_message))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()