Metadata-Version: 2.1
Name: Bubblez.py
Version: 0.0.5.5.8
Summary: Api Module for https://bubblez.app/ and websockets
Home-page: UNKNOWN
Author: Mees Meijer (Discord: @MeeSOS#1721)  support@meesinc.nl
License: UNKNOWN
Keywords: python,api,websockets
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Requires: wheel
Description-Content-Type: text/markdown
License-File: LICENSE


# Bubblez.py - Api Module for [Bubblez.app](https://bubblez.app)

A Python Module for the [Bubblez.app](https://bubblez.app) api

- [Bubblez.app](https://bubblez.app/library#bubblez.py) has approved Bubblez.py



## Version's 

- Python: [Github Bubblez.py](https://github.com/ProjectBubblez/bubblez.py)

- PyPi: [bubblez.py](https://pypi.org/project/bubblez.py/)

- Bubblez.js: [bubblez.js](https://github.com/ProjectBubblez/bubblez.js)

- Bubblez.js Wiki/Documentation: [Wiki/Documentation](https://github.com/ProjectBubblez/documentation)

 ---- 

- Live Website: [bubblez.app](https://bubblez.app)

- Canary Website [canary.bubblez.app](https://canary.bubblez.app/)



## Setup

##### For this Api Module you need to have your api token!

##### If you dont? Than request it [here.](https://bubblez.app/applications/api-token)



Pip install:

```bash

   pip install bubblez.py

```

 --- 



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

```bash 

   python -m pip install requests 

```



#### ```Note```: 

If you use Windows and can not connected to the websockets because a SSL problem with python: 

```python3

socket.connect(verify=False)

```

##### <b>This is vulnerable for man-in-middle attacks!!</b>

<br>



## Examples



Check the [examples](https://github.com/ProjectBubblez/bubblez.py/tree/main/examples) for api and websockets





# Docs 

### Basic Client Setup:



```python3

    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:

```python3

    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()

   

```

<br>



## User stuff: 

#### Check the user:

##### Command: ```user = client.user.check()```

This command checks the client's token 

##### The response: 

```user.json()```

```js

{

    "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() ```

```js

{

    "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() ```

```js

{

    "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"

        }

    ]

}

```



<br>



## 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()```

```js

{

    "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()```

```js

{

    "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()```

```js

{

    "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()```

```js

{

    "200": "Post 522 has been locked"

}

```

or when unlocked

```js

{

    "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()```

```js

{

    "200": "latest Post",

    "postid": "522"

}

```



<br>



## 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()```

```js

{

    "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()```

```js

{

    "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()```

```js

{

    "200": "Reply 1473 has been updated"

    }

```



<br>



## Blog:

#### Get the latest Blog post!()

##### Command: ```devlog = client.devlog.get_latest()```

This command returns the latest Blog! 

##### The response: 

```devlog.json()```

```js

{

    "200": "latest Blog Post",

    "blogid": "",

    "blogposter_username": "",

    "blogposter_displayname": "",

    "blogposter_pfp": "",

    "blogcontent": "",

    "blogdate": "1990-01-01 00:00:00"

}

```



### 



