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')
...
from io import BytesIO
from pytube import YouTube
yt = YouTube('https://www.youtube.com/watch?v=FZ1mj9IaczQ')
audio_stream = yt.streams.filter(only_audio=True)[0]
buffer = BytesIO()
audio_stream.stream_to_buffer(buffer)
buffer.seek(0)
from pyrogram import Client
from pyrogram.raw.functions.contacts import ResolveUsername
BOT_TOKEN = "<токен бота>"
pyrogram_client = Client(
"bot",
api_id=6,
api_hash="eb06d4abfb49dc3eeb1aeb98ae0f581e",
bot_token=BOT_TOKEN,
app_version="7.7.2",
device_model="Lenovo Z6 Lite",
system_version="11 R"
)
def resolve_username_to_user_id(username: str) -> int | None:
with pyrogram_client:
r = pyrogram_client.invoke(ResolveUsername(username=username))
if r.users:
return r.users[0].id
return None
print(resolve_username_to_user_id("Tishka17"))
def resolve_username_to_channel_id(username: str) -> int | None:
with pyrogram_client:
r = pyrogram_client.invoke(ResolveUsername(username=username))
if r.chats:
return r.chats[0].id
return None
import textwrap
text = "В центре города большого, где травинки не растёт, жил поэт, волшебник слова, - вдохновенный рифмоплёт. Рифмовал он что попало, просто выбился из сил, и в деревню на поправку, где коровы щиплют травку, отдыхать отправлен был."
shortened_text = textwrap.shorten(text, width=100, placeholder="…") # "В центре города большого, где травинки не растёт, жил поэт, волшебник слова, - вдохновенный…"
from pyrogram import Client
from pyrogram import types, filters
CHANNEL_ID = -11012345678
app = Client(
"my_account",
api_id=12345,
api_hash="0123456789abcdef0123456789abcdef"
)
@app.on_message(filters=filters.channel)
def my_handler(client: Client, message: types.Message):
if message.chat.id != CHANNEL_ID:
return
print("Получено новое сообщение с ID", message.message_id)
# Как-то обработать сообщение с канала, например, напечатать его текст
print("Текст:", message.text)
app.run()
@app.on_message(filters=filters.channel & ~filters.edited)