import json from pathlib import Path from platform import uname import threading import time from sys import platform import logging 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 = logging.getLogger("conjurer_musician") 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(): logger = logging.getLogger("conjurer_musician") logger.info("Starting filesystemupdater") while True: time.sleep(60*60*24) logger.info("Rescan triggered") rescan() 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 def flask_debug(): app.run(debug=True, use_reloader=False, host='0.0.0.0', port=5000) if __name__ == "__main__": rescan() threading.Thread(target=flask_debug).start() threading.Thread(target=thread_rescan).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.