Example #1
0
def test_group_change_settings():
    event = get_event_object({
        "type":
        "group_change_settings",
        "object": {
            "user_id": 578716413,
            "changes": {
                "video": {
                    "old_value": 2,
                    "new_value": 1
                },
                "audio": {
                    "old_value": 1,
                    "new_value": 0
                },
            },
        },
        "group_id":
        191949777,
        "event_id":
        "bda43f669fa88d77c7e97941e13c8bf4f8d3c24d",
    })
    assert event.object.user_id == 578716413
    assert event.object.changes["video"].old_value == 2
    assert event.object.changes["audio"].new_value == 0
Example #2
0
def test_message_deny():
    event = get_event_object(
        {
            "type": "message_deny",
            "object": {"user_id": 578716413},
            "group_id": 191949777,
            "event_id": "08fd9e8f52a43c6966f7c117d5e402ab39cc4017",
        }
    )
    assert event.object.user_id == 578716413
Example #3
0
def test_message_allow():
    event = get_event_object(
        {
            "type": "message_allow",
            "object": {"user_id": 578716413, "key": ""},
            "group_id": 191949777,
            "event_id": "235695438e43d0765f36efd3355a96ae14556bff",
        }
    )
    assert event.object.user_id == 578716413
    assert event.object.key == ""
Example #4
0
def test_user_unblock():
    event = get_event_object(
        {
            "type": "user_unblock",
            "object": {"admin_id": 578716413, "user_id": 580903823, "by_end_date": 0},
            "group_id": 191949777,
            "event_id": "3344fa8f1d38fcafd19f6d7eb5357e787dd4fc04",
        }
    )

    assert event.object.by_end_date == 0
    assert event.object.admin_id == 578716413
Example #5
0
def test_group_join_event():
    event = get_event_object(
        {
            "type": "group_join",
            "object": {"user_id": 1, "join_type": "approved"},
            "group_id": 123,
            "event_id": "2a01ffba5838ff2016ae555327fd77c8633bbef6",
        }
    )
    assert event.object.join_type == "approved"
    assert event.object.user_id == 1
    assert event.group_id == 123
Example #6
0
def test_message_typing_state():
    event = get_event_object(
        {
            "type": "message_typing_state",
            "object": {"state": "typing", "from_id": 578716413, "to_id": -191949777,},
            "group_id": 191949777,
            "event_id": "514f17d95071fa73607a7e3f122b29f03008abc5",
        }
    )

    assert event.object.state == "typing"
    assert event.object.from_id == 578716413
    assert event.object.to_id == -191949777
Example #7
0
def test_poll_vote_new():
    event = get_event_object(
        {
            "type": "poll_vote_new",
            "object": {
                "owner_id": -191949777,
                "poll_id": 364694272,
                "option_id": 1220489985,
                "user_id": 578716413,
            },
            "group_id": 191949777,
            "event_id": "5f4ee3420044c3459922b36832c24d0d545af232",
        }
    )

    assert event.object.poll_id == 364694272
    assert event.object.option_id == 1220489985
Example #8
0
def test_group_officers_edit():
    event = get_event_object(
        {
            "type": "group_officers_edit",
            "object": {
                "admin_id": 578716413,
                "user_id": 580903823,
                "level_old": 1,
                "level_new": 1,
            },
            "group_id": 191949777,
            "event_id": "395e8b8466ac37ef7ab981831e38ca2e1d5415fc",
        }
    )

    assert event.object.level_old == 1
    assert event.object.user_id == 580903823
    assert event.object.admin_id == 578716413
Example #9
0
def test_user_block():
    event = get_event_object(
        {
            "type": "user_block",
            "object": {
                "admin_id": 578716413,
                "user_id": 349964901,
                "unblock_date": 1583437741,
                "reason": 2,
                "comment": "BAN",
            },
            "group_id": 191949777,
            "event_id": "300e2ce7ce7b7328e89ee284f8fb14a0722e4b50",
        }
    )

    assert event.object.unblock_date == 1583437741
    assert event.object.comment == "BAN"
    assert event.object.reason == 2
Example #10
0
def test_photo_comment_delete():
    event = get_event_object(
        {
            "type": "photo_comment_delete",
            "object": {
                "owner_id": -191949777,
                "id": 1,
                "deleter_id": 578716413,
                "photo_id": 457239017,
                "user_id": 578716413,
            },
            "group_id": 191949777,
            "event_id": "ed2ab84413adebeec1921c0c85fe7dc276810d9d",
        }
    )

    assert event.event_id == "ed2ab84413adebeec1921c0c85fe7dc276810d9d"
    assert event.object.deleter_id == 578716413
    assert event.object.photo_id == 457239017
Example #11
0
    async def process_event(
        self, revent: ExtensionEvent, options: ProcessEventOptions
    ) -> ProcessingResult:
        event: BaseEvent

        logger.debug(f"ProcessEventOptions:\n{options}")
        logger.debug(f"New event! Raw:\n{revent}")

        if options.do_not_handle:
            logger.debug("ProcessEventOptions.do_not_handle is True")
            logger.debug("Event was skipped")
            return ProcessingResult(False)

        if revent.bot_type is BotType.BOT:
            revent.raw_event = cast(dict, revent.raw_event)
            group_id = revent.raw_event["group_id"]
            token = await self.token_storage.get_token(GroupId(group_id))
            event = BotEvent(get_event_object(revent.raw_event), self.api.with_token(token))
        else:
            revent.raw_event = cast(list, revent.raw_event)
            obj = user_get_event_object(revent.raw_event)

            # TODO: fix it
            user_id = obj.peer_id

            token = await self.token_storage.get_token(UserId(user_id))
            event = UserEvent(obj, self.api.with_token(token))

        logger.debug(f"New event! Formatted:\n{event}")

        if not await self.middleware_manager.execute_pre_process_event(event):
            return ProcessingResult(False)
        for router in self.routers:
            if await router.is_suitable(event):
                result = await router.process_event(event)
                if result is HANDLER_NOT_FOUND:
                    continue
                await self.result_caster.cast(result, event)
                logger.debug("Event was succesfully handled")
                return ProcessingResult(True)
        logger.debug("Event wasn't handled")
        return ProcessingResult(False)
Example #12
0
def test_photo_comment_new():
    event = get_event_object(
        {
            "type": "photo_comment_new",
            "object": {
                "id": 1,
                "from_id": 578716413,
                "parents_stack": [],
                "date": 1582726164,
                "text": "а",
                "thread": {"count": 0},
                "photo_owner_id": -191949777,
                "photo_id": 457239017,
            },
            "group_id": 191949777,
            "event_id": "08c7a3b598c159427a79421fa51e60423066c5c6",
        }
    )
    assert event.type == "photo_comment_new"
    assert event.object.thread.count == 0
    assert event.object.text == "а"
Example #13
0
def test_wall_post_new():
    event: WallPostNew = get_event_object(
        {
            "type": "wall_post_new",
            "object": {
                "id": 1,
                "from_id": -191949777,
                "owner_id": -191949777,
                "date": 1582832507,
                "marked_as_ads": 0,
                "post_type": "post",
                "text": "hello its poll",
                "can_edit": 1,
                "created_by": 578716413,
                "can_delete": 1,
                "attachments": [
                    {
                        "type": "poll",
                        "poll": {
                            "id": 364694272,
                            "owner_id": -191949777,
                            "created": 1582832507,
                            "question": "how are you?",
                            "votes": 0,
                            "answers": [
                                {"id": 1220489985, "text": "first", "votes": 0, "rate": 0.0,},
                                {"id": 1220489986, "text": "second", "votes": 0, "rate": 0.0,},
                            ],
                            "anonymous": False,
                            "multiple": False,
                            "answer_ids": [],
                            "end_date": 0,
                            "closed": False,
                            "is_board": False,
                            "can_edit": True,
                            "can_vote": True,
                            "can_report": False,
                            "can_share": True,
                            "author_id": -191949777,
                            "background": {
                                "angle": 180,
                                "color": "4b8642",
                                "id": 2,
                                "name": "зелёный фон",
                                "points": [
                                    {"color": "679945", "position": 0.0},
                                    {"color": "2f733f", "position": 1.0},
                                ],
                                "type": "gradient",
                            },
                        },
                    }
                ],
                "comments": {"count": 0},
                "is_favorite": False,
            },
            "group_id": 191949777,
            "event_id": "2f1a52299ff093eade7c52b46a2cff9b7af11ec1",
        }
    )

    assert event.object.from_id == -191949777
    assert event.object.attachments[0].type == "poll"
    assert not event.object.attachments[0].poll.anonymous
    assert event.object.attachments[0].poll.answers[0].id == 1220489985
    assert event.object.attachments[0].poll.answers[0].text == "first"
    assert event.object.attachments[0].poll.answers[1].votes == 0
    assert event.object.attachments[0].poll.question == "how are you?"
Example #14
0
def test_photo_new():
    event = get_event_object(
        {
            "type": "photo_new",
            "object": {
                "id": 457239017,
                "album_id": 269275165,
                "owner_id": -191949777,
                "user_id": 100,
                "sizes": [
                    {
                        "type": "s",
                        "url": "https://sun9-2.userapi.com/c206528/v206528324/8472a/RQawjPZIYgU.jpg",
                        "width": 75,
                        "height": 39,
                    },
                    {
                        "type": "m",
                        "url": "https://sun9-43.userapi.com/c206528/v206528324/8472b/FbuiUSD6Yl4.jpg",
                        "width": 130,
                        "height": 68,
                    },
                    {
                        "type": "x",
                        "url": "https://sun9-40.userapi.com/c206528/v206528324/8472c/25QwEBUr-pk.jpg",
                        "width": 604,
                        "height": 317,
                    },
                    {
                        "type": "y",
                        "url": "https://sun9-61.userapi.com/c206528/v206528324/8472d/IACnZVerm2w.jpg",
                        "width": 807,
                        "height": 424,
                    },
                    {
                        "type": "z",
                        "url": "https://sun9-7.userapi.com/c206528/v206528324/8472e/oQTbEkF0bJA.jpg",
                        "width": 1200,
                        "height": 630,
                    },
                    {
                        "type": "o",
                        "url": "https://sun9-71.userapi.com/c206528/v206528324/8472f/q6fqWjr4G0k.jpg",
                        "width": 130,
                        "height": 87,
                    },
                    {
                        "type": "p",
                        "url": "https://sun9-35.userapi.com/c206528/v206528324/84730/FTTxgdvUdqs.jpg",
                        "width": 200,
                        "height": 133,
                    },
                    {
                        "type": "q",
                        "url": "https://sun9-19.userapi.com/c206528/v206528324/84731/fo8Raqqe4rs.jpg",
                        "width": 320,
                        "height": 213,
                    },
                    {
                        "type": "r",
                        "url": "https://sun9-44.userapi.com/c206528/v206528324/84732/nZOJUBM8OOw.jpg",
                        "width": 510,
                        "height": 340,
                    },
                ],
                "text": "",
                "date": 1582726155,
            },
            "group_id": 191949777,
            "event_id": "89c4ea0168f6a1367ea33a328fc2ec7336c3cd1d",
        }
    )
    assert event.object.album_id == 269275165
    assert event.object.sizes[-1].type == "r"
Example #15
0
def test_message_new_event():
    event = get_event_object(
        {
            "type": "message_new",
            "object": {
                "message": {
                    "date": 1582576963,
                    "from_id": 578716413,
                    "id": 305,
                    "out": 0,
                    "peer_id": 578716413,
                    "text": "bruh",
                    "conversation_message_id": 304,
                    "fwd_messages": [
                        {
                            "date": 1582576949,
                            "from_id": 578716413,
                            "text": "meh",
                            "attachments": [
                                {
                                    "type": "photo",
                                    "photo": {
                                        "id": 457239498,
                                        "album_id": -15,
                                        "owner_id": 578716413,
                                        "sizes": [
                                            {
                                                "type": "m",
                                                "url": "https://sun9-35.userapi.com/c854128/v854128095/1e466e/VMLEDep08VE.jpg",
                                                "width": 106,
                                                "height": 130,
                                            },
                                            {
                                                "type": "o",
                                                "url": "https://sun9-23.userapi.com/c854128/v854128095/1e4671/JjKjO1FADdM.jpg",
                                                "width": 130,
                                                "height": 160,
                                            },
                                            {
                                                "type": "p",
                                                "url": "https://sun9-57.userapi.com/c854128/v854128095/1e4672/QfGZzArpY0o.jpg",
                                                "width": 200,
                                                "height": 246,
                                            },
                                            {
                                                "type": "q",
                                                "url": "https://sun9-9.userapi.com/c854128/v854128095/1e4673/AQQRKSJmK4o.jpg",
                                                "width": 320,
                                                "height": 393,
                                            },
                                            {
                                                "type": "r",
                                                "url": "https://sun9-34.userapi.com/c854128/v854128095/1e4674/LX2HRyrU0p0.jpg",
                                                "width": 510,
                                                "height": 627,
                                            },
                                            {
                                                "type": "s",
                                                "url": "https://sun9-55.userapi.com/c854128/v854128095/1e466d/hqLt9EKYNUo.jpg",
                                                "width": 61,
                                                "height": 75,
                                            },
                                            {
                                                "type": "x",
                                                "url": "https://sun9-5.userapi.com/c854128/v854128095/1e466f/m0EQYpPSYDQ.jpg",
                                                "width": 491,
                                                "height": 604,
                                            },
                                            {
                                                "type": "y",
                                                "url": "https://sun9-42.userapi.com/c854128/v854128095/1e4670/fmZMqDUIzzg.jpg",
                                                "width": 650,
                                                "height": 799,
                                            },
                                        ],
                                        "text": "",
                                        "date": 1581199955,
                                        "access_key": "94a5e81e6c436a13ee",
                                    },
                                }
                            ],
                            "conversation_message_id": 303,
                            "peer_id": 578716413,
                            "id": 304,
                        }
                    ],
                    "important": False,
                    "random_id": 0,
                    "attachments": [
                        {
                            "type": "photo",
                            "photo": {
                                "id": 457239018,
                                "album_id": -6,
                                "owner_id": 578716413,
                                "sizes": [
                                    {
                                        "type": "m",
                                        "url": "https://sun9-60.userapi.com/c206620/v206620889/3dc7e/1V1Vr0O4iHQ.jpg",
                                        "width": 130,
                                        "height": 123,
                                    },
                                    {
                                        "type": "o",
                                        "url": "https://sun9-19.userapi.com/c206620/v206620889/3dc80/HqP_QEDFMlQ.jpg",
                                        "width": 130,
                                        "height": 123,
                                    },
                                    {
                                        "type": "p",
                                        "url": "https://sun9-23.userapi.com/c206620/v206620889/3dc81/jQHNAzH9Mdo.jpg",
                                        "width": 200,
                                        "height": 189,
                                    },
                                    {
                                        "type": "q",
                                        "url": "https://sun9-16.userapi.com/c206620/v206620889/3dc82/PHCmaBA4Oh4.jpg",
                                        "width": 320,
                                        "height": 303,
                                    },
                                    {
                                        "type": "r",
                                        "url": "https://sun9-36.userapi.com/c206620/v206620889/3dc83/VngkKLfGEMA.jpg",
                                        "width": 394,
                                        "height": 373,
                                    },
                                    {
                                        "type": "s",
                                        "url": "https://sun9-53.userapi.com/c206620/v206620889/3dc7d/_BQKJGQpCGU.jpg",
                                        "width": 75,
                                        "height": 71,
                                    },
                                    {
                                        "type": "x",
                                        "url": "https://sun9-34.userapi.com/c206620/v206620889/3dc7f/nmakgKHhLi8.jpg",
                                        "width": 394,
                                        "height": 373,
                                    },
                                ],
                                "text": "",
                                "date": 1579116704,
                                "post_id": 1,
                            },
                        }
                    ],
                    "is_hidden": False,
                },
                "client_info": {
                    "button_actions": ["text", "vkpay", "open_app", "location", "open_link",],
                    "keyboard": True,
                    "inline_keyboard": True,
                    "lang_id": 0,
                },
            },
            "group_id": 191949777,
            "event_id": "2e0cd793ca2c4c41b511dd8d97500523a7fc1b16",
        }
    )
    assert event.object.message.text == "bruh"
    assert event.object.message.peer_id == 578716413
    assert event.object.message.peer_id == event.object.message.from_id
    assert event.object.message.random_id == 0
    assert event.object.client_info.button_actions[0] == "text"
    assert event.object.message.attachments[0].type == "photo"
    assert event.object.message.attachments[0].photo.album_id == -6
    assert event.object.message.attachments[0].photo.sizes[0].type == "m"
    assert event.object.message.attachments[0].photo.sizes[0].width == 130
    assert event.object.message.fwd_messages[0].text == "meh"
    assert event.object.message.fwd_messages[0].date == 1582576949
    assert event.object.message.fwd_messages[0].attachments[0].type == "photo"
    assert event.object.message.fwd_messages[0].attachments[0].photo.sizes[0].height == 130
Example #16
0
def test_message_poll():
    event = get_event_object({
        "type":
        "message_new",
        "group_id":
        191949777,
        "object": {
            "message": {
                "action":
                None,
                "admin_author_id":
                None,
                "attachments": [{
                    "audio": None,
                    "audio_message": None,
                    "doc": None,
                    "gift": None,
                    "graffiti": None,
                    "link": None,
                    "market": None,
                    "market_market_album": None,
                    "poll": {
                        "anonymous":
                        False,
                        "friends":
                        None,
                        "multiple":
                        False,
                        "answer_id":
                        None,
                        "end_date":
                        0,
                        "answer_ids": [],
                        "closed":
                        False,
                        "is_board":
                        False,
                        "can_edit":
                        False,
                        "can_vote":
                        False,
                        "can_report":
                        False,
                        "can_share":
                        False,
                        "photo":
                        None,
                        "answers": [
                            {
                                "id": 1452808427,
                                "rate": 0,
                                "text": "123",
                                "votes": 0
                            },
                            {
                                "id": 1452808428,
                                "rate": 0,
                                "text": "456",
                                "votes": 0
                            },
                        ],
                        "created":
                        1607182997,
                        "id":
                        463223772,
                        "owner_id":
                        578716413,
                        "author_id":
                        578716413,
                        "question":
                        "123",
                        "background":
                        None,
                        "votes":
                        0,
                        "disable_unvote":
                        False,
                    },
                    "photo": None,
                    "sticker": None,
                    "story": None,
                    "type": "poll",
                    "video": None,
                    "wall": None,
                    "wall_reply": None,
                }],
                "conversation_message_id":
                469,
                "date":
                1607182997,
                "deleted":
                None,
                "from_id":
                578716413,
                "fwd_messages": [],
                "geo":
                None,
                "id":
                0,
                "important":
                False,
                "is_hidden":
                False,
                "is_cropped":
                None,
                "keyboard":
                None,
                "members_count":
                None,
                "out":
                0,
                "payload":
                None,
                "peer_id":
                2000000002,
                "random_id":
                0,
                "ref":
                None,
                "ref_source":
                None,
                "reply_message":
                None,
                "text":
                "",
                "update_time":
                None,
                "was_listened":
                None,
                "pinned_at":
                None,
            },
            "client_info": {
                "button_actions":
                ["text", "vkpay", "open_app", "location", "open_link"],
                "keyboard":
                True,
                "inline_keyboard":
                True,
                "carousel":
                False,
                "lang_id":
                0,
            },
        },
        "event_id":
        "0ef9b3813da8c09df18fc80906745f7cec867c6e",
    })
    assert event.object.message.attachments[0].type.value == "poll"
    assert event.object.message.attachments[0].poll.answers[0].text == "123"