Orders
, при этом храня id пользователя и номер продукта, который был добавлен, и желательно добавить primary key, чтобы удалять позиции, которые были удалены пользователем.+---+---------+-------------+-------+
| id | user_id | product_id | count |
+---+---------+-------------+-------+
SELECT count FROM Orders WHERE user_id = "user_id" AND product_id = "product_id ";
DELETE FROM Orders WHERE id = "id";
with open(Database().file, 'r') as f:
...
Database().file
на self.file
UPDATE data SET inventory = "{inventory}" WHERE id = "id";
... id="6346327; DROP DATABASE base";
cursor.execute("UPDATE data SET inventory = :inventory WHERE id = :id", {"inventory" : inventory-1, "id" : id})
#или
cursor.execute("UPDATE data SET inventory = ? WHERE id = ?", (inventory-1, id))
import os
есть метод system()
, который отправляет команды в shell.import os
request = ('...') # здесь код для открытия или закрытия портов
code = os.system(request)
print(code) # если выводит 0 - то успешно
bot.message_handler(content_types=['text'])
def reg_age(message):
age = message.text
if age.isdigit():
age = int(age) # свернём в int, тк хвост из левых чисел нам не нужен
bot.send_message(message.chat.id, f"Хорошо тебе! {age} лет") #берём "f" чтобы все встало само, без перегона в srt
bot.register_next_step_handler(message, next_step) # указывай какая функция будет обрабатывать следующее сообщение пользователя
else:
bot.send_message (message.chat.id, "Возраст это число, а не текст! ")
bot.register_next_step_handler(message, reg_age) # Следущее сообщение пользователя считает функция reg_age
str.isdigit() #проверяет - является ли строка числом
...
#спать 3 секунд
channel.setColor(`#FA8072`);
#спать 3 секунд
channel.setColor(`#FFA500`);
#спать 3 секунд
channel.setColor(`#FFD700`);
...
category_id = 778594516856733696 # id категории
make_channel_id = 'id' # id канала, для создания временных каналов
temp = []
@bot.event
async def on_voice_state_update(member, before, after):
if after.channel:
if after.channel.id == make_channel_id:
guild = member.guild # достём guild
# достаём категорию, здесь нужно исправить, но я не помню что и как
# по итогу здесь должен быть объект категории
category = discord.utils.get(guild.categories, id=category_id)
# создаём канал в категории
created_channel = await guild.create_voice_channel(
f'╠╣{member.display_name}',
position=3,
category=category,
bitrate=96000
)
# устанавливаем права
await created_channel.set_permissions(member, connect=True, mute_members=True, move_members=True, manage_channels=True)
# двигаем пользователя в канал
await member.move_to(created_channel)
# чтобы ничего не ждать, сохраняем id канала
temp.append(created_channel.id)
# алгоритм удаления
elif before.channel:
# проверяем id в списке
if before.channel.id in temp:
# если нет пользователей - удаляем
if not before.channel.members:
return await before.channel.delete()
category.create_voice_channel(data)