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
All checks were successful
Gitea/kapitanbooru-uploader/pipeline/head This commit looks good
This commit is contained in:
@@ -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
|
||||
|
@@ -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:"
|
||||
|
||||
|
@@ -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:"
|
||||
|
||||
|
@@ -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.
|
||||
|
@@ -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 = [
|
||||
|
Reference in New Issue
Block a user