Pustaka Image Extractor berguna untuk membantu pengguna mengunduh segala jenis Gambar kapan saja dan kapan saja melalui internet. Gambar-gambar ini akan diunduh sebagai pekerjaan dan kemudian memberi tahu pengguna bahwa gambar tersebut telah diunduh.
Seringkali kita membutuhkan banyak gambar untuk berfungsi. Kita dapat mempertimbangkan contoh seperti melatih model Machine learning pada gambar Kucing dan Anjing atau memiliki ratusan wallpaper desktop/seluler yang indah di laptop kita hanya dengan satu klik. Dalam skenario seperti itu kita memerlukan ratusan gambar segera. Masalah ini dapat diatasi dengan menggunakan Image Extractor Library. Kasus penggunaan berikut dapat diimplementasikan:
$ 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 ()
Dan Anda siap berangkat! Pada titik ini, pada tanggal dan waktu yang ditentukan, gambar akan mulai diunduh.
Ingin berkontribusi? Besar!
Untuk memperbaiki bug atau menyempurnakan modul yang ada, ikuti langkah-langkah berikut:
git checkout -b new-feature
git commit -am " New feature added "
git push origin new-feature
Jika Anda menemukan bug atau memiliki ide tentang fitur baru yang dapat diterapkan, Anda dapat membuka masalahnya di sini atau langsung mengirimkan email kepada kami di [email protected].
Harap sertakan contoh kueri dan hasil terkaitnya.
Klien:
pelayan:
Jika Anda memiliki masukan, silakan hubungi kami di [email protected]
Jawab - Tidak. Pengguna cukup mengirimkan pekerjaan dan terus melakukan tugas lainnya. Setelah tugas berakhir, file zip akan dibuat di pihak pengguna.
Jawab - Hingga 2000 gambar dapat diunduh sekaligus. Jika diperlukan lebih banyak, kami dapat dengan mudah mengirimkan kueri lagi.
Dokumentasi desain tingkat tinggi
Dokumentasi desain tingkat rendah
Bingkai gambar
Arsitektur
Lisensi MIT
Hak Cipta (c) [2021] [Shreyas Parab]
Izin dengan ini diberikan, secara gratis, kepada siapa pun yang memperoleh salinan perangkat lunak ini dan file dokumentasi terkait ("Perangkat Lunak"), untuk menggunakan Perangkat Lunak tanpa batasan, termasuk namun tidak terbatas pada hak untuk menggunakan, menyalin, memodifikasi, menggabungkan , mempublikasikan, mendistribusikan, mensublisensikan, dan/atau menjual salinan Perangkat Lunak, dan mengizinkan orang yang menerima Perangkat Lunak untuk melakukan hal tersebut, dengan tunduk pada ketentuan berikut:
Pemberitahuan hak cipta di atas dan pemberitahuan izin ini akan disertakan dalam semua salinan atau sebagian besar Perangkat Lunak.
PERANGKAT LUNAK INI DISEDIAKAN "APA ADANYA", TANPA JAMINAN APA PUN, TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN KELAYAKAN UNTUK DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, DAN TIDAK ADA PELANGGARAN. DALAM KEADAAN APA PUN PENULIS ATAU PEMEGANG HAK CIPTA TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN, ATAU TANGGUNG JAWAB LAINNYA, BAIK DALAM TINDAKAN KONTRAK, HUKUM ATAU LAINNYA, YANG TIMBUL DARI, ATAU SEHUBUNGAN DENGAN PERANGKAT LUNAK ATAU PENGGUNAAN ATAU HAL-HAL LAIN DALAM PERANGKAT LUNAK.