{"id":21476429,"url":"https://github.com/sparab16/imageextractor","last_synced_at":"2026-04-18T01:01:59.039Z","repository":{"id":57437817,"uuid":"405621583","full_name":"Sparab16/ImageExtractor","owner":"Sparab16","description":"Image Extractor library is useful to help the user download any kind of Images at any date and time over the internet. These images will get downloaded as a job and then let user know that the images have been downloaded.","archived":false,"fork":false,"pushed_at":"2021-09-14T05:53:19.000Z","size":1576,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-12T21:51:25.957Z","etag":null,"topics":["flask","pypi-package","python","scheduling","selenium"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/ImageExtractor/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sparab16.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-12T11:20:26.000Z","updated_at":"2022-04-22T21:53:25.000Z","dependencies_parsed_at":"2022-09-16T11:22:10.755Z","dependency_job_id":null,"html_url":"https://github.com/Sparab16/ImageExtractor","commit_stats":null,"previous_names":["sparab16/extractor"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Sparab16/ImageExtractor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sparab16%2FImageExtractor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sparab16%2FImageExtractor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sparab16%2FImageExtractor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sparab16%2FImageExtractor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sparab16","download_url":"https://codeload.github.com/Sparab16/ImageExtractor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sparab16%2FImageExtractor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31952208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"ssl_error","status_checked_at":"2026-04-18T00:39:20.671Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","pypi-package","python","scheduling","selenium"],"created_at":"2024-11-23T11:08:56.113Z","updated_at":"2026-04-18T01:01:58.979Z","avatar_url":"https://github.com/Sparab16.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Image Extractor\n\nImage Extractor library is useful to help the user download any kind of Images at any date and time over the internet. These images will get downloaded as a job and then let user know that the images have been downloaded.\n\n## Appendix\n\nThere are often a times, we need bunch images to work. We can consider the example such as training the Machine learning model over the Cat and Dog images or having those hundreds of beautiful desktop/mobile wallpaper on our laptop with just single click. In such scenario’s we need hundreds of images right away. This problem can be solved using the Image Extractor Library. The following use cases can be implemented: \n  \n## Features\n\n- Upto 2000 images on single click\n- Cross platform\n\n## Run Locally\n\n### To download the Image Extractor, either fork this\u003ca href= 'https://github.com/Sparab16/ImageExtractor'\u003e\u003c/a\u003e github repo or simply use Pypi via pip.\n\n```bash\n$ pip install ImageExtractor\n```\n\n### Code Demonstration\n\n```python\n\nfrom flask import Flask\nfrom flask_cors import cross_origin\nfrom ImageExtractor.Extractor import ImageExtractorClass\nimport datetime\nimport threading\nimport time\nimport os\n\napp = Flask(__name__)\n\n\nclass ThreadClass:\n\n    def __init__(self, req_id, time_to_sleep,):\n        self.req_id = str(req_id)\n        self.time_to_sleep = time_to_sleep\n        self.thread = threading.Thread(target = self.sleep)\n        self.thread.start()\n\n    def sleep(self):\n        try:\n            # Sleep for the given time\n            time.sleep(self.time_to_sleep)\n\n            # Wait until the zip file is not ready\n            while not os.path.exists(self.req_id + '_zipfile.zip'):\n                print('File not exists')\n                time.sleep(5)\n                \n            print('File exists now')\n            time.sleep(30)\n\n            # Deleting the file after 10 seconds\n            ImageExtractorClass.delete_file(self.req_id)\n            print('Files are deleted')\n        except Exception as e:\n            print(e)\n\n# Home page route\n@app.route('/', methods = ['GET'])\n@cross_origin()\ndef index():\n    try:\n\n        # Creating the object of ImageExtractorClass\n        image_extractor = ImageExtractorClass()\n\n        # Current datetime\n        current = datetime.datetime.now()\n        \n        # The scheduled datetime\n        date_inserted = current + datetime.timedelta(minutes=5)\n\n        date_str = str(date_inserted.year) + '-' + str(date_inserted.month) + '-' + str(date_inserted.day)\n        time_str = str(date_inserted.hour) + ':' + str(date_inserted.minute)\n\n        req_id, time_to_sleep = image_extractor.schedule_job('some_sample_query', date_str, time_str, 54)\n\n        # Time to sleep the thread\n        time_to_sleep = current + datetime.timedelta(seconds=time_to_sleep)\n        total_seconds_sleep = time_to_sleep - datetime.datetime.now()\n        \n        # Total seconds to sleep the thread\n        total_seconds_sleep = int(total_seconds_sleep.total_seconds())\n\n        ThreadClass(req_id, total_seconds_sleep)\n        \n        return '\u003ch1\u003e req id is ' + str(req_id) +' and time_to_sleep is ' + str(total_seconds_sleep) + ' seconds\u003c/h1\u003e'\n\n    except Exception as e:\n        return \"\u003ch1\u003e Error is \" + str(e) + \"\u003c/h1\u003e\"\n\nif __name__ == '__main__':\n    app.debug = True\n    app.run()\n\n```\nAnd you are ready to go! At this point, at the given date and time, the images will start downloading.\n  \n## Usage\n\n### Development\n\nWant to contribute? Great!\n\nTo fix a bug or enhance an existing module, follow these steps:\n\n\u003cli\u003e Fork the repo\n\u003cli\u003e Create a new branch\n\n```bash\n git checkout -b new-feature\n```\n\u003cli\u003e Make the appropriate changes in the file\n\u003cli\u003e Commit your changes\n\n```bash\ngit commit -am \"New feature added\"\n```\n\n\u003cli\u003e Push to the branch\n\n```bash\ngit push origin new-feature\n```\n\n\u003cli\u003e Create a pull request\n\n### Bug/Feature Request\nIf you find any bug or have some idea about a new feature that can be implemented, you can either open an issue \u003ca href='https://github.com/Sparab16/Extractor/issues' target=\"_blank\"\u003ehere\u003c/a\u003e or you can directly mail us at advance-image-downloader@gmail.com.\n\nPlease include the sample queries and their corresponding results.\n\n## Tech Stack\n\n### Project is built with:-\n\n**Client:** \n- \u003ca href='python.org' target=\"_blank\"\u003ePython \u003c/a\u003e\n\u003c/a\u003e\n  \n**Server:** \n- \u003ca href='https://flask.palletsprojects.com/en/2.0.x/' target=\"_blank\"\u003eFlask\u003c/a\u003e\n- \u003ca href='https://www.selenium.dev/' target=\"_blank\"\u003eSelenium\u003c/a\u003e\n\n\n  \n## Authors\n\n- [@Shreyas](https://github.com/Sparab16)\n- [@Harshad](https://github.com/harshad5498)\n  \n## Optimizations\n\n\u003cli\u003eSince the upto 2000 images are supported the filesize can get very large. That's why we have used the zip functionality to reduce the file size.\u003c/li\u003e\n\u003cli\u003eIt is scalable as many users can request for images at the same time.\u003c/li\u003e\n\n\n## Feedback\n\nIf you have any feedback, please reach out to us at advance-image-downloader@gmail.com\n\n  \n## FAQ\n\n#### Do user have to wait until images get downloaded?\n\nAns - No. User can simply submit the job and continue doing other tasks. Once the task ends zip file will get created at the user's end.\n\n#### How much images can be downloaded at single go?\n\nAns - Upto 2000 images can be downloaded at single time. If more required we can simple submit the query again.\n\n\n## Documentation\n\n[High level design documentation](Docs/Advance_Image_Generator-HLD.pdf)\u003cbr\u003e\n\n[Low level design documentation](Docs/Advance_Image_Generator-LLD.pdf)\u003cbr\u003e\n\n[Wireframe](Docs/Advance-Image-Downloader_Wireframe.pdf)\u003cbr\u003e\n\n[Architecture](Docs/Advance_Image_Downloader-Architecture.pdf)\n\n## License\nMIT License\n\nCopyright (c) [2021] [Shreyas Parab]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n### Thanks for reading out till the end. Hello, I'm Shreyas! 👨🏼‍💻\n  \n## 🔗 Links\n[![linkedin](https://img.shields.io/badge/linkedin-0A66C2?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white)](https://www.linkedin.com/in/shrey16/)\n\n  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsparab16%2Fimageextractor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsparab16%2Fimageextractor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsparab16%2Fimageextractor/lists"}