add save/load queue routes
All checks were successful
Build Docker Image / build (push) Successful in 57s
All checks were successful
Build Docker Image / build (push) Successful in 57s
This commit is contained in:
parent
81317c4f30
commit
410a7c92d9
40
server.py
40
server.py
@ -62,6 +62,16 @@ class WatchHistory(Base):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class SavedQueue(Base):
|
||||||
|
__tablename__ = "saved_queue"
|
||||||
|
sqid = Column(Integer, primary_key=True, autoincrement=True)
|
||||||
|
video_url = Column(String(255), nullable=False)
|
||||||
|
created_date = Column(DateTime, nullable=False, server_default=func.now())
|
||||||
|
created_by = Column(
|
||||||
|
String(100), nullable=False, server_default="mpv-youtube-queue-server"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# Ensure tables exist
|
# Ensure tables exist
|
||||||
Base.metadata.create_all(engine)
|
Base.metadata.create_all(engine)
|
||||||
|
|
||||||
@ -87,6 +97,36 @@ def send_to_mpv(command):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/save_queue", methods=["POST"])
|
||||||
|
def save_queue():
|
||||||
|
data = request.get_json()
|
||||||
|
if data is None or "urls" not in data:
|
||||||
|
logging.error("Invalid JSON data")
|
||||||
|
return jsonify(message="Invalid JSON data"), 400
|
||||||
|
logging.debug(f"Received data: {data}")
|
||||||
|
urls = data.get("urls")
|
||||||
|
logging.debug("Truncating saved queue")
|
||||||
|
session.query(SavedQueue).delete()
|
||||||
|
for url in urls:
|
||||||
|
logging.debug(f"Adding {url} to the saved queue")
|
||||||
|
new_entry = SavedQueue(video_url=url)
|
||||||
|
try:
|
||||||
|
session.add(new_entry)
|
||||||
|
except exc.SQLAlchemyError as e:
|
||||||
|
logging.error(f"Failed to insert data into database: {e}")
|
||||||
|
return jsonify(message="Failed to add data to database"), 500
|
||||||
|
session.commit()
|
||||||
|
return jsonify(message="Data added to saved queue"), 200
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/load_queue", methods=["GET"])
|
||||||
|
def load_queue():
|
||||||
|
logging.debug("Loading saved queue")
|
||||||
|
urls = [entry.video_url for entry in session.query(SavedQueue).all()]
|
||||||
|
logging.debug(f"Loaded {len(urls)} URLs from the saved queue")
|
||||||
|
return jsonify(urls), 200
|
||||||
|
|
||||||
|
|
||||||
@app.route("/add_video", methods=["POST"])
|
@app.route("/add_video", methods=["POST"])
|
||||||
def add_video():
|
def add_video():
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
|
Loading…
Reference in New Issue
Block a user