#!/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)