Spaces:
Running
Running
File size: 4,192 Bytes
66ca64a f02b1de 66ca64a f02b1de 66ca64a f02b1de 66ca64a f02b1de 3926f24 f02b1de 66ca64a f02b1de 3a32016 f02b1de 0d77910 f02b1de 3a32016 209c610 f302122 3a32016 f02b1de 66ca64a dc0c76c 7bf2558 8f9e879 7bf2558 9d20dbb 73c012d 9d20dbb 7bf2558 66ca64a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
import os
import time
import json
import random
import string
import sqlite3
import hashlib
import requests
# SQLite3 class
class EazySQLite3():
def __init__(self, db: str = "sqlite.db"):
self.connection = sqlite3.connect(db)
#self.cursor = sqlite_connection.cursor()
def query(self, query: str = ""):
cursor = self.connection.cursor()
try:
cursor.execute(query)
self.connection.commit()
try:
record = cursor.fetchall()
cursor.close()
return {"status": True, "details": record}
except:
try: cursor.close()
except: pass
finally: return {"status": True, "details": None}
except Exception as e: return {"status": False, "details": str(e)}
def close(self):
self.connection.close()
# Deleting audio
def deleteAudio(path: str, waitInSeconds: int = 0):
config = configFile()
os.system("rm {}/{}".format(config['static-path'], path))
# Config file reading
def configFile():
with open("/app/routes/config.json", "r") as file:
config = json.loads(file.read())
return config
# Signatures check!!! Wow!!!
def checkSignature(signature: str):
config = configFile()
db = EazySQLite3(config['signatures-db'])
query = db.query(f"SELECT * FROM `table` WHERE (`key` LIKE \"{signature}\" OR `key`=\"{signature}\") AND `endtime`>{time.time()}")
#if len(query['details']) == 0: return False
for row in query['details']:
if signature == row[0]:
newTTL = round(time.time())+86400
if newTTL > row[1]: db.query(f"UPDATE `table` SET `endtime`={newTTL} WHERE `key`=\"{signature}\"")
return True
return False
# Hook for yt-dlp
def thisIsHook(d):
try:
if d['total_bytes'] > 52428800:
print("\nFILE IS BIG, ABORT!!!\n")
raise Exception(f"Too long file (recieved {d['total_bytes']/1048576}MB, max is 50MB)")
except: pass
# Get variable from request
def getFromRequest(request, thing: str):
try:
if request.method == 'POST': reqthing = request.form[thing]
else: reqthing = request.args[thing]
return reqthing
except: return None
# Recognizing things
def req(access_token, meth, path, params, **kwargs):
full_url = "https://api.wit.ai" + path
headers = {
"authorization": "Bearer " + access_token,
"accept": "application/vnd.wit." + "20221114" + "+json",
}
headers.update(kwargs.pop("headers", {}))
rsp = requests.request(meth, full_url, headers=headers, params=params, **kwargs)
if rsp.status_code > 200:
raise Exception(
str(rsp.status_code)
+ " ("
+ rsp.reason
+ ")"
)
try: r = rsp.json()
except: r = rsp.text
if "error" in r:
raise Exception(json["error"])
return r
def dictation(access_token, audio_file, headers=None, verbose=None):
params = {}
headers = headers or {}
if verbose:
params["verbose"] = True
resp = req(
access_token,
"POST",
"/dictation",
params,
data=audio_file,
headers=headers,
)
return resp
def clean(text):
if text not in ['', None]:
return text.replace('?', '').replace('!', '').replace(';', '').replace('.', '').replace(',', '')
def delivering(text):
result = []
temp = None
toPush = None
tempLength = 0
for dirtLine in text.split('\n'):
if '"text"' in dirtLine:
line = dirtLine[11:-1]
if temp == None: temp = line
else:
if temp in line: toPush = line
else:
temp = line
result.append(toPush)
return ' '.join(result)
def devRaw(text):
result = []
for line in text.split('\n'): #line[11:-1]
if '"text"' in line:
result.append(line[11:-1])
return result
def randString(len: int = 16):
return ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(len)) |