Bump version to 0.8.3; add artist extraction from filename and update localization files
All checks were successful
Gitea/kapitanbooru-uploader/pipeline/head This commit looks good

This commit is contained in:
2025-06-25 23:56:19 +02:00
parent a1b1450400
commit 0987fbbed0
5 changed files with 193 additions and 171 deletions

View File

@@ -23,7 +23,7 @@ from .TagsRepo import TagsRepo
from .autocomplete import TagManager
from .common import get_auth_token, login, open_tag_wiki_url, open_webbrowser
from .settings import Settings
from .tag_processing import TAG_FIXES, extract_parameters, parse_parameters, process_tag
from .tag_processing import TAG_FIXES, extract_parameters, parse_parameters, process_tag, extract_artist_from_filename
from .tagger_cache import TaggerCache
@@ -32,7 +32,7 @@ class ImageBrowser(tk.Tk):
super().__init__()
self.title("Kapitanbooru Uploader")
self.geometry("900x600")
self.version = "0.8.2"
self.version = "0.8.3"
self.acknowledged_version = parse_version(self.version)
self.settings = Settings()
@@ -250,6 +250,7 @@ class ImageBrowser(tk.Tk):
try:
img = Image.open(file_path)
parameters = extract_parameters(img, file_path)
artist_tag = extract_artist_from_filename(file_path)
png_tags = set(
[
x
@@ -258,6 +259,8 @@ class ImageBrowser(tk.Tk):
is not None # Ignoruj nieistniejące tagi
]
)
if artist_tag:
png_tags.add("artist:" + artist_tag.replace(" ", "_").replace("\\", ""))
img.close()
except Exception as e:
print(_("Błąd przy otwieraniu pliku"), file_path, ":", e)
@@ -924,10 +927,13 @@ class ImageBrowser(tk.Tk):
try:
img = Image.open(file_path)
parameters = extract_parameters(img, file_path)
artist_tag = extract_artist_from_filename(file_path)
self.current_image_original = img.copy()
self.current_parameters = parameters
self.update_display_image()
parsed_parameters = parse_parameters(parameters, self.tags_repo)
if artist_tag:
parsed_parameters += f" artist:{artist_tag.replace(' ', '_').replace('\\', '')}"
# Uaktualnij widget PNG Tags
self.update_png_tags_widget(parsed_parameters.split())
# Uruchom Taggera w osobnym wątku

View File

@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Kapitanbooru Uploader 0.8.2\n"
"Project-Id-Version: Kapitanbooru Uploader 0.8.3\n"
"Report-Msgid-Bugs-To: kapitan@mlesniak.pl\n"
"POT-Creation-Date: 2025-03-27 20:47+0100\n"
"POT-Creation-Date: 2025-06-25 23:49+0200\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -75,241 +75,241 @@ msgstr ""
"\n"
"Update using: {update_command}"
#: ImageBrowser.py:263
#: ImageBrowser.py:266
msgid "Błąd przy otwieraniu pliku"
msgstr "Error opening file"
#: ImageBrowser.py:305
#: ImageBrowser.py:308
msgid "Tagger przetworzył:"
msgstr "Tagger processed:"
#: ImageBrowser.py:308
#: ImageBrowser.py:311
msgid "Błąd Taggera dla"
msgstr "Tagger error for"
#: ImageBrowser.py:334
#: ImageBrowser.py:337
msgid "Otwórz folder"
msgstr "Open folder"
#: ImageBrowser.py:337 ImageBrowser.py:626 ImageBrowser.py:853
#: ImageBrowser.py:861
#: ImageBrowser.py:340 ImageBrowser.py:629 ImageBrowser.py:856
#: ImageBrowser.py:864
msgid "Wyślij"
msgstr "Send"
#: ImageBrowser.py:340 ImageBrowser.py:846
#: ImageBrowser.py:343 ImageBrowser.py:849
msgid "Wyślij wszystko"
msgstr "Send all"
#: ImageBrowser.py:344 ImageBrowser.py:847 ImageBrowser.py:853
#: ImageBrowser.py:347 ImageBrowser.py:850 ImageBrowser.py:856
msgid "Podmień tagi"
msgstr "Replace tags"
#: ImageBrowser.py:347 ImageBrowser.py:848
#: ImageBrowser.py:350 ImageBrowser.py:851
msgid "Otwórz post"
msgstr "Open post"
#: ImageBrowser.py:350
#: ImageBrowser.py:353
msgid "Zakończ"
msgstr "Finish"
#: ImageBrowser.py:352
#: ImageBrowser.py:355
msgid "Plik"
msgstr "File"
#: ImageBrowser.py:356 ImageBrowser.py:455
#: ImageBrowser.py:359 ImageBrowser.py:458
msgid "Ustawienia"
msgstr "Settings"
#: ImageBrowser.py:359
#: ImageBrowser.py:362
msgid "Wyczyść cache Taggera"
msgstr "Clear Tagger cache"
#: ImageBrowser.py:362
#: ImageBrowser.py:365
msgid "Zregeneruj bazę tagów"
msgstr "Regenerate tag database"
#: ImageBrowser.py:364
#: ImageBrowser.py:367
msgid "Opcje"
msgstr "Options"
#: ImageBrowser.py:367
#: ImageBrowser.py:370
msgid "About"
msgstr "About"
#: ImageBrowser.py:368
#: ImageBrowser.py:371
msgid "Help"
msgstr "Help"
#: ImageBrowser.py:373
#: ImageBrowser.py:376
msgid "About Kapitanbooru Uploader"
msgstr "About Kapitanbooru Uploader"
#: ImageBrowser.py:390
#: ImageBrowser.py:393
#, python-brace-format
msgid "A new version {new_version} is available!"
msgstr "A new version {new_version} is available!"
#: ImageBrowser.py:397
#: ImageBrowser.py:400
#, python-brace-format
msgid "Current version: {version}"
msgstr "Current version: {version}"
#: ImageBrowser.py:399
#: ImageBrowser.py:402
msgid "A GUI application for uploading images to KapitanBooru."
msgstr "A GUI application for uploading images to KapitanBooru."
#: ImageBrowser.py:400
#: ImageBrowser.py:403
msgid "Features include image upload, tag management, automatic"
msgstr "Features include image upload, tag management, automatic"
#: ImageBrowser.py:401
#: ImageBrowser.py:404
msgid "tagging with wdtagger, and cache management."
msgstr "tagging with wdtagger, and cache management."
#: ImageBrowser.py:403
#: ImageBrowser.py:406
msgid "Authors:"
msgstr "Authors:"
#: ImageBrowser.py:406
#: ImageBrowser.py:409
msgid "License: MIT License"
msgstr "License: MIT License"
#: ImageBrowser.py:419
#: ImageBrowser.py:422
msgid "Repository:"
msgstr "Repository:"
#: ImageBrowser.py:428
#: ImageBrowser.py:431
msgid "Website:"
msgstr "Website:"
#: ImageBrowser.py:439
#: ImageBrowser.py:442
msgid "Close"
msgstr "Close"
#: ImageBrowser.py:447 ImageBrowser.py:450
#: ImageBrowser.py:450 ImageBrowser.py:453
msgid "Cache"
msgstr "Cache"
#: ImageBrowser.py:447
#: ImageBrowser.py:450
msgid "Cache Taggera zostało wyczyszczone."
msgstr "Tagger cache has been cleared."
#: ImageBrowser.py:450
#: ImageBrowser.py:453
msgid "Błąd przy czyszczeniu cache:"
msgstr "Error clearing cache:"
#: ImageBrowser.py:460
#: ImageBrowser.py:463
msgid "Login:"
msgstr "Login:"
#: ImageBrowser.py:466
#: ImageBrowser.py:469
msgid "Hasło:"
msgstr "Password:"
#: ImageBrowser.py:472
#: ImageBrowser.py:475
msgid "Base URL:"
msgstr "Base URL:"
#: ImageBrowser.py:478
#: ImageBrowser.py:481
msgid "Default Tags:"
msgstr "Default Tags:"
#: ImageBrowser.py:484
#: ImageBrowser.py:487
msgid "Browser:"
msgstr "Browser:"
#: ImageBrowser.py:498
#: ImageBrowser.py:501
msgid "Language:"
msgstr "Language:"
#: ImageBrowser.py:530
#: ImageBrowser.py:533
msgid "Zapisz"
msgstr "Save"
#: ImageBrowser.py:572
#: ImageBrowser.py:575
msgid "PNG Tags"
msgstr "PNG Tags"
#: ImageBrowser.py:584
#: ImageBrowser.py:587
msgid "Tagger Tags"
msgstr "Tagger Tags"
#: ImageBrowser.py:598
#: ImageBrowser.py:601
msgid "Manual Tags"
msgstr "Manual Tags"
#: ImageBrowser.py:606
#: ImageBrowser.py:609
msgid "Final Tags"
msgstr "Final Tags"
#: ImageBrowser.py:631
#: ImageBrowser.py:634
msgid "Wyświetl"
msgstr "Display"
#: ImageBrowser.py:648
#: ImageBrowser.py:651
msgid "Przetworzono tagi:"
msgstr "Processed tags:"
#: ImageBrowser.py:648 ImageBrowser.py:649 ImageBrowser.py:650
#: ImageBrowser.py:651 ImageBrowser.py:652 ImageBrowser.py:653
msgid "plików"
msgstr "files"
#: ImageBrowser.py:649
#: ImageBrowser.py:652
msgid "Zweryfikowano status uploadu:"
msgstr "Upload status verified:"
#: ImageBrowser.py:650
#: ImageBrowser.py:653
msgid "Zuploadowano:"
msgstr "Uploaded:"
#: ImageBrowser.py:679
#: 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:721
#: ImageBrowser.py:724
msgid "Informacja"
msgstr "Information"
#: ImageBrowser.py:722
#: 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:805
#: ImageBrowser.py:808
msgid "Błąd podczas sprawdzania paczki uploadu:"
msgstr "Error while checking upload package:"
#: ImageBrowser.py:881
#: ImageBrowser.py:881
#: ImageBrowser.py:884
msgid "Error computing MD5:"
msgstr "Error computing MD5:"
#: ImageBrowser.py:940
#: ImageBrowser.py:946
msgid "Błąd"
msgstr "Error"
#: ImageBrowser.py:940
#: ImageBrowser.py:946
msgid "Nie można załadować obrazka:"
msgstr "Unable to load image:"
#: ImageBrowser.py:1150 ImageBrowser.py:1160
#: 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"
#: ImageBrowser.py:1390
#: ImageBrowser.py:1396
msgid "Tagger przetwarza..."
msgstr "Tagger processing..."
#: ImageBrowser.py:1415
#: ImageBrowser.py:1421
#, python-brace-format
msgid "Wysyłam plik {base_file_name}..."
msgstr "Sending file {base_file_name}..."
#: ImageBrowser.py:1456
#: ImageBrowser.py:1462
msgid "Wysyłanie zakończone powodzeniem!"
msgstr "Upload completed successfully!"
#: ImageBrowser.py:1460 ImageBrowser.py:1469
#: ImageBrowser.py:1466 ImageBrowser.py:1475
#, python-brace-format
msgid ""
"Wysyłanie zakończone błędem.\n"
@@ -320,40 +320,40 @@ msgstr ""
"Status: {status_code}\n"
"Content: {text}"
#: ImageBrowser.py:1475 ImageBrowser.py:1478
#: ImageBrowser.py:1481 ImageBrowser.py:1484
msgid "Wysyłanie"
msgstr "Uploading"
#: ImageBrowser.py:1491
#: ImageBrowser.py:1497
msgid "Błąd wysyłania"
msgstr "Upload error"
#: ImageBrowser.py:1511
#: ImageBrowser.py:1517
msgid "Błąd edycji"
msgstr "Edit error"
#: ImageBrowser.py:1511
#: ImageBrowser.py:1517
msgid "Post nie został znaleziony dla tego pliku"
msgstr "Post not found for this file"
#: ImageBrowser.py:1521
#: ImageBrowser.py:1527
#, python-brace-format
msgid "Aktualizuję tagi dla {base_file_name}..."
msgstr "Updating tags for {base_file_name}..."
#: ImageBrowser.py:1531 ImageBrowser.py:1541 ImageBrowser.py:1572
#: ImageBrowser.py:1537 ImageBrowser.py:1547 ImageBrowser.py:1578
msgid "Operacja anulowana"
msgstr "Operation cancelled"
#: ImageBrowser.py:1582
#: ImageBrowser.py:1588
msgid "Tagi zostały zaktualizowane!"
msgstr "Tags have been updated!"
#: ImageBrowser.py:1584
#: ImageBrowser.py:1590
msgid "Sukces edycji"
msgstr "Edit successful"
#: ImageBrowser.py:1590
#: ImageBrowser.py:1596
#, python-brace-format
msgid ""
"Błąd podczas aktualizacji tagów\n"
@@ -362,19 +362,19 @@ msgstr ""
"Error updating tags\n"
"Status: {code}"
#: ImageBrowser.py:1594
#: ImageBrowser.py:1600
msgid "Treść:"
msgstr "Content:"
#: ImageBrowser.py:1598
#: ImageBrowser.py:1604
msgid "Krytyczny błąd edycji"
msgstr "Critical edit error"
#: ImageBrowser.py:1610
#: ImageBrowser.py:1616
msgid "Potwierdzenie"
msgstr "Confirmation"
#: ImageBrowser.py:1612
#: ImageBrowser.py:1618
msgid ""
"Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n"
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
@@ -384,18 +384,18 @@ msgstr ""
"Each will be tagged with 'meta:auto_upload'.\n"
"Make sure the tags are correct!"
#: ImageBrowser.py:1636
#: ImageBrowser.py:1642
msgid "Anulowano operację!"
msgstr "Operation cancelled!"
#: ImageBrowser.py:1644
#: 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:1660
#: ImageBrowser.py:1666
msgid "Przesłano pliki!"
msgstr "Files have been uploaded!"
@@ -419,27 +419,27 @@ msgstr "Error loading settings:"
msgid "Błąd podczas zapisywania ustawień:"
msgstr "Error saving settings:"
#: tag_processing.py:19
#: tag_processing.py:20
msgid "Błąd przy pobieraniu tagów postaci:"
msgstr "Error fetching character tags:"
#: tag_processing.py:34
#: tag_processing.py:35
msgid "Błąd przy pobieraniu tagów copyright:"
msgstr "Error fetching copyright tags:"
#: tag_processing.py:49
#: tag_processing.py:50
msgid "Błąd przy pobieraniu tagów artystów:"
msgstr "Error fetching artist tags:"
#: tag_processing.py:164
#: tag_processing.py:164
#: tag_processing.py:208
msgid "Nie można sparsować parametrów."
msgstr "Unable to parse parameters."
#: tag_processing.py:249
#: tag_processing.py:295
msgid "Błąd podczas odczytu tag_aliases:"
msgstr "Error reading tag aliases:"
#: tag_processing.py:265
#: tag_processing.py:311
msgid "Błąd podczas odczytu tags:"
msgstr "Error reading tags:"

View File

@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Kapitanbooru Uploader 0.8.2\n"
"Project-Id-Version: Kapitanbooru Uploader 0.8.3\n"
"Report-Msgid-Bugs-To: kapitan@mlesniak.pl\n"
"POT-Creation-Date: 2025-03-27 20:47+0100\n"
"POT-Creation-Date: 2025-06-25 23:49+0200\n"
"Language: pl\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -77,242 +77,242 @@ msgstr ""
"\n"
"Aktualizuj za pomocą: {update_command}"
#: ImageBrowser.py:263
#: ImageBrowser.py:266
msgid "Błąd przy otwieraniu pliku"
msgstr "Błąd przy otwieraniu pliku"
#: ImageBrowser.py:305
#: ImageBrowser.py:308
msgid "Tagger przetworzył:"
msgstr "Tagger przetworzył:"
#: ImageBrowser.py:308
#: ImageBrowser.py:311
msgid "Błąd Taggera dla"
msgstr "Błąd Taggera dla"
#: ImageBrowser.py:334
#: ImageBrowser.py:337
msgid "Otwórz folder"
msgstr "Otwórz folder"
#: ImageBrowser.py:337 ImageBrowser.py:626 ImageBrowser.py:853
#: ImageBrowser.py:861
#: ImageBrowser.py:340 ImageBrowser.py:629 ImageBrowser.py:856
#: ImageBrowser.py:864
msgid "Wyślij"
msgstr "Wyślij"
#: ImageBrowser.py:340 ImageBrowser.py:846
#: ImageBrowser.py:343 ImageBrowser.py:849
msgid "Wyślij wszystko"
msgstr "Wyślij wszystko"
#: ImageBrowser.py:344 ImageBrowser.py:847 ImageBrowser.py:853
#: ImageBrowser.py:347 ImageBrowser.py:850 ImageBrowser.py:856
msgid "Podmień tagi"
msgstr "Podmień tagi"
#: ImageBrowser.py:347 ImageBrowser.py:848
#: ImageBrowser.py:350 ImageBrowser.py:851
msgid "Otwórz post"
msgstr "Otwórz post"
#: ImageBrowser.py:350
#: ImageBrowser.py:353
msgid "Zakończ"
msgstr "Zakończ"
#: ImageBrowser.py:352
#: ImageBrowser.py:355
msgid "Plik"
msgstr "Plik"
#: ImageBrowser.py:356 ImageBrowser.py:455
#: ImageBrowser.py:359 ImageBrowser.py:458
msgid "Ustawienia"
msgstr "Ustawienia"
#: ImageBrowser.py:359
#: ImageBrowser.py:362
msgid "Wyczyść cache Taggera"
msgstr "Wyczyść cache Taggera"
#: ImageBrowser.py:362
#: ImageBrowser.py:365
msgid "Zregeneruj bazę tagów"
msgstr "Zregeneruj bazę tagów"
#: ImageBrowser.py:364
#: ImageBrowser.py:367
msgid "Opcje"
msgstr "Opcje"
#: ImageBrowser.py:367
#: ImageBrowser.py:370
msgid "About"
msgstr "O programie"
#: ImageBrowser.py:368
#: ImageBrowser.py:371
msgid "Help"
msgstr "Pomoc"
#: ImageBrowser.py:373
#: ImageBrowser.py:376
msgid "About Kapitanbooru Uploader"
msgstr "O programie Kapitanbooru Uploader"
#: ImageBrowser.py:390
#: ImageBrowser.py:393
#, python-brace-format
msgid "A new version {new_version} is available!"
msgstr "Dostępna jest nowa wersja {new_version}!"
#: ImageBrowser.py:397
#: ImageBrowser.py:400
#, python-brace-format
msgid "Current version: {version}"
msgstr "Obecna wersja: {version}"
#: ImageBrowser.py:399
#: ImageBrowser.py:402
msgid "A GUI application for uploading images to KapitanBooru."
msgstr "Aplikacja GUI do przesyłania obrazów do KapitanBooru."
#: ImageBrowser.py:400
#: ImageBrowser.py:403
msgid "Features include image upload, tag management, automatic"
msgstr "Funkcje obejmują przesyłanie obrazów, zarządzanie tagami, automatyczne"
#: ImageBrowser.py:401
#: ImageBrowser.py:404
msgid "tagging with wdtagger, and cache management."
msgstr "tagowanie za pomocą wdtagger oraz zarządzanie cache."
#: ImageBrowser.py:403
#: ImageBrowser.py:406
msgid "Authors:"
msgstr "Autorzy:"
#: ImageBrowser.py:406
#: ImageBrowser.py:409
msgid "License: MIT License"
msgstr "Licencja: MIT License"
#: ImageBrowser.py:419
#: ImageBrowser.py:422
msgid "Repository:"
msgstr "Repozytorium:"
#: ImageBrowser.py:428
#: ImageBrowser.py:431
msgid "Website:"
msgstr "Strona internetowa:"
#: ImageBrowser.py:439
#: ImageBrowser.py:442
msgid "Close"
msgstr "Zamknij"
#: ImageBrowser.py:447 ImageBrowser.py:450
#: ImageBrowser.py:450 ImageBrowser.py:453
msgid "Cache"
msgstr "Cache"
#: ImageBrowser.py:447
#: ImageBrowser.py:450
msgid "Cache Taggera zostało wyczyszczone."
msgstr "Cache Taggera zostało wyczyszczone."
#: ImageBrowser.py:450
#: ImageBrowser.py:453
msgid "Błąd przy czyszczeniu cache:"
msgstr "Błąd przy czyszczeniu cache:"
#: ImageBrowser.py:460
#: ImageBrowser.py:463
msgid "Login:"
msgstr "Login:"
#: ImageBrowser.py:466
#: ImageBrowser.py:469
msgid "Hasło:"
msgstr "Hasło:"
#: ImageBrowser.py:472
#: ImageBrowser.py:475
msgid "Base URL:"
msgstr "Base URL:"
#: ImageBrowser.py:478
#: ImageBrowser.py:481
msgid "Default Tags:"
msgstr "Domyślne tagi:"
#: ImageBrowser.py:484
#: ImageBrowser.py:487
msgid "Browser:"
msgstr "Przeglądarka:"
#: ImageBrowser.py:498
#: ImageBrowser.py:501
msgid "Language:"
msgstr "Język:"
#: ImageBrowser.py:530
#: ImageBrowser.py:533
msgid "Zapisz"
msgstr "Zapisz"
#: ImageBrowser.py:572
#: ImageBrowser.py:575
msgid "PNG Tags"
msgstr "Tagi PNG"
#: ImageBrowser.py:584
#: ImageBrowser.py:587
msgid "Tagger Tags"
msgstr "Tagi Taggera"
#: ImageBrowser.py:598
#: ImageBrowser.py:601
msgid "Manual Tags"
msgstr "Tagi ręczne"
#: ImageBrowser.py:606
#: ImageBrowser.py:609
msgid "Final Tags"
msgstr "Ostateczne tagi"
#: ImageBrowser.py:631
#: ImageBrowser.py:634
msgid "Wyświetl"
msgstr "Wyświetl"
#: ImageBrowser.py:648
#: ImageBrowser.py:651
msgid "Przetworzono tagi:"
msgstr "Przetworzono tagi:"
#: ImageBrowser.py:648 ImageBrowser.py:649 ImageBrowser.py:650
#: ImageBrowser.py:651 ImageBrowser.py:652 ImageBrowser.py:653
msgid "plików"
msgstr "plików"
#: ImageBrowser.py:649
#: ImageBrowser.py:652
msgid "Zweryfikowano status uploadu:"
msgstr "Zweryfikowano status uploadu:"
#: ImageBrowser.py:650
#: ImageBrowser.py:653
msgid "Zuploadowano:"
msgstr "Zuploadowano:"
#: ImageBrowser.py:679
#: ImageBrowser.py:682
#, fuzzy
msgid "Wybierz folder z obrazkami PNG, JPEG, WebP, AVIF i GIF"
msgstr "Wybierz folder z obrazami PNG"
#: ImageBrowser.py:721
#: ImageBrowser.py:724
msgid "Informacja"
msgstr "Informacja"
#: ImageBrowser.py:722
#: ImageBrowser.py:725
#, fuzzy
msgid "Brak plików PNG, JPEG, WebP, AVIF lub GIF w wybranym folderze."
msgstr "Brak plików PNG w wybranym folderze."
#: ImageBrowser.py:805
#: ImageBrowser.py:808
msgid "Błąd podczas sprawdzania paczki uploadu:"
msgstr "Błąd podczas sprawdzania paczki uploadu:"
#: ImageBrowser.py:881
#: ImageBrowser.py:884
msgid "Error computing MD5:"
msgstr "Błąd przy obliczaniu MD5:"
#: ImageBrowser.py:940
#: ImageBrowser.py:946
msgid "Błąd"
msgstr "Błąd"
#: ImageBrowser.py:940
#: ImageBrowser.py:946
msgid "Nie można załadować obrazka:"
msgstr "Nie można załadować obrazka:"
#: ImageBrowser.py:1150 ImageBrowser.py:1160
#: ImageBrowser.py:1156 ImageBrowser.py:1166
#, python-brace-format
msgid "Warning: Tag '{tag}' not found in implication graph"
msgstr "Ostrzeżenie: Tag '{tag}' nie został znaleziony w grafie implikacji"
#: ImageBrowser.py:1390
#: ImageBrowser.py:1396
msgid "Tagger przetwarza..."
msgstr "Tagger przetwarza..."
#: ImageBrowser.py:1415
#: ImageBrowser.py:1421
#, python-brace-format
msgid "Wysyłam plik {base_file_name}..."
msgstr "Wysyłam plik {base_file_name}..."
#: ImageBrowser.py:1456
#: ImageBrowser.py:1462
msgid "Wysyłanie zakończone powodzeniem!"
msgstr "Wysyłanie zakończone powodzeniem!"
#: ImageBrowser.py:1460 ImageBrowser.py:1469
#: ImageBrowser.py:1466 ImageBrowser.py:1475
#, python-brace-format
msgid ""
"Wysyłanie zakończone błędem.\n"
@@ -323,40 +323,40 @@ msgstr ""
"Status: {status_code}\n"
"Treść: {text}"
#: ImageBrowser.py:1475 ImageBrowser.py:1478
#: ImageBrowser.py:1481 ImageBrowser.py:1484
msgid "Wysyłanie"
msgstr "Wysyłanie"
#: ImageBrowser.py:1491
#: ImageBrowser.py:1497
msgid "Błąd wysyłania"
msgstr "Błąd wysyłania"
#: ImageBrowser.py:1511
#: ImageBrowser.py:1517
msgid "Błąd edycji"
msgstr "Błąd edycji"
#: ImageBrowser.py:1511
#: ImageBrowser.py:1517
msgid "Post nie został znaleziony dla tego pliku"
msgstr "Post nie został znaleziony dla tego pliku"
#: ImageBrowser.py:1521
#: ImageBrowser.py:1527
#, python-brace-format
msgid "Aktualizuję tagi dla {base_file_name}..."
msgstr "Aktualizuję tagi dla {base_file_name}..."
#: ImageBrowser.py:1531 ImageBrowser.py:1541 ImageBrowser.py:1572
#: ImageBrowser.py:1537 ImageBrowser.py:1547 ImageBrowser.py:1578
msgid "Operacja anulowana"
msgstr "Operacja anulowana"
#: ImageBrowser.py:1582
#: ImageBrowser.py:1588
msgid "Tagi zostały zaktualizowane!"
msgstr "Tagi zostały zaktualizowane!"
#: ImageBrowser.py:1584
#: ImageBrowser.py:1590
msgid "Sukces edycji"
msgstr "Sukces edycji"
#: ImageBrowser.py:1590
#: ImageBrowser.py:1596
#, python-brace-format
msgid ""
"Błąd podczas aktualizacji tagów\n"
@@ -365,19 +365,19 @@ msgstr ""
"Błąd podczas aktualizacji tagów\n"
"Status: {code}"
#: ImageBrowser.py:1594
#: ImageBrowser.py:1600
msgid "Treść:"
msgstr "Treść:"
#: ImageBrowser.py:1598
#: ImageBrowser.py:1604
msgid "Krytyczny błąd edycji"
msgstr "Krytyczny błąd edycji"
#: ImageBrowser.py:1610
#: ImageBrowser.py:1616
msgid "Potwierdzenie"
msgstr "Potwierdzenie"
#: ImageBrowser.py:1612
#: ImageBrowser.py:1618
msgid ""
"Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n"
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
@@ -387,18 +387,18 @@ msgstr ""
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
"Upewnij się, że tagi są poprawne!"
#: ImageBrowser.py:1636
#: ImageBrowser.py:1642
msgid "Anulowano operację!"
msgstr "Operacja anulowana!"
#: ImageBrowser.py:1644
#: ImageBrowser.py:1650
#, python-brace-format
msgid ""
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
msgstr ""
"Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}"
#: ImageBrowser.py:1660
#: ImageBrowser.py:1666
msgid "Przesłano pliki!"
msgstr "Pliki zostały przesłane!"
@@ -422,28 +422,28 @@ msgstr "Błąd podczas ładowania ustawień:"
msgid "Błąd podczas zapisywania ustawień:"
msgstr "Błąd podczas zapisywania ustawień:"
#: tag_processing.py:19
#: tag_processing.py:20
msgid "Błąd przy pobieraniu tagów postaci:"
msgstr "Błąd przy pobieraniu tagów postaci:"
#: tag_processing.py:34
#: tag_processing.py:35
msgid "Błąd przy pobieraniu tagów copyright:"
msgstr "Błąd przy pobieraniu tagów copyright:"
#: tag_processing.py:49
#: tag_processing.py:50
msgid "Błąd przy pobieraniu tagów artystów:"
msgstr "Błąd przy pobieraniu tagów artystów:"
#: tag_processing.py:164
#: tag_processing.py:208
#, fuzzy
msgid "Nie można sparsować parametrów."
msgstr "Nie można załadować obrazka:"
#: tag_processing.py:249
#: tag_processing.py:295
msgid "Błąd podczas odczytu tag_aliases:"
msgstr "Błąd podczas odczytu tag_aliases:"
#: tag_processing.py:265
#: tag_processing.py:311
msgid "Błąd podczas odczytu tags:"
msgstr "Błąd podczas odczytu tags:"

View File

@@ -1,5 +1,6 @@
from functools import lru_cache
import re
from os.path import basename
from .I18N import _
from .TagsRepo import TagsRepo
@@ -86,6 +87,8 @@ AUTO_METATAGS = [
"score_3_up",
"score_2_up",
"score_1_up",
"amazing_quality",
"best_quality",
]
TAG_FIXES = {
"2boy": "2boys",
@@ -115,6 +118,19 @@ MULTI_TAG_FIXES = {
from PIL import Image, PngImagePlugin
def extract_artist_from_filename(file_path: str) -> str:
"""Funkcja do ekstrakcji nazwy artysty z nazwy pliku.
Zakłada, że nazwa pliku jest w formacie "numer-seed-artysta.ext".
"""
# Pobierz nazwę pliku z pełnej ścieżki
file_name = basename(file_path)
# Upewniamy się, że nazwa pliku jest w formacie "numer-seed-artysta.ext"
if "-" not in file_name or file_name.count("-") < 2:
return ""
artist_name = file_name.split("-")[-1].split(".")[0]
return artist_name.strip() # Usuń ewentualne spacje
def extract_parameters(img: Image, file_path: str) -> str:
"""Funkcja do ekstrakcji parametrów z pliku graficznego.
Obsługuje PNG, JPEG, WebP, AVIF i GIF.

View File

@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "kapitanbooru-uploader"
version = "0.8.2"
version = "0.8.3"
description = "A GUI application for uploading images to KapitanBooru"
authors = [{ name = "Michał Leśniak", email = "kapitan@mlesniak.pl" }]
dependencies = [