A simple asynchronous library for interaction with Clover Space (Project Z)
❗ Outdated. I am not responsible for the functionality of the library at the moment. If the API hasn't changed much after the rebranding, this should work.
pip install projz.py
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())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.EUploadTarget.FOREGROUND),
background=await client.upload_file(await async_open("bg-file.png", "rb"), projz.EUploadTarget.BACKGROUND),
circle_list=[circle_link_info.object_id]
)
if __name__ == "__main__":
get_event_loop().run_until_complete(main())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()python -m projz list-actions
python -m projz login --auth email --login yourlogin --password yourpassword
python -m projz login --auth phone --login yourlogin --password yourpassword
python -m projz link-info --auth email --login yourlogin --password yourpassword --info yourlink
python -m projz send-message --auth email --login yourlogin --password yourpassword --thread chatlink --repeat 150
python -m projz join-circle --auth email --login yourlogin --password yourpassword --circle circlelink
python -m projz leave-circle --auth email --login yourlogin --password yourpassword --circle circlelink
python -m projz listen --auth email --login yourlogin --password yourpassword