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.
Source Distribution
File details
Details for the file Bubblez.py-0.0.6.tar.gz.
File metadata
- Download URL: Bubblez.py-0.0.6.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e9ea21f319ec37e524d78f78831bb943485da9b63eb80531fc2347a0736bfac
|
|
| MD5 |
cc5a7779685ced7011f552bb146643be
|
|
| BLAKE2b-256 |
f868b674888094755ed45a8a112e79a197b6753be4637bef11598802f00c8aa3
|