cur.execute(f"SELECT prefix FROM simple_voice.server_{message.guild.id};")
cur.execute("SELECT prefix FROM simple_voice.server WHERE guild_id = %s", (message.guild.id, ))
# вместо
if fetch := cursor.execute("UPDATE users SET cash = cash + {} WHERE id = {}".format(amount, member.id)).fetchone():
# использовать
cursor.execute("UPDATE users SET cash = cash + ? WHERE id = ?", (amount, member.id))
programs = {"calc": {"name":"Калькулятор", "path": "calc.exe"},
"browser": {"name":"Браузер", "path": r"c:/Program Files/Mozilla Firefox/firefox.exe"}
# и т.д. для всех программ
}
# затем можно универсально вызывать любую описанную программу без необходимости цепочки if
if launch in programs:
program_name = programs[launch]["name"]
print(f"Запускаю {program_name}...")
sleep(2)
os.startfile(programs[launch]["path"])
elif message.text=='Вывести средства':
...
if message.text=='Указать qivi':
cur.execute("select image from Ecuador0 where position = ?", (position, )). fetchone()
import os
print(os.path.join("C:","Users","Руслан","Desktop","Новый текстовый документ.txt"))
with open("C:\\Users\\Руслан\\Desktop\\Новый текстовый документ.txt","r") as f:
print(f.read())
os.system("C:\\Users\\Руслан\\Desktop\\Новый текстовый документ.txt")
data = []
bot = telebot.TeleBot(config.TOKEN)
@bot.message_handler(commands = ['start'])
def foo(message):
msg = bot.send_message(message.chat.id,'введите имя')
bot.register_next_step_handler(msg,name)
def name(message):
name = message.text
data.append(name)
msg = bot.send_message(message.chat.id,'введите возраст')
bot.register_next_step_handler(msg,age)
def age(message):
data.append(message.text)
@bot.message_handler(commands = ['info'])
def send_info(message):
bot.send_message(message.chat.id, f'data={data}')
def main():
bot.enable_save_next_step_handlers(delay=2)
bot.load_next_step_handlers()
bot.polling()
if __name__ == '__main__':
main()
а
т.е. внутри это один и тот же итератор, за счет этого результат не дублируется, а продолжается, группируясь по group_by.