{"id":25103224,"url":"https://github.com/John0n1/zippy","last_synced_at":"2025-10-22T17:31:11.686Z","repository":{"id":274806993,"uuid":"924129481","full_name":"John0n1/ZIPsnipp","owner":"John0n1","description":"Repair/Recovery toolkit for handling various archive file formats.","archived":false,"fork":false,"pushed_at":"2025-01-31T05:05:56.000Z","size":35,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T06:18:23.831Z","etag":null,"topics":["archive","archive-extractor","archives","gzip","recovery","repair-tool","tar","targz","tgz","zip","zip-extraction","zipfile"],"latest_commit_sha":null,"homepage":"https://github.com/John0n1/ZIPsnip","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/John0n1.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-29T13:22:08.000Z","updated_at":"2025-01-31T05:05:51.000Z","dependencies_parsed_at":"2025-01-31T06:28:28.008Z","dependency_job_id":null,"html_url":"https://github.com/John0n1/ZIPsnipp","commit_stats":null,"previous_names":["john0n1/zipsnip","john0n1/zipsnipp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/John0n1%2FZIPsnipp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/John0n1%2FZIPsnipp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/John0n1%2FZIPsnipp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/John0n1%2FZIPsnipp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/John0n1","download_url":"https://codeload.github.com/John0n1/ZIPsnipp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237724058,"owners_count":19356237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["archive","archive-extractor","archives","gzip","recovery","repair-tool","tar","targz","tgz","zip","zip-extraction","zipfile"],"created_at":"2025-02-07T21:39:45.384Z","updated_at":"2025-10-22T17:31:11.303Z","avatar_url":"https://github.com/John0n1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZIPsnipp - Your Swiss Army Knife for Archive Files\n```\n▗▄▄▄▄▖▗▄▄▄▖▗▄▄▖  ▗▄▄▖▗▖  ▗▖▗▄▄▄▖▗▄▄▖ ▗▄▄▖ \n   ▗▞▘  █  ▐▌ ▐▌▐▌   ▐▛▚▖▐▌  █  ▐▌ ▐▌▐▌ ▐▌\n ▗▞▘    █  ▐▛▀▘  ▝▀▚▖▐▌ ▝▜▌  █  ▐▛▀▘ ▐▛▀▘ \n▐▙▄▄▄▖▗▄█▄▖▐▌   ▗▄▄▞▘▐▌  ▐▌▗▄█▄▖▐▌   ▐▌   \n```\n\nZIPsnipp is a command-line utility written in Python designed to be your comprehensive toolkit for handling various archive file formats. It aims to provide a user-friendly and powerful interface for common archive operations, including extraction, creation, listing, testing, password management, and even experimental repair and salvage capabilities.\n\n## Features\n\n* **Extract Archives**: Easily extract the contents of `.zip`, `.tar`, `.tar.gz`, `.tgz`, and `.gz` archives\n* **Create Archives**: Generate new `.zip`, `.tar`, `.tar.gz`, and `.gz` archives from files and directories\n* **List Archive Contents**: Quickly view the files and directories within an archive\n* **Test Archive Integrity**: Check for errors and corruption in your archive files\n* **Unlock Password-Protected ZIPs**: Attempt to crack password-protected ZIP archives using dictionary attacks\n* **Lock Archives (ZIP)**: Create password-protected `.zip` archives and add files during the locking process\n* **Experimental Archive Repair**: Includes experimental features to attempt repair of corrupted `.zip` and `.tar` archives, and basic salvage for `.gzip`\n  * **ZIP Repair Modes**:\n    * `remove_corrupted` (default): Attempts to remove corrupted files from ZIP archives\n    * `scan_only`: Only scans and reports corrupted files in ZIP archives without repair actions\n  * **Salvage Extraction**: Even if repair fails, ZIPsnipp attempts to extract any salvageable content from corrupted archives\n* **User-Friendly CLI**: Clean and intuitive command-line interface with options and help messages\n* **Loading Animation**: Provides visual feedback during operations (can be disabled)\n* **Verbose Output**: Option for detailed output for debugging and advanced users\n* **Interactive Prompts**: Prompts for missing arguments such as output directory and files to add\n* **Configuration Management**: Save and load configurations for common operations\n* **Environment Variables**: Support for environment variables to set default values for common options\n* **Auto-Completion**: Auto-completion for commands and options\n\n## Supported Archive Types\n\n* `.zip`\n* `.tar`\n* `.tar.gz` (`.tgz`)\n* `.gz` (gzip compressed single files)\n\n## Installation\n\n1. **Prerequisites**: Ensure you have Python 3.x installed on your system\n2. **Download ZIPsnipp**: Download the `ZIPsnipp.py` script from this repository\n3. **Make Executable (Linux/macOS)**:\n    ```bash\n    chmod +x ZIPsnipp.py\n    ```\n4. **Run from anywhere (Optional - Linux/macOS)**: Place `ZIPsnipp.py` in a directory in your system's `PATH` (e.g., `/usr/local/bin/`) to run it directly as `ZIPsnipp` from any terminal location\n\n## Usage\n\nRun ZIPsnipp from your terminal using the following command structure:\n\n```bash\n./ZIPsnipp.py \u003ccommand\u003e [archive_file] [options]\n```\n\n### Available Commands\n\n* `extract`: Extract archive contents\n* `create`: Create a new archive\n* `list`: List contents of an archive\n* `test`: Test archive integrity\n* `unlock`: Attempt to unlock a password-protected archive\n* `lock`: Create a password-protected archive (and add files)\n* `repair`: [Experimental] Attempt to repair a corrupted archive\n* `help`: Display help message\n* `version`: Show script version\n\n### Examples\n\n```bash\n# Extract a ZIP archive\n./ZIPsnipp.py extract myarchive.zip\n\n# Extract to specific directory\n./ZIPsnipp.py extract myarchive.tar.gz -o extracted_files\n\n# Create ZIP archive\n./ZIPsnipp.py create new_archive.zip -f file1.txt,directory1,image.jpg\n\n# Create password-protected ZIP\n./ZIPsnipp.py lock secure_archive.zip -f important_documents,photos -p MySecretPassword\n\n# Unlock password-protected ZIP\n./ZIPsnipp.py unlock protected.zip -d passwords.txt\n\n# Repair corrupted ZIP\n./ZIPsnipp.py repair corrupted.zip --repair-mode remove_corrupted\n\n# List contents\n./ZIPsnipp.py list myarchive.tar\n\n# Test integrity\n./ZIPsnipp.py test archive_to_test.zip\n\n# Show help\n./ZIPsnipp.py help\n\n# Show version\n./ZIPsnipp.py version\n```\n\n### Options\n\n| Option | Short | Description | Commands |\n|--------|-------|-------------|----------|\n| `--output \u003cpath\u003e` | `-o` | Output directory for extraction | `extract` |\n| `--password \u003cpassword\u003e` | `-p` | Password for operations | `extract`, `lock`, `unlock` |\n| `--dictionary \u003cfile\u003e` | `-d` | Dictionary file for password cracking | `unlock` |\n| `--files \u003cfile1,file2,...\u003e` | `-f` | Files to add | `create`, `lock` |\n| `--type \u003ctype\u003e` | | Force archive type | `create`, `lock` |\n| `--repair-mode \u003cmode\u003e` | | Repair mode for ZIP archives | `repair` |\n| `--verbose` | | Enable verbose output | All |\n| `--no-animation` | | Disable loading animation | All |\n| `--save-config \u003cfile\u003e` | | Save current settings to a configuration file | All |\n| `--load-config \u003cfile\u003e` | | Load settings from a configuration file | All |\n\n## Quick Start Guide\n\n1. **Extracting an Archive**:\n    ```bash\n    ./ZIPsnipp.py extract myarchive.zip\n    ```\n\n2. **Creating a New Archive**:\n    ```bash\n    ./ZIPsnipp.py create new_archive.zip -f file1.txt,directory1,image.jpg\n    ```\n\n3. **Creating a Password-Protected Archive**:\n    ```bash\n    ./ZIPsnipp.py lock secure_archive.zip -f important_documents,photos -p MySecretPassword\n    ```\n\n4. **Unlocking a Password-Protected Archive**:\n    ```bash\n    ./ZIPsnipp.py unlock protected.zip -d passwords.txt\n    ```\n\n5. **Repairing a Corrupted Archive**:\n    ```bash\n    ./ZIPsnipp.py repair corrupted.zip --repair-mode remove_corrupted\n    ```\n\n## Common Errors and Troubleshooting\n\n1. **Error: Archive file not found**:\n    * Ensure the archive file path is correct and the file exists.\n    * Use absolute paths if relative paths are causing issues.\n\n2. **Error: Unsupported archive type**:\n    * Check if the archive type is supported by ZIPsnipp.\n    * Use the `--type` option to specify the archive type if the extension is ambiguous.\n\n3. **Error: Incorrect password for ZIP archive**:\n    * Verify the password provided is correct.\n    * Use a dictionary file with the `unlock` command to attempt password recovery.\n\n4. **Error: No files specified to add to the archive**:\n    * Provide a comma-separated list of files and directories to add using the `--files` option.\n    * Ensure the paths are correct and the files/directories exist.\n\n5. **Error: Extraction failed**:\n    * Check if the archive is corrupted or password-protected.\n    * Use the `repair` command to attempt to fix corrupted archives.\n\n## Notes and Limitations\n\n* Password dictionary required for unlock command\n* Password recovery uses brute-force/dictionary attack\n* Archive repair is experimental\n* File paths in create/lock commands need comma separation\n* Proper permissions required for operations\n\n## License\n\n[MIT License]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJohn0n1%2Fzippy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJohn0n1%2Fzippy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJohn0n1%2Fzippy/lists"}