La bibliothèque Image Extractor est utile pour aider l'utilisateur à télécharger tout type d'images à n'importe quelle date et heure sur Internet. Ces images seront téléchargées en tant que travail et informeront ensuite l'utilisateur que les images ont été téléchargées.
Il arrive souvent que nous ayons besoin de plusieurs images pour fonctionner. Nous pouvons considérer l'exemple tel que la formation du modèle d'apprentissage automatique sur les images de chat et de chien ou l'obtention de ces centaines de magnifiques fonds d'écran de bureau/mobile sur notre ordinateur portable en un seul clic. Dans un tel scénario, nous avons besoin de centaines d'images immédiatement. Ce problème peut être résolu à l'aide de la bibliothèque d'extraction d'images. Les cas d'utilisation suivants peuvent être mis en œuvre :
$ 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 ()
Et vous êtes prêt à partir ! À ce stade, à la date et à l’heure indiquées, le téléchargement des images commencera.
Vous voulez contribuer ? Super!
Pour corriger un bug ou améliorer un module existant, suivez ces étapes :
git checkout -b new-feature
git commit -am " New feature added "
git push origin new-feature
Si vous trouvez un bug ou avez une idée sur une nouvelle fonctionnalité qui peut être implémentée, vous pouvez soit ouvrir un problème ici, soit nous envoyer directement un e-mail à [email protected].
Veuillez inclure les exemples de requêtes et leurs résultats correspondants.
Client:
Serveur:
Si vous avez des commentaires, veuillez nous contacter à [email protected]
Réponse - Non. L'utilisateur peut simplement soumettre le travail et continuer à effectuer d'autres tâches. Une fois la tâche terminée, le fichier zip sera créé du côté de l'utilisateur.
Réponse - Jusqu'à 2 000 images peuvent être téléchargées en une seule fois. Si cela est nécessaire, nous pouvons simplement soumettre à nouveau la requête.
Documentation de conception de haut niveau
Documentation de conception de bas niveau
Filaire
Architecture
Licence MIT
Copyright (c) [2021] [Shreyas Parab]
L'autorisation est accordée par la présente, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), d'utiliser le Logiciel sans restriction, y compris, sans limitation, les droits d'utilisation, de copie, de modification, de fusion. , publier, distribuer, accorder des sous-licences et/ou vendre des copies du Logiciel, et permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :
L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du logiciel.
LE LOGICIEL EST FOURNI « EN L'ÉTAT », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS LIMITATION LES GARANTIES DE QUALITÉ MARCHANDE, D'ADAPTATION À UN USAGE PARTICULIER ET DE NON-VIOLATION. EN AUCUN CAS LES AUTEURS OU LES TITULAIRES DES DROITS D'AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGES OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION CONTRACTUELLE, DÉLIT OU AUTRE, DÉCOULANT DE, DE OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES TRANSACTIONS DANS LE LOGICIEL.