コード例 #1
0
ファイル: register.py プロジェクト: Sergeileduc/DCTbot
async def send_token(forum_member, discord_member, token):
    """Send token via forum MP

    Args:
        forum_member (str): Username (forum) to send token to
        discord_member (discord.Member): discord Member who requested token
        token (str): token to send

    Returns:
        bool: success for sending the Private Message

    """
    subject = "Token de validation pour le Discord"
    message = ("Voici le token que vous avez demandé sur Discord "
               f"(utilisateur {discord_member}) :\n\n"
               f"\t{token}\n\n"
               "si vous n'êtes pas à l'origine de cette demande "
               "merci d'ignorer ce message")

    async with PhpBB(forum_host) as phpbb:
        await phpbb.login(forum_user_name, forum_password)
        success = await phpbb.send_private_message(receiver=forum_member,
                                                   subject=subject,
                                                   message=message)
    return success
コード例 #2
0
async def test_fetch_birthdays():
    """Fetch birthdays"""
    async with PhpBB(host) as phpbb:
        await phpbb.login(receiver_name, receiver_password)
        out = await phpbb.get_birthdays()
    print(*out, sep='\n')
    assert out is not None
コード例 #3
0
async def main():
    print(f"host : {host}")
    async with PhpBB(host) as phpbb:
        await phpbb.login(username, password)
        await phpbb.send_private_message(receiver=receiver,
                                         subject=subject,
                                         message=message)
コード例 #4
0
async def send():
    """Send message with token to receiver."""
    async with PhpBB(host) as phpbb:
        await phpbb.login(sender_name, sender_password)
        await phpbb.send_private_message(receiver=receiver_name,
                                         subject="validate my token",
                                         message=token)
コード例 #5
0
ファイル: register.py プロジェクト: Sergeileduc/DCTbot
    async def save_in_db(self, ctx, discord_member, username):
        """Record user in database."""
        async with PhpBB(forum_host) as phpbb:
            await phpbb.login(forum_user_name, forum_password)
            uid, rank = await phpbb.get_member_infos(username)
        logger.info(
            "Forum account %20s (%8d) with rank %15s for member %10s successfully verified (asked by %10s)",
            username, uid, rank, discord_member, ctx.author)  # noqa: E501

        # table names are guild IDS, with double quotes (sqlite thing, digits alone wont work)
        table = self.db.table(quote_id(ctx.guild.id))
        table.upsert(
            {
                "discord_id":
                discord_member.id,
                "forum_id":
                uid,
                "discord_name":
                discord_member.display_name,
                "forum_name":
                username,
                "discord_roles": [
                    role.id for role in discord_member.roles
                    if role.name != "@everyone"
                ],
                "forum_rank":
                rank
            },
            pk="discord_id")
        logger.info("database has been updated")
コード例 #6
0
async def clean(user, password, other_user):
    async with PhpBB(host) as phpbb:
        await phpbb.login(user, password)
        # Unread messages
        logging.info("clean account A unread mess")
        unread_mess_list = await phpbb.fetch_unread_messages()
        filterd_unread_mess_by_sender = [
            m for m in unread_mess_list if m['fromto'] == other_user
        ]  # noqa: E501
        for m in filterd_unread_mess_by_sender:
            await phpbb.delete_mp(m)

        # Read messages
        logging.info("clean account A red mess")
        read_mess_list = await phpbb.fetch_read_messages()
        filterd_mess_by_sender = [
            m for m in read_mess_list if m['fromto'] == other_user
        ]  # noqa: E501
        for m in filterd_mess_by_sender:
            await phpbb.delete_mp(m)

        # Sent messages
        logging.info("clean account A sent mess")
        sent_message_list = await phpbb.fetch_sent_messages()
        filtered_sent_message_list = [
            m for m in sent_message_list if m['fromto'] == other_user
        ]  # noqa: E501
        for m in filtered_sent_message_list:
            await phpbb.delete_mp(m)
コード例 #7
0
async def test_fetch_info():
    """Fetch rank"""
    async with PhpBB(host) as phpbb:
        await phpbb.login(sender_name, sender_password)
        uid, rank = await phpbb.get_member_infos(receiver_name)
        assert rank == "Modérateur"
        assert uid == 43533
コード例 #8
0
async def test_get_user_id(cookies):
    """Test _get_user_id."""
    def mock_cookies():
        return cookies

    async with PhpBB("http://dummy.io") as phpbb:
        phpbb.browser.list_cookies = mock_cookies
    assert phpbb._get_user_id() == 43533
コード例 #9
0
async def test_is_logged_fail(not_logged_cookies):
    """Test get user SID."""
    def mock_cookies():
        return not_logged_cookies

    async with PhpBB("http://dummy.io") as phpbb:
        phpbb.browser.list_cookies = mock_cookies
        assert not phpbb.is_logged()
コード例 #10
0
async def test_get_sid(cookies):
    """Test get user SID."""
    def mock_cookies():
        return cookies

    async with PhpBB("http://dummy.io") as phpbb:
        phpbb.browser.list_cookies = mock_cookies
    assert phpbb._get_sid() == "ffac899f2ff73"
コード例 #11
0
async def delete():
    """Delete last message from sender."""
    async with PhpBB(host) as phpbb:
        await phpbb.login(receiver_name, receiver_password)
        read_mess_list = await phpbb.fetch_read_messages()
        filterd_mess_by_sender = [
            m for m in read_mess_list if m['fromto'] == sender_name
        ]  # noqa: E501
        await phpbb.delete_mp(filterd_mess_by_sender[0])
コード例 #12
0
async def main():
    async with PhpBB(host) as phpbb:
        await phpbb.login(username, password)
        unread_mess_list = await phpbb.fetch_read_messages()
        print("Here are your read messages :")
        filterd_mess_by_sender = [
            m for m in unread_mess_list if m['fromto'] == sender
        ]  # noqa: E501
        print(*filterd_mess_by_sender, sep='\n')
コード例 #13
0
async def main():
    async with PhpBB(host) as phpbb:
        await phpbb.login(username, password)
        await phpbb.fetch_unread_messages()
        message_to_read = phpbb.find_expected_message_by_user(
            expect_message_from_user)  # noqa: E501
        if message_to_read:
            message = await phpbb.read_private_message(message_to_read)
            print(message)
コード例 #14
0
async def receive():
    async with PhpBB(host) as phpbb:
        await phpbb.login(receiver_name, receiver_password)
        await phpbb.fetch_unread_messages()
        message_to_read = phpbb.find_expected_message_by_user(sender_name)
        if message_to_read:
            message = await phpbb.read_private_message(message_to_read)
            print(message)

        assert message['content'] == token
コード例 #15
0
async def main():
    async with PhpBB(host) as phpbb:
        await phpbb.login(username, password)
        sent_message_list = await phpbb.fetch_sent_messages()
        filtered_sent_message_list = [
            m for m in sent_message_list if m['fromto'] == receiver
        ]  # noqa: E501
        print(*filtered_sent_message_list, sep='\n')
        for m in filtered_sent_message_list:
            await phpbb.delete_mp(m)
コード例 #16
0
async def test_misc():

    session = aiohttp.ClientSession()
    """Send and receive"""
    async with PhpBB(host, session=session) as phpbb:
        await phpbb.login(sender_name, sender_password)
        messages = await phpbb.fetch_read_messages()
        url, payload = await phpbb._make_delete_mp_payload(messages[0])  # #pylint: disable=unused-variable  # noqa: E501

    await session.close()
コード例 #17
0
async def main():
    async with PhpBB(host) as phpbb:
        await phpbb.login(username, password)
        unread_mess_list = await phpbb.fetch_unread_messages()
        print("Here are your unread messages :")
        print(*unread_mess_list, sep='\n')

        print(
            "\nHere are the contents of messages (messages have been marked as read) :"
        )  # noqa: E501
        for unread_mess in unread_mess_list:
            message = await phpbb.read_private_message(unread_mess)
            print(message)
コード例 #18
0
async def try_to_verify(expected):
    # Connect to phpbb forum and fetch unread PM
    async with PhpBB(host) as phpbb:
        await phpbb.login(username, password)
        await phpbb.fetch_unread_messages()
        # Read message from expected user
        message_to_read = phpbb.find_expected_message_by_user(expected)  # noqa: E501
        if message_to_read:
            message = await phpbb.read_private_message(message_to_read)
            if message['content'] == token:
                print("Valid token ! GOOD")
                return True
            else:
                print("Invalid token ! BAD !")
                return False
        return False
コード例 #19
0
async def main():
    async with PhpBB(host) as phpbb:
        await phpbb.login(username, password)
        uid = await phpbb.get_member_uid(querry_user)
        print(uid)
コード例 #20
0
def test__extract_mp_number_id2(message2):
    f, p = PhpBB._extract_mp_number_id(message2)
    assert f == -1
    assert p == 11852
コード例 #21
0
async def main():
    async with PhpBB(host) as phpbb:
        await phpbb.login(username, password)
        out = await phpbb.get_birthdays()
        print(*out, sep='\n')
コード例 #22
0
async def main():
    async with PhpBB(host) as phpbb:
        await phpbb.login(username, password)
        rank = await phpbb.get_member_rank(querry_user)
        print(rank)
コード例 #23
0
def test__parse_age(tag, expected):
    age = PhpBB._parse_age(tag)
    assert age == expected
コード例 #24
0
async def test_init_close():
    phpbb = PhpBB("http://dummy.io")
    await phpbb.close()
コード例 #25
0
async def test_fetch_rank():
    """Fetch rank"""
    async with PhpBB(host) as phpbb:
        await phpbb.login(sender_name, sender_password)
        rank = await phpbb.get_member_rank(receiver_name)
        assert rank == "Modérateur"
コード例 #26
0
def test__extract_mp_number_id1(message1):
    f, p = PhpBB._extract_mp_number_id(message1)
    assert f == 0
    assert p == 11850