AnnasBlackHat's picture
Update app.py
ab7a2d4
raw
history blame contribute delete
No virus
1.93 kB
from cProfile import label
from distutils.log import debug
from random import choices
import gradio as gr
import re
import requests
import os
import shutil
import gofile
import json
import time
try: os.mkdir('images')
except: print('images dir might already exist...')
def download_local(url):
resp = requests.get(url, allow_redirects=True)
filename, file_extension = os.path.splitext(url)
filename = os.path.basename(url)
if file_extension == '':
filename = filename+'.jpg'
filename = 'images/{}_{}'.format(int(time.time()), filename)
with open(filename, 'wb') as handler:
handler.write(resp.content)
return filename
def download(text, is_upload):
pattern = '(?:(?:https?|ftp):\/\/)?[\w/\-?=%.]+\.[\w/\-&?=%.]+'
print(text)
print('upload?: ',is_upload)
urls = re.findall(pattern, text)
print(f'{len(urls)} urls')
if len(urls) == 0 :
return 'No Url Found'
err_msgs = []
#downloading all files
print('downloading...')
for i, url in enumerate(urls):
try:
download_local(url)
if i % int(len(urls) * 0.1) == 0:
print(f'>>> {i} files downloaded')
except Exception as e :
err_msgs.append(f'error downloading: {url} - {str(e)}')
#zipping
print('zipping images...')
shutil.make_archive('images', 'zip', 'images')
result = '{} link found, {}'.format(len(urls), " ,\n ".join(err_msgs))
if is_upload == 'yes':
print('uploading...')
download_links = gofile.Gofile().upload(["images.zip"])
result += f'download link : {" ".join(download_links)}'
return "images.zip", result
iface = gr.Interface(fn=download,
inputs=["text",gr.Radio(choices=['yes','no'], label='Upload to Gofile? (slow process)')],
outputs=["file", "text"])
iface.launch(debug=True)