La biblioteca Image Extractor es útil para ayudar al usuario a descargar cualquier tipo de imágenes en cualquier fecha y hora a través de Internet. Estas imágenes se descargarán como un trabajo y luego le informarán al usuario que se han descargado.
A menudo hay ocasiones en las que necesitamos un montón de imágenes para funcionar. Podemos considerar ejemplos como entrenar el modelo de aprendizaje automático sobre las imágenes de perros y gatos o tener esos cientos de hermosos fondos de escritorio/móviles en nuestra computadora portátil con un solo clic. En tales escenarios necesitamos cientos de imágenes de inmediato. Este problema se puede resolver utilizando la biblioteca Image Extractor. Se pueden implementar los siguientes casos de uso:
$ pip install ImageExtractor
from flask import Flask
from flask_cors import cross_origin
from ImageExtractor . Extractor import ImageExtractor Class
import datetime
import threading
import time
import os
app = Flask ( __name__ )
class ThreadClass :
def __init__ ( self , req_id , time_to_sleep ,):
self . req_id = str ( req_id )
self . time_to_sleep = time_to_sleep
self . thread = threading . Thread ( target = self . sleep )
self . thread . start ()
def sleep ( self ):
try :
# Sleep for the given time
time . sleep ( self . time_to_sleep )
# Wait until the zip file is not ready
while not os . path . exists ( self . req_id + '_zipfile.zip' ):
print ( 'File not exists' )
time . sleep ( 5 )
print ( 'File exists now' )
time . sleep ( 30 )
# Deleting the file after 10 seconds
ImageExtractor Class . delete_file ( self . req_id )
print ( 'Files are deleted' )
except Exception as e :
print ( e )
# Home page route
@ app . route ( '/' , methods = [ 'GET' ])
@ cross_origin ()
def index ():
try :
# Creating the object of ImageExtractor Class
image_extractor = ImageExtractor Class ()
# Current datetime
current = datetime . datetime . now ()
# The scheduled datetime
date_inserted = current + datetime . timedelta ( minutes = 5 )
date_str = str ( date_inserted . year ) + '-' + str ( date_inserted . month ) + '-' + str ( date_inserted . day )
time_str = str ( date_inserted . hour ) + ':' + str ( date_inserted . minute )
req_id , time_to_sleep = image_extractor . schedule_job ( 'some_sample_query' , date_str , time_str , 54 )
# Time to sleep the thread
time_to_sleep = current + datetime . timedelta ( seconds = time_to_sleep )
total_seconds_sleep = time_to_sleep - datetime . datetime . now ()
# Total seconds to sleep the thread
total_seconds_sleep = int ( total_seconds_sleep . total_seconds ())
ThreadClass ( req_id , total_seconds_sleep )
return '<h1> req id is ' + str ( req_id ) + ' and time_to_sleep is ' + str ( total_seconds_sleep ) + ' seconds</h1>'
except Exception as e :
return "<h1> Error is " + str ( e ) + "</h1>"
if __name__ == '__main__' :
app . debug = True
app . run ()
¡Y estás listo para partir! En este punto, en la fecha y hora indicadas, las imágenes comenzarán a descargarse.
¿Quieres contribuir? ¡Excelente!
Para corregir un error o mejorar un módulo existente, siga estos pasos:
git checkout -b new-feature
git commit -am " New feature added "
git push origin new-feature
Si encuentra algún error o tiene alguna idea sobre una nueva característica que se puede implementar, puede abrir un problema aquí o enviarnos un correo electrónico directamente a [email protected].
Incluya las consultas de muestra y sus resultados correspondientes.
Cliente:
Servidor:
Si tiene algún comentario, comuníquese con nosotros en [email protected]
Respuesta: No. El usuario puede simplemente enviar el trabajo y continuar realizando otras tareas. Una vez que finalice la tarea, se creará un archivo zip al final del usuario.
Respuesta: Se pueden descargar hasta 2000 imágenes a la vez. Si se requieren más, podemos simplemente enviar la consulta nuevamente.
Documentación de diseño de alto nivel.
Documentación de diseño de bajo nivel.
estructura alámbrica
Arquitectura
Licencia MIT
Copyright (c) [2021] [Shreyas Parab]
Por el presente se otorga permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para operar con el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión. , publicar, distribuir, sublicenciar y/o vender copias del Software, y permitir que las personas a quienes se les proporciona el Software lo hagan, sujeto a las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, PERO NO LIMITADO A, LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGÚN RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, FUERA DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS NEGOCIOS EN EL SOFTWARE.