Direcode
4.27K subscribers
166 photos
8 videos
7 files
117 links
⭐️ Админ: @direcodex
🎥 YT: https://www.youtube.com/@direcode

📝 Мои курсы: @direcode_bot
Download Telegram
Channel created
main.py
985 B
Всем привет 🐍🐍🐍

Получить токен бота:
@botfather

Тут ты можешь запустить бота без установки Python:
https://replit.com/

Исходный код с видоса про Telegram бота, не забудь поменять токен бота на твой.
import asyncio
import logging
from aiogram import Bot, Dispatcher
from aiogram.methods import DeleteWebhook
from aiogram import types, F, Router
from aiogram.types import Message
from aiogram.filters import Command

# Включаем логирование, чтобы не пропустить важные сообщения
logging.basicConfig(level=logging.INFO)
bot = Bot(token="token") # ⚠️ ИЗМЕНИТЬ ТОКЕН
dp = Dispatcher()



# Хэндлер на команду /start -----------
@dp.message(Command("start"))
async def cmd_start(message: types.Message):
await message.answer("Не забудь подписаться на канал @direcode")



# Запуск процесса поллинга новых апдейтов
async def main():
await bot(DeleteWebhook(drop_pending_updates=True))
await dp.start_polling(bot)

if __name__ == "__main__":
asyncio.run(main())
Please open Telegram to view this post
VIEW IN TELEGRAM
1
GM! Исходники TON price бота:

import asyncio
import logging
from aiogram import Bot, Dispatcher
from aiogram.methods import DeleteWebhook
from aiogram import types, F, Router
from aiogram.types import Message
from aiogram.filters import Command
import requests
from pprint import pprint

# Включаем логирование, чтобы не пропустить важные сообщения
logging.basicConfig(level=logging.INFO)
bot = Bot(token="token") # ⚠️ ИЗМЕНИТЬ ТОКЕН
dp = Dispatcher()



# Хэндлер на команду /start ---------------------------------------------------
@dp.message(Command("start"))
async def cmd_start(message: types.Message):
url = "https://tonapi.io/v2/rates?tokens=ton&currencies=usd"
response = requests.get(url)
data = response.json()
pprint(data)
price = round(data['rates']['TON']['prices']['USD'], 2)
text = f'<b>TON price:</b> {price}$'
await message.answer(text, parse_mode = 'HTML')


# Запуск процесса поллинга новых апдейтов
async def main():
await bot(DeleteWebhook(drop_pending_updates=True))
await dp.start_polling(bot)

if __name__ == "__main__":
asyncio.run(main())
👌1
GM! Исходник для бота с кнопками:

import asyncio
import logging
from aiogram import Bot, Dispatcher
from aiogram.methods import DeleteWebhook
from aiogram import types, F, Router
from aiogram.types import Message
from aiogram.filters import Command
import requests
from pprint import pprint
from aiogram.utils.keyboard import InlineKeyboardBuilder

# Включаем логирование, чтобы не пропустить важные сообщения
logging.basicConfig(level=logging.INFO)
bot = Bot(token="token") # ⚠️ ИЗМЕНИТЬ ТОКЕН
dp = Dispatcher()



# Хэндлер на команду /start ---------------------------------------------------
@dp.message(Command("start"))
async def cmd_start(message: types.Message):
photo_url = "https://www.economist.com/sites/default/files/images/2015/09/blogs/economist-explains/code2.png"
builder = InlineKeyboardBuilder()
button1 = types.InlineKeyboardButton(text = "Get TON price", callback_data = "price")
button2 = types.InlineKeyboardButton(text = "1", callback_data = "price")
button3 = types.InlineKeyboardButton(text = "2", callback_data = "price")
button4 = types.InlineKeyboardButton(text = "3", callback_data = "price")
button5 = types.InlineKeyboardButton(text = "4", callback_data = "price")
button6 = types.InlineKeyboardButton(text = "5", callback_data = "price")
builder.row(button1)
builder.row(button2, button3, button4)
builder.row(button5, button6)
start_text = "Welcome to @direcode"
await bot.send_photo(message.chat.id, photo = photo_url, caption = start_text, reply_markup = builder.as_markup())


@dp.callback_query(F.data == "price")
async def cmd_price(callback: types.CallbackQuery):
url = "https://tonapi.io/v2/rates?tokens=ton&currencies=usd"
response = requests.get(url)
data = response.json()
pprint(data)
price = round(data['rates']['TON']['prices']['USD'], 2)
text = f'<b>TON price:</b> {price}$'
await callback.message.answer(text, parse_mode = 'HTML')


# Запуск процесса поллинга новых апдейтов
async def main():
await bot(DeleteWebhook(drop_pending_updates=True))
await dp.start_polling(bot)

if __name__ == "__main__":
asyncio.run(main())