Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ jobs:
tests:
uses: nzbgetcom/nzbget-extensions/.github/workflows/python-tests.yml@main
with:
python-versions: "3.6 3.7 3.8 3.9 3.10 3.11 3.12"
supported-python-versions: "3.8 3.9 3.10 3.11 3.12"
python-versions: "3.8 3.9 3.10 3.11 3.12 3.13 3.14"
supported-python-versions: "3.8 3.9 3.10 3.11 3.12 3.13 3.14"
test-script: tests.py
debug: true

Expand All @@ -27,6 +27,6 @@ jobs:
needs: [manifest, tests]
uses: nzbgetcom/nzbget-extensions/.github/workflows/extension-release.yml@main
with:
release-file-list: main.py manifest.json
release-file-list: _locales/ README.* main.py manifest.json
release-file-name: easysort
release-dir: EasySort
35 changes: 21 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,33 @@
## NZBGet Versions
## Requirements

- stable v23 [v3.1](https://github.com/nzbgetcom/Extension-EasySort/releases/tag/v3.1)
- legacy v22 [v2.0](https://github.com/nzbgetcom/Extension-EasySort/releases/tag/v2.0)
- NZBGet v23+ and Python 3.8+
- Legacy NZBGet v22: use v2.0 release

> **Note:** This script is compatible with python 3.8.x and above.
If you need support for Python 2.x versions then you can get legacy version [here](https://forum.nzbget.net/viewtopic.php?f=8&t=2163&p=23026&hilit=easysort#p23026).

## EasySort
# EasySort
[Post-processing](https://nzbget.com/documentation/post-processing-scripts/) script for [NZBGet](https://nzbget.com).

This script moves files with specified extensions into another directory.

It offers flexible organization options:

- Flat Mode:** Files are moved into the specified `DestDir` directory.
- Parent Directory Mode:** Files are moved into the parent directory using `DestDir=..` (flattening).
- Category Subdirectory Mode:** Files are organized into subdirectories within `DestDir` based on the category using `UseCategoryDir`.
- NZB Parent Subdirectory Mode:** Files are organized into subdirectories within `DestDir` based on the NZB filename using `UseNzbParentDir`
- **Flat Mode:** Files are moved into the specified `DestDir` directory.
- **Parent Directory Mode:** Files are moved into the parent directory using `DestDir=..` (flattening).
- **Category Subdirectory Mode:** Files are organized into subdirectories within `DestDir` based on the category using `UseCategoryDir`.
- **NZB Parent Subdirectory Mode:** Files are organized into subdirectories within `DestDir` based on the NZB filename using `UseNzbParentDir`.

You can combine `UseCategoryDir` and `UseNzbParentDir` for further organization.

Additionally, there is an option to delete the source directory with all remaining files.

## Authors:
- Andrey Prygunkov <hugbug@users.sourceforge.net>
- Denis <denis@nzbget.com>
## Installation

- Download the newest version from [releases page](https://github.com/nzbgetcom/Extension-EasySort/releases).
- Unpack into pp-scripts directory. Your pp-scripts directory now should have folder "EasySort" with "main.py" and "manifest.json";
- Open settings tab in NZBGet web-interface and define settings for EasySort;
- Save changes and restart NZBGet.

## Authors

- Andrey Prygunkov <hugbug@users.sourceforge.net>
- Denis <denis@nzbget.com>

14 changes: 14 additions & 0 deletions _locales/cs/messages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"about": "Přesune soubory po stažení do jiných umístění.",
"cleanup_desc": "Smazat adresář stahování po přejmenování.\n\nSmazat adresář stahování po zpracování. Pokud nebylo možné zpracovat žádné soubory,\nadresář zůstane nedotčen.",
"description": "Tento skript přesune soubory se zadanými příponami do jiného adresáře.\nNabízí flexibilní možnosti organizace:\n\n- Plochý režim: Soubory jsou přesunuty do zadaného adresáře `DestDir`.\n- Režim nadřazeného adresáře: Soubory jsou přesunuty do nadřazeného adresáře pomocí `DestDir=..` (zploštění).\n- Režim podadresáře kategorie: Soubory jsou organizovány do podadresářů v rámci `DestDir` podle kategorie pomocí `UseCategoryDir`.\n- Režim podadresáře nadřazeného NZB: Soubory jsou organizovány do podadresářů v rámci `DestDir` podle názvu NZB souboru pomocí `UseNzbParentDir`\n\nMůžete kombinovat `UseCategoryDir` a `UseNzbParentDir` pro další organizaci.\n\nNavíc je k dispozici možnost smazat zdrojový adresář se všemi zbývajícími soubory.",
"destdir_desc": "Cílový adresář, do kterého budou přesunuty všechny soubory.\n\nNastavte na \"..\" pro přesun do nadřazeného adresáře (plochý režim).",
"extensions_desc": "Přípony souborů ke zpracování.\n\nZpracovány jsou pouze soubory s těmito příponami. Přípony musí\nbýt odděleny čárkami.\n\nExample=.mkv,.avi,.divx\n\nPokud je seznam přípon prázdný, jsou zpracovány všechny soubory.",
"minsize_desc": "Minimální velikost souboru (kilobajty).\n\nMenší soubory jsou ignorovány.\nPoužijte \"0\" pro zahrnutí všech souborů.",
"overwrite_desc": "Přepsat soubory v cílovém umístění.\n\nPokud není aktivní, soubory jsou stále přesunuty do cíle, ale\nna konec názvů souborů jsou přidány jedinečné přípony, např. My.File.(2).mkv.",
"preview_desc": "Režim náhledu.\n\nPokud je aktivní, nejsou provedeny žádné změny v souborovém systému, ale cílové\nnázvy souborů jsou zaznamenány. Užitečné pro ladění.",
"requirements": "Tento skript vyžaduje instalaci Python 3.8+ ve vašem systému.",
"usecategorydir_desc": "Vytvořit podadresář v <DestDir> na základě názvu kategorie.\n\nPokud používáte <AppendCategoryDir>, pravděpodobně budete chtít tuto možnost také povolit.\n\nNOTE: Funguje pouze s Category*.Name a nikoli s Category*.DestDir.",
"usenzbparentdir_desc": "Vytvořit podadresář pro každý nzb-soubor.\n\nTuto možnost můžete kombinovat s <UseCategoryDir>.\n\nNOTE: Zakázání této možnosti může způsobit ztrátu dat v závislosti na nastavení čištění.\nPříklad: Všechny soubory ve složce z více nzb zdrojů jsou při importu smazány.",
"verbose_desc": "Zobrazit více zpráv protokolu.\n\nPro ladění nebo pokud potřebujete nahlásit chybu."
}
14 changes: 14 additions & 0 deletions _locales/da/messages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"about": "Flytter filer efter download til andre placeringer.",
"cleanup_desc": "Slet downloadmappe efter omdøbning.\n\nSlet downloadmappe efter behandling. Hvis ingen filer kunne behandles,\nforbliver mappen uberørt.",
"description": "Dette script flytter filer med angivne udvidelser til en anden mappe.\nDet tilbyder fleksible organiseringsmuligheder:\n\n- Flad tilstand: Filer flyttes til den angivne `DestDir`-mappe.\n- Overordnet mappetilstand: Filer flyttes til den overordnede mappe ved hjælp af `DestDir=..` (fladgøring).\n- Kategori-undermappetilstand: Filer organiseres i undermapper inden for `DestDir` baseret på kategorien ved hjælp af `UseCategoryDir`.\n- NZB overordnet undermappetilstand: Filer organiseres i undermapper inden for `DestDir` baseret på NZB-filnavnet ved hjælp af `UseNzbParentDir`\n\nDu kan kombinere `UseCategoryDir` og `UseNzbParentDir` for yderligere organisering.\n\nDerudover er der en mulighed for at slette kildemappen med alle resterende filer.",
"destdir_desc": "Destinationsmappe, som alle filer flyttes til.\n\nSæt til \"..\" for at flytte til den overordnede mappe (flad tilstand).",
"extensions_desc": "Filudvidelser der skal behandles.\n\nKun filer med disse udvidelser behandles. Udvidelser skal\nadskilles med kommaer.\n\nExample=.mkv,.avi,.divx\n\nHvis listen over udvidelser er tom, behandles alle filer.",
"minsize_desc": "Mindste filstørrelse (kilobytes).\n\nMindre filer ignoreres.\nBrug \"0\" for at inkludere alle filer.",
"overwrite_desc": "Overskriv filer på destinationen.\n\nHvis ikke aktivt flyttes filerne stadig til destinationen, men\nunikke suffikser tilføjes i slutningen af filnavnene, f.eks. My.File.(2).mkv.",
"preview_desc": "Forhåndsvisningstilstand.\n\nNår aktiv foretages ingen ændringer i filsystemet, men destinations-\nfilnavnene logges. Nyttigt til fejlfinding.",
"requirements": "Dette script kræver, at Python 3.8+ er installeret på dit system.",
"usecategorydir_desc": "Opret undermappe i <DestDir> baseret på kategorinavn.\n\nHvis du bruger <AppendCategoryDir>, vil du sandsynligvis også aktivere denne indstilling.\n\nNOTE: Det virker kun med Category*.Name og ikke Category*.DestDir.",
"usenzbparentdir_desc": "Opret undermappe for hver nzb-fil.\n\nDu kan kombinere denne indstilling med <UseCategoryDir>.\n\nNOTE: Deaktivering af denne indstilling kan medføre tab af data baseret på dine oprydningsindstillinger.\nEksempel: Alle filer i mappen fra flere nzb-kilder slettes ved import.",
"verbose_desc": "Udskriv flere logbeskeder.\n\nTil fejlfinding eller hvis du skal rapportere en fejl."
}
14 changes: 14 additions & 0 deletions _locales/de/messages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"about": "Verschiebt Dateien nach dem Download an andere Speicherorte.",
"cleanup_desc": "Download-Verzeichnis nach dem Umbenennen löschen.\n\nDownload-Verzeichnis nach der Verarbeitung löschen. Wenn keine Dateien verarbeitet werden konnten,\nbleibt das Verzeichnis unberührt.",
"description": "Dieses Skript verschiebt Dateien mit bestimmten Erweiterungen in ein anderes Verzeichnis.\nEs bietet flexible Organisationsoptionen:\n\n- Flacher Modus: Dateien werden in das angegebene `DestDir`-Verzeichnis verschoben.\n- Übergeordnetes Verzeichnis-Modus: Dateien werden mit `DestDir=..` in das übergeordnete Verzeichnis verschoben (Abflachung).\n- Kategorie-Unterverzeichnis-Modus: Dateien werden anhand der Kategorie mit `UseCategoryDir` in Unterverzeichnisse innerhalb von `DestDir` organisiert.\n- NZB-Übergeordnetes-Unterverzeichnis-Modus: Dateien werden anhand des NZB-Dateinamens mit `UseNzbParentDir` in Unterverzeichnisse innerhalb von `DestDir` organisiert.\n\nSie können `UseCategoryDir` und `UseNzbParentDir` für eine weitere Organisation kombinieren.\n\nZusätzlich gibt es eine Option zum Löschen des Quellverzeichnisses mit allen verbleibenden Dateien.",
"destdir_desc": "Zielverzeichnis, in das alle Dateien verschoben werden.\n\nAuf \"..\" setzen, um in das übergeordnete Verzeichnis zu verschieben (Flachmodus).",
"extensions_desc": "Zu verarbeitende Dateiendungen.\n\nNur Dateien mit diesen Endungen werden verarbeitet. Endungen müssen\ndurch Kommas getrennt werden.\n\nExample=.mkv,.avi,.divx\n\nWenn die Liste der Endungen leer ist, werden alle Dateien verarbeitet.",
"minsize_desc": "Minimale Dateigröße (Kilobyte).\n\nKleinere Dateien werden ignoriert.\nVerwenden Sie \"0\", um alle Dateien einzuschließen.",
"overwrite_desc": "Dateien am Zielort überschreiben.\n\nWenn nicht aktiv, werden die Dateien trotzdem in das Zielverzeichnis verschoben, aber\neindeutige Suffixe werden am Ende der Dateinamen hinzugefügt, z. B. My.File.(2).mkv.",
"preview_desc": "Vorschaumodus.\n\nWenn aktiv, werden keine Änderungen am Dateisystem vorgenommen, aber die Ziel-\nDateinamen werden protokolliert. Nützlich zur Fehlersuche.",
"requirements": "Dieses Skript erfordert, dass Python 3.8+ auf Ihrem System installiert ist.",
"usecategorydir_desc": "Unterverzeichnis in <DestDir> basierend auf dem Kategorienamen erstellen.\n\nWenn Sie <AppendCategoryDir> verwenden, möchten Sie diese Option wahrscheinlich ebenfalls aktivieren.\n\nNOTE: Funktioniert nur mit Category*.Name und nicht mit Category*.DestDir.",
"usenzbparentdir_desc": "Unterverzeichnis für jede nzb-Datei erstellen.\n\nSie können diese Option mit <UseCategoryDir> kombinieren.\n\nNOTE: Das Deaktivieren dieser Option kann je nach Ihren Bereinigungseinstellungen zu Datenverlust führen.\nBeispiel: Alle Dateien im Ordner aus mehreren nzb-Quellen werden beim Import gelöscht.",
"verbose_desc": "Mehr Protokollmeldungen ausgeben.\n\nZur Fehlersuche oder wenn Sie einen Fehler melden müssen."
}
14 changes: 14 additions & 0 deletions _locales/el/messages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"about": "Μετακινεί αρχεία μετά τη λήψη σε άλλες τοποθεσίες.",
"cleanup_desc": "Διαγραφή καταλόγου λήψης μετά τη μετονομασία.\n\nΔιαγραφή καταλόγου λήψης μετά την επεξεργασία. Αν δεν ήταν δυνατή η επεξεργασία κανενός αρχείου,\nο κατάλογος παραμένει αναλλοίωτος.",
"description": "Αυτό το σενάριο μετακινεί αρχεία με καθορισμένες επεκτάσεις σε έναν άλλο κατάλογο.\nΠροσφέρει ευέλικτες επιλογές οργάνωσης:\n\n- Επίπεδη Λειτουργία: Τα αρχεία μετακινούνται στον καθορισμένο κατάλογο `DestDir`.\n- Λειτουργία Γονικού Καταλόγου: Τα αρχεία μετακινούνται στον γονικό κατάλογο χρησιμοποιώντας `DestDir=..` (ισοπέδωση).\n- Λειτουργία Υποκαταλόγου Κατηγορίας: Τα αρχεία οργανώνονται σε υποκαταλόγους εντός του `DestDir` βάσει της κατηγορίας χρησιμοποιώντας `UseCategoryDir`.\n- Λειτουργία Υποκαταλόγου NZB: Τα αρχεία οργανώνονται σε υποκαταλόγους εντός του `DestDir` βάσει του ονόματος αρχείου NZB χρησιμοποιώντας `UseNzbParentDir`\n\nΜπορείτε να συνδυάσετε τα `UseCategoryDir` και `UseNzbParentDir` για περαιτέρω οργάνωση.\n\nΕπιπλέον, υπάρχει επιλογή διαγραφής του καταλόγου προέλευσης με όλα τα υπόλοιπα αρχεία.",
"destdir_desc": "Κατάλογος προορισμού για μετακίνηση όλων των αρχείων.\n\nΟρίστε σε \"..\" για μετακίνηση στον γονικό κατάλογο (λειτουργία ισοπέδωσης).",
"extensions_desc": "Επεκτάσεις αρχείων προς επεξεργασία.\n\nΕπεξεργάζονται μόνο αρχεία με αυτές τις επεκτάσεις. Οι επεκτάσεις πρέπει\nνα διαχωρίζονται με κόμματα.\n\nExample=.mkv,.avi,.divx\n\nΑν η λίστα επεκτάσεων είναι κενή, επεξεργάζονται όλα τα αρχεία.",
"minsize_desc": "Ελάχιστο μέγεθος αρχείου (Kilobytes).\n\nΤα μικρότερα αρχεία αγνοούνται.\nΧρησιμοποιήστε \"0\" για να συμπεριλάβετε όλα τα αρχεία.",
"overwrite_desc": "Αντικατάσταση αρχείων στον προορισμό.\n\nΑν δεν είναι ενεργό, τα αρχεία μετακινούνται κανονικά στον προορισμό αλλά\nπροστίθενται μοναδικά επιθήματα στο τέλος των ονομάτων αρχείων, π.χ. My.File.(2).mkv.",
"preview_desc": "Λειτουργία προεπισκόπησης.\n\nΌταν είναι ενεργή, δεν γίνονται αλλαγές στο σύστημα αρχείων αλλά\nτα ονόματα αρχείων προορισμού καταγράφονται. Χρήσιμο για αποσφαλμάτωση.",
"requirements": "Αυτό το σενάριο απαιτεί εγκατεστημένο Python 3.8+ στο σύστημά σας.",
"usecategorydir_desc": "Δημιουργία υποκαταλόγου στο <DestDir> βάσει του ονόματος κατηγορίας.\n\nΑν χρησιμοποιείτε το <AppendCategoryDir>, πιθανώς θα θέλετε να ενεργοποιήσετε και αυτή την επιλογή.\n\nNOTE: Λειτουργεί μόνο με Category*.Name και όχι με Category*.DestDir.",
"usenzbparentdir_desc": "Δημιουργία υποκαταλόγου για κάθε αρχείο nzb.\n\nΜπορείτε να συνδυάσετε αυτή την επιλογή με το <UseCategoryDir>.\n\nNOTE: Η απενεργοποίηση αυτής της επιλογής ενδέχεται να προκαλέσει απώλεια δεδομένων ανάλογα με τις ρυθμίσεις εκκαθάρισής σας.\nΠαράδειγμα: Όλα τα αρχεία στον φάκελο από πολλαπλές πηγές nzb διαγράφονται κατά την εισαγωγή.",
"verbose_desc": "Εκτύπωση περισσότερων μηνυμάτων καταγραφής.\n\nΓια αποσφαλμάτωση ή αν χρειάζεται να αναφέρετε ένα σφάλμα."
}
14 changes: 14 additions & 0 deletions _locales/es/messages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"about": "Mueve archivos después de la descarga a otras ubicaciones.",
"cleanup_desc": "Eliminar el directorio de descarga después de renombrar.\n\nEliminar el directorio de descarga tras el procesamiento. Si no se pudo procesar ningún archivo,\nel directorio permanece intacto.",
"description": "Este script mueve archivos con extensiones especificadas a otro directorio.\nOfrece opciones de organización flexibles:\n\n- Modo plano: Los archivos se mueven al directorio `DestDir` especificado.\n- Modo directorio padre: Los archivos se mueven al directorio padre usando `DestDir=..` (aplanamiento).\n- Modo subdirectorio por categoría: Los archivos se organizan en subdirectorios dentro de `DestDir` según la categoría usando `UseCategoryDir`.\n- Modo subdirectorio padre NZB: Los archivos se organizan en subdirectorios dentro de `DestDir` según el nombre del archivo NZB usando `UseNzbParentDir`\n\nPuedes combinar `UseCategoryDir` y `UseNzbParentDir` para una mayor organización.\n\nAdemás, existe una opción para eliminar el directorio de origen con todos los archivos restantes.",
"destdir_desc": "Directorio de destino al que mover todos los archivos.\n\nEstablece \"..\" para mover al directorio padre (modo aplanamiento).",
"extensions_desc": "Extensiones de archivo a procesar.\n\nSolo se procesan los archivos con estas extensiones. Las extensiones deben\nsepararse con comas.\n\nExample=.mkv,.avi,.divx\n\nSi la lista de extensiones está vacía, se procesan todos los archivos.",
"minsize_desc": "Tamaño mínimo de archivo (Kilobytes).\n\nLos archivos más pequeños se ignoran.\nUsa \"0\" para incluir todos los archivos.",
"overwrite_desc": "Sobrescribir archivos en el destino.\n\nSi no está activo, los archivos igualmente se mueven al destino pero\nse añaden sufijos únicos al final de los nombres de archivo, p. ej. My.File.(2).mkv.",
"preview_desc": "Modo de vista previa.\n\nCuando está activo no se realizan cambios en el sistema de archivos, pero los nombres\nde archivo de destino se registran en el log. Útil para depuración.",
"requirements": "Este script requiere que Python 3.8+ esté instalado en tu sistema.",
"usecategorydir_desc": "Crear subdirectorio en <DestDir> basado en el nombre de categoría.\n\nSi usas <AppendCategoryDir> probablemente también querrás tener esta opción habilitada.\n\nNOTE: Solo funciona con Category*.Name y no con Category*.DestDir.",
"usenzbparentdir_desc": "Crear subdirectorio para cada archivo nzb.\n\nPuedes combinar esta opción con <UseCategoryDir>.\n\nNOTE: Deshabilitar esta opción puede causar pérdida de datos según tu configuración de limpieza.\nEjemplo: Todos los archivos de la carpeta provenientes de múltiples fuentes nzb se eliminan al importar.",
"verbose_desc": "Mostrar más mensajes de registro.\n\nPara depuración o si necesitas reportar un error."
}
Loading
Loading