Chris Pomeroy
2021-04-18 7b30170a5ef8bc9061886a9ae597de9930e6dd1b
aaxConvert.py
@@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/local/bin/python -u
import argparse
import os
import glob
@@ -54,18 +54,18 @@
    return bit_rate[:2]
def getmetacopyright():
    copyright = unicodedata.normalize('NFKD', metadata['format']['tag']['copyright']).encode('ascii','ignore')
    copyright = unicodedata.normalize('NFKD', metadata['format']['tags']['copyright']).encode('ascii','ignore')
    return copyright
def getmetadatatags(key):
    # get specific data
    tag = cleantag(metadata['format']['tags'][key])
# get specific data
    tag = metadata['format']['tags'][key]
    return tag
def reencode(aaxfile, outpath):
    # decrypt and reencode to mp3
# decrypt and reencode to mp3
    command = ("ffmpeg -loglevel error {} -activation_bytes {} -i {} -vn -codec:a libmp3lame -ab {}k -map_metadata -1 "
               "-metadata \"title={}\" -metadata 'artist={}' -metadata 'album_artist={}' -metadata \"album={}\" -metadata 'date={}' "
               "-metadata track=1/1 -metadata 'genre={}' -metadata 'copyright={}' \"{}\" " ).format(stats, act_byte,aaxfile,getmetabitrate(),
@@ -90,19 +90,19 @@
def getchaptercount():
    # Get the number of chapters
# Get the number of chapters
    ccount = metadata['chapters']
    return len(ccount)
def getchaptermetadata(cid, key):
    # get the Chapter metadata
# get the Chapter metadata
    for i in metadata['chapters']:
        if i['id'] == cid:
            return i[key]
def movetochapters(path, outpath, chapter, title, start,end):
    # Creating individual chapters
# Creating individual chapters
    outfile = "{}/Ch - {} {}.mp3".format(outpath, chapter, title)
    command = "ffmpeg -loglevel error {} -i \"{}\" -ss {} -to {} -codec:a copy -metadata 'track={}' \"{}\"".format(stats, path,
@@ -125,7 +125,7 @@
def getcoverart(path,outpath):
    # Pull the coverart from the file
# Pull the coverart from the file
    command = "ffmpeg -loglevel error -activation_bytes {} -i \"{}\" -an -codec:v copy \"{}/cover.jpg\"".format(act_byte,
                                                                                                               path, outpath)
    if args.verbose:
@@ -134,19 +134,21 @@
    return
def filechecksum(aaxfile):
#The the hex checksum from the file
    ret = subprocess.Popen(["ffprobe", "-v", "info", "-hide_banner", os.path.abspath(aaxfile)], stderr=subprocess.PIPE)
    grep = subprocess.Popen(["grep", "checksum"], stdin=ret.stderr, stdout=subprocess.PIPE)
    awk = subprocess.Popen(["awk", " { print $8 } "], stdin=grep.stdout, stdout=subprocess.PIPE)
    hashsum,out = awk.communicate()
    hashsum = hashsum.strip('\n')
    hashsum = str(hashsum).strip('\n')
    return hashsum
def getcorrectkey(aaxfile):
#request the key for the checksum
    hex = filechecksum(aaxfile)
    payload = hex
    recovery = 3
    while recovery != 0:
      r = requests.post('http://x86-docker01:8080/function/checkkey', payload, verify=False, timeout=None)
      r = requests.post('http://prod-faas-gw.darkurthe.net:8080/function/checkkey', payload, verify=False, timeout=None)
      if r.status_code == 200:
          key = r.text
          recovery = 0
@@ -154,7 +156,7 @@
      else: 
          print('Checkkey function is down please wait')
          recovery = recovery - 1
          sleep(5)
          sleep(15)
for rfile in glob.glob(args.filename):
    if rfile.find("aax") != -1 and os.path.isfile(rfile):
@@ -183,4 +185,6 @@
                    movetochapters(single_file_path, ddir, schap, title, cstart,cend)
                os.remove(single_file_path)
            getcoverart(rfile, ddir)
        else:
            print('We have that book already')