https://github.com/appotry/pttool
自动化硬链接工具,在最大可能情况下节约空间,并保持做种。 小于1M的文件直接复制,刮削修改nfo等小文件不影响做种。 大于1M的文件硬链接到目的目录,可以随意修改文件名。
https://github.com/appotry/pttool
emby hardlink opencode pt tmm
Last synced: about 9 hours ago
JSON representation
自动化硬链接工具,在最大可能情况下节约空间,并保持做种。 小于1M的文件直接复制,刮削修改nfo等小文件不影响做种。 大于1M的文件硬链接到目的目录,可以随意修改文件名。
- Host: GitHub
- URL: https://github.com/appotry/pttool
- Owner: appotry
- License: gpl-3.0
- Created: 2021-04-03T13:10:00.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2026-06-07T16:11:20.000Z (about 1 month ago)
- Last Synced: 2026-06-07T18:04:24.026Z (about 1 month ago)
- Topics: emby, hardlink, opencode, pt, tmm
- Language: Shell
- Homepage:
- Size: 191 KB
- Stars: 647
- Watchers: 6
- Forks: 56
- Open Issues: 1
-
Metadata Files:
- Readme: README.de.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# PTtool
> GitHub: [appotry/PTtool](https://github.com/appotry/PTtool)
>
> Reine Shell/Python Hardlink-Tools. Läuft auf Linux, BSD, macOS, Synology, QNAP und jedem OS mit einer standardkonformen POSIX-Shell.
>
> **[中文](README.md)** · **[English](README.en.md)** · **[日本語](README.ja.md)** · **[한국어](README.ko.md)** · **[Español](README.es.md)** · **[Français](README.fr.md)** · **[繁體中文](README.zh-TW.md)**
[](https://opencode.ai)
[](https://github.com/appotry/PTtool/actions/workflows/test.yml)
---
Dieses Projekt wurde vollständig mit [opencode](https://opencode.ai) refaktorisiert und implementiert eine **KI-Agent-gesteuerte Entwicklungs-Test-Schleife**: Anforderungen → Architektur → Codierung → Docker-Tests → Wissensdatenbank-Archivierung, alles autonom vom Agenten erledigt. Siehe [`AGENTS.md`](AGENTS.md) und [`docs/`](docs/).
---
## Skriptübersicht
| Skript | Zweck |
|--------|-------|
| `mklink.sh` | Einmaliger Hardlink: >1MB verlinken, <1MB kopieren |
| `dirlink.sh` | Idempotenter Hardlink (pro Unterverzeichnis, `islinked.lk`-Marker) |
| `link.sh` | Batch-Wrapper für `dirlink.sh` |
| `autolink.sh` | qBittorrent-Abschluss-Hook |
| `rename_episodes.py` | SXXEXX-Offset-Anpassung |
| `autoThanks.sh` | NexusPHP-Massen-Danke (Vorsicht geboten) |
## Sprachauswahl
Die Ausgabesprache der Skripte wird über die Umgebungsvariable `SCRIPT_LANG` gesteuert (Standard: System-`LANG`):
```bash
# Englische Ausgabe
SCRIPT_LANG=en_US ./dirlink.sh /src /dst
# Chinesische Ausgabe (Standard)
./dirlink.sh /src /dst
```
## Design
PT-Benutzern ermöglichen, Dateien hart zu verlinken, um maximal Speicherplatz zu sparen und gleichzeitig das Seeden zu erhalten.
Dateien < 1MB werden direkt kopiert (ermöglicht Scrapern wie emby/tmm, nfo-Dateien zu ändern).
Dateien > 1MB werden zum Ziel hart verlinkt (umbenennbar, aber schreibgeschützt).
**Hinweis:** SRC und DST müssen sich im selben Dateisystem befinden — Hardlinks können Partitionen nicht überqueren.
## Verwendungsbeispiele
```bash
# Einmaliger Link
mklink.sh /share/Download/src /share/Download/dst
# Idempotenter Link (pro Unterverzeichnis)
dirlink.sh /share/Download/src /share/Download/dst
# qBittorrent-Abschluss-Hook
/path/to/autolink.sh "%N" "%D" "%L"
```
## Installation
```bash
git clone https://github.com/appotry/PTtool.git
chmod +x *.sh
```
## Tests
```bash
cd tests
make test # Vollständige Testsuite (15 Tests)
make test-nas # NAS-Kompatibilitätstests (8 Tests)
```
## Haftungsausschluss
Daten sind wertvoll, gehen Sie vorsichtig vor. Diese Skripte (außer autolink.sh) verwenden nur mkdir und cp — kein rm. Im schlimmsten Fall können Sie Ihr Dateisystem überladen. Setzen Sie das Zielverzeichnis nicht auf ein Systemverzeichnis. Nutzung auf eigene Gefahr.