Библиотека для удобного и многофункционального(в будущем) использования.
Project description
Установить:
pip install EasyGram
Быстрый старт
Эхо бот(синхронный)
from EasyGram import SyncBot, types
bot = SyncBot('Token here')
@bot.message(content_types='text')
def echo_bot(message: types.Message):
message.answer(message.text)
bot.polling()
Эхо бот(асинхронный)
from EasyGram.Async import AsyncBot, types
bot = AsyncBot('Token here')
@bot.message(content_types='text')
async def echo_bot(message: types.Message):
await message.answer(message.text)
bot.executor()
Бот рандомайзер(синхронный):
from EasyGram import SyncBot, types
from random import randint
bot = SyncBot('Token here')
@bot.message(commands='start')
def start(message: types.Message):
#Делаем маленькую кнопку
button = types.ReplyKeyboardMarkup(resize_keyboard=True)
button.add('От 1 до 10')
message.answer('Привет!', reply_markup=button)
@bot.message(lambda message: message.text == 'От 1 до 10')
def random_number(message: types.Message):
message.answer(f'Тебе выпало: {randint(1, 10)}!')
bot.polling()
Бот рандомайзер(асинхронный)
from EasyGram.Async import AsyncBot, types
from random import randint
bot = AsyncBot('Token here')
@bot.message(commands='start')
async def start(message: types.Message):
#Делаем маленькую кнопку
button = types.ReplyKeyboardMarkup(resize_keyboard=True)
button.add('От 1 до 10')
await message.answer('Привет!', reply_markup=button)
@bot.message(lambda message: message.text == 'От 1 до 10')
async def random_number(message: types.Message):
await message.answer(f'Тебе выпало: {randint(1, 10)}!')
bot.executor()
Что нового?
С новой версии 0.0.2 добавилось:
- В
SyncBotиAsyncBotдобавлена возможность запускать ботов с многопоточностью, дабы придать больше скорости вашему боту!
Чтобы сделать это в SyncBot требуется указать параметр threaded_run=True.
Пример:
from EasyGram import SyncBot
bot = SyncBot('Token')
#... Остальной код
bot.polling(threaded_run=True)
С AsyncBot тоже нужно указать параметр threaded_run=True в executor() или polling().
Пример:
from EasyGram.Async import AsyncBot
bot = AsyncBot('Token')
#... Остальной код
bot.executor(threaded_run=True)
По желанию можно установить параметр thread_max_works=15.Это максимальное кол-во потоков которое можно использовать.
[!WARNING] Не ставить много, иначе может быть будет сильная нагрузка на процессор!
- Теперь можно добавить команды в панель команд(лист с командами, менюшка команд, как угодно) с помощью
set_my_commands()
Пример:
from EasyGram.Async import AsyncBot, types
bot = AsyncBot('Token')
commands = [
types.BotCommand(command='start', description='Run bot'),
types.BotCommand(command='help', description='help')
]
bot.set_my_commands(commands, scope=types.BotCommandScopeAllGroupChats()) #scope по желанию
Тоже самое и с SyncBot
Пример:
from EasyGram import SyncBot, types
bot = SyncBot('Token')
commands = [
types.BotCommand(command='start', description='Run bot')
]
bot.set_my_commands(commands, scope=types.BotCommandScopeAllGroupChats()) #scope по желанию
- Появились два метода в объекте
InlineKeyboardMarkup:add_tostorage()иadd_keyboards().
Первый add_tostorage(*args: types.InlineKeyboardButton) добавляет объекты в список types.InlineKeyboardMarkup.storage, а второй types.InlineKeyboardMarkup.add_keyboards() в один ряд добавляет кнопки.
- Добавлен метод удаления сообщения.
Пример:
С SyncBot
from EasyGram import SyncBot, types
bot = SyncBot('Token here')
#... остальной код
@bot.message()
def messages(message: types.Message):
bot.delete_message(message.chat.id, message.message_id-1) #Удаления предыдущего сообщения
message.delete() #Удаления этого сообщения, т.е от пользователя
#Удаления в CallbackQuery
@bot.callback_query()
def call(call: types.CallbackQuery):
bot.delete_message(call.chat.id, call.message.message_id-1)
call.message.delete() # Удаления сообщения куда пользовать нажал на кнопку
bot.polling()
С AsyncBot
from EasyGram.Async import AsyncBot, types
bot = AsyncBot('Token here')
#... остальной код
@bot.message()
async def messages(message: types.Message):
await bot.delete_message(message.chat.id, message.message_id-1) #Удаления предыдущего сообщения
await message.delete() #Удаления этого сообщения, т.е от пользователя
#Удаления в CallbackQuery
@bot.callback_query()
async def call(call: types.CallbackQuery):
await bot.delete_message(call.chat.id, call.message.message_id-1)
await call.message.delete() # Удаления сообщения куда пользовать нажал на кнопку
bot.executor()
- Добавлен метод редактирования сообщения.
Пример:
С SyncBot
from EasyGram import SyncBot, types
from time import sleep
bot = SyncBot('Token here')
#... остальной код
@bot.message()
def message(message: types.Message):
msg: types.Message = message.answer('Привет')
sleep(10)# !!!!!Работает корректно только если в bot.polling() установлен параметр threaded_run=True
msg.edit('Как дела?')
bot.polling(threaded_run=True)
С AsyncBot
from EasyGram.Async import AsyncBot, types
from asyncio import sleep
bot = AsyncBot('Token here')
#... остальной код
@bot.message()
async def message(message: types.Message):
msg: types.Message = await message.answer('Привет')
await sleep(10)
await msg.edit('Как дела?')
bot.executor()
- Добавлен метод отправления опроса.
Пример:
С SyncBot
from EasyGram import SyncBot, types
from time import sleep
bot = SyncBot('Token here')
#... остальной код
@bot.message()
def message(message: types.Message):
message.send_poll('Как дела?', [types.InputPollOption('<b>Отлично</b>', text_parse_mode='html'), types.InputPollOption('Плохо')])
bot.send_poll(message.from_user.id, 'Как дела?', [types.InputPollOption('<b>Отлично</b>', text_parse_mode='html'), types.InputPollOption('Плохо')])
bot.polling()
С AsyncBot
from EasyGram.Async import AsyncBot, types
from asyncio import sleep
bot = AsyncBot('Token here')
#... остальной код
@bot.message()
async def message(message: types.Message):
await message.send_poll('Как дела?', [types.InputPollOption('<b>Отлично</b>', text_parse_mode='html'), types.InputPollOption('Плохо')])
await bot.send_poll(message.from_user.id, 'Как дела?', [types.InputPollOption('<b>Отлично</b>', text_parse_mode='html'), types.InputPollOption('Плохо')])
bot.executor()
В объекте ParseMode добавлены методы для форматирования текста
from EasyGram.types import ParseMode
print(ParseMode.hbold('test')) # <b>test</b>
print(ParseMode.hitalic('test')) # <i>test</i>
print(ParseMode.hstrikeline('test')) # <s>test</s>
print(ParseMode.hunderline('test')) # <u>test</u>
print(ParseMode.hblockquote('test')) # <blockquote>test</blockquote>
print(ParseMode.hcode('test')) # <code>test</code>
print(ParseMode.hprecode(lang='python', text='test')) # <pre><code class="python">test</code></pre>
- Добавлен метод
next_step_handler().С помощью него можно вызвать функцию как только пользователь отправит сообщение.
Пример:
С SyncBot
from EasyGram import SyncBot, types
bot = SyncBot('Token here')
@bot.message(commands='start')
def start(message: types.Message):
message.reply('Привет, введи своё имя.')
bot.next_step_handler(message.chat.id, nexts) #Ожидания сообщения от пользователя
def nexts(message: types.Message):
message.answer(f'Приятно познакомиться {message.text}')
bot.polling()
С AsyncBot
from EasyGram.Async import AsyncBot, types
bot = AsyncBot('Token here')
@bot.message(commands='start')
async def start(message: types.Message):
await message.answer('Привет, введи своё имя.')
await bot.next_step_handler(message.chat.id, nexts) #Ожидания сообщения от пользователя
async def nexts(message: types.Message):
await message.answer(f'Приятно познакомиться {message.text}')
bot.executor()
- Добавлены новые методы в
SyncBot/AsyncBot:
delete_message()edit_message_text()send_poll()send_audio()send_documen()send_animation()send_voice()send_video()send_video_note()send_paid_media()send_contact()send_dice()send_chat_action()
- Добавлены дополнительные методы к классу Message:
types.Message.delete()types.Message.edit()types.Message.reply()types.Message.send_poll()types.Message.send_audio()types.Message.send_document()types.Message.send_animation()types.Message.send_voice()types.Message.send_video()types.Message.send_video_note()types.Message.send_paid_media()types.Message.send_contact()types.Message.send_dice()types.Message.send_chat_action()
Что добавить ещё?
Связаться:
- 📞💌Telegram channel: Channel
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file easygram-0.0.3b1.tar.gz.
File metadata
- Download URL: easygram-0.0.3b1.tar.gz
- Upload date:
- Size: 13.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33faa1cd3e8ab8f7aec586da8f9aeb85611de6af48a6df04494cf15b6f6890b1
|
|
| MD5 |
dc86fd0cc106c0a58e268b6513815da5
|
|
| BLAKE2b-256 |
a9cabf3ac25b9a848ddc5b55628998a7bb360622c33609a9f91ceed5d77c2f28
|
File details
Details for the file EasyGram-0.0.3b1-py3-none-any.whl.
File metadata
- Download URL: EasyGram-0.0.3b1-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74ebea610ded23336fbfc2678e84e39e2bae069c68a56e7b8bac63929a96657e
|
|
| MD5 |
b1d359145409cab1448d5d4e25086910
|
|
| BLAKE2b-256 |
4ec81bcb2a34f525cb4b63853cc4982400a4ac6ed06701356b8c870d1d17bd36
|