Skip to main content

Api Module for https://bubblez.app/ and websockets

Project description

Bubblez.py - Api Module for Bubblez.app

A Python Module for the Bubblez.app api

Version's


Setup

For this Api Module you need to have your api token!
If you dont? Than request it here.

Pip install:

   pip install bubblez.py

If you dont use the Pypi, than you need to manuel install Requests

   python -m pip install requests 

Note:

If you use Windows and can not connected to the websockets because a SSL problem with python: This is vulnerable for man-in-middle attacks!!

socket.connect(verify=False)

Examples

Check the examples for api and websockets

Docs

Basic Client Setup:

    from Bubblez import Bubblez 

    client = Bubblez("Live token") 

    'If you want to post to canary:'
    client = Bubblez("Canary token", use_canary=True)

Basic Client Setup with websockets:

    from Bubblez import Bubblez
    from Bubblez.socket import Socket, Events, classes


    client = Bubblez("Your token", True, True)
    socket = Socket(client)


    @socket.on(Events.NewLike)
    def new_like(type, user: classes.User, post: classes.Post):
        print(type, user.username, post.message)
        "Do Your thing"

    @socket.on(Events.NewPost)
    def new_post(post: classes.Post):
        print(post.json())
        "Do Your thing"

    @socket.on(Events.NewFollower)
    def new_fol(user: classes.User):
        print(user.json())
        "Do Your thing"

    @socket.on(Events.NewReply)
    def new_fol(post: classes.Post, reply: classes.Reply):
        print(post.message, reply.message)
        "Do Your thing"

    @socket.on(Events.UnFollowed)
    def un_fol(user: classes.User):
        print(user.json())
        "Do Your thing"

    socket.connect()

User stuff:

Check the user:

Command: client.user.check()
The response:

class User.json()

{
    "200": "Found user",
    "uuid": null,
    "username": "DarkMatter",
    "displayname": "DarkMatter",
    "email": "zak@bubblez.app",
    "pfp": "https://i.imgur.com/jAOd5gE.png",
    "banner": "https://i.imgur.com/1bZdeBF.png",
    "coins": "85",
    "rank": "founder",
    "eventr": "darkmatter",
    "patreon": "true",
    "booster": "true",
    "bio": "We don't know much about them, but we're sure DarkMatter is great.",
    "nsfw": "false",
    "dob": null,
    "pronoun": "hehim",
    "ban": null,
    "created_at": "2019-10-21 07:40:23",
    "last_posted": "2021-07-30 01:19:36",
    "posts": [
        {
            "postid": "522",
            "username": "DarkMatter",
            "nsfw": "false",
            "content": "API is cool",
            "from": "API testing",
            "locked": "false",
            "edited": null,
            "post_date": "2021-07-30 12:18:31"
        }
    ],
    "replies": [
        {
            "replyid": "1473",
            "postid": "522",
            "username": "DarkMatter",
            "nsfw": "false",
            "content": "Cool reply with the API",
            "from": "API testing",
            "edited": null,
            "reply_date": "2021-07-30 12:49:12"
        }
    ]
}

Ping the user:

Command: client.user.ping()
The response:

class User.json()

{
    "200": "Pong",
    "username": "DarkMatter",
    "online_status": "2021-07-30 13:03:18"
}

Get the user:

Command: client.user.get()
Arguments Type Value
username str The user you want to get
The response:

class User.json()

{
    "200": "Found user",
    "uuid": null,
    "username": "embed",
    "displayname": "embed",
    "followers": 2,
    "pfp": "https://i.imgur.com/Md5C3uy.gif",
    "banner": null,
    "coins": "0",
    "rank": "founder",
    "eventr": "lgbt19",
    "patreon": "true",
    "booster": "true",
    "bio": "the best bubblez dev.",
    "nsfw": "false",
    "pronoun": "none",
    "ban": null,
    "created_at": "2019-10-22 12:04:01",
    "last_posted": null,
    "posts": [
        {
            "postid": "280",
            "username": "embed",
            "nsfw": "false",
            "content": "gamimg",
            "from": null,
            "locked": "false",
            "edited": null,
            "post_date": "2020-08-09 17:15:19"
        }
    ]
}

Posts stuff:

Send a Post:

Command: post = client.post.send()
Arguments Type Value
message str The message in the post.
from_ str The little message next to the date.
locked bool if True, no-one can reply.
nsfw bool if True, You need to set DOB (Date Of birth) to see this
The response:

post.json()

{
    "200": "message sent",
    "post": "API is cool",
    "from": "API testing",
    "locked": "false",
    "pnsfw": "false",
    "postid": 522
}

Get a post

Command: post = client.post.get()
The response:
Arguments Type Value
postid int The postid of the post you want to get.

post.json()

{
    "200": "Found post",
    "postid": "522",
    "username": "DarkMatter",
    "pfp": "https://i.imgur.com/jAOd5gE.png",
    "nsfw": "false",
    "content": "API is cool",
    "from": "API testing",
    "locked": "false",
    "edited": null,
    "post_date": "2021-07-30 12:18:31",
    "replies": [
        {
            "replyid": "1473",
            "username": "DarkMatter",
            "pfp": "https://i.imgur.com/jAOd5gE.png",
            "content": "Cool reply with the API",
            "from": null,
            "deleted": null,
            "edit_date": null,
            "reply_date": "2021-07-30 12:49:12"
        }
    ]
}

Delete a Post

Command: post = client.post.delete()
Arguments Type Value
postid int The id of the post you want to delete.
The response:

post.json()

{
    "200": "Post 522 has been deleted"
}

Lock a post

Command: post = client.post.lock()
Arguments Type Value
postid int The post id
togglelock bool If True, no-one can reply on your post!
The response:

post.json()

{
    "200": "Post 522 has been locked"
}

or when unlocked

{
    "200": "Post 522 has been unlocked"
}

Get the latest post Global

Command: post = client.post.get_latest()
Arguments Type Value
id_only bool If False, than it returns a Post object else only the ID
The response:

post.json()

{
    "200": "latest Post",
    "postid": "522"
}

Reply's:

Send a reply

Command: reply = client.reply.send()
Arguments Type Value
message str The message in the reply.
postid int The postid you want to reply on
from_ str The little message next to the date.
nsfw bool if True, You need to set DOB (Date Of birth) to see this
The response:

reply.json()

{
    "200": "reply sent",
    "reply": "Cool reply with the API",
    "postid": "522",
    "from": "API testing",
    "rnsfw": "false",
    "replyid": 1473
}

Delete a reply

Command: reply = client.reply.delete()
Arguments Type Value
replyid int The postid you want to reply on
The response:

reply.json()

{
    "200": "reply 1473 has been deleted"
}

Edit a reply()

Command: reply = client.reply.edit()
Arguments Type Value
replyid int The postid you want to reply on
message str the message than will replace the old one
The response:

reply.json()

{
    "200": "Reply 1473 has been updated"
}

Blog:

Get the latest Blog post!()

Command: devlog = client.devlog.get_latest()
The response:

devlog.json()

{
    "200": "latest Blog Post",
    "blogid": "",
    "blogposter_username": "",
    "blogposter_displayname": "",
    "blogposter_pfp": "",
    "blogcontent": "",
    "blogdate": "1990-01-01 00:00:00"
}

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

Bubblez.py-0.0.5.2.tar.gz (6.5 kB view hashes)

Uploaded Source

Built Distribution

Bubblez.py-0.0.5.2-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

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