msg = ''.join(event.message.to_dict()['message'].split('\n')[0]) + 'мир'
await client.send_message(-1001222222222, msg)
await client.send_message(-1001222222222, event.message.to_dict()['message'])
from datetime import datetime
works_from = datetime.strptime('00:00','%H:%M')
works_to = datetime.strptime('15:00','%H:%M')
class TimeBlock(telebot.custom_filters.SimpleCustomFilter):
key='time_block'
@staticmethod
def check(message: telebot.types.Message):
current_time = datetime.strptime(datetime.fromtimestamp(message.date).strftime('%H:%M'), '%H:%M')
return current_time > works_from and current_time < works_to
@bot.message_handler(time_block=True, content_types=['text'])
def send_text(message):
bot.send_message(message.chat.id, 'Hello, world!')
bot.add_custom_filter(TimeBlock())
https://t.me/botusername?start=242915
/start 242915
. Дальше уже можно либо в обработчике команды start, либо в кастомном обработчике это всё сделать@dp.message_handler(regexp='^/start\s\d+')
async def referral_handler(message: types.Message):
referrer_chat_id = re.search(r'\d+', message.text).group(0)
referral_chat_id = message.chat.id
/start 242915
, можно генерить рандомный код, который связывать с пользователем, делать одноразовые коды и тд, тут уже на усмотрение@dp.callback_query_handler(text='no') # if cb.data == 'no'
@dp.callback_query_handler(text='yes') # if cb.data == 'yes'
text
более короткий и удобный, хотя, лично меня он сбивает немного с толку. lambda выражение можно использовать для более гибких настроек, которых нет во встроенных фильтрах. Обо всех встроенных фильтрах можно посмотреть тут:['creator, administrator', 'member']
. Пользователь не creator
- отправляем Доступ закрыт, подпишитесь на канал
, пользователь не administrator
- отправляем Доступ закрыт, подпишитесь на канал
и тдuser_status = bot.get_chat_member(chat_id = '-1001670595457', user_id = message.from_user.id).status
if user_status in ['creator, administrator', 'member']:
bot.send_message(message.chat.id, 'Вы подписаны на канал!', reply_markup = markup)
else:
bot.send_message(message.chat.id, f'Доступ закрыт, подпишитесь на канал {channel_link}')
bot.register_next_step_handler(sent, answer)
и bot.register_next_step_handler(sent, deanswer)
не нужны, насколько я понимаю Вашу логикуbot.register_next_step_handler(sent, get_text, keys)
def get_text(message, keys):
bot.register_next_step_handler(sent, crypto, keys )# с encrypto по аналогии
def crypto(message, keys): # с encrypto по аналогии
def crypto(message, keys):
crypted_text = message.text.upper
result = magic(crypted_text, keys)
bot.send_message(message.chat.id, f'ваш код {result}')