@bot.on.chat_message( ChatActionRule(["chat_invite_user", "chat_invite_user_by_link"]) ) # send message on groupchat join async def invite(ans: Message): await ans("Welcome") @bot.on.chat_message(text=["!ping <text>", "echo"], lower=True) async def echo(ans, text="Сообщение не указано"): if await check(ans, id=ans.from_id): member_ids = ( item["member_id"] for item in ( await bot.api.request( "messages.get_conversation_members", {"peer_id": ans.peer_id} ) ).items if item["member_id"] > 0 and item["member_id"] != id ) await ans( f"{text}\n{''.join(f'[id{member_id}|.]' for member_id in member_ids)}", attachment=f"photo-185367978_457239114", ) else: await ans("Ты не админ") if __name__ == "__main__": bot.run_polling()
merchant.send_payment( to_id = int( one_trans[ 'comment' ] ), amount = int( po[ int( one_trans[ 'comment' ] ) ] ) * 1000 ) vk.messages.send( message = f'🔥 Вы успешно оплатили всю сумму за { po[ int( one_trans[ "comment" ] ) ] } коинов и коины успешно зачислены на ваш баланс\n💬Оставьте отзыв здесь { otsyv }', random_id = 0, user_id = int( one_trans[ 'comment' ] ) ) trans = api.payments[ 'data' ] except IndexError: pass t = threading.Thread( target = oplata, name = 'da', daemon = True, args = () ) t.start() def opl(): global po global qiwi global course @merchant.payment_handler( handler_type = 'longpoll' ) def pay( data ): api.pay( account = str( qiwi[ data[ 'from_id' ] ] ), amount = int( int( po[ data[ 'from_id' ] ] ) * course ) / 100000000, comment = 'Продажа VKcoin в vk.com/dragonshop101') vk.messages.send( message = f'💸 Вы успешно продали { data[ "amount" ] / 1000} вам отправлено { int( int( po[ data["from_id"] ] ) * course ) / 100000000 }₽\n💬 Оставьте свой отзыв здесь { otsyv } ', random_id = 0, user_id = data['from_id'] ) merchant.run_longpoll( tx = [1] ) ta = threading.Thread( target = opl, name = 'opl', args = (), daemon = True ) ta.start() bot.run_polling( skip_updates = False )
async def say(self, ans: Message, word: str): self.context["word"] = word return f"Теперь я буду говорить слово: {word}" @rule_disposal(VBMLRule("/остановить")) async def stop(self, ans: Message): await bot.branch.exit(ans.peer_id) return "Бранч остановлен!" async def branch(self, ans: Message, *args): if "word" not in self.context: return "Напиши /говорить <слово> чтобы оно сохранилось у меня в контексте!" u = await bot.api.users.get(ans.from_id) return f"{u[0].first_name}, твое слово: {self.context['word']}" @bot.on.message_handler(commands=["start"]) async def start(ans: Message): await bot.branch.add(ans.peer_id, "talker") return "Ты в бранче!" async def init_db(): await Tortoise.init(db_url="sqlite://users.db", modules={"models": ["examples.tortoise_models"]}) await Tortoise.generate_schemas() bot.branch.add_branch(StoredBranch, "talker") bot.run_polling(on_startup=init_db)
""" class Registered(AbstractMessageRule): async def check(self, message: Message): self.context.args.append(await User.get(uid=message.from_id)) return True @bot.middleware.middleware_handler() class Register(Middleware): async def pre(self, message: Message): if not await User.get_or_none(uid=message.from_id): await User.create(uid=message.from_id, time=current()) await message("You are now registered") @bot.on.message(Registered(), lev=["hi", "hello"]) async def wrapper(ans: Message, user: User): await ans(f"hi, my lil friend, unix time of registration: {user.time}") async def init_db(): await Tortoise.init( db_url="sqlite://users.db", modules={"models": ["tortoise_models"]} ) await Tortoise.generate_schemas() bot.run_polling(skip_updates=False, on_startup=init_db)
from vkbottle import Bot, Message from examples.tests.blueprints.plugins import fare_bp, greet_bp import os bot = Bot(tokens=os.environ["TOKEN"], debug="DEBUG") bot.set_blueprints(fare_bp, greet_bp) @bot.on.message_handler(text="Where are the blueprints?") async def wrapper(ans: Message): await ans("They’re on top!") bot.run_polling(skip_updates=True)
вызывает метод on_message класса BotOutput и отсылает пользователю что получил. """ ans = bot_out.on_message(message) # Эффект печатанья сообщения. if ans.get('typing_delay'): await message.api.request( 'messages.markAsRead', {'peer_id': message.from_id} ) await message.api.request( 'messages.setActivity', { 'type': 'typing', 'user_id': message.from_id } ) sleep(ans['typing_delay']) await message( ans.get('text'), ans.get('attachment'), keyboard=ans.get('keyboard') ) if __name__ == '__main__': vk_bot.run_polling()