Update Kapitanbooru Uploader to version 0.9.0 with significant changes
All checks were successful
Gitea/kapitanbooru-uploader/pipeline/head This commit looks good

- Updated version number in pyproject.toml and messages.po files.
- Added new translations and updated existing ones in messages.po for better localization.
- Implemented core functionality in Core.py, including image processing, tagging, and upload logic.
- Enhanced the autotagging feature to support multiple image formats (PNG, JPEG, WebP, AVIF, GIF).
- Improved error handling and logging for file operations and network requests.
- Added functionality to check for uploaded files and manage tag updates for existing posts.
- Introduced threading for background processing to improve application responsiveness.
This commit is contained in:
2025-06-26 17:22:34 +02:00
parent 0987fbbed0
commit 67df3ea793
6 changed files with 1463 additions and 1123 deletions

View File

@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Kapitanbooru Uploader 0.8.3\n"
"Project-Id-Version: Kapitanbooru Uploader 0.9.0\n"
"Report-Msgid-Bugs-To: kapitan@mlesniak.pl\n"
"POT-Creation-Date: 2025-06-25 23:49+0200\n"
"POT-Creation-Date: 2025-06-26 17:07+0200\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -43,273 +43,56 @@ msgstr "Found auth_token:"
msgid "auth_token not found in the HTML page."
msgstr "auth_token not found in the HTML page."
#: ImageBrowser.py:138
#, python-brace-format
msgid "Update check failed: {error}"
msgstr "Update check failed: {error}"
#: ImageBrowser.py:140
#, python-brace-format
msgid "Malformed pyproject.toml: {error}"
msgstr "Malformed pyproject.toml: {error}"
#: ImageBrowser.py:143
#, python-brace-format
msgid "Unexpected error during update check: {error}"
msgstr "Unexpected error during update check: {error}"
#: ImageBrowser.py:150
msgid "Update Available"
msgstr "Update Available"
#: ImageBrowser.py:152
#, python-brace-format
msgid ""
"A new version {new_version} is available!\n"
"You have version {current_version}.\n"
"\n"
"Update using: {update_command}"
msgstr ""
"A new version {new_version} is available!\n"
"You have version {current_version}.\n"
"\n"
"Update using: {update_command}"
#: ImageBrowser.py:266
#: Core.py:204
msgid "Błąd przy otwieraniu pliku"
msgstr "Error opening file"
#: ImageBrowser.py:308
#: Core.py:245
msgid "Tagger przetworzył:"
msgstr "Tagger processed:"
#: ImageBrowser.py:311
#: Core.py:248
msgid "Błąd Taggera dla"
msgstr "Tagger error for"
#: ImageBrowser.py:337
msgid "Otwórz folder"
msgstr "Open folder"
#: ImageBrowser.py:340 ImageBrowser.py:629 ImageBrowser.py:856
#: ImageBrowser.py:864
msgid "Wyślij"
msgstr "Send"
#: ImageBrowser.py:343 ImageBrowser.py:849
msgid "Wyślij wszystko"
msgstr "Send all"
#: ImageBrowser.py:347 ImageBrowser.py:850 ImageBrowser.py:856
msgid "Podmień tagi"
msgstr "Replace tags"
#: ImageBrowser.py:350 ImageBrowser.py:851
msgid "Otwórz post"
msgstr "Open post"
#: ImageBrowser.py:353
msgid "Zakończ"
msgstr "Finish"
#: ImageBrowser.py:355
msgid "Plik"
msgstr "File"
#: ImageBrowser.py:359 ImageBrowser.py:458
msgid "Ustawienia"
msgstr "Settings"
#: ImageBrowser.py:362
msgid "Wyczyść cache Taggera"
msgstr "Clear Tagger cache"
#: ImageBrowser.py:365
msgid "Zregeneruj bazę tagów"
msgstr "Regenerate tag database"
#: ImageBrowser.py:367
msgid "Opcje"
msgstr "Options"
#: ImageBrowser.py:370
msgid "About"
msgstr "About"
#: ImageBrowser.py:371
msgid "Help"
msgstr "Help"
#: ImageBrowser.py:376
msgid "About Kapitanbooru Uploader"
msgstr "About Kapitanbooru Uploader"
#: ImageBrowser.py:393
#, python-brace-format
msgid "A new version {new_version} is available!"
msgstr "A new version {new_version} is available!"
#: ImageBrowser.py:400
#, python-brace-format
msgid "Current version: {version}"
msgstr "Current version: {version}"
#: ImageBrowser.py:402
msgid "A GUI application for uploading images to KapitanBooru."
msgstr "A GUI application for uploading images to KapitanBooru."
#: ImageBrowser.py:403
msgid "Features include image upload, tag management, automatic"
msgstr "Features include image upload, tag management, automatic"
#: ImageBrowser.py:404
msgid "tagging with wdtagger, and cache management."
msgstr "tagging with wdtagger, and cache management."
#: ImageBrowser.py:406
msgid "Authors:"
msgstr "Authors:"
#: ImageBrowser.py:409
msgid "License: MIT License"
msgstr "License: MIT License"
#: ImageBrowser.py:422
msgid "Repository:"
msgstr "Repository:"
#: ImageBrowser.py:431
msgid "Website:"
msgstr "Website:"
#: ImageBrowser.py:442
msgid "Close"
msgstr "Close"
#: ImageBrowser.py:450 ImageBrowser.py:453
msgid "Cache"
msgstr "Cache"
#: ImageBrowser.py:450
msgid "Cache Taggera zostało wyczyszczone."
msgstr "Tagger cache has been cleared."
#: ImageBrowser.py:453
msgid "Błąd przy czyszczeniu cache:"
msgstr "Error clearing cache:"
#: ImageBrowser.py:463
msgid "Login:"
msgstr "Login:"
#: ImageBrowser.py:469
msgid "Hasło:"
msgstr "Password:"
#: ImageBrowser.py:475
msgid "Base URL:"
msgstr "Base URL:"
#: ImageBrowser.py:481
msgid "Default Tags:"
msgstr "Default Tags:"
#: ImageBrowser.py:487
msgid "Browser:"
msgstr "Browser:"
#: ImageBrowser.py:501
msgid "Language:"
msgstr "Language:"
#: ImageBrowser.py:533
msgid "Zapisz"
msgstr "Save"
#: ImageBrowser.py:575
msgid "PNG Tags"
msgstr "PNG Tags"
#: ImageBrowser.py:587
msgid "Tagger Tags"
msgstr "Tagger Tags"
#: ImageBrowser.py:601
msgid "Manual Tags"
msgstr "Manual Tags"
#: ImageBrowser.py:609
msgid "Final Tags"
msgstr "Final Tags"
#: ImageBrowser.py:634
msgid "Wyświetl"
msgstr "Display"
#: ImageBrowser.py:651
msgid "Przetworzono tagi:"
msgstr "Processed tags:"
#: ImageBrowser.py:651 ImageBrowser.py:652 ImageBrowser.py:653
msgid "plików"
msgstr "files"
#: ImageBrowser.py:652
msgid "Zweryfikowano status uploadu:"
msgstr "Upload status verified:"
#: ImageBrowser.py:653
msgid "Zuploadowano:"
msgstr "Uploaded:"
#: ImageBrowser.py:682
msgid "Wybierz folder z obrazkami PNG, JPEG, WebP, AVIF i GIF"
msgstr "Select folder with PNG, JPEG, WebP, AVIF, and GIF images"
#: ImageBrowser.py:724
msgid "Informacja"
msgstr "Information"
#: ImageBrowser.py:725
#, fuzzy
msgid "Brak plików PNG, JPEG, WebP, AVIF lub GIF w wybranym folderze."
msgstr "No PNG files in the selected folder."
#: ImageBrowser.py:808
msgid "Błąd podczas sprawdzania paczki uploadu:"
msgstr "Error while checking upload package:"
#: ImageBrowser.py:884
#: Core.py:303
msgid "Error computing MD5:"
msgstr "Error computing MD5:"
#: ImageBrowser.py:946
msgid "Błąd"
msgstr "Error"
#: Core.py:428
msgid "Błąd podczas sprawdzania paczki uploadu:"
msgstr "Error while checking upload package:"
#: ImageBrowser.py:946
msgid "Nie można załadować obrazka:"
msgstr "Unable to load image:"
#: Core.py:437
msgid "Plik nie istnieje:"
msgstr "File does not exist:"
#: ImageBrowser.py:1156 ImageBrowser.py:1166
#, python-brace-format
msgid "Warning: Tag '{tag}' not found in implication graph"
msgstr "Warning: Tag '{tag}' not found in implication graph"
#: Core.py:443
msgid "Tagi dla pliku"
msgstr "Tags for file"
#: ImageBrowser.py:1396
msgid "Tagger przetwarza..."
msgstr "Tagger processing..."
#: Core.py:452
msgid "Błąd podczas autotagowania pliku"
msgstr "Error during file autotagowania"
#: ImageBrowser.py:1421
#: Core.py:459
msgid "Podana ścieżka nie jest katalogiem:"
msgstr "Given path is not a directory:"
#: Core.py:467
msgid "Brak obrazów do przetworzenia w katalogu:"
msgstr "No images to process in directory:"
#: Core.py:490
#, python-brace-format
msgid "Wysyłam plik {base_file_name}..."
msgstr "Sending file {base_file_name}..."
msgstr "Uploading file {base_file_name}..."
#: ImageBrowser.py:1462
#: Core.py:525
msgid "Wysyłanie zakończone powodzeniem!"
msgstr "Upload completed successfully!"
#: ImageBrowser.py:1466 ImageBrowser.py:1475
#: Core.py:529 Core.py:538
#, python-brace-format
msgid ""
"Wysyłanie zakończone błędem.\n"
@@ -320,40 +103,52 @@ msgstr ""
"Status: {status_code}\n"
"Content: {text}"
#: ImageBrowser.py:1481 ImageBrowser.py:1484
#: Core.py:547 Core.py:553 ImageBrowser.py:654 ImageBrowser.py:657
#: ImageBrowser.py:1177 ImageBrowser.py:1180
msgid "Wysyłanie"
msgstr "Uploading"
#: ImageBrowser.py:1497
msgid "Błąd wysyłania"
#: Core.py:565
msgid "Błąd wysyłania pliku"
msgstr "Upload error"
#: ImageBrowser.py:1517
msgid "Błąd edycji"
msgstr "Edit error"
#: Core.py:595
msgid "Anulowano operację!"
msgstr "Operation cancelled!"
#: ImageBrowser.py:1517
#: Core.py:605
#, python-brace-format
msgid ""
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
msgstr ""
"Uploading {file_path} with tags: {final_tags} and rating: {final_rating}"
#: Core.py:624
msgid "Przesłano pliki!"
msgstr "Files have been uploaded!"
#: Core.py:645 Core.py:649
msgid "Post nie został znaleziony dla tego pliku"
msgstr "Post not found for this file"
#: ImageBrowser.py:1527
#: Core.py:660
#, python-brace-format
msgid "Aktualizuję tagi dla {base_file_name}..."
msgstr "Updating tags for {base_file_name}..."
#: ImageBrowser.py:1537 ImageBrowser.py:1547 ImageBrowser.py:1578
#: Core.py:670 Core.py:680 Core.py:705
msgid "Operacja anulowana"
msgstr "Operation cancelled"
#: ImageBrowser.py:1588
#: Core.py:715
msgid "Tagi zostały zaktualizowane!"
msgstr "Tags have been updated!"
#: ImageBrowser.py:1590
#: Core.py:720 ImageBrowser.py:719
msgid "Sukces edycji"
msgstr "Edit successful"
#: ImageBrowser.py:1596
#: Core.py:727
#, python-brace-format
msgid ""
"Błąd podczas aktualizacji tagów\n"
@@ -362,19 +157,263 @@ msgstr ""
"Error updating tags\n"
"Status: {code}"
#: ImageBrowser.py:1600
#: Core.py:731
msgid "Treść:"
msgstr "Content:"
#: ImageBrowser.py:1604
#: Core.py:735 ImageBrowser.py:716
msgid "Błąd edycji"
msgstr "Edit error"
#: Core.py:741
msgid "Krytyczny błąd edycji"
msgstr "Critical edit error"
#: ImageBrowser.py:1616
#: ImageBrowser.py:112
#, python-brace-format
msgid "Update check failed: {error}"
msgstr "Update check failed: {error}"
#: ImageBrowser.py:114
#, python-brace-format
msgid "Malformed pyproject.toml: {error}"
msgstr "Malformed pyproject.toml: {error}"
#: ImageBrowser.py:117
#, python-brace-format
msgid "Unexpected error during update check: {error}"
msgstr "Unexpected error during update check: {error}"
#: ImageBrowser.py:124
msgid "Update Available"
msgstr "Update Available"
#: ImageBrowser.py:126
#, python-brace-format
msgid ""
"A new version {new_version} is available!\n"
"You have version {current_version}.\n"
"\n"
"Update using: {update_command}"
msgstr ""
"A new version {new_version} is available!\n"
"You have version {current_version}.\n"
"\n"
"Update using: {update_command}"
#: ImageBrowser.py:183
msgid "Otwórz folder"
msgstr "Open folder"
#: ImageBrowser.py:186 ImageBrowser.py:484 ImageBrowser.py:601
#: ImageBrowser.py:609
msgid "Wyślij"
msgstr "Upload"
#: ImageBrowser.py:189 ImageBrowser.py:594
msgid "Wyślij wszystko"
msgstr "Upload all"
#: ImageBrowser.py:193 ImageBrowser.py:595 ImageBrowser.py:601
msgid "Podmień tagi"
msgstr "Replace tags"
#: ImageBrowser.py:196 ImageBrowser.py:596
msgid "Otwórz post"
msgstr "Open post"
#: ImageBrowser.py:199
msgid "Zakończ"
msgstr "Finish"
#: ImageBrowser.py:201
msgid "Plik"
msgstr "File"
#: ImageBrowser.py:205 ImageBrowser.py:306
msgid "Ustawienia"
msgstr "Settings"
#: ImageBrowser.py:208
msgid "Wyczyść cache Taggera"
msgstr "Clear Tagger cache"
#: ImageBrowser.py:211
msgid "Zregeneruj bazę tagów"
msgstr "Regenerate tag database"
#: ImageBrowser.py:213
msgid "Opcje"
msgstr "Options"
#: ImageBrowser.py:216
msgid "About"
msgstr "About"
#: ImageBrowser.py:217
msgid "Help"
msgstr "Help"
#: ImageBrowser.py:222
msgid "About Kapitanbooru Uploader"
msgstr "About Kapitanbooru Uploader"
#: ImageBrowser.py:239
#, python-brace-format
msgid "A new version {new_version} is available!"
msgstr "A new version {new_version} is available!"
#: ImageBrowser.py:246
#, python-brace-format
msgid "Current version: {version}"
msgstr "Current version: {version}"
#: ImageBrowser.py:248
msgid "A GUI application for uploading images to KapitanBooru."
msgstr "A GUI application for uploading images to KapitanBooru."
#: ImageBrowser.py:249
msgid "Features include image upload, tag management, automatic"
msgstr "Features include image upload, tag management, automatic"
#: ImageBrowser.py:250
msgid "tagging with wdtagger, and cache management."
msgstr "tagging with wdtagger, and cache management."
#: ImageBrowser.py:252
msgid "Authors:"
msgstr "Authors:"
#: ImageBrowser.py:255
msgid "License: MIT License"
msgstr "License: MIT License"
#: ImageBrowser.py:268
msgid "Repository:"
msgstr "Repository:"
#: ImageBrowser.py:277
msgid "Website:"
msgstr "Website:"
#: ImageBrowser.py:288
msgid "Close"
msgstr "Close"
#: ImageBrowser.py:298 ImageBrowser.py:301
msgid "Cache"
msgstr "Cache"
#: ImageBrowser.py:298
msgid "Cache Taggera zostało wyczyszczone."
msgstr "Tagger cache has been cleared."
#: ImageBrowser.py:301
msgid "Błąd przy czyszczeniu cache:"
msgstr "Error clearing cache:"
#: ImageBrowser.py:311
msgid "Login:"
msgstr "Login:"
#: ImageBrowser.py:317
msgid "Hasło:"
msgstr "Password:"
#: ImageBrowser.py:323
msgid "Base URL:"
msgstr "Base URL:"
#: ImageBrowser.py:329
msgid "Default Tags:"
msgstr "Default Tags:"
#: ImageBrowser.py:335
msgid "Browser:"
msgstr "Browser:"
#: ImageBrowser.py:349
msgid "Language:"
msgstr "Language:"
#: ImageBrowser.py:385
msgid "Zapisz"
msgstr "Save"
#: ImageBrowser.py:427
msgid "PNG Tags"
msgstr "PNG Tags"
#: ImageBrowser.py:439
msgid "Tagger Tags"
msgstr "Tagger Tags"
#: ImageBrowser.py:453
msgid "Manual Tags"
msgstr "Manual Tags"
#: ImageBrowser.py:464
msgid "Final Tags"
msgstr "Final Tags"
#: ImageBrowser.py:489
msgid "Wyświetl"
msgstr "Display"
#: ImageBrowser.py:506
msgid "Przetworzono tagi:"
msgstr "Processed tags:"
#: ImageBrowser.py:506 ImageBrowser.py:507 ImageBrowser.py:508
msgid "plików"
msgstr "files"
#: ImageBrowser.py:507
msgid "Zweryfikowano status uploadu:"
msgstr "Upload status verified:"
#: ImageBrowser.py:508
msgid "Zuploadowano:"
msgstr "Uploaded:"
#: ImageBrowser.py:537
msgid "Wybierz folder z obrazkami PNG, JPEG, WebP, AVIF i GIF"
msgstr "Select folder with PNG, JPEG, WebP, AVIF, and GIF images"
#: ImageBrowser.py:552
msgid "Informacja"
msgstr "Information"
#: ImageBrowser.py:553
msgid "Brak plików PNG, JPEG, WebP, AVIF lub GIF w wybranym folderze."
msgstr "No PNG, JPEG, WebP, AVIF or GIF files in the selected folder."
#: ImageBrowser.py:660 ImageBrowser.py:1183
msgid "Błąd wysyłania"
msgstr "Upload error"
#: ImageBrowser.py:695
msgid "Błąd"
msgstr "Error"
#: ImageBrowser.py:695
msgid "Nie można załadować obrazka:"
msgstr "Unable to load image:"
#: ImageBrowser.py:923 ImageBrowser.py:935
#, python-brace-format
msgid "Warning: Tag '{tag}' not found in implication graph"
msgstr "Warning: Tag '{tag}' not found in implication graph"
#: ImageBrowser.py:1144
msgid "Tagger przetwarza..."
msgstr "Tagger processing..."
#: ImageBrowser.py:1161
msgid "Potwierdzenie"
msgstr "Confirmation"
#: ImageBrowser.py:1618
#: ImageBrowser.py:1163
msgid ""
"Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n"
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
@@ -384,21 +423,6 @@ msgstr ""
"Each will be tagged with 'meta:auto_upload'.\n"
"Make sure the tags are correct!"
#: ImageBrowser.py:1642
msgid "Anulowano operację!"
msgstr "Operation cancelled!"
#: ImageBrowser.py:1650
#, python-brace-format
msgid ""
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
msgstr ""
"Uploading {file_path} with tags: {final_tags} and rating: {final_rating}"
#: ImageBrowser.py:1666
msgid "Przesłano pliki!"
msgstr "Files have been uploaded!"
#: ProcessingDialog.py:15
msgid "Processing..."
msgstr "Processing..."