Bump version to 0.6.0 and add artist tag processing functionality
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:
parent
0978dd8e3c
commit
96597a4e2b
@ -142,7 +142,7 @@ class ImageBrowser(tk.Tk):
|
||||
super().__init__()
|
||||
self.title("Kapitanbooru Uploader")
|
||||
self.geometry("900x600")
|
||||
self.version = "0.5.2"
|
||||
self.version = "0.6.0"
|
||||
self.acknowledged_version = parse_version(self.version)
|
||||
|
||||
self.settings = Settings()
|
||||
@ -217,6 +217,10 @@ class ImageBrowser(tk.Tk):
|
||||
# Check every 5 minutes (300,000 ms)
|
||||
self.after(300000, self._schedule_update_check)
|
||||
|
||||
def is_installed_via_pipx(self):
|
||||
"""Check if the application is installed via pipx"""
|
||||
return os.environ.get("__PIPX_ORIGIN") == "pipx"
|
||||
|
||||
def _check_for_update(self):
|
||||
"""Check for updates in a background thread"""
|
||||
|
||||
@ -263,7 +267,11 @@ class ImageBrowser(tk.Tk):
|
||||
formatted_message = message_template.format(
|
||||
new_version=new_version,
|
||||
current_version=self.version,
|
||||
update_command="pip install --upgrade kapitanbooru-uploader",
|
||||
update_command=(
|
||||
"pipx upgrade kapitanbooru-uploader"
|
||||
if self.is_installed_via_pipx()
|
||||
else "pip install --upgrade kapitanbooru-uploader"
|
||||
),
|
||||
)
|
||||
|
||||
messagebox.showinfo(title, formatted_message)
|
||||
@ -513,7 +521,9 @@ class ImageBrowser(tk.Tk):
|
||||
]
|
||||
|
||||
for text in content:
|
||||
ttk.Label(frame, text=text).grid(row=next(row_counter), column=0, sticky=tk.W)
|
||||
ttk.Label(frame, text=text).grid(
|
||||
row=next(row_counter), column=0, sticky=tk.W
|
||||
)
|
||||
|
||||
# Repository link
|
||||
repo_frame = ttk.Frame(frame)
|
||||
|
@ -1,8 +1,8 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Kapitanbooru Uploader 0.5.2\n"
|
||||
"Project-Id-Version: Kapitanbooru Uploader 0.6.0\n"
|
||||
"Report-Msgid-Bugs-To: kapitan@mlesniak.pl\n"
|
||||
"POT-Creation-Date: 2025-03-15 19:42+0100\n"
|
||||
"POT-Creation-Date: 2025-03-16 01:22+0100\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@ -51,26 +51,26 @@ msgstr "Processing..."
|
||||
msgid "Processing, please wait..."
|
||||
msgstr "Processing, please wait..."
|
||||
|
||||
#: ImageBrowser.py:244
|
||||
#: ImageBrowser.py:248
|
||||
#, python-brace-format
|
||||
msgid "Update check failed: {error}"
|
||||
msgstr "Update check failed: {error}"
|
||||
|
||||
#: ImageBrowser.py:246
|
||||
#: ImageBrowser.py:250
|
||||
#, python-brace-format
|
||||
msgid "Malformed pyproject.toml: {error}"
|
||||
msgstr "Malformed pyproject.toml: {error}"
|
||||
|
||||
#: ImageBrowser.py:249
|
||||
#: ImageBrowser.py:253
|
||||
#, python-brace-format
|
||||
msgid "Unexpected error during update check: {error}"
|
||||
msgstr "Unexpected error during update check: {error}"
|
||||
|
||||
#: ImageBrowser.py:256
|
||||
#: ImageBrowser.py:260
|
||||
msgid "Update Available"
|
||||
msgstr "Update Available"
|
||||
|
||||
#: ImageBrowser.py:258
|
||||
#: ImageBrowser.py:262
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A new version {new_version} is available!\n"
|
||||
@ -83,240 +83,240 @@ msgstr ""
|
||||
"\n"
|
||||
"Update using: {update_command}"
|
||||
|
||||
#: ImageBrowser.py:367
|
||||
#: ImageBrowser.py:375
|
||||
msgid "Błąd przy otwieraniu pliku"
|
||||
msgstr "Error opening file"
|
||||
|
||||
#: ImageBrowser.py:409
|
||||
#: ImageBrowser.py:417
|
||||
msgid "Tagger przetworzył:"
|
||||
msgstr "Tagger processed:"
|
||||
|
||||
#: ImageBrowser.py:412
|
||||
#: ImageBrowser.py:420
|
||||
msgid "Błąd Taggera dla"
|
||||
msgstr "Tagger error for"
|
||||
|
||||
#: ImageBrowser.py:438
|
||||
#: ImageBrowser.py:446
|
||||
msgid "Otwórz folder"
|
||||
msgstr "Open folder"
|
||||
|
||||
#: ImageBrowser.py:441 ImageBrowser.py:728 ImageBrowser.py:944
|
||||
#: ImageBrowser.py:952
|
||||
#: ImageBrowser.py:449 ImageBrowser.py:738 ImageBrowser.py:954
|
||||
#: ImageBrowser.py:962
|
||||
msgid "Wyślij"
|
||||
msgstr "Send"
|
||||
|
||||
#: ImageBrowser.py:444 ImageBrowser.py:937
|
||||
#: ImageBrowser.py:452 ImageBrowser.py:947
|
||||
msgid "Wyślij wszystko"
|
||||
msgstr "Send all"
|
||||
|
||||
#: ImageBrowser.py:448 ImageBrowser.py:938 ImageBrowser.py:944
|
||||
#: ImageBrowser.py:456 ImageBrowser.py:948 ImageBrowser.py:954
|
||||
msgid "Podmień tagi"
|
||||
msgstr "Replace tags"
|
||||
|
||||
#: ImageBrowser.py:451 ImageBrowser.py:939
|
||||
#: ImageBrowser.py:459 ImageBrowser.py:949
|
||||
msgid "Otwórz post"
|
||||
msgstr "Open post"
|
||||
|
||||
#: ImageBrowser.py:454
|
||||
#: ImageBrowser.py:462
|
||||
msgid "Zakończ"
|
||||
msgstr "Finish"
|
||||
|
||||
#: ImageBrowser.py:456
|
||||
#: ImageBrowser.py:464
|
||||
msgid "Plik"
|
||||
msgstr "File"
|
||||
|
||||
#: ImageBrowser.py:460 ImageBrowser.py:557
|
||||
#: ImageBrowser.py:468 ImageBrowser.py:567
|
||||
msgid "Ustawienia"
|
||||
msgstr "Settings"
|
||||
|
||||
#: ImageBrowser.py:463
|
||||
#: ImageBrowser.py:471
|
||||
msgid "Wyczyść cache Taggera"
|
||||
msgstr "Clear Tagger cache"
|
||||
|
||||
#: ImageBrowser.py:466
|
||||
#: ImageBrowser.py:474
|
||||
msgid "Zregeneruj bazę tagów"
|
||||
msgstr "Regenerate tag database"
|
||||
|
||||
#: ImageBrowser.py:468
|
||||
#: ImageBrowser.py:476
|
||||
msgid "Opcje"
|
||||
msgstr "Options"
|
||||
|
||||
#: ImageBrowser.py:471
|
||||
#: ImageBrowser.py:479
|
||||
msgid "About"
|
||||
msgstr "About"
|
||||
|
||||
#: ImageBrowser.py:472
|
||||
#: ImageBrowser.py:480
|
||||
msgid "Help"
|
||||
msgstr "Help"
|
||||
|
||||
#: ImageBrowser.py:477
|
||||
#: ImageBrowser.py:485
|
||||
msgid "About Kapitanbooru Uploader"
|
||||
msgstr "About Kapitanbooru Uploader"
|
||||
|
||||
#: ImageBrowser.py:494
|
||||
#: ImageBrowser.py:502
|
||||
#, python-brace-format
|
||||
msgid "A new version {new_version} is available!"
|
||||
msgstr "A new version {new_version} is available!"
|
||||
|
||||
#: ImageBrowser.py:501
|
||||
#: ImageBrowser.py:509
|
||||
#, python-brace-format
|
||||
msgid "Current version: {version}"
|
||||
msgstr "Current version: {version}"
|
||||
|
||||
#: ImageBrowser.py:503
|
||||
#: ImageBrowser.py:511
|
||||
msgid "A GUI application for uploading images to KapitanBooru."
|
||||
msgstr "A GUI application for uploading images to KapitanBooru."
|
||||
|
||||
#: ImageBrowser.py:504
|
||||
#: ImageBrowser.py:512
|
||||
msgid "Features include image upload, tag management, automatic"
|
||||
msgstr "Features include image upload, tag management, automatic"
|
||||
|
||||
#: ImageBrowser.py:505
|
||||
#: ImageBrowser.py:513
|
||||
msgid "tagging with wdtagger, and cache management."
|
||||
msgstr "tagging with wdtagger, and cache management."
|
||||
|
||||
#: ImageBrowser.py:507
|
||||
#: ImageBrowser.py:515
|
||||
msgid "Authors:"
|
||||
msgstr "Authors:"
|
||||
|
||||
#: ImageBrowser.py:510
|
||||
#: ImageBrowser.py:518
|
||||
msgid "License: MIT License"
|
||||
msgstr "License: MIT License"
|
||||
|
||||
#: ImageBrowser.py:521
|
||||
#: ImageBrowser.py:531
|
||||
msgid "Repository:"
|
||||
msgstr "Repository:"
|
||||
|
||||
#: ImageBrowser.py:530
|
||||
#: ImageBrowser.py:540
|
||||
msgid "Website:"
|
||||
msgstr "Website:"
|
||||
|
||||
#: ImageBrowser.py:541
|
||||
#: ImageBrowser.py:551
|
||||
msgid "Close"
|
||||
msgstr "Close"
|
||||
|
||||
#: ImageBrowser.py:549 ImageBrowser.py:552
|
||||
#: ImageBrowser.py:559 ImageBrowser.py:562
|
||||
msgid "Cache"
|
||||
msgstr "Cache"
|
||||
|
||||
#: ImageBrowser.py:549
|
||||
#: ImageBrowser.py:559
|
||||
msgid "Cache Taggera zostało wyczyszczone."
|
||||
msgstr "Tagger cache has been cleared."
|
||||
|
||||
#: ImageBrowser.py:552
|
||||
#: ImageBrowser.py:562
|
||||
msgid "Błąd przy czyszczeniu cache:"
|
||||
msgstr "Error clearing cache:"
|
||||
|
||||
#: ImageBrowser.py:562
|
||||
#: ImageBrowser.py:572
|
||||
msgid "Login:"
|
||||
msgstr "Login:"
|
||||
|
||||
#: ImageBrowser.py:568
|
||||
#: ImageBrowser.py:578
|
||||
msgid "Hasło:"
|
||||
msgstr "Password:"
|
||||
|
||||
#: ImageBrowser.py:574
|
||||
#: ImageBrowser.py:584
|
||||
msgid "Base URL:"
|
||||
msgstr "Base URL:"
|
||||
|
||||
#: ImageBrowser.py:580
|
||||
#: ImageBrowser.py:590
|
||||
msgid "Default Tags:"
|
||||
msgstr "Default Tags:"
|
||||
|
||||
#: ImageBrowser.py:586
|
||||
#: ImageBrowser.py:596
|
||||
msgid "Browser:"
|
||||
msgstr "Browser:"
|
||||
|
||||
#: ImageBrowser.py:600
|
||||
#: ImageBrowser.py:610
|
||||
msgid "Language:"
|
||||
msgstr "Language:"
|
||||
|
||||
#: ImageBrowser.py:632
|
||||
#: ImageBrowser.py:642
|
||||
msgid "Zapisz"
|
||||
msgstr "Save"
|
||||
|
||||
#: ImageBrowser.py:674
|
||||
#: ImageBrowser.py:684
|
||||
msgid "PNG Tags"
|
||||
msgstr "PNG Tags"
|
||||
|
||||
#: ImageBrowser.py:686
|
||||
#: ImageBrowser.py:696
|
||||
msgid "Tagger Tags"
|
||||
msgstr "Tagger Tags"
|
||||
|
||||
#: ImageBrowser.py:700
|
||||
#: ImageBrowser.py:710
|
||||
msgid "Manual Tags"
|
||||
msgstr "Manual Tags"
|
||||
|
||||
#: ImageBrowser.py:708
|
||||
#: ImageBrowser.py:718
|
||||
msgid "Final Tags"
|
||||
msgstr "Final Tags"
|
||||
|
||||
#: ImageBrowser.py:733
|
||||
#: ImageBrowser.py:743
|
||||
msgid "Wyświetl"
|
||||
msgstr "Display"
|
||||
|
||||
#: ImageBrowser.py:750
|
||||
#: ImageBrowser.py:760
|
||||
msgid "Przetworzono tagi:"
|
||||
msgstr "Processed tags:"
|
||||
|
||||
#: ImageBrowser.py:750 ImageBrowser.py:751 ImageBrowser.py:752
|
||||
#: ImageBrowser.py:760 ImageBrowser.py:761 ImageBrowser.py:762
|
||||
msgid "plików"
|
||||
msgstr "files"
|
||||
|
||||
#: ImageBrowser.py:751
|
||||
#: ImageBrowser.py:761
|
||||
msgid "Zweryfikowano status uploadu:"
|
||||
msgstr "Upload status verified:"
|
||||
|
||||
#: ImageBrowser.py:752
|
||||
#: ImageBrowser.py:762
|
||||
msgid "Zuploadowano:"
|
||||
msgstr "Uploaded:"
|
||||
|
||||
#: ImageBrowser.py:780
|
||||
#: ImageBrowser.py:790
|
||||
msgid "Wybierz folder z obrazkami PNG"
|
||||
msgstr "Select folder with PNG images"
|
||||
|
||||
#: ImageBrowser.py:813
|
||||
#: ImageBrowser.py:823
|
||||
msgid "Informacja"
|
||||
msgstr "Information"
|
||||
|
||||
#: ImageBrowser.py:813
|
||||
#: ImageBrowser.py:823
|
||||
msgid "Brak plików PNG w wybranym folderze."
|
||||
msgstr "No PNG files in the selected folder."
|
||||
|
||||
#: ImageBrowser.py:896
|
||||
#: ImageBrowser.py:906
|
||||
msgid "Błąd podczas sprawdzania paczki uploadu:"
|
||||
msgstr "Error while checking upload package:"
|
||||
|
||||
#: ImageBrowser.py:972
|
||||
#: ImageBrowser.py:982
|
||||
msgid "Błąd przy obliczaniu MD5:"
|
||||
msgstr "Error calculating MD5:"
|
||||
|
||||
#: ImageBrowser.py:1028
|
||||
#: ImageBrowser.py:1038
|
||||
msgid "Błąd"
|
||||
msgstr "Error"
|
||||
|
||||
#: ImageBrowser.py:1028
|
||||
#: ImageBrowser.py:1038
|
||||
msgid "Nie można załadować obrazka:"
|
||||
msgstr "Unable to load image:"
|
||||
|
||||
#: ImageBrowser.py:1238 ImageBrowser.py:1248
|
||||
#: ImageBrowser.py:1248 ImageBrowser.py:1258
|
||||
#, python-brace-format
|
||||
msgid "Warning: Tag '{tag}' not found in implication graph"
|
||||
msgstr "Warning: Tag '{tag}' not found in implication graph"
|
||||
|
||||
#: ImageBrowser.py:1478
|
||||
#: ImageBrowser.py:1488
|
||||
msgid "Tagger przetwarza..."
|
||||
msgstr "Tagger processing..."
|
||||
|
||||
#: ImageBrowser.py:1503
|
||||
#: ImageBrowser.py:1513
|
||||
#, python-brace-format
|
||||
msgid "Wysyłam plik {base_file_name}..."
|
||||
msgstr "Sending file {base_file_name}..."
|
||||
|
||||
#: ImageBrowser.py:1544
|
||||
#: ImageBrowser.py:1554
|
||||
msgid "Wysyłanie zakończone powodzeniem!"
|
||||
msgstr "Upload completed successfully!"
|
||||
|
||||
#: ImageBrowser.py:1548 ImageBrowser.py:1557
|
||||
#: ImageBrowser.py:1558 ImageBrowser.py:1567
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Wysyłanie zakończone błędem.\n"
|
||||
@ -327,40 +327,40 @@ msgstr ""
|
||||
"Status: {status_code}\n"
|
||||
"Content: {text}"
|
||||
|
||||
#: ImageBrowser.py:1563 ImageBrowser.py:1566
|
||||
#: ImageBrowser.py:1573 ImageBrowser.py:1576
|
||||
msgid "Wysyłanie"
|
||||
msgstr "Uploading"
|
||||
|
||||
#: ImageBrowser.py:1579
|
||||
#: ImageBrowser.py:1589
|
||||
msgid "Błąd wysyłania"
|
||||
msgstr "Upload error"
|
||||
|
||||
#: ImageBrowser.py:1599
|
||||
#: ImageBrowser.py:1609
|
||||
msgid "Błąd edycji"
|
||||
msgstr "Edit error"
|
||||
|
||||
#: ImageBrowser.py:1599
|
||||
#: ImageBrowser.py:1609
|
||||
msgid "Post nie został znaleziony dla tego pliku"
|
||||
msgstr "Post not found for this file"
|
||||
|
||||
#: ImageBrowser.py:1609
|
||||
#: ImageBrowser.py:1619
|
||||
#, python-brace-format
|
||||
msgid "Aktualizuję tagi dla {base_file_name}..."
|
||||
msgstr "Updating tags for {base_file_name}..."
|
||||
|
||||
#: ImageBrowser.py:1619 ImageBrowser.py:1629 ImageBrowser.py:1660
|
||||
#: ImageBrowser.py:1629 ImageBrowser.py:1639 ImageBrowser.py:1670
|
||||
msgid "Operacja anulowana"
|
||||
msgstr "Operation cancelled"
|
||||
|
||||
#: ImageBrowser.py:1670
|
||||
#: ImageBrowser.py:1680
|
||||
msgid "Tagi zostały zaktualizowane!"
|
||||
msgstr "Tags have been updated!"
|
||||
|
||||
#: ImageBrowser.py:1672
|
||||
#: ImageBrowser.py:1682
|
||||
msgid "Sukces edycji"
|
||||
msgstr "Edit successful"
|
||||
|
||||
#: ImageBrowser.py:1678
|
||||
#: ImageBrowser.py:1688
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Błąd podczas aktualizacji tagów\n"
|
||||
@ -369,19 +369,19 @@ msgstr ""
|
||||
"Error updating tags\n"
|
||||
"Status: {code}"
|
||||
|
||||
#: ImageBrowser.py:1682
|
||||
#: ImageBrowser.py:1692
|
||||
msgid "Treść:"
|
||||
msgstr "Content:"
|
||||
|
||||
#: ImageBrowser.py:1686
|
||||
#: ImageBrowser.py:1696
|
||||
msgid "Krytyczny błąd edycji"
|
||||
msgstr "Critical edit error"
|
||||
|
||||
#: ImageBrowser.py:1698
|
||||
#: ImageBrowser.py:1708
|
||||
msgid "Potwierdzenie"
|
||||
msgstr "Confirmation"
|
||||
|
||||
#: ImageBrowser.py:1700
|
||||
#: ImageBrowser.py:1710
|
||||
msgid ""
|
||||
"Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n"
|
||||
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
|
||||
@ -391,18 +391,18 @@ msgstr ""
|
||||
"Each will be tagged with 'meta:auto_upload'.\n"
|
||||
"Make sure the tags are correct!"
|
||||
|
||||
#: ImageBrowser.py:1724
|
||||
#: ImageBrowser.py:1734
|
||||
msgid "Anulowano operację!"
|
||||
msgstr "Operation cancelled!"
|
||||
|
||||
#: ImageBrowser.py:1732
|
||||
#: ImageBrowser.py:1742
|
||||
#, 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:1748
|
||||
#: ImageBrowser.py:1758
|
||||
msgid "Przesłano pliki!"
|
||||
msgstr "Files have been uploaded!"
|
||||
|
||||
@ -426,11 +426,15 @@ msgstr "Error fetching character tags:"
|
||||
msgid "Błąd przy pobieraniu tagów copyright:"
|
||||
msgstr "Error fetching copyright tags:"
|
||||
|
||||
#: tag_processing.py:165
|
||||
#: tag_processing.py:48
|
||||
msgid "Błąd przy pobieraniu tagów artystów:"
|
||||
msgstr "Error fetching artist tags:"
|
||||
|
||||
#: tag_processing.py:200
|
||||
msgid "Błąd podczas odczytu tag_aliases:"
|
||||
msgstr "Error reading tag aliases:"
|
||||
|
||||
#: tag_processing.py:181
|
||||
#: tag_processing.py:216
|
||||
msgid "Błąd podczas odczytu tags:"
|
||||
msgstr "Error reading tags:"
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Kapitanbooru Uploader 0.5.2\n"
|
||||
"Project-Id-Version: Kapitanbooru Uploader 0.6.0\n"
|
||||
"Report-Msgid-Bugs-To: kapitan@mlesniak.pl\n"
|
||||
"POT-Creation-Date: 2025-03-15 19:42+0100\n"
|
||||
"POT-Creation-Date: 2025-03-16 01:22+0100\n"
|
||||
"Language: pl\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@ -53,26 +53,26 @@ msgstr "Przetwarzanie..."
|
||||
msgid "Processing, please wait..."
|
||||
msgstr "Przetwarzanie, proszę czekać..."
|
||||
|
||||
#: ImageBrowser.py:244
|
||||
#: ImageBrowser.py:248
|
||||
#, python-brace-format
|
||||
msgid "Update check failed: {error}"
|
||||
msgstr "Sprawdzenie aktualizacji nie powiodło się: {error}"
|
||||
|
||||
#: ImageBrowser.py:246
|
||||
#: ImageBrowser.py:250
|
||||
#, python-brace-format
|
||||
msgid "Malformed pyproject.toml: {error}"
|
||||
msgstr "Nieprawidłowy plik pyproject.toml: {error}"
|
||||
|
||||
#: ImageBrowser.py:249
|
||||
#: ImageBrowser.py:253
|
||||
#, python-brace-format
|
||||
msgid "Unexpected error during update check: {error}"
|
||||
msgstr "Nieoczekiwany błąd podczas sprawdzania aktualizacji: {error}"
|
||||
|
||||
#: ImageBrowser.py:256
|
||||
#: ImageBrowser.py:260
|
||||
msgid "Update Available"
|
||||
msgstr "Aktualizacja dostępna"
|
||||
|
||||
#: ImageBrowser.py:258
|
||||
#: ImageBrowser.py:262
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"A new version {new_version} is available!\n"
|
||||
@ -85,240 +85,240 @@ msgstr ""
|
||||
"\n"
|
||||
"Aktualizuj za pomocą: {update_command}"
|
||||
|
||||
#: ImageBrowser.py:367
|
||||
#: ImageBrowser.py:375
|
||||
msgid "Błąd przy otwieraniu pliku"
|
||||
msgstr "Błąd przy otwieraniu pliku"
|
||||
|
||||
#: ImageBrowser.py:409
|
||||
#: ImageBrowser.py:417
|
||||
msgid "Tagger przetworzył:"
|
||||
msgstr "Tagger przetworzył:"
|
||||
|
||||
#: ImageBrowser.py:412
|
||||
#: ImageBrowser.py:420
|
||||
msgid "Błąd Taggera dla"
|
||||
msgstr "Błąd Taggera dla"
|
||||
|
||||
#: ImageBrowser.py:438
|
||||
#: ImageBrowser.py:446
|
||||
msgid "Otwórz folder"
|
||||
msgstr "Otwórz folder"
|
||||
|
||||
#: ImageBrowser.py:441 ImageBrowser.py:728 ImageBrowser.py:944
|
||||
#: ImageBrowser.py:952
|
||||
#: ImageBrowser.py:449 ImageBrowser.py:738 ImageBrowser.py:954
|
||||
#: ImageBrowser.py:962
|
||||
msgid "Wyślij"
|
||||
msgstr "Wyślij"
|
||||
|
||||
#: ImageBrowser.py:444 ImageBrowser.py:937
|
||||
#: ImageBrowser.py:452 ImageBrowser.py:947
|
||||
msgid "Wyślij wszystko"
|
||||
msgstr "Wyślij wszystko"
|
||||
|
||||
#: ImageBrowser.py:448 ImageBrowser.py:938 ImageBrowser.py:944
|
||||
#: ImageBrowser.py:456 ImageBrowser.py:948 ImageBrowser.py:954
|
||||
msgid "Podmień tagi"
|
||||
msgstr "Podmień tagi"
|
||||
|
||||
#: ImageBrowser.py:451 ImageBrowser.py:939
|
||||
#: ImageBrowser.py:459 ImageBrowser.py:949
|
||||
msgid "Otwórz post"
|
||||
msgstr "Otwórz post"
|
||||
|
||||
#: ImageBrowser.py:454
|
||||
#: ImageBrowser.py:462
|
||||
msgid "Zakończ"
|
||||
msgstr "Zakończ"
|
||||
|
||||
#: ImageBrowser.py:456
|
||||
#: ImageBrowser.py:464
|
||||
msgid "Plik"
|
||||
msgstr "Plik"
|
||||
|
||||
#: ImageBrowser.py:460 ImageBrowser.py:557
|
||||
#: ImageBrowser.py:468 ImageBrowser.py:567
|
||||
msgid "Ustawienia"
|
||||
msgstr "Ustawienia"
|
||||
|
||||
#: ImageBrowser.py:463
|
||||
#: ImageBrowser.py:471
|
||||
msgid "Wyczyść cache Taggera"
|
||||
msgstr "Wyczyść cache Taggera"
|
||||
|
||||
#: ImageBrowser.py:466
|
||||
#: ImageBrowser.py:474
|
||||
msgid "Zregeneruj bazę tagów"
|
||||
msgstr "Zregeneruj bazę tagów"
|
||||
|
||||
#: ImageBrowser.py:468
|
||||
#: ImageBrowser.py:476
|
||||
msgid "Opcje"
|
||||
msgstr "Opcje"
|
||||
|
||||
#: ImageBrowser.py:471
|
||||
#: ImageBrowser.py:479
|
||||
msgid "About"
|
||||
msgstr "O programie"
|
||||
|
||||
#: ImageBrowser.py:472
|
||||
#: ImageBrowser.py:480
|
||||
msgid "Help"
|
||||
msgstr "Pomoc"
|
||||
|
||||
#: ImageBrowser.py:477
|
||||
#: ImageBrowser.py:485
|
||||
msgid "About Kapitanbooru Uploader"
|
||||
msgstr "O programie Kapitanbooru Uploader"
|
||||
|
||||
#: ImageBrowser.py:494
|
||||
#: ImageBrowser.py:502
|
||||
#, python-brace-format
|
||||
msgid "A new version {new_version} is available!"
|
||||
msgstr "Dostępna jest nowa wersja {new_version}!"
|
||||
|
||||
#: ImageBrowser.py:501
|
||||
#: ImageBrowser.py:509
|
||||
#, python-brace-format
|
||||
msgid "Current version: {version}"
|
||||
msgstr "Obecna wersja: {version}"
|
||||
|
||||
#: ImageBrowser.py:503
|
||||
#: ImageBrowser.py:511
|
||||
msgid "A GUI application for uploading images to KapitanBooru."
|
||||
msgstr "Aplikacja GUI do przesyłania obrazów do KapitanBooru."
|
||||
|
||||
#: ImageBrowser.py:504
|
||||
#: ImageBrowser.py:512
|
||||
msgid "Features include image upload, tag management, automatic"
|
||||
msgstr "Funkcje obejmują przesyłanie obrazów, zarządzanie tagami, automatyczne"
|
||||
|
||||
#: ImageBrowser.py:505
|
||||
#: ImageBrowser.py:513
|
||||
msgid "tagging with wdtagger, and cache management."
|
||||
msgstr "tagowanie za pomocą wdtagger oraz zarządzanie cache."
|
||||
|
||||
#: ImageBrowser.py:507
|
||||
#: ImageBrowser.py:515
|
||||
msgid "Authors:"
|
||||
msgstr "Autorzy:"
|
||||
|
||||
#: ImageBrowser.py:510
|
||||
#: ImageBrowser.py:518
|
||||
msgid "License: MIT License"
|
||||
msgstr "Licencja: MIT License"
|
||||
|
||||
#: ImageBrowser.py:521
|
||||
#: ImageBrowser.py:531
|
||||
msgid "Repository:"
|
||||
msgstr "Repozytorium:"
|
||||
|
||||
#: ImageBrowser.py:530
|
||||
#: ImageBrowser.py:540
|
||||
msgid "Website:"
|
||||
msgstr "Strona internetowa:"
|
||||
|
||||
#: ImageBrowser.py:541
|
||||
#: ImageBrowser.py:551
|
||||
msgid "Close"
|
||||
msgstr "Zamknij"
|
||||
|
||||
#: ImageBrowser.py:549 ImageBrowser.py:552
|
||||
#: ImageBrowser.py:559 ImageBrowser.py:562
|
||||
msgid "Cache"
|
||||
msgstr "Cache"
|
||||
|
||||
#: ImageBrowser.py:549
|
||||
#: ImageBrowser.py:559
|
||||
msgid "Cache Taggera zostało wyczyszczone."
|
||||
msgstr "Cache Taggera zostało wyczyszczone."
|
||||
|
||||
#: ImageBrowser.py:552
|
||||
#: ImageBrowser.py:562
|
||||
msgid "Błąd przy czyszczeniu cache:"
|
||||
msgstr "Błąd przy czyszczeniu cache:"
|
||||
|
||||
#: ImageBrowser.py:562
|
||||
#: ImageBrowser.py:572
|
||||
msgid "Login:"
|
||||
msgstr "Login:"
|
||||
|
||||
#: ImageBrowser.py:568
|
||||
#: ImageBrowser.py:578
|
||||
msgid "Hasło:"
|
||||
msgstr "Hasło:"
|
||||
|
||||
#: ImageBrowser.py:574
|
||||
#: ImageBrowser.py:584
|
||||
msgid "Base URL:"
|
||||
msgstr "Base URL:"
|
||||
|
||||
#: ImageBrowser.py:580
|
||||
#: ImageBrowser.py:590
|
||||
msgid "Default Tags:"
|
||||
msgstr "Domyślne tagi:"
|
||||
|
||||
#: ImageBrowser.py:586
|
||||
#: ImageBrowser.py:596
|
||||
msgid "Browser:"
|
||||
msgstr "Przeglądarka:"
|
||||
|
||||
#: ImageBrowser.py:600
|
||||
#: ImageBrowser.py:610
|
||||
msgid "Language:"
|
||||
msgstr "Język:"
|
||||
|
||||
#: ImageBrowser.py:632
|
||||
#: ImageBrowser.py:642
|
||||
msgid "Zapisz"
|
||||
msgstr "Zapisz"
|
||||
|
||||
#: ImageBrowser.py:674
|
||||
#: ImageBrowser.py:684
|
||||
msgid "PNG Tags"
|
||||
msgstr "Tagi PNG"
|
||||
|
||||
#: ImageBrowser.py:686
|
||||
#: ImageBrowser.py:696
|
||||
msgid "Tagger Tags"
|
||||
msgstr "Tagi Taggera"
|
||||
|
||||
#: ImageBrowser.py:700
|
||||
#: ImageBrowser.py:710
|
||||
msgid "Manual Tags"
|
||||
msgstr "Tagi ręczne"
|
||||
|
||||
#: ImageBrowser.py:708
|
||||
#: ImageBrowser.py:718
|
||||
msgid "Final Tags"
|
||||
msgstr "Ostateczne tagi"
|
||||
|
||||
#: ImageBrowser.py:733
|
||||
#: ImageBrowser.py:743
|
||||
msgid "Wyświetl"
|
||||
msgstr "Wyświetl"
|
||||
|
||||
#: ImageBrowser.py:750
|
||||
#: ImageBrowser.py:760
|
||||
msgid "Przetworzono tagi:"
|
||||
msgstr "Przetworzono tagi:"
|
||||
|
||||
#: ImageBrowser.py:750 ImageBrowser.py:751 ImageBrowser.py:752
|
||||
#: ImageBrowser.py:760 ImageBrowser.py:761 ImageBrowser.py:762
|
||||
msgid "plików"
|
||||
msgstr "plików"
|
||||
|
||||
#: ImageBrowser.py:751
|
||||
#: ImageBrowser.py:761
|
||||
msgid "Zweryfikowano status uploadu:"
|
||||
msgstr "Zweryfikowano status uploadu:"
|
||||
|
||||
#: ImageBrowser.py:752
|
||||
#: ImageBrowser.py:762
|
||||
msgid "Zuploadowano:"
|
||||
msgstr "Zuploadowano:"
|
||||
|
||||
#: ImageBrowser.py:780
|
||||
#: ImageBrowser.py:790
|
||||
msgid "Wybierz folder z obrazkami PNG"
|
||||
msgstr "Wybierz folder z obrazami PNG"
|
||||
|
||||
#: ImageBrowser.py:813
|
||||
#: ImageBrowser.py:823
|
||||
msgid "Informacja"
|
||||
msgstr "Informacja"
|
||||
|
||||
#: ImageBrowser.py:813
|
||||
#: ImageBrowser.py:823
|
||||
msgid "Brak plików PNG w wybranym folderze."
|
||||
msgstr "Brak plików PNG w wybranym folderze."
|
||||
|
||||
#: ImageBrowser.py:896
|
||||
#: ImageBrowser.py:906
|
||||
msgid "Błąd podczas sprawdzania paczki uploadu:"
|
||||
msgstr "Błąd podczas sprawdzania paczki uploadu:"
|
||||
|
||||
#: ImageBrowser.py:972
|
||||
#: ImageBrowser.py:982
|
||||
msgid "Błąd przy obliczaniu MD5:"
|
||||
msgstr "Błąd przy obliczaniu MD5:"
|
||||
|
||||
#: ImageBrowser.py:1028
|
||||
#: ImageBrowser.py:1038
|
||||
msgid "Błąd"
|
||||
msgstr "Błąd"
|
||||
|
||||
#: ImageBrowser.py:1028
|
||||
#: ImageBrowser.py:1038
|
||||
msgid "Nie można załadować obrazka:"
|
||||
msgstr "Nie można załadować obrazka:"
|
||||
|
||||
#: ImageBrowser.py:1238 ImageBrowser.py:1248
|
||||
#: ImageBrowser.py:1248 ImageBrowser.py:1258
|
||||
#, 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:1478
|
||||
#: ImageBrowser.py:1488
|
||||
msgid "Tagger przetwarza..."
|
||||
msgstr "Tagger przetwarza..."
|
||||
|
||||
#: ImageBrowser.py:1503
|
||||
#: ImageBrowser.py:1513
|
||||
#, python-brace-format
|
||||
msgid "Wysyłam plik {base_file_name}..."
|
||||
msgstr "Wysyłam plik {base_file_name}..."
|
||||
|
||||
#: ImageBrowser.py:1544
|
||||
#: ImageBrowser.py:1554
|
||||
msgid "Wysyłanie zakończone powodzeniem!"
|
||||
msgstr "Wysyłanie zakończone powodzeniem!"
|
||||
|
||||
#: ImageBrowser.py:1548 ImageBrowser.py:1557
|
||||
#: ImageBrowser.py:1558 ImageBrowser.py:1567
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Wysyłanie zakończone błędem.\n"
|
||||
@ -329,40 +329,40 @@ msgstr ""
|
||||
"Status: {status_code}\n"
|
||||
"Treść: {text}"
|
||||
|
||||
#: ImageBrowser.py:1563 ImageBrowser.py:1566
|
||||
#: ImageBrowser.py:1573 ImageBrowser.py:1576
|
||||
msgid "Wysyłanie"
|
||||
msgstr "Wysyłanie"
|
||||
|
||||
#: ImageBrowser.py:1579
|
||||
#: ImageBrowser.py:1589
|
||||
msgid "Błąd wysyłania"
|
||||
msgstr "Błąd wysyłania"
|
||||
|
||||
#: ImageBrowser.py:1599
|
||||
#: ImageBrowser.py:1609
|
||||
msgid "Błąd edycji"
|
||||
msgstr "Błąd edycji"
|
||||
|
||||
#: ImageBrowser.py:1599
|
||||
#: ImageBrowser.py:1609
|
||||
msgid "Post nie został znaleziony dla tego pliku"
|
||||
msgstr "Post nie został znaleziony dla tego pliku"
|
||||
|
||||
#: ImageBrowser.py:1609
|
||||
#: ImageBrowser.py:1619
|
||||
#, python-brace-format
|
||||
msgid "Aktualizuję tagi dla {base_file_name}..."
|
||||
msgstr "Aktualizuję tagi dla {base_file_name}..."
|
||||
|
||||
#: ImageBrowser.py:1619 ImageBrowser.py:1629 ImageBrowser.py:1660
|
||||
#: ImageBrowser.py:1629 ImageBrowser.py:1639 ImageBrowser.py:1670
|
||||
msgid "Operacja anulowana"
|
||||
msgstr "Operacja anulowana"
|
||||
|
||||
#: ImageBrowser.py:1670
|
||||
#: ImageBrowser.py:1680
|
||||
msgid "Tagi zostały zaktualizowane!"
|
||||
msgstr "Tagi zostały zaktualizowane!"
|
||||
|
||||
#: ImageBrowser.py:1672
|
||||
#: ImageBrowser.py:1682
|
||||
msgid "Sukces edycji"
|
||||
msgstr "Sukces edycji"
|
||||
|
||||
#: ImageBrowser.py:1678
|
||||
#: ImageBrowser.py:1688
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Błąd podczas aktualizacji tagów\n"
|
||||
@ -371,19 +371,19 @@ msgstr ""
|
||||
"Błąd podczas aktualizacji tagów\n"
|
||||
"Status: {code}"
|
||||
|
||||
#: ImageBrowser.py:1682
|
||||
#: ImageBrowser.py:1692
|
||||
msgid "Treść:"
|
||||
msgstr "Treść:"
|
||||
|
||||
#: ImageBrowser.py:1686
|
||||
#: ImageBrowser.py:1696
|
||||
msgid "Krytyczny błąd edycji"
|
||||
msgstr "Krytyczny błąd edycji"
|
||||
|
||||
#: ImageBrowser.py:1698
|
||||
#: ImageBrowser.py:1708
|
||||
msgid "Potwierdzenie"
|
||||
msgstr "Potwierdzenie"
|
||||
|
||||
#: ImageBrowser.py:1700
|
||||
#: ImageBrowser.py:1710
|
||||
msgid ""
|
||||
"Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n"
|
||||
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
|
||||
@ -393,18 +393,18 @@ msgstr ""
|
||||
"Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n"
|
||||
"Upewnij się, że tagi są poprawne!"
|
||||
|
||||
#: ImageBrowser.py:1724
|
||||
#: ImageBrowser.py:1734
|
||||
msgid "Anulowano operację!"
|
||||
msgstr "Operacja anulowana!"
|
||||
|
||||
#: ImageBrowser.py:1732
|
||||
#: ImageBrowser.py:1742
|
||||
#, 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:1748
|
||||
#: ImageBrowser.py:1758
|
||||
msgid "Przesłano pliki!"
|
||||
msgstr "Pliki zostały przesłane!"
|
||||
|
||||
@ -428,11 +428,15 @@ msgstr "Błąd przy pobieraniu tagów postaci:"
|
||||
msgid "Błąd przy pobieraniu tagów copyright:"
|
||||
msgstr "Błąd przy pobieraniu tagów copyright:"
|
||||
|
||||
#: tag_processing.py:165
|
||||
#: tag_processing.py:48
|
||||
msgid "Błąd przy pobieraniu tagów artystów:"
|
||||
msgstr "Błąd przy pobieraniu tagów artystów:"
|
||||
|
||||
#: tag_processing.py:200
|
||||
msgid "Błąd podczas odczytu tag_aliases:"
|
||||
msgstr "Błąd podczas odczytu tag_aliases:"
|
||||
|
||||
#: tag_processing.py:181
|
||||
#: tag_processing.py:216
|
||||
msgid "Błąd podczas odczytu tags:"
|
||||
msgstr "Błąd podczas odczytu tags:"
|
||||
|
||||
|
@ -34,6 +34,20 @@ def get_copyright_tags(tags_repo: TagsRepo):
|
||||
print(_("Błąd przy pobieraniu tagów copyright:"), e)
|
||||
return set()
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def get_artist_tags(tags_repo: TagsRepo):
|
||||
"""Zwraca zbiór nazw tagów z kategorii Artist (kategoria = 1) z bazy tags.sqlite"""
|
||||
try:
|
||||
conn = tags_repo.get_conn()
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("SELECT name FROM tags WHERE category = 1")
|
||||
rows = cursor.fetchall()
|
||||
conn.close()
|
||||
return {row[0] for row in rows}
|
||||
except Exception as e:
|
||||
print(_("Błąd przy pobieraniu tagów artystów:"), e)
|
||||
return set()
|
||||
|
||||
|
||||
# Wzorce i ustawienia związane z tagami
|
||||
COEFFICIENT_PATTERN = re.compile(r"^.*?(:\d+|\d+\.\d+)$")
|
||||
@ -58,12 +72,22 @@ AUTO_METATAGS = [
|
||||
"detailed_background",
|
||||
"ultra-detailed",
|
||||
"wallpaper",
|
||||
"score_9",
|
||||
"score_8_up",
|
||||
"score_7_up",
|
||||
"score_6_up",
|
||||
"score_5_up",
|
||||
"score_4_up",
|
||||
"score_3_up",
|
||||
"score_2_up",
|
||||
"score_1_up",
|
||||
]
|
||||
TAG_FIXES = {
|
||||
"2boy": "2boys",
|
||||
"2girl": "2girls",
|
||||
"exercise": "exercising",
|
||||
"keyboard_(computer)": "computer_keyboard",
|
||||
"official_art": "official_style",
|
||||
}
|
||||
MULTI_TAG_FIXES = {
|
||||
"black_choker_with_heart_charm": ["black_choker", "heart_choker"],
|
||||
@ -119,6 +143,7 @@ def parse_parameters(param_str, tags_repo: TagsRepo):
|
||||
# Pobierz tagi z bazy
|
||||
character_tags = get_character_tags(tags_repo)
|
||||
copyright_tags = get_copyright_tags(tags_repo)
|
||||
artist_tags = get_artist_tags(tags_repo)
|
||||
|
||||
# Dla tagów należących do kategorii Character
|
||||
for tag in list(tags): # iterujemy po kopii zbioru
|
||||
@ -130,6 +155,16 @@ def parse_parameters(param_str, tags_repo: TagsRepo):
|
||||
if tag in copyright_tags:
|
||||
tags.discard(tag)
|
||||
tags.add("copyright:" + tag)
|
||||
# Dla tagów należących do kategorii Artist
|
||||
artist_tags_counter = 0
|
||||
for tag in list(tags):
|
||||
if tag in artist_tags:
|
||||
tags.discard(tag)
|
||||
tags.add(tag + "_(style)")
|
||||
tags.add("style_parody")
|
||||
artist_tags_counter += 1
|
||||
if artist_tags_counter > 1:
|
||||
tags.add("multiple_style_parody")
|
||||
|
||||
tags = list(tags)
|
||||
tags.sort()
|
||||
|
@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "kapitanbooru-uploader"
|
||||
version = "0.5.2"
|
||||
version = "0.6.0"
|
||||
description = "A GUI application for uploading images to KapitanBooru"
|
||||
authors = [{ name = "Michał Leśniak", email = "kapitan@mlesniak.pl" }]
|
||||
dependencies = [
|
||||
|
Loading…
x
Reference in New Issue
Block a user