summary refs log tree commit diff
path: root/main.py
diff options
context:
space:
mode:
authormeltland <[email protected]>2025-03-10 17:03:26 -0400
committermeltland <[email protected]>2025-03-10 17:03:26 -0400
commit64a2cbf19384761e909eb2def7f35f9f95f9bc07 (patch)
treedc65cecb68acd2c5d4050952c9045fc85af555c4 /main.py
parent8ace0c0e1cc333b275988cd3af39e39a111809a4 (diff)
1.0.0a?
Diffstat (limited to 'main.py')
-rw-r--r--main.py45
1 files changed, 44 insertions, 1 deletions
diff --git a/main.py b/main.py
index 31035c5..9dd1db4 100644
--- a/main.py
+++ b/main.py
@@ -12,7 +12,7 @@ import secrets
 import time

 from urllib.parse import urlparse

 

-version = "Helium-0.0.0a"

+version = "Helium-1.0.0a"

 attachment_whitelist = ["u.cubeupload.com", "files.catbox.moe", "litter.catbox.moe", "i.ibb.co", "cubeupload.com", "media.tenor.com", "tenor.com", "c.tenor.com", "meower.fraudulent.loan", "fraudulent.loan", "deer.fraudulent.loan"]

 

 addr = "localhost"

@@ -276,6 +276,20 @@ async def handler(websocket):
                 del data["secure"]

                 await websocket.send(json.dumps({"error": False, "user": data, "listener": listener}))

                 continue

+            elif r["command"] == "get_post":

+                fc = util.field_check({"id": range(8,128)}, r)

+                if fc != True:

+                    await websocket.send(util.error(fc, listener))

+                    continue

+                if str(websocket.id) not in client_data:

+                    await websocket.send(util.error("unauthorized", listener))

+                    continue

+                data = db.posts.get_by_id(r["id"], True)

+                if type(data) != dict:

+                    await websocket.send(util.error(data, listener))

+                    continue

+                await websocket.send(json.dumps({"error": False, "post": data, "listener": listener}))

+                continue

             elif r["command"] == "set_property":

                 fc = util.field_check({"property": range(1,64), "value": range(0,2048)}, r)

                 if fc != True:

@@ -388,6 +402,33 @@ async def handler(websocket):
                     continue

                 data = db.inbox.get_recent()

                 await websocket.send(json.dumps({"error": False, "inbox": data, "listener": listener}))

+            elif r["command"] == "post_inbox":

+                fc = util.field_check({"content": range(0,3001), "attachments": range(0,4)}, r)

+                if fc != True:

+                    await websocket.send(util.error(fc, listener))

+                    continue

+                if str(websocket.id) not in client_data:

+                    await websocket.send(util.error("unauthorized", listener))

+                    continue

+                attachments = []

+                for i in r["attachments"]:

+                    if urlparse(i).hostname in attachment_whitelist:

+                        attachments.append(i)

+                if len(r["content"]) == 0 and len(r["attachments"]) == 0:

+                    await websocket.send(util.error("lengthInvalid", listener))

+                    continue

+                data = {

+                    "_id": str(uuid.uuid4()),

+                    "created": round(time.time()),

+                    "content": r["content"],

+                    "attachments": attachments

+                }

+                posted = db.inbox.add(data)

+                if posted != True:

+                    await websocket.send(util.error(fc, listener))

+                    continue

+                await websocket.send(json.dumps({"error": False, "listener": listener}))

+                continue

             elif r["command"] == "post":

                 fc = util.field_check({"content": range(0,3001), "replies": range(0,4), "attachments": range(0,4)}, r)

                 if fc != True:

@@ -427,6 +468,8 @@ async def handler(websocket):
                     "command": "new_post",

                     "data": data

                 }))

+                await websocket.send(json.dumps({"error": False, "listener": listener}))

+                continue

             elif r["command"] == "ping":

                 pass

             elif r["command"] in deprecated: