#!/usr/bin/python import os import subprocess import requests def filechecksum(aaxfile): 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') return hashsum def writeauthcode(hashsum): try: file = open(".authcode", "a") file.write(hashsum + os.linesep) except (IOError, OSError) as e: print("Can't write to .authcode") return 1 finally: file.close() return 0 def readauthcode(): try: if not os.path.isfile(".authcode"): open (".authcode", "w").close() with open(".authcode") as f: hashes = f.read().split() except (IOError, OSError) as e: print("Can't read in .authcode") return 1 finally: f.close() return hashes def newauthcode(checksum): r = requests.post("http://x86-docker01.darkurthe.net:8080/function/checkkey", checksum ) if r.status_code == 200: response = str(r.text) return response.strip() else: return 1 def checkagainstexisting(abytes,aaxfile): ret = subprocess.Popen(["ffprobe", "-activation_bytes", abytes, "-hide_banner", os.path.abspath(aaxfile)], stderr=subprocess.PIPE) grep = subprocess.Popen(["grep", "mismatch", "-c"], stdin=ret.stderr, stdout=subprocess.PIPE) works,out = grep.communicate() return works.strip('\n') def getcorrectkey(aaxfile): authcodes = readauthcode() abyte = '' for x in authcodes: if checkagainstexisting(x, aaxfile) == '0': abyte = x return abyte if abyte == '': csum = filechecksum(aaxfile) abyte = newauthcode(csum) writeauthcode(abyte) return abyte if __name__ == "__main__": import sys if len(sys.argv) >= 2: args = sys.argv[1] else: print("I need an file name to lookup") sys.exit(1) checksum = filechecksum(args) out = newauthcode(checksum.strip()) if out is not None: print(sys.argv[1], "Auth code is:", out) else: print(sys.argv[1], "no Authcode found")