он фильтрует текст убирая символ
'
было: ['one' , 'two', 'tho' , 'four' , 'inv']
должно быть: [one , two, tho , four , inv]
one = Button(style = ButtonStyle.green, label = ' 1', id='1')
two = Button(style = ButtonStyle.green, label = ' 2', id='2')
tho = Button(style = ButtonStyle.green, label = ' 3', id='3')
four = Button(style = ButtonStyle.green, label = '4 ', id='4')
inv = Button(style = ButtonStyle.green, label = ' 5', id='5')
components = [one, two, tho, four, inv]
random.shuffle(components) # обратите внимание, что shuffle не возвращает новый список, а модифицирует оригинальный.
message = await ctx.channel.send(embed=embed1 , components=components)
file_id
уникален для каждого бота.file_id
s = 'mynameissasha'
words = ['hello', 'my', 'name', 'is']
found = []
not_found = []
for word in words:
if word in s:
found.append(word)
s = s.replace(word, ' ')
else:
not_found.append(word)
print('Найдено:', found)
print('Не найдено:', not_found)
print('Неизвестно:', s.split())
callback_data
, это параметр для этого и нужен.@dp.callback_query_handler(text= 'Ecuador')
async def ecuador(call:types.CallbackQuery):
kb = InlineKeyboardMarkup(row_width=2)
next = InlineKeyboardButton(text= 'Следующий',callback_data= 'next_1')
kb.add(next)
await bot.send_photo(
chat_id,
photo = current_photo,
caption='Название: '+ current_item,
reply_markup=kb)
@dp.callback_query_handler(lambda c: c.data.startswith('next_'))
async def send_next_item(call: types.CallbackQuery):
next_index = int(call.data.split('_')[-1])
kb = InlineKeyboardMarkup(row_width=2)
next = InlineKeyboardButton(text = 'Следующий', callback_data = f'next_{next_index+1}')
kb.add(next)
await bot.send_photo(
chat_id,
photo = items[next_index],
caption ='Название: '+ items[next_index],
reply_markup= kb)
work
, происходит выдача человеку денег. Записывается таймстамп выдачи в в ваш json файл. Тут уже от нужды зависит, можете записывать только время последней выдачи, можно время последней выдачи + время, когда в следующий раз нужно будет выдать и тд. Допустим, для примера будет только одно поле - время последнего выполнения команды в виде таймстампа. Далее вы просто берете время последнего выполнения и складываете его с вашей задержкой для команды (в секундах, естественно), и если получившееся число меньше текущего таймстампа - выполняете команду.def work():
with open('users.json', 'r', encoding='utf-8') as f:
users = json.load(f)
if ctx.author.id not in users:
users[ctx.author.id] = {'last_work_time': 0}
current_timestamp = int(time.time())
work_cooldown = 60*60 # допустим задержка 1 час
last_work_time = users[ctx.author.id]['last_work_time']
if last_work_time + work_cooldown <= current_timestamp or last_work_time == 0:
send_message('Ваша оплата: xxx')
users[ctx.author.id]['last_work_time'] = current_timestamp
with open('users.json', 'w', encoding='utf-8') as f:
json.dump(users, f)