Skip to main content

An asynchronous library for creating scripts and chatbots in Project Z.

Project description

ProjZ

A simple asynchronous library for interaction with Project Z

Installation

pip install projz.py

Example - login and get object id from link

import projz
from asyncio import get_event_loop

client = projz.Client()


async def main():
    result = await client.login_email("your email", "your password")
    print(f"Logged in to account with nickname {result.user_profile.nickname}")
    info = await client.get_link_info("link here")
    print(f"Object id: {info.object_id}, object type: {info.object_type}")

if __name__ == "__main__":
    get_event_loop().run_until_complete(main())

Example - login and post blog

import projz
from asyncio import get_event_loop
from aiofiles import open as async_open

client = projz.Client()


async def main():
    result = await client.login_email("your email", "your password")
    print(f"Logged in to account with nickname {result.user_profile.nickname}")
    circle_link_info = await client.get_link_info(input("Circle link: "))
    await client.post_blog(
        "Blog title",
        "Blog content",
        content_rich_format=projz.RichFormatBuilder().h1(0, 4).build(),
        cover=await client.upload_file(await async_open("cover-file.png", "rb"), projz.UploadTarget.FOREGROUND),
        background=await client.upload_file(await async_open("bg-file.png", "rb"), projz.UploadTarget.BACKGROUND),
        circle_list=[circle_link_info.object_id]
    )


if __name__ == "__main__":
    get_event_loop().run_until_complete(main())

Example - receive messages

import projz
from asyncio import get_event_loop

client = projz.Client()


@client.on_message()
async def handle_echo(message: projz.ChatMessage):
    if message.content is not None:
        await client.send_message(message.thread_id, content=message.content)


# You can specify the command prefix in the arguments of the decorator or Client. 
# The slash / is set by default.


@client.on_command("off")  # = on_message("/off")
async def handle_off(message: projz.ChatMessage):
    await client.change_chat_online_status(message.thread_id, is_online=False)


async def main():
    await client.login_email("your email", "your password")
    print("Waiting for the messages...")


if __name__ == "__main__":
    loop = get_event_loop()
    loop.run_until_complete(main())
    loop.run_forever()

Addition: Using CLI functions

Print available functions

python -m projz list-actions

Login to an account with email and print info about it

python -m projz login --auth email --login yourlogin --password yourpassword

Or with phone number

python -m projz login --auth phone --login yourlogin --password yourpassword

Get information about the link

python -m projz link-info --auth email --login yourlogin --password yourpassword --info yourlink

Send messages to the chat

python -m projz send-message --auth email --login yourlogin --password yourpassword --thread chatlink --repeat 150

Join to the circle

python -m projz join-circle --auth email --login yourlogin --password yourpassword --circle circlelink

Leave from the circle

python -m projz leave-circle --auth email --login yourlogin --password yourpassword --circle circlelink

Listen for the chat messages

python -m projz listen --auth email --login yourlogin --password yourpassword

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ProjZ.py-2.4.6.tar.gz (30.8 kB view details)

Uploaded Source

File details

Details for the file ProjZ.py-2.4.6.tar.gz.

File metadata

  • Download URL: ProjZ.py-2.4.6.tar.gz
  • Upload date:
  • Size: 30.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for ProjZ.py-2.4.6.tar.gz
Algorithm Hash digest
SHA256 be9283452224c80eab6a3c3a3bdaa03fa4a5f6f96b077691167b3afb85b17dae
MD5 aa9badeb0dc17ecfecae34ce536aced0
BLAKE2b-256 fae7b95e6c7a73d8ae57628701f60d850dc07e22d1d6c793638e70e8250495d6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page