71 lines
1.9 KiB
Markdown
71 lines
1.9 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 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`)
|
|
|
|
```bash
|
|
# One-way sync (via env vars)
|
|
set DIRSYNC_SRC=D:/src
|
|
set DIRSYNC_DST=D:/dst
|
|
set DIRSYNC_MODE=oneway
|
|
python directory_sync.py
|
|
```
|
|
|
|
### 🎵 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
|
|
|
|
```bash
|
|
python music_downloader.py
|
|
```
|
|
|
|
### 🔐 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
|
|
|
|
```bash
|
|
python argon2_password_hasher.py
|
|
```
|
|
|
|
---
|
|
|
|
## 📁 Project Structure
|
|
|
|
```
|
|
Messy-Little-Gadgets/
|
|
├── 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.
|