Spaces:
Running
Running
| #!/usr/bin/env python3 | |
| default_server='uq' | |
| uq_url='https://uqload.is/embed-' | |
| import requests, json, os | |
| from sys import argv as argv | |
| from glob import glob as glob | |
| from requests_toolbelt.multipart import encoder | |
| import subprocess | |
| from bs4 import BeautifulSoup as bs4 | |
| import json | |
| def upload_file(alias, server, key_name, key_value, file): | |
| curl_command=['curl', '-k', '-s', '-X', 'POST', '-F', f"{key_name}={key_value}", '-F', f'file=@"{file}"', server] | |
| process = subprocess.Popen(curl_command,stdout=subprocess.PIPE) | |
| while True: | |
| output = process.stdout.readline() | |
| if process.poll() is not None and output == b'': | |
| break | |
| if output: | |
| if alias=='uq': | |
| url=uq_url+bs4(output.decode('UTF-8').strip(),'html.parser').find('textarea',{'name':"fn"}).text+'.html' | |
| retval = process.poll() | |
| return(retval,url) | |
| servers={ | |
| 'uq': { | |
| 'name':'uqload', | |
| 'key_name':'api_key', | |
| 'key_value':os.environ.get('UQ_KEY', None), | |
| 'alias':'uq' | |
| } | |
| } | |
| servers['uq']['server_string']=f"https://uqload.is/api/upload/server?key={servers['uq']['key_value']}" | |
| parametros=list(set(argv[1:])) | |
| asubir=[] | |
| videos=[] | |
| nombres=parametros.copy() | |
| for parametro in parametros: | |
| if parametro.lower() in servers: | |
| asubir.append(servers[parametro.lower()]) | |
| nombres.remove(parametro) | |
| if not asubir: | |
| asubir.append(servers[default_server]) | |
| else: | |
| servidores_encontrados='' | |
| for servidor_encontrado in asubir: | |
| servidores_encontrados=servidores_encontrados+servidor_encontrado['name']+', ' | |
| if not nombres: | |
| exit(1) | |
| for nombre in nombres: | |
| if os.path.isfile(nombre): | |
| videos.append(nombre) | |
| else: | |
| archivos=glob(nombre) | |
| for archivo in archivos: | |
| if not archivo in videos: | |
| videos.append(archivo) | |
| videos.sort() | |
| if not asubir: | |
| exit(1) | |
| if not videos: | |
| exit(1) | |
| for servidor in asubir: | |
| for video in videos: | |
| try: | |
| server='' | |
| response=requests.get(servidor['server_string']) | |
| myjson=json.loads(response.text) | |
| if myjson['status']==200: | |
| server=myjson['result'] | |
| (retorno,url)=upload_file(servidor['alias'], server, servidor['key_name'], servidor['key_value'], video) | |
| if retorno==0: | |
| nombre='.'.join(video.split('.')[:-1]).split('/')[-1] | |
| print(f"{url} | {nombre}") | |
| except: | |
| pass | |
| exit(0) |