mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-19 00:02:11 +00:00
Tag: 1.12
Intermediate commits (oldest → newest): - Changes for too long messages handling - Track name broadcast att 1 - Music tracker - fx - fx2 - fx - logg - fx
This commit is contained in:
@@ -6,7 +6,9 @@ API endpoints.
|
||||
"""
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import requests
|
||||
import threading
|
||||
import time
|
||||
from datetime import datetime
|
||||
@@ -17,6 +19,8 @@ from sys import platform
|
||||
from flask import Flask, jsonify, redirect, request, send_from_directory, render_template
|
||||
from waitress import serve
|
||||
|
||||
MAIN_BOT_ADDRESS = "http://192.168.1.191:5000"
|
||||
MUSIC_TRACKER = "/prepped_tracks"
|
||||
HOST_ADDRESS = "192.168.1.15"
|
||||
PORT_ADDRESS = 5000
|
||||
if platform in ("linux", "linux2"):
|
||||
@@ -27,6 +31,7 @@ if platform in ("linux", "linux2"):
|
||||
NETRC_FILE = "/home/mtuszowski/.netrc"
|
||||
LOGSTORE = "/home/mtuszowski/conjurer/logs/"
|
||||
ENCODING = "utf-8"
|
||||
RADIOLOG_PATH = '/home/pi/Conjurer/radio_log.log'
|
||||
|
||||
else:
|
||||
LOGFILE = "/home/pi/Conjurer/discord_mus_service.log"
|
||||
@@ -35,6 +40,7 @@ if platform in ("linux", "linux2"):
|
||||
ENCODING = "utf-8"
|
||||
MUSIC_FOLDER = "/home/pi/RetroPie/mp3/"
|
||||
PRIORITY_FOLDER = "/home/pi/RetroPie/mp3/Magiczne i chuj/"
|
||||
RADIOLOG_PATH = '/home/pi/Conjurer/radio_log.log'
|
||||
|
||||
|
||||
music_file_list = []
|
||||
@@ -45,7 +51,8 @@ def rescan():
|
||||
The `rescan` function logs a message, scans for mp3 files in a specified folder,
|
||||
and adds them to a list of music files.
|
||||
"""
|
||||
logging.info("Rescan triggered")
|
||||
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()
|
||||
@@ -82,13 +89,65 @@ def thread_rescan():
|
||||
The `thread_rescan` function periodically triggers a rescan operation after a specified time
|
||||
interval.
|
||||
"""
|
||||
logging.info("Starting filesystemupdater")
|
||||
logger = logging.getLogger("conjurer_musician")
|
||||
logger.info("Starting filesystemupdater")
|
||||
while True:
|
||||
time.sleep(60 * 60 * 24)
|
||||
logging.info("Rescan triggered")
|
||||
logger.info("Rescan triggered")
|
||||
rescan()
|
||||
|
||||
|
||||
def scan_tracks():
|
||||
#Set the filename and open the file
|
||||
logger = logging.getLogger("conjurer_musician")
|
||||
|
||||
file = open(RADIOLOG_PATH,'r')
|
||||
|
||||
#Find the size of the file and move to the end
|
||||
st_results = os.stat(RADIOLOG_PATH)
|
||||
st_size = st_results[6]
|
||||
file.seek(st_size)
|
||||
|
||||
while 1:
|
||||
where = file.tell()
|
||||
line = file.readline()
|
||||
if not line:
|
||||
time.sleep(1)
|
||||
file.seek(where)
|
||||
else:
|
||||
if re.match(".*Prepared.*",line):
|
||||
result = None
|
||||
if re.match(".*jingles.*", line):
|
||||
logger.info("jingles")
|
||||
logger.info(line) # already has newline
|
||||
result = ["jingles", line]
|
||||
elif re.match(".*priority.*", line):
|
||||
logger.info("priority")
|
||||
logger.info(line) # already has newline
|
||||
result = ["priority", line]
|
||||
elif re.match(".*hit.*", line):
|
||||
logger.info("priority")
|
||||
logger.info(line) # already has newline
|
||||
result = ["hit", line]
|
||||
elif re.match(".*all_playlist.*", line):
|
||||
logger.info("all")
|
||||
logger.info(line) # already has newline
|
||||
result = ["all", line]
|
||||
elif re.match(".*request.*", line):
|
||||
logger.info("requests")
|
||||
logger.info(line) # already has newline
|
||||
result = ["requests", line]
|
||||
if result:
|
||||
returned = requests.post(
|
||||
f"{MAIN_BOT_ADDRESS}{MUSIC_TRACKER}",
|
||||
json=result,
|
||||
timeout=360)
|
||||
logger.info("SENT")
|
||||
logger.info(returned.status_code)
|
||||
logger.info("SEND CONFIRMED")
|
||||
time.sleep(0.1)
|
||||
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
|
||||
@@ -485,6 +544,7 @@ if __name__ == "__main__":
|
||||
# threads.append(threading.Thread(target=flask_debug))
|
||||
threads.append(threading.Thread(target=waitress_run))
|
||||
threads.append(threading.Thread(target=thread_rescan))
|
||||
threads.append(threading.Thread(target=scan_tracks))
|
||||
|
||||
for worker in threads:
|
||||
worker.start()
|
||||
|
||||
Reference in New Issue
Block a user