class fsmtest(StatesGroup):
faze1 = State()
faze2 = State()
result = State()
@dp.message_handler(state='None')
async def startfsmtest(message : types.Message, state: FSMContext):
#тут что хочешь
await fsmtest.faze1.set()
@dp.message_handler(state=fsmtest.faze1)
async def fsmfaze1(message : types.Message, state: FSMContext):
#тут что хочешь, прокси и т.п.
await fsmtest.next()
@dp.message_handler(state=fsmtest.faze2)
async def fsmfaze2(message : types.Message, state: FSMContext):
#тут что хочешь, прокси и т.п.
await fsmtest.next()
@dp.message_handler(state=fsmtest.result)
async def fsmresult(message : types.Message, state: FSMContext):
#тут что хочешь, прокси и т.п.
await state.finish()
import aiogram
import vk_api
from discord_webhook import DiscordWebhook
async def bids():
fresh_bids = get_freshbids() ### Функция сортировки новых/старых, разбивка и присвоение переменных и т.п.
### Разное оформление для каждой СОЦ СЕТИ
tgbid = f" <u>ПОСТ (из бд)</u>"
discbid = f" <u>ПОСТ (из бд)</u>"
vkbid = f" <u>ПОСТ (из бд)</u>"
### ПОСТ В ТГ
await bot.send_message(-10000000000, tgbid, reply_markup=ХХХ,disable_web_page_preview=True)
### ПОСТ В ДИСК
webhook = DiscordWebhook(url='https://discord.com/api/webhooks/969вава4931/n5CваE САМ ВЕБХУК', content=f'{discbid}')
response = webhook.execute()
### ПОСТ В ВК
authorize.method('wall.post', {'owner_id': -1000000000, 'message': vkbid})
await asyncio.sleep(3600)
а я в первоначальное не могу всунуть картинку, чтобы в дальнейшем она менялась.
@dp.message_handler(commands=['start'],state='*')
async def start(message : types.Message, state: FSMContext):
post = f"Рад тебя видеть!"
await bot.send_photo(message.from_user.id, types.InputFile(f"РАСПОЛОЖЕНИЕФОТО/ФОТО.webp"), caption=post, reply_markup=ТВОЁМЕНЮ)
Решил сделать друзьям телеграм бота для квиза и хочу чтобы он по понедельникам сам выдавал напоминание типа: "Будем ли играть в квиз в пятницу?"
bot.send_message(message.chat.id, "Привет, {0.first_name}! Нажми на кнопку и перейди на сайт)".format(message.from_user), reply_markup=markup)kup)
bot.send_message(message.chat.id, f'Привет, {0.first_name}! Нажми на кнопку и перейди на сайт)', reply_markup=markup)
import asyncio
async def example():
while True:
#ТУТ ВЫПОЛНЯЙ ЛЮБЫЕ ДЕЙСТВИЯ, КОТОРЫЕ БУДУТ ПОВТОРЯТСЯ В ЗАДАНОМ ИНТЕРВАЛЕ (интервал ниже)
await asyncio.sleep(10) #10 СЕКУНД
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.create_task(example())
if __name__ == '__main__':
profit()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.create_task(profit())
import logging
import asyncio
import random
import sqlite3
import string
import json
#aiogram и всё утилиты для коректной работы с Telegram API
from aiogram import Bot, types
from aiogram.utils import executor
from aiogram.utils.emoji import emojize
from aiogram.dispatcher import Dispatcher
from aiogram.types.message import ContentType
from aiogram.utils.markdown import text, bold, italic, code, pre, hbold, hunderline
from aiogram.types import ParseMode, InputMediaPhoto, InputMediaVideo, ChatActions
from aiogram.types import ReplyKeyboardRemove,ReplyKeyboardMarkup, KeyboardButton, InlineKeyboardMarkup, InlineKeyboardButton
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.contrib.fsm_storage.memory import MemoryStorage
import aiogram.utils.exceptions
from aiogram.types.message import ContentTypes
#конфиг с настройками
from config import TOKEN
from database import dbworker
#инициализируем бота
bot = Bot(token=TOKEN, parse_mode=types.ParseMode.HTML)
dp = Dispatcher(bot,storage=MemoryStorage())
#логирование
logging.basicConfig(filename="all_log.log", level=logging.INFO, format='%(asctime)s - %(levelname)s -%(message)s')
warning_log = logging.getLogger("warning_log")
warning_log.setLevel(logging.WARNING)
fh = logging.FileHandler("warning_log.log")
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
warning_log.addHandler(fh)
@dp.message_handler(commands=['start'],state='*')
async def start(message : types.Message, state: FSMContext):
// НИКОГДА НЕ ЗАСЫПАЕТ, ЧТО БЫ НЕ БЫЛО ТУТ
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)