示例#1
0
def register_add_links_handlers(dp: Dispatcher):
    dp.register_message_handler(cmd_add_link, commands="add", state="*")
    dp.register_message_handler(cmd_add_link,
                                CommandStart(deep_link="add"),
                                state="*")
    dp.register_message_handler(link_added, state=Links.add_link_url)
    dp.register_message_handler(description_added,
                                state=Links.add_link_description)
示例#2
0
def main():
    # Создаем бота и передаем ему ключ для авторизации на серверах Telegram
    mybot = Bot(token=API_KEY, proxy=PROXY_URL, proxy_auth=PROXY_AUTH)
    dp = Dispatcher(mybot)

    @dp.message_handler(CommandStart())
    async def greet_user(message: types.Message):
        await message.answer('Привет, пользователь! Ты вызвал команду /start')
        print('Вызван /start')

    @dp.message_handler()
    async def talk_to_me(message: types.Message):
        await message.answer(message.text)
        print(message.text)

    if __name__ == '__main__':

        logging.info("Бот стартовал")

        # Командуем боту начать ходить в Telegram за сообщениями
        executor.start_polling(dp, skip_updates=True)
示例#3
0
from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart, ChatTypeFilter
from aiogram.types import ChatType

from loader import dp


@dp.message_handler(CommandStart(), ChatTypeFilter(ChatType.PRIVATE))
async def bot_start(message: types.Message):
    await message.answer(
        'Ку привет! Добавь в чат и я буду переводить ваши войсы в текст!')
示例#4
0
@register(cmds='start', only_pm=True)
@get_strings_dec('connections')
@chat_connection()
async def connected_start_state(message, strings, chat):
    key = 'texas_connected_start_state:' + str(message.from_user.id)
    if redis.get(key):
        await message.reply(
            strings['pm_connected'].format(chat_name=chat['chat_title']))
        redis.delete(key)


BUTTONS.update({'connect': 'btn_connect_start'})


@register(CommandStart(re.compile(r'btn_connect_start')), allow_kwargs=True)
@get_strings_dec('connections')
async def connect_start(message, strings, regexp=None, **kwargs):
    args = message.get_args().split('_')

    # In case if button have arg it will be used. # TODO: Check chat_id, parse chat nickname.
    arg = args[3]

    if arg.startswith('-') or arg.isdigit():
        chat = await db.chat_list.find_one({'chat_id': int(arg)})
    elif arg.startswith('@'):
        chat = await db.chat_list.find_one({'chat_nick': arg.lower()})
    else:
        await message.reply(strings['cant_find_chat_use_id'])
        return
示例#5
0
from re import compile

from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart
from loguru import logger

from filters.registration import IsNotRegistered, IsRegistered
from keyboards.default.menu import menu_keyboard
from loader import dp, db
from texts.emoji import simple_smile_em
from texts.registration import hello_without_code, already_registered_with_code_tx, already_registered_without_code_tx, \
    hello_with_code, hello_with_code_no_ref


# @rate_limit(15)
@dp.message_handler(CommandStart(deep_link=compile(r'\d\w*')), IsRegistered(), state="*")
async def bot_start_with_code(message: types.Message):
    """
    Приветствие при первом нажатии кнопки старт с пригласительным кодом.
    Пользователь зарегистрирован.
    """
    await message.answer(already_registered_with_code_tx.format(simple_smile_em=simple_smile_em,
                                                                name=message.from_user.full_name))


# @rate_limit(15)
@dp.message_handler(CommandStart(), IsRegistered(), state="*")
async def bot_start_with_code(message: types.Message):
    """
    Приветствие при первом нажатии кнопки старт без пригласительного кода.
    Пользователь зарегистрирован.
示例#6
0
@get_strings_dec('notes')
async def note_btn(event, strings, regexp=None, **kwargs):
    chat_id = int(regexp.group(2))
    user_id = event.from_user.id
    note_name = regexp.group(1).lower()

    if not (note := await db.notes.find_one({'chat_id': chat_id, 'names': {'$in': [note_name]}})):
        await event.answer(strings['no_note'])
        return

    with suppress(MessageCantBeDeleted):
        await event.message.delete()
    await get_note(event.message, db_item=note, chat_id=chat_id, send_id=user_id, rpl_id=None, event=event)


@register(CommandStart(re.compile(r'btnnotesm')), allow_kwargs=True)
@get_strings_dec('notes')
async def note_start(message, strings, regexp=None, **kwargs):
    # Don't even ask what it means, mostly it workaround to support note names with _
    args = re.search(r'^([a-zA-Z0-9]+)_(.*?)(-\d+)$', message.get_args())
    chat_id = int(args.group(3))
    user_id = message.from_user.id
    note_name = args.group(2).strip("_")

    if not (note := await db.notes.find_one({'chat_id': chat_id, 'names': {'$in': [note_name]}})):
        await message.reply(strings['no_note'])
        return

    await get_note(message, db_item=note, chat_id=chat_id, send_id=user_id, rpl_id=None)

示例#7
0
from aiogram import types
from mics import dp, bot
from models import Database
import text
import markup
from re import compile
from aiogram.dispatcher.filters.builtin import CommandStart
import datetime
import config

db = Database()


@dp.message_handler(CommandStart(), chat_id=config.admin)
async def welcome(message):

    await message.answer(text=text.start_message,
                         reply_markup=markup.main_menu,
                         parse_mode='Markdown')
    await db.create_table()
    await db.create_table2()
示例#8
0
from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart
# from filters import IsPrivate
from loader import dp
from re import compile

# "t.me/bot?start=deep_link"
# "/start deep_link"


@dp.message_handler(CommandStart(deep_link=compile(r'\d\d\d')))
async def bot_start(message: types.Message):
    deep_link_args = message.get_args()
    await message.answer(f'Привет, {message.from_user.full_name}!\n'
                         f'Вы находитесь в личной переписке\n'
                         f'В вашей команде есть дип линк\n'
                         f'вы передали аргумент {deep_link_args}.\n')


@dp.message_handler(CommandStart(deep_link=None))
async def bot_start(message: types.Message):
    bot_user = await dp.bot.get_me()
    deep_link = f'http://t.me{bot_user.username}?start=123'
    await message.answer(f'Привет, {message.from_user.full_name}! \n'
                         f'Вы находитесь в личной переписке. \n'
                         f'В вашей команде нет диплинка. \n'
                         f'Ваша диплинк сслыка - {deep_link}')
示例#9
0
from data.items_payment import get_prices, POST_REG_SHIPPING, POST_FAST_SHIPPING, PICKUP_SHIPPING
from loader import dp, db, bot

from filters import AdminFilter

from keyboards.default.cancel_promo import cancel_menu
from keyboards.inline.promo import send_promo, change_to_inline
from keyboards.inline.promo_callback import promo_callback
from keyboards.inline.item import buy_keyboard

from utils.notify_admins import ref_notify

# TEST INVOICES ------------------


@dp.message_handler(CommandStart(deep_link="show"), state="showing")
async def show_invoice(message: types.Message, state: FSMContext):
    if PROVIDER_TOKEN.split(':')[1] == 'TEST':
        await message.answer('test invoice')

    data = await state.get_data()
    item_id = data.get("id")
    item = db.select_item(id=item_id)
    await bot.send_invoice(
        message.chat.id,
        title=item[1],
        description=item[3],
        provider_token=PROVIDER_TOKEN,
        currency='uah',
        photo_url=item[5],
        photo_height=412,  # !=0/None, иначе изображение не покажется
示例#10
0
        await event.answer(strings["no_note"])
        return

    with suppress(MessageCantBeDeleted):
        await event.message.delete()
    await get_note(
        event.message,
        db_item=note,
        chat_id=chat_id,
        send_id=user_id,
        rpl_id=None,
        event=event,
    )


@register(CommandStart(re.compile(r"btnnotesm")), allow_kwargs=True)
@get_strings_dec("notes")
async def note_start(message, strings, regexp=None, **kwargs):
    # Don't even ask what it means, mostly it workaround to support note names with _
    args = re.search(r"^([a-zA-Z0-9]+)_(.*?)(-\d+)$", message.get_args())
    chat_id = int(args.group(3))
    user_id = message.from_user.id
    note_name = args.group(2).strip("_")

    if not (note := await db.notes.find_one({
            "chat_id": chat_id,
            "names": {
                "$in": [note_name]
            }
    })):
        await message.reply(strings["no_note"])
示例#11
0
from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart

import sqlite3

from loader import dp, db, bot
from data.config import super_admins

from keyboards.default import admin_keyboard
from keyboards import create_kb_coustom_main_menu
from utils import notify_someone


@dp.message_handler(CommandStart(), user_id=super_admins)
async def bot_start(message:types.Message):
    user_id = message.from_user.id
    text = 'Здравствуйте, Владыка!'

    await bot.send_message (
        chat_id=user_id, 
        text=text, 
        reply_markup=create_kb_coustom_main_menu(user_id)
    )
    

@dp.message_handler(CommandStart())
async def bot_start(message:types.Message):
    user_id = message.from_user.id
    name = message.from_user.full_name
    user_in_db = db.select_user(id=user_id)
示例#12
0
from aiogram.types import Message, CallbackQuery
from aiogram.utils.emoji import emojize

from filters import IsMember
from keyboards.inline.inline_type_request_menu import inline_type_request_menu
from keyboards.main_menu import main_menu
from keyboards.inline.choice_request_buttons import choice_request
from keyboards.registration_menu import registration_menu
from keyboards.requests_menu import requests_menu
from loader import dp
from data import config, access_id
from states.task_close_inquire_state import TaskCloseInquiryState
from utils.choice_request_buttons import choice_request_buttons


@dp.message_handler(~IsMember(), CommandStart())
async def bot_start(message: Message):
    await message.delete()
    await message.answer(
        "Необходимо зарегистрироваться, для работы в Картпэй!",
        reply_markup=registration_menu,
        disable_notification=True)


@dp.message_handler(~IsMember(), regexp="Зарегистрироваться")
async def registration(message: Message):
    await message.delete()
    await message.answer(
        "{}  Ваш id <b>{}</b>, сообщите его координатору Картпэй.".format(
            emojize(":information_source:"), message.from_user.id))
示例#13
0
from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart
from filters.private_chat import IsPrivate
from loader import dp
from re import compile


@dp.message_handler(CommandStart(deep_link=compile(r"\d\d\d")), IsPrivate())
async def bot_start_deeplink(message: types.Message):
    deep_link_args = message.get_args()
    await message.answer(f'Hey, {message.from_user.full_name}!\n'
                         f'You are in personal correspondence.\n'
                         f'In you command is deep-link\n'
                         f'You send {deep_link_args}.\n')


@dp.message_handler(CommandStart(), IsPrivate())
async def bot_start(message: types.Message):
    bot_user = await dp.bot.get_me()
    deep_link = f"http://t.me/{bot_user.username}?start=123"
    await message.answer(f'Hey, {message.from_user.full_name}!\n'
                         f'You are in personal correspondence.\n'
                         f'In you command there is NO deep-link\n'
                         f'Your deep-link - {deep_link}')
示例#14
0
def register_manage_links_handlers(dp: Dispatcher):
    dp.register_message_handler(view_links, commands="links", state="*")
    dp.register_message_handler(
        delete_link,
        CommandStart(deep_link=re.compile(r'^del_.*$')),
        state="*")
示例#15
0
from loguru import logger

from django_project.telegrambot.usersmanage.models import User, Goods
from filters import AdminFilter
from handlers.users.purchases import purchase_start_menu
from loader import dp
from utils.database.commands.commands_goods import select_goods_by_pk
from utils.database.commands.commands_user import add_user


# @dp.message_handler(CommandStart(), AdminFilter())
# async def bot_start(message: types.Message):
#     await message.answer(f"Привет admin, {message.from_user.full_name}!")


@dp.message_handler(CommandStart(deep_link=compile(r"^goods-\d+$")))
async def bot_start_buy_goods(message: types.Message, user: User):
    """Команда /start для покупки выбранного товара через inline mode"""
    if not user:
        await registration(message)

    args = (message.get_args()).replace('goods-', '')
    validation_on_exist_goods: Goods = await select_goods_by_pk(pk=int(args))

    if validation_on_exist_goods:
        await purchase_start_menu(message, goods=validation_on_exist_goods)
    else:
        logger.warning(f"{validation_on_exist_goods=}")


@dp.message_handler(CommandStart(deep_link="registration"))
示例#16
0
        return

    bot_user = await bot.get_chat_member(chat_id, BOT_ID)
    if 'can_restrict_members' not in bot_user or bot_user[
            'can_restrict_members'] is False:
        return

    key = 'leave_silent:' + str(chat_id)
    redis.set(key, user_id)

    await unmute_user(chat_id, user_id)
    await kick_user(chat_id, user_id)
    await tbot.delete_messages(chat_id, [message_id, wlkm_msg_id])


@register(CommandStart(re.compile(r'welcome_security')), allow_kwargs=True)
@get_strings_dec('greetings')
async def welcome_security_handler_pm(message,
                                      strings,
                                      regexp=None,
                                      state=None,
                                      **kwargs):
    args = message.get_args().split('_')
    chat_id = int(args[2])
    user_id = message.from_user.id

    async with state.proxy() as data:
        data['chat_id'] = chat_id
        data['msg_id'] = int(args[4])

    if not message.from_user.id == int(args[3]):
示例#17
0
from aiogram import types
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.builtin import CommandStart

from data.config import admins
from filters import IsUser
from keyboards.default.admin_keyboard import admin_keyboard
from keyboards.default.get_menu_keyboard import user_menu_keyboard
from keyboards.inline.enter_code_keyboard import enter_code_keyboard
from loader import dp
from utils.db_api import redis_commands, db_commands


@dp.message_handler(CommandStart(), user_id=admins)
async def admin_bot_start(message: types.Message, state: FSMContext):
    await state.finish()

    await message.answer(
        f'Приветcтвую, дрогой админ {message.from_user.full_name}!',
        reply_markup=admin_keyboard)

    if not await redis_commands.is_user(message.from_user.id):
        user = message.from_user
        await db_commands.add_user(
            user_id=user.id,
            username=user.username,
            full_name=user.full_name,
        )
        await redis_commands.set_new_user(message.from_user.id)

示例#18
0
    buttons = InlineKeyboardMarkup(row_width=2)
    text = LANGUAGES[lang]["HELPS"][module]['text']
    if 'buttons' in LANGUAGES[lang]["HELPS"][module]:
        counter = 0
        for btn in LANGUAGES[lang]["HELPS"][module]['buttons']:
            counter += 1
            btn_name = LANGUAGES[lang]["HELPS"][module]['buttons'][btn]
            buttons.insert(InlineKeyboardButton(
                btn_name, callback_data=help_btn_cp.new(module=module, btn=btn)))
    buttons.add(InlineKeyboardButton("Back", callback_data='get_help'))
    await message.edit_text(text, reply_markup=buttons)


@dp.callback_query_handler(help_btn_cp.filter())
async def get_help_button_callback(query, callback_data=False, **kwargs):
    message = query.message
    module = callback_data['module']
    data = callback_data['btn']
    chat_id = query.message.chat.id
    lang = get_chat_lang(chat_id)
    text = ""
    text += LANGUAGES[lang]["HELPS"][module][data]
    buttons = InlineKeyboardMarkup().add(InlineKeyboardButton("Back", callback_data='get_help'))
    await message.edit_text(text, reply_markup=buttons)


@dp.message_handler(CommandStart('help'))
async def help_start(message):
    text, buttons = get_help(message.chat.id)
    await message.answer(text, reply_markup=buttons)
示例#19
0
from loguru import logger

from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart
from app.misc import dp

from app.models.user import User

from app.handlers.user.register import command_register
from app.handlers.user.link_mc_account import command_link

from app.utils.about_server import info_buttons


@dp.message_handler(CommandStart("register"))
async def command_start(message: types.Message, user: User):
    return await command_register(message, user)


@dp.message_handler(CommandStart("link"))
async def command_start(message: types.Message, user: User):
    return await command_link(message, user)


@dp.message_handler(CommandStart())
async def command_start(message: types.Message, user: User):
    logger.info("User {user_id} start conversation {chat_id}.",
                user_id=message.from_user.id,
                chat_id=message.chat.id)

    if types.ChatType.is_private(message):
示例#20
0
from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart

from main import dispatcher


@dispatcher.message_handler(CommandStart())
async def process_start(message: types.Message):
    await message.answer(f'Привет, {message.from_user.full_name}!\n '
                         'Я помогу тебе контролировать дедлайны!')
示例#21
0
from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart

from filters import GroupFilter
from loader import dp


@dp.message_handler(CommandStart(), GroupFilter())
async def bot_start(message: types.Message):
    await message.answer(f"Я работаю! Скинь войс!")
示例#22
0
from loader import dp, bot

from utils.json_actions.get_films import get_films_json

from ast import literal_eval
from datetime import datetime


def get_name_film(film_id, films):
    for film in films:
        if films[film]['_id'] == film_id:
            return film


@dp.message_handler(IsUserConfirmed(), CommandStart())
async def bot_start(message: Message, mode='text'):

    films = get_films_json()
    choice_films = generate_all_films(films)

    text = '*Все фильмы в Воронеже:*\n\n'

    for film in films:
        text += f"{film} - ( Рейтинг: *{films[film]['rating'][:3]}* )\n"

    if mode == 'text':
        return await message.answer(text, reply_markup=choice_films, parse_mode="MARKDOWN")
    elif mode == 'edit':
        return await bot.edit_message_text(text=text, reply_markup=choice_films, parse_mode="MARKDOWN", message_id=message.message_id, chat_id=message.chat.id)
    elif mode == 'posters':
示例#23
0
from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart
from filters import IsPrivate
from loader import dp
from utils.misc import rate_limit
from utils.db_api import User
import logging


@rate_limit(limit=10)
@dp.message_handler(CommandStart(), IsPrivate())
async def bot_start(message: types.Message, user: User):
    await message.answer(f'Привет, {message.from_user.full_name}!\n'
                         f'Ваши данные: {user.__dict__}')
    # Не попадает в error handler
    try:
        await message.answer("Неверное закрытие <b>тега<b>")
    except Exception as err:
        await message.answer(f"Ошибка: {err}")

    # Попадает в error handler
    # 1/0
    await message.answer("Нет такого <kek>тега</kek>")
    logging.info("Ошибка, бот не упал!")
示例#24
0
import re

from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart

from data.config import referral_reward
from data.mesages_config import WELCOME, NO_REF_CODE_FOUND, REF_CODE_ALREADY_ENTERED, YOU_USE_YOUR_LINK
from keyboards.default import menu
from loader import dp, db


@dp.message_handler(CommandStart(deep_link=re.compile(r'^[0-9]{4,15}$')))
async def start_deeplink(message: types.Message):
    code = int(message.get_args())
    user_id = message.from_user.id
    user_status = (await db.check_user(user_id))[0].get('count')
    if (await db.check_user(code))[0].get('count') == 1 and user_status == 0:
        await db.add_user(user_id, True)
        await db.add_earnings_for_referrals(code, referral_reward)
        await message.answer(WELCOME, reply_markup=menu)

    elif (await db.check_user(code))[0].get('count') == 0 and user_status == 0:
        await message.answer(NO_REF_CODE_FOUND, reply_markup=menu)
        await db.add_user(user_id, False)

    elif (await db.check_user_for_referal(user_id))[0].get('count') == 0:
        await message.answer(REF_CODE_ALREADY_ENTERED, reply_markup=menu)

    elif (await db.check_user_for_referal(user_id))[0].get('count') == 1 and code != user_id:
        await db.add_earnings_for_referrals(code, referral_reward)
        await db.set_invited_true(message.from_user.id)
示例#25
0
    args = message.get_args()
    if not args:
        await message.reply(
            "Low Voice Bot helps send *private ️messages* in public groups.",
            parse_mode=ParseMode.MARKDOWN,
            disable_web_page_preview=True,
            reply_markup=InlineKeyboardMarkup(inline_keyboard=[[
                InlineKeyboardButton("Start", switch_inline_query="")
            ]]),
        )
    else:
        raise SkipHandler


@dispatcher.message_handler(
    CommandStart(re.compile(r"SAVE\_(?P<whisper_id>.+)")))
async def start_save_handler(message: types.Message, deep_link: re.Match):
    logger.debug(f"start_save_handler:{deep_link}")
    try:
        try:
            whisper_id = deep_link.group("whisper_id")
        except IndexError:
            raise ReadableException("❌ Malformed arguments")
        whisper = whispers.get(whisper_id)
        if whisper is None:
            logger.debug(f"start_handler:Invalid whisper id: {whisper_id}")
            raise ReadableException(
                "⏲️🔔/❌ The message is expired or non-existent.")
        if (message.from_user.username != whisper.recipient
                and message.from_user != whisper.sender):
            raise ReadableException(
示例#26
0
from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart
from aiogram.utils.deep_linking import get_start_link

from src.filters import IsPrivate
from re import compile

from src.loader import dp
from loguru import logger


@dp.message_handler(CommandStart(deep_link=compile(r"\d\d\d"), encoded=True),
                    IsPrivate())
async def bot_start_deeplink(message: types.Message):
    deep_link_args = message.get_args()
    await message.answer(f"Привет, {message.from_user.full_name}!\n"
                         f"Вы находитесь в личной переписке. \n"
                         f"В вашей команде есть диплинк. \n"
                         f"Вы передали аргумент {deep_link_args}. \n")
    logger.info(
        f"User <{message.from_user.full_name}[{message.from_user.id}]> started with deeplink"
    )


@dp.message_handler(CommandStart(deep_link=None), IsPrivate())
async def bot_start_without_deeplink(message: types.Message):

    deep_link = await get_start_link("123", encode=True)

    await message.answer(f"Привет, {message.from_user.full_name}!\n"
                         f"Вы находитесь в личной переписке. \n"
示例#27
0
    called_user_id = message.from_user.id

    url = f'https://t.me/{BOT_USERNAME}?start=ws_{chat_id}_{called_user_id}_{message.message.message_id}'
    if not called_user_id == real_user_id:
        # The persons which are muted before wont have their signatures registered on cache
        if not redis.exists(
                f"welcome_security_users:{called_user_id}:{chat_id}"):
            await message.answer(strings['not_allowed'], show_alert=True)
            return
        else:
            # For those who lost their buttons
            url = f'https://t.me/{BOT_USERNAME}?start=ws_{chat_id}_{called_user_id}_{message.message.message_id}_0'
    await message.answer(url=url)


@register(CommandStart(re.compile(r'ws_')), allow_kwargs=True)
@get_strings_dec('greetings')
async def welcome_security_handler_pm(message: Message,
                                      strings,
                                      regexp=None,
                                      state=None,
                                      **kwargs):
    args = message.get_args().split('_')
    chat_id = int(args[1])

    async with state.proxy() as data:
        data['chat_id'] = chat_id
        data['msg_id'] = int(args[3])
        data['to_delete'] = bool(int(args[4])) if len(args) > 4 else True

    db_item = await get_greetings_data(chat_id)
示例#28
0
import asyncpg
from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart, Text

from keyboards.default import who_you_are
from loader import dp
from utils.db_api import quick_commands as commands
from aiogram.dispatcher import FSMContext
from states.botStates import StatesOfBot


@dp.message_handler(CommandStart(), state=None)
async def bot_start(message: types.Message, state: FSMContext):
    name = message.from_user.full_name

    try:
        await commands.add_user(id=message.from_user.id, name=name)
    except asyncpg.exceptions.UniqueViolationError:
        pass

    # count = await commands.count_users()

    await message.answer(
        f'Привет, {message.from_user.full_name}!\n'
        "Кем вы являетесь?",
        reply_markup=who_you_are)
    await StatesOfBot.start_state.set()
    # await StatesOfBot.next()
示例#29
0
# -*- coding: utf-8  -*-
from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart

from loader import dp
from sql.sql_commands import user_add_for_db


@dp.message_handler(CommandStart())
async def start(message: types.Message):
    await message.answer(
        f'Привет, {message.from_user.full_name}.\nЭто бот в котором ты можешь купить и прокачать свой собственный бульдозер и соревноваться его мощьностями с другими игроками\nВсе комманды: /commands'
    )
    user_add_for_db(chat_id=message.from_user.id)
示例#30
0
import re
from aiogram import types
from aiogram.dispatcher.filters.builtin import CommandStart

from handlers.users import show_main_menu
from loader import dp


@dp.message_handler(CommandStart(deep_link=None))
async def bot_start(message: types.Message):
    # Get user full name
    username: str = message.from_user.username
    full_name: str = message.from_user.full_name

    # Get user ID
    user_id: int = message.from_user.id

    # Show main menu
    await message.answer(text=f'Привет, {full_name}!')
    await show_main_menu(message)