Ajout des fonctionnalitée pour nextcloud

This commit is contained in:
Grizouille
2025-11-07 13:58:19 +01:00
parent 5765440fdb
commit 899a8ce7b3
6 changed files with 124 additions and 9 deletions

View File

@@ -4,17 +4,19 @@ from subprocess import Popen, PIPE
from functools import wraps
import requests
import atexit
from flask import Flask, render_template, request, jsonify
from flask import Flask, render_template, request, jsonify, session, make_response
from markupsafe import escape
from flask_autoindex import AutoIndex
import warnings
import giphypop
from deezer_downloader.configuration import config
from deezer_downloader.web.music_backend import sched
from deezer_downloader.web.music_backend import sched, check_and_set_download_dirs_exist
from deezer_downloader.deezer import deezer_search, init_deezer_session
from deezer_downloader.nextcloud import addJwtInUserSession
app = Flask(__name__)
app.secret_key = "vilvhmqerjgùqrgojpùqjgvnùzevoijrpùvqpzejgijzepgùg"
auto_index = AutoIndex(app, config["download_dirs"]["base"], add_url_rules=False)
auto_index.add_icon_rule('music.png', ext='m3u8')
@@ -82,6 +84,9 @@ def validate_schema(*parameters_to_check):
return wrapper
return decorator
@app.before_request
def beforeRequest():
addJwtInUserSession(request)
@app.route("/")
def index():
@@ -117,7 +122,7 @@ def autoindex(path="."):
media_url = "https://cataas.com/cat"
template_context = {'gif_url': media_url}
return auto_index.render_autoindex(path, template_context=template_context)
return auto_index.render_autoindex(path=session['user_base_dir'], template_context=template_context)
@app.route('/queue', methods=['GET'])
@@ -168,6 +173,7 @@ def deezer_download_song_or_album():
add_to_playlist: True|False (add to mpd playlist)
create_zip: True|False (create a zip for the album)
"""
check_and_set_download_dirs_exist()
user_input = request.get_json(force=True)
desc = "Downloading {}".format(user_input['type'])
if user_input['type'] == "track":

View File

@@ -4,6 +4,7 @@ from os.path import basename
import mpd
import platform
from zipfile import ZipFile, ZIP_DEFLATED
from flask import session
from deezer_downloader.configuration import config
from deezer_downloader.youtubedl import youtubedl_download
@@ -16,15 +17,16 @@ from deezer_downloader.threadpool_queue import ThreadpoolScheduler, report_progr
sched = ThreadpoolScheduler()
def check_download_dirs_exist():
def check_and_set_download_dirs_exist():
config["download_dirs"]["songs"] = os.path.join(session['user_base_dir'], "DeezerDownload", "songs")
config["download_dirs"]["zips"] = os.path.join(session['user_base_dir'], "DeezerDownload","zips")
config["download_dirs"]["albums"] = os.path.join(session['user_base_dir'], "DeezerDownload","albums")
config["download_dirs"]["playlists"] = os.path.join(session['user_base_dir'], "DeezerDownload","playlists")
config["download_dirs"]["youtubedl"] = os.path.join(session['user_base_dir'], "DeezerDownload","youtubedl")
for directory in [config["download_dirs"]["songs"], config["download_dirs"]["zips"], config["download_dirs"]["albums"],
config["download_dirs"]["playlists"], config["download_dirs"]["youtubedl"]]:
os.makedirs(directory, exist_ok=True)
check_download_dirs_exist()
def make_song_paths_relative_to_mpd_root(songs, prefix=""):
# ensure last slash
config["mpd"]["music_dir_root"] = os.path.join(config["mpd"]["music_dir_root"], '')