TextFilter
. Пример из официального репозитория:from telebot import TeleBot, types
from telebot.custom_filters import TextFilter
@bot.message_handler(is_reply=True,
text=TextFilter(starts_with=('!', '/', '.'), ends_with=['ban', 'бан'], ignore_case=True))
def ban_command_handler(message: types.Message):
if len(message.text) == 4 and message.chat.type != 'private':
try:
bot.ban_chat_member(message.chat.id, message.reply_to_message.from_user.id)
bot.reply_to(message.reply_to_message, 'Banned.')
except Exception as err:
print(err.args)
return
ConnectionError
:from requests.exceptions import ConnectionError
...
except (telebot.apihelper.ApiException, RequestException) as e:
...
import telebot
API_TOKEN = '<api_token>'
bot = telebot.TeleBot(API_TOKEN)
@bot.message_handler(content_types=['photo'])
def detect_photo(message: telebot.types.Message):
bot.reply_to(message, "Обнаружена картинка.")
bot.infinity_polling()
def is_photo_document(message: telebot.types.Message) -> bool:
mime_type = message.document.mime_type
return mime_type in ('image/jpeg', 'image/png', 'image/webp')
@bot.message_handler(func=is_photo_document, content_types=['document'])
def detect_photo_as_document(message: telebot.types.Message):
bot.reply_to(message, "Обнаружена картинка, отправленная документом.")
unread_count
каждого диалога, узнать, есть ли непрочитанные сообщения: https://docs.telethon.dev/en/stable/modules/custom...parse_mode
и использовать entities для вставки своей ссылки в конец сообщения как MessageEntity
с типом "text_link", например, так:@dp.channel_post()
async def redactor(message: types.Message):
ent = message.entities
new_ent = [e for e in ent if e.type != "text_link"]
new_text = f'{message.text}\n'
link_text = "text for link"
link_address = "http://t.me/some_link"
new_ent.append(types.MessageEntity(
type="text_link", offset=len(new_text),
length=len(link_text), url=link_address
))
new_text = f'{new_text}{link_text}'
await message.edit_text(new_text, entities=new_ent)
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
if len(list1) == 1:
markup.row(list1[0])
if len(list1) == 2:
markup.row(list1[0], list1[1])
if len(list1) == 3:
markup.row(list1[0], list1[1], list1[2])
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
markup.row(*list1)
*
в Python можете прочитать здесь. setRand()
в вашем коде не изменяет глобальную переменную NUMBER
, а лишь создаёт локальную переменную с таким же именем, перекрывающую глобальную переменную. Добавьте следующее в функцию, чтобы она изменяла значение глобальной переменной NUMBER
:def setRand():
global NUMBER
NUMBER = random.randrange(10)
print(NUMBER)
from aiogram.dispatcher import filters
@dp.message_handler(filters.RegexpCommandsFilter(regexp_commands=['get([0-9]+)']))
async def send_welcome(message: types.Message, regexp_command):
identifier = regexp_command.group(1)
...
/get1
, /get319
, /get25
и др....
answer = message.text
data = await state.get_data()
name = data.get('hi')
number = data.get('number')
priyom = data.get('priyom')
sdacha = data.get('sdacha')
...