Archiving App
F 44 completed
Other
containerized / python · small
50
Files
5,465
LOC
2
Frameworks
6
Languages
Pipeline State
completedRun ID
#1546013Phase
doneProgress
0%Started
2026-04-16 23:39:50Finished
2026-04-16 23:39:50LLM tokens
0Pipeline Metadata
Stage
CatalogedDecision
proceedNovelty
69.10Framework unique
—Isolation
—Last stage change
2026-05-10 03:34:51Deduplication group #1921650
Member of a group with 2 similar repo(s) — this repo is canonical view group →
Repobility · open methodology · https://repobility.com/research/
🧪 Code Distillation
Browse all specs →AI Prompt
Build me a web-based media archiver tool using Flask and Tailwind CSS. I need it to manage directory operations by allowing users to configure source, destination, and archive directories via a server-side file browser. Key features must include selective file copying, auto-cleaning torrent names for Jellyfin suggestions, and showing real-time progress with speed and ETA. It should also feature a transfer queue for batch processing, a persistent transfer history log, and visual media type icons. Make sure the UI supports a dark theme and includes keyboard shortcuts for better usability.
python flask web-app media-archiver file-management tailwind directory backend
Generated by gemma4:latest
Catalog Information
Build me a web-based media archiver tool using Flask and Tailwind CSS. I need it to manage directory operations by allowing users to configure source, destination, and archive directories via a server-side file browser. Key features must include selective file copying, auto-cleaning torrent names for Jellyfin suggestions, and showing real-time progress with speed and ETA. It should also feature a transfer queue for batch processing, a persistent transfer history log, and visual media type icons.
Tags
python flask web-app media-archiver file-management tailwind directory backend
Quality Score
F
44.5/100
Structure
44
Code Quality
61
Documentation
49
Testing
0
Practices
45
Security
65
Dependencies
90
Strengths
- Consistent naming conventions (snake_case)
- Containerized deployment (Docker)
Weaknesses
- No LICENSE file — legal ambiguity for contributors
- No tests found — high risk of regressions
- No CI/CD configuration — manual testing and deployment
- 1 files with critical complexity need refactoring
- Potential hardcoded secrets in 1 files
- 288 duplicate lines detected — consider DRY refactoring
Recommendations
- Add a test suite — start with critical path integration tests
- Set up CI/CD (GitHub Actions recommended) to automate testing and deployment
- Add a linter configuration to enforce code style consistency
- Add a LICENSE file (MIT recommended for open source)
- Move hardcoded secrets to environment variables or a secrets manager
Languages
Frameworks
Flask Tailwind CSS
Symbols
function165
variable87
method55
constant29
class6
property1
API Endpoints (51)
| Method | Path | Handler | Framework | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Repobility (the analyzer behind this table) · https://repobility.com | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | / | index | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /browse | browse_directory | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /disk-usage | get_disk_usage | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /downloads | start_download | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /downloads | list_downloads | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /downloads/<int:download_id> | get_download | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DELETE | /downloads/<int:download_id> | cancel_download | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /downloads/<int:download_id>/approve | approve_download | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /downloads/<int:download_id>/archive | send_to_archiver | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /downloads/<int:download_id>/suggest-name | suggest_archive_name | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /downloads/<int:download_id>/verify | trigger_verification | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /downloads/<int:download_id>/verify | get_verification | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /episodes/<int:episode_id>/retry | retry_episode | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /folders | list_folders | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /folders/<path:name>/items | list_folder_items | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /history | get_history | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DELETE | /history/<int:entry_id> | delete_history_entry | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | length | s.get | Express | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /lookup | lookup_show | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /queue | get_queue | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /queue | add_to_queue | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /queue/clear | clear_queue | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DELETE | /queue/<int:entry_id> | remove_from_queue | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /queue/process | process_queue | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PATCH | /queue/reorder | reorder_queue | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /retry-all | retry_all | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /scheduler/status | scheduler_status | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /search | search_torrents | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /search/history | search_history | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /seasons/<int:season_id> | get_season | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /seasons/<int:season_id>/preference | set_preference | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /seasons/<int:season_id>/search | search_season | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /select-seasons | select_seasons | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /select-show | select_show | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /settings | save_settings | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /settings | get_settings | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /settings | get_torrent_settings | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /settings | save_torrent_settings | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /shows | list_shows | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /shows/<int:show_id> | get_show | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /suggest-name/<path:folder> | suggest_name | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /test/ollama | test_ollama | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /test/qbittorrent | test_qbit | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /test/tmdb | test_tmdb | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /test/torznab | test_torznab | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /thumbnails/<int:download_id>/<filename> | serve_thumbnail | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /torrents | torrents | Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| POST | /transfer | start_transfer | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GET | /transfer/active | get_active_transfer | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DELETE | /transfer/<transfer_id> | cancel_transfer | FastAPI | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Showing 50 of 51
Repobility · code-quality intelligence · https://repobility.com
Embed Badge
Add to your README:
BinComp Dependency Hardening
All packages →2 of this repo's dependencies have been scanned for binary hardening. Grade reflects RELRO / stack canary / FORTIFY / PIE coverage.