import json from pathlib import Path from platform import uname import threading import time from sys import platform from flask import Flask, jsonify, request if platform in ("linux", "linux2"): SEPARATOR_FILE_PATH = "/" if "microsoft-standard" in uname().release: LOGFILE = "/home/mtuszowski/conjurer/discord_mus_service.log" MUSIC_FOLDER = "/mnt/g/Muzyka/" NETRC_FILE = "/home/mtuszowski/.netrc" LOGSTORE = "/home/mtuszowski/conjurer/logs/" ENCODING = "utf-8" GRAPHICS_PATH = "/home/mtuszowski/conjurer/Conjurer_graphics/" else: LOGFILE = "/home/pi/Conjurer/discord_mus_service.log" MEMORY_FIVE_SIARA = "/home/pi/Conjurer/pamiec.json" SYSTEM_GPT_SETTINGS = "/home/pi/Conjurer/system_gpt_settings.json" MEMORY_FIVE_MUZYKA = "/home/pi/Conjurer/pamiec_muzyki.json" MUSIC_FOLDER = "/home/pi/RetroPie/mp3/" SETTINGS_FILE = "/home/pi/Conjurer/settings.json" NETRC_FILE = "/home/pi/.netrc" LOGSTORE = "/home/pi/RetroPie/logs/" ACCIDENT_LOG = "/home/pi/Conjurer/accident_log.json" ENCODING = "utf-8" GRAPHICS_PATH = "/home/pi/RetroPie/Conjurer_graphics/" DIR_PATH_SADOX = "/home/pi/RetroPie/Fansadox/" music_file_list = [] def rescan(logger): logger.info("Rescan triggered") for mp3_item in Path.glob(Path(MUSIC_FOLDER), "**/*.mp3"): temp_music_file = mp3_item.as_posix() if platform == "win32": temp_music_file = temp_music_file.replace("/", "\\") music_file_list.append(temp_music_file) def thread_rescan(name,logger): logger.info(f"Starting filesystemupdater {name}") while True: time.sleep(60*60*24) logger.info("Rescan triggered {name}") rescan(logger) app = Flask(__name__) @app.route("/mp3", methods=["GET"]) def get_music_list(): return jsonify({"music_file_list": music_file_list}) @app.route("/update_mp3", methods=["POST"]) def update_music_list(): record = json.loads(request.data) app.logger.info(record["item"]) music_file_list.append(record["item"]) return_data = ( jsonify(isError=False, message="Success", statusCode=200, data=record), 200, ) return return_data if __name__ == "__main__": rescan(app.logger.getChild("BGtask")) thread = threading.Thread(target=thread_rescan, args=["Updater",app.logger.getChild("BGtask")]) thread.start() app.run(debug=True, host="0.0.0.0") #from waitress import serve #serve(app, host="0.0.0.0", port=5000) #TODO: Inne pliki - sadox, dokumenty naukowe itp.