An asynchronous library for creating scripts and chatbots in Project Z.
Project description
ProjZ
A simple asynchronous library for interaction with Project Z
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
Release history Release notifications | RSS feed
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.3.9.tar.gz
(33.5 kB
view details)
File details
Details for the file ProjZ.py-2.3.9.tar.gz
.
File metadata
- Download URL: ProjZ.py-2.3.9.tar.gz
- Upload date:
- Size: 33.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aff3fca91b1970216aac7d9224f3c2027ce6e59f384f03dc27c6731b290943d0 |
|
MD5 | f778423b982287674be6e5e5cb3e0f4c |
|
BLAKE2b-256 | 5de27e9f8cacc22dcb397dfd17bf26a1576eb42134f62bc5516e852dea1ad682 |