| | |
| | | #!/usr/bin/env -S python -u |
| | | import argparse |
| | | import os |
| | | import glob |
| | | import subprocess |
| | | import json |
| | | import re |
| | |
| | | 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 |
| | | try: |
| | | ret = subprocess.run(["ffprobe", "-v", "info", "-hide_banner", |
| | | "-show_format", "-show_chapters", |
| | | "-print_format", "json", |
| | |
| | | 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(): |
| | |
| | | |
| | | 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) |
| | | |
| | | |
| | |
| | | except requests.exceptions.HTTPError as err: |
| | | raise err |
| | | |
| | | |
| | | def findalbumbyname_stub(album): |
| | | return False |
| | | |
| | |
| | | if args.filename.find("aax"): |
| | | rfile = args.filename |
| | | metadata = getmetadata(rfile) |
| | | if metadata == "None": |
| | | sendtodiscord(rfile) |
| | | album = getmetadatatags('album') |
| | | # See if we got it already |
| | | if not findalbumbyname(album): |
| | |
| | | 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) |