From 498dcd887df4a6affd800b78bd2ccae3bb52fb19 Mon Sep 17 00:00:00 2001
From: Chris Pomeroy <chris.pomeroy@hotmail.com>
Date: Sun, 03 Dec 2023 04:40:37 +0000
Subject: [PATCH] Added error checking, and motification of failure to discord
---
aaxConvert.py | 99 +++++++++++++++++++++++++++++--------------------
1 files changed, 59 insertions(+), 40 deletions(-)
diff --git a/aaxConvert.py b/aaxConvert.py
index a022639..459398c 100755
--- a/aaxConvert.py
+++ b/aaxConvert.py
@@ -1,7 +1,6 @@
#!/usr/bin/env -S python -u
import argparse
import os
-import glob
import subprocess
import json
import re
@@ -45,17 +44,34 @@
stats = "-nostats"
+def sendtodiscord(audiofile):
+ webhookurl = "https://discord.com/api/webhooks/764667082272145418/vorf2JdFG47WAmQP3yZhgHH12wW_qUXG0bS0SG8INLYVwU0HcDFajq9doaDgi_hnI00-" # noqa E501
+ data = {
+ "content": f"There was a problem with file{audiofile}",
+ "username": "Captain Audio",
+ }
+
+ with requests.Session() as r:
+ resp = r.post(webhookurl, json=data)
+ if resp.status_code == 204:
+ return True
+
+
def getmetadata(aaxfile):
# Returns the metadata from an aax file
- ret = subprocess.run(["ffprobe", "-v", "info", "-hide_banner",
- "-show_format", "-show_chapters",
- "-print_format", "json",
- os.path.abspath(aaxfile)], capture_output=True)
+ try:
+ ret = subprocess.run(["ffprobe", "-v", "info", "-hide_banner",
+ "-show_format", "-show_chapters",
+ "-print_format", "json",
+ os.path.abspath(aaxfile)], capture_output=True)
- mdata = json.loads(ret.stdout)
- aret = ret.stderr.decode().split('\n')[0]
- mdata["checksum"] = aret.split()[-1]
- return mdata
+ mdata = json.loads(ret.stdout)
+ aret = ret.stderr.decode().split('\n')[0]
+ mdata["checksum"] = aret.split()[-1]
+ return mdata
+ except Exception as err:
+ sys.stderr.write("Error processing metadata: {}\n".format(err))
+ return "None"
def getmetabitrate():
@@ -78,8 +94,7 @@
def normalize_data(data):
# Return a normalized title
- data = data.replace(" ", "_")
- pattern = re.compile('\W')
+ pattern = re.compile('[^\p{Latin}]', u'', data)
return re.sub(pattern, '', data)
@@ -170,6 +185,7 @@
except requests.exceptions.HTTPError as err:
raise err
+
def findalbumbyname_stub(album):
return False
@@ -177,33 +193,36 @@
if args.filename.find("aax"):
rfile = args.filename
metadata = getmetadata(rfile)
- album = getmetadatatags('album')
- # See if we got it already
- if not findalbumbyname(album):
- artist = normalize_data(getmetadatatags('artist'))
- title = normalize_data(getmetadatatags('title'))
- act_byte = getcorrectkey()
- if act_byte is None or act_byte == '':
- sys.exit(f"Can't continue with this file {rfile}")
+ if metadata == "None":
+ sendtodiscord(rfile)
+ album = getmetadatatags('album')
+ # See if we got it already
+ if not findalbumbyname(album):
+ artist = normalize_data(getmetadatatags('artist'))
+ title = normalize_data(getmetadatatags('title'))
+ act_byte = getcorrectkey()
+ if act_byte is None or act_byte == '':
+ sendtodiscord(rfile)
+ sys.exit(f"Can't continue with this file {rfile}")
+ else:
+ ddir = "%s/%s/%s" % (path, artist, title)
+ single_file_path = "/processing/%s.mp3" % (title)
+ if not os.path.exists(ddir):
+ os.makedirs(ddir)
+ print(ddir)
+ reencode(rfile, single_file_path)
+ if mode == 'chapter':
+ chapter = 0
+ numchapters = getchaptercount()
+ while (numchapters > 0):
+ cstart = getchaptermetadata(chapter, 'start_time')
+ cend = getchaptermetadata(chapter, 'end_time')
+ chapter += 1
+ numchapters -= 1
+ schap = str(chapter).zfill(2)
+ movetochapters(single_file_path, ddir, schap, title,
+ cstart, cend)
+ os.remove(single_file_path)
+ getcoverart(rfile, ddir)
else:
- ddir = "%s/%s/%s" % (path, artist, title)
- single_file_path = "/processing/%s.mp3" % (title)
- if not os.path.exists(ddir):
- os.makedirs(ddir)
- print(ddir)
- reencode(rfile, single_file_path)
- if mode == 'chapter':
- chapter = 0
- numchapters = getchaptercount()
- while (numchapters > 0):
- cstart = getchaptermetadata(chapter, 'start_time')
- cend = getchaptermetadata(chapter, 'end_time')
- chapter += 1
- numchapters -= 1
- schap = str(chapter).zfill(2)
- movetochapters(single_file_path, ddir, schap, title,
- cstart, cend)
- os.remove(single_file_path)
- getcoverart(rfile, ddir)
- else:
- print('We have that book already')
+ print('We have that book already')
--
Gitblit v1.10.0