Exemplo n.º 1
0
@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()
Exemplo n.º 2
0
						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 )
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
"""


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)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
        вызывает метод 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()