94 lines
3.1 KiB
Markdown
94 lines
3.1 KiB
Markdown
# 🧰 Messy-Little-Gadgets
|
|
|
|
> A collection of small, handy Python utilities — random little tools for everyday tasks.
|
|
|
|
**Messy-Little-Gadgets** is a growing collection of miscellaneous Python scripts and tools. Each script is self-contained and solves a simple, practical problem.
|
|
|
|
---
|
|
|
|
## 🧩 Included Tools
|
|
|
|
### 🌳 Directory Tree Analyzer — `directory_tree_analyzer.py`
|
|
Analyze a directory with a detailed tree view and rich statistics.
|
|
- 🌳 Recursive colored directory tree
|
|
- 📊 File/dir count, total size
|
|
- 📁 Extension stats (Top 15 with size & percentage)
|
|
- 📂 Depth distribution (per-level bar charts)
|
|
- 📦 Size bucket distribution (<1KB ~ >1GB)
|
|
- 🐘 Top 15 largest files
|
|
- 🕳️ Deepest directories
|
|
|
|
```bash
|
|
python directory_tree_analyzer.py
|
|
```
|
|
|
|
### 📊 Resource Monitor — `resource_monitor.py`
|
|
Monitor the **Top 10 memory & CPU** consumers, refreshing every 30 seconds.
|
|
- 🔝 Memory Top 10 & CPU Top 10 (process / PID / usage / bar)
|
|
- 💾 Total memory, CPU usage, core counts
|
|
- 🎨 Color-coded usage bars
|
|
|
|
```bash
|
|
python resource_monitor.py
|
|
```
|
|
|
|
### 🔍 Port Checker — `port_checker.py`
|
|
Check whether a port is occupied, find the occupying process, and optionally force-kill it.
|
|
- 🛡️ UAC elevation (run as admin)
|
|
- 🔍 Detect port occupancy (bulk query: `80, 443, 8000-8010`)
|
|
- 🕵️ Find occupying process (name / PID / command line)
|
|
- 💀 Force-kill the process (with confirmation)
|
|
- 🚫 System-critical process protection
|
|
|
|
```bash
|
|
python port_checker.py
|
|
```
|
|
|
|
### 🔄 Directory Sync — `directory_sync.py`
|
|
A universal directory synchronization tool.
|
|
- 🔁 **One-way / Two-way** sync modes
|
|
- 🔍 **MD5-based** change detection
|
|
- ⏱️ **Periodic** checking (default 5s)
|
|
- ⚙️ **Manual input or env vars** configuration (`DIRSYNC_SRC/DST/MODE/INTERVAL`)
|
|
|
|
### 🎵 Music Downloader — `music_downloader.py`
|
|
A simple Tkinter GUI tool to search and download music from an online source.
|
|
- 🔍 **Search** songs by keyword
|
|
- ⬇️ **Download** a song by its ID
|
|
- 🔥 **Hot songs** list browsing
|
|
- 📂 **Custom save path** via file dialog
|
|
|
|
### 🔐 Argon2 Password Hasher — `argon2_password_hasher.py`
|
|
A secure password hashing utility using **Argon2id** (2025 recommended parameters).
|
|
- 🧂 **Auto salt** generation
|
|
- 💾 **Hash** passwords (Argon2id format)
|
|
- ✔️ **Verify** passwords
|
|
- 🔄 **Rehash check** for parameter updates
|
|
|
|
---
|
|
|
|
## 📁 Project Structure
|
|
|
|
```
|
|
Messy-Little-Gadgets/
|
|
├── directory_tree_analyzer.py # Directory tree analyzer
|
|
├── resource_monitor.py # Memory/CPU Top 10 monitor
|
|
├── port_checker.py # Port occupancy checker
|
|
├── directory_sync.py # Directory sync tool
|
|
├── music_downloader.py # Music download GUI tool
|
|
├── argon2_password_hasher.py # Argon2 password hasher
|
|
└── README.md # This document
|
|
```
|
|
|
|
---
|
|
|
|
## 📄 License
|
|
|
|
This project is licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
|
|
|
|
---
|
|
|
|
## 🙏 Note
|
|
|
|
> Each gadget is independent and minimal. More little tools will be added over time. Feel free to use them in your own projects.
|