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
- Bubblez.app has approved Bubblez.py
Bubblez live will shutdown from 07-01-2023 till ...
Version's
-
Python: Github Bubblez.py
-
PyPi: bubblez.py
-
Bubblez.js: bubblez.js
-
Bubblez.js Wiki/Documentation: Wiki/Documentation
-
Live Website: bubblez.app
-
Canary Website canary.bubblez.app
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:
socket.connect(verify=False)
This is vulnerable for man-in-middle attacks!!
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)
Client Setup with all the websocket-events:
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_follower(user: classes.User):
print(user.json())
"Do Your thing"
@socket.on(Events.NewReply)
def new_reply(postid: int, reply: classes.Reply):
post = client.post.get(postid)
print(post.message, reply.message)
"Do Your thing"
@socket.on(Events.UnFollowed)
def un_follower(user: classes.User):
print(user.json())
"Do Your thing"
@socket.on(Events.NewEdit)
def new_edit(user: classes.User, type: str, post: classes.Post, reply: classes.Reply):
print(user.json(), type, post.json(), reply.json())
"Do Your thing"
@socket.on(Events.Unlike)
def un_linke(user: classes.User, type: str, post: classes.Post, reply: classes.Reply):
print(user.json(), type, post.json(), reply.json())
"Do Your thing"
socket.connect()
User stuff:
Check the user:
Command: user = client.user.check()
This command checks the client's token
The response:
user.json()
{
"200": "Found user",
"uuid": null,
"username": "DarkMatter",
"displayname": "DarkMatter",
"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: user = client.user.ping()
The response:
user.json()
{
"200": "Pong",
"username": "DarkMatter",
"online_status": "2021-07-30 13:03:18"
}
Get the user:
Command: user = client.user.get(username=..)
| Arguments | Type | Value |
| :--- | :--- | :--- |
| username | str
| The user you want to get |
The response:
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(message=.., from_=.., locked=.., nsfw=..)
| 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(postid=..)
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(postid=..)
| 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(postid=.., togglelock=..)
| 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(id_only=..)
| 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(message=.., postid=.., from_=.., nsfw=...)
| 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(replyid=..)
| 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(replyid=.., message=..)
| 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()
This command returns the latest Blog!
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
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.