aboutsummaryrefslogtreecommitdiff
path: root/wsgi
diff options
context:
space:
mode:
authorA Farzat <a@farzat.xyz>2025-10-08 15:26:43 +0300
committerA Farzat <a@farzat.xyz>2025-10-08 15:26:43 +0300
commit05607dc845a1dd111fd393478acf084ca3532081 (patch)
tree4c8cb78e591d9f76983cb68eee265fef85addd1f /wsgi
parentd93a91867baff153e0d57655996726914f042888 (diff)
downloadcsca5028-05607dc845a1dd111fd393478acf084ca3532081.tar.gz
csca5028-05607dc845a1dd111fd393478acf084ca3532081.zip
Add the ability to add subscriptions
Diffstat (limited to 'wsgi')
-rw-r--r--wsgi/__init__.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/wsgi/__init__.py b/wsgi/__init__.py
index d029c12..e467f82 100644
--- a/wsgi/__init__.py
+++ b/wsgi/__init__.py
@@ -2,9 +2,10 @@ from typing import Any, Dict, List
from components.database import subscriptions
from components.subscriptions.main import Subscription
from components.videos import VideoTuple
-from flask import Flask
+from flask import Flask, request
from flask_cors import CORS
+from components.extractor.extract_sub_info import get_sub_info_from_yt_url
from .utils import vid_dicts_from_tuple_list, sub_info_from_dict
app = Flask(__name__)
@@ -25,3 +26,14 @@ def sub_dict(id: str) -> Dict[str, Any]:
@app.route("/subs-info")
def subs_info() -> List[Dict[str, Any]]:
return [sub_info_from_dict(sub_dict) for sub_dict in subscriptions.find()]
+
+@app.post("/add-sub/")
+def add_sub() -> Dict[str, Any]:
+ sub_info = get_sub_info_from_yt_url(request.form["url"])
+ sub = Subscription(
+ _id=sub_info["id"],
+ link=sub_info["link"],
+ time_between_fetches=int(request.form["time_between_fetches"]),
+ )
+ sub.insert()
+ return sub_info_from_dict(sub.asdict())