Add periodic version check
	
		
			
	
		
	
	
		
	
		
			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:
		| @@ -7,11 +7,14 @@ import threading | ||||
| import tkinter as tk | ||||
| from tkinter import filedialog, messagebox, ttk | ||||
| from typing import Dict, Tuple, Optional | ||||
| from packaging.version import parse as parse_version | ||||
| import itertools | ||||
|  | ||||
| import networkx as nx | ||||
| import requests | ||||
| from PIL import Image, ImageTk, PngImagePlugin | ||||
| import wdtagger as wdt | ||||
| import tomli | ||||
|  | ||||
| from .I18N import _ | ||||
| from .ProgressFile import ProgressFile | ||||
| @@ -139,7 +142,8 @@ class ImageBrowser(tk.Tk): | ||||
|         super().__init__() | ||||
|         self.title("Kapitanbooru Uploader") | ||||
|         self.geometry("900x600") | ||||
|         self.version = "0.4.4" | ||||
|         self.version = "0.5.0" | ||||
|         self.acknowledged_version = parse_version(self.version) | ||||
|  | ||||
|         self.settings = Settings() | ||||
|         self.tags_repo = TagsRepo(self.settings) | ||||
| @@ -204,6 +208,66 @@ class ImageBrowser(tk.Tk): | ||||
|         self.create_widgets() | ||||
|         self.bind_events() | ||||
|  | ||||
|         # Schedule first update check | ||||
|         self.after(1000, self._schedule_update_check) | ||||
|  | ||||
|     def _schedule_update_check(self): | ||||
|         """Schedule periodic update checks""" | ||||
|         self._check_for_update() | ||||
|         # Check every 5 minutes (300,000 ms) | ||||
|         self.after(300000, self._schedule_update_check) | ||||
|  | ||||
|     def _check_for_update(self): | ||||
|         """Check for updates in a background thread""" | ||||
|  | ||||
|         def check_thread(): | ||||
|             try: | ||||
|                 # Fetch pyproject.toml using requests | ||||
|                 response = requests.get( | ||||
|                     "https://git.mlesniak.pl/kapitan/kapitanbooru-uploader/raw/branch/main/pyproject.toml", | ||||
|                     timeout=10,  # Add reasonable timeout | ||||
|                 ) | ||||
|                 response.raise_for_status()  # Raise exception for HTTP errors | ||||
|  | ||||
|                 remote_toml = tomli.loads(response.text) | ||||
|                 remote_version_str = remote_toml["project"]["version"] | ||||
|                 remote_version = parse_version(remote_version_str) | ||||
|                 current_version = parse_version(self.version) | ||||
|  | ||||
|                 if ( | ||||
|                     remote_version > current_version | ||||
|                     and remote_version > self.acknowledged_version | ||||
|                 ): | ||||
|                     self.after(0, lambda: self._notify_user(remote_version_str)) | ||||
|                     self.acknowledged_version = remote_version | ||||
|             except requests.exceptions.RequestException as e: | ||||
|                 print(_("Update check failed: {error}").format(error=e)) | ||||
|             except KeyError as e: | ||||
|                 print(_("Malformed pyproject.toml: {error}").format(error=e)) | ||||
|             except Exception as e: | ||||
|                 print( | ||||
|                     _("Unexpected error during update check: {error}").format(error=e) | ||||
|                 ) | ||||
|  | ||||
|         threading.Thread(target=check_thread, daemon=True).start() | ||||
|  | ||||
|     def _notify_user(self, new_version): | ||||
|         """Show update notification with translated messages""" | ||||
|         title = _("Update Available") | ||||
|         message_template = _( | ||||
|             "A new version {new_version} is available!\n" | ||||
|             "You have version {current_version}.\n\n" | ||||
|             "Update using: {update_command}" | ||||
|         ) | ||||
|  | ||||
|         formatted_message = message_template.format( | ||||
|             new_version=new_version, | ||||
|             current_version=self.version, | ||||
|             update_command="pip install --upgrade kapitanbooru-uploader", | ||||
|         ) | ||||
|  | ||||
|         messagebox.showinfo(title, formatted_message) | ||||
|  | ||||
|     def reload_ui(self): | ||||
|         """Reload UI components with new language""" | ||||
|         # Destroy current widgets | ||||
| @@ -417,31 +481,43 @@ class ImageBrowser(tk.Tk): | ||||
|         frame = ttk.Frame(about, padding=10) | ||||
|         frame.pack(fill="both", expand=True) | ||||
|  | ||||
|         row_counter = itertools.count(0) | ||||
|  | ||||
|         ttk.Label( | ||||
|             frame, text="Kapitanbooru Uploader", font=("TkDefaultFont", 16, "bold") | ||||
|         ).grid(row=0, column=0, sticky=tk.W) | ||||
|         ).grid(row=next(row_counter), column=0, sticky=tk.W) | ||||
|  | ||||
|         current_version = parse_version(self.version) | ||||
|         if current_version < self.acknowledged_version: | ||||
|             ttk.Label( | ||||
|                 frame, | ||||
|                 text=_("A new version {new_version} is available!").format( | ||||
|                     new_version=self.acknowledged_version | ||||
|                 ), | ||||
|                 foreground="red", | ||||
|             ).grid(row=next(row_counter), column=0, sticky=tk.W) | ||||
|  | ||||
|         content = [ | ||||
|             (f"Version {self.version}", 1), | ||||
|             ("", 2), | ||||
|             (_("A GUI application for uploading images to KapitanBooru."), 3), | ||||
|             (_("Features include image upload, tag management, automatic"), 4), | ||||
|             (_("tagging with wdtagger, and cache management."), 5), | ||||
|             ("", 6), | ||||
|             (_("Authors:"), 7), | ||||
|             ("Michał Leśniak", 8), | ||||
|             ("", 9), | ||||
|             (_("License: MIT License"), 10), | ||||
|             (f"Copyright © 2025 Michał Leśniak", 11), | ||||
|             ("", 12), | ||||
|             _("Current version: {version}").format(version=self.version), | ||||
|             "", | ||||
|             _("A GUI application for uploading images to KapitanBooru."), | ||||
|             _("Features include image upload, tag management, automatic"), | ||||
|             _("tagging with wdtagger, and cache management."), | ||||
|             "", | ||||
|             _("Authors:"), | ||||
|             "Michał Leśniak", | ||||
|             "", | ||||
|             _("License: MIT License"), | ||||
|             f"Copyright © 2025 Michał Leśniak", | ||||
|             "", | ||||
|         ] | ||||
|  | ||||
|         for text, row in content: | ||||
|             ttk.Label(frame, text=text).grid(row=row, column=0, sticky=tk.W) | ||||
|         for text in content: | ||||
|             ttk.Label(frame, text=text).grid(row=next(row_counter), column=0, sticky=tk.W) | ||||
|  | ||||
|         # Repository link | ||||
|         repo_frame = ttk.Frame(frame) | ||||
|         repo_frame.grid(row=13, sticky=tk.W) | ||||
|         repo_frame.grid(row=next(row_counter), sticky=tk.W) | ||||
|         ttk.Label(repo_frame, text=_("Repository:")).pack(side=tk.LEFT) | ||||
|         repo_url = "https://git.mlesniak.pl/kapitan/kapitanbooru-uploader" | ||||
|         repo = ttk.Label(repo_frame, text=repo_url, cursor="hand2", foreground="blue") | ||||
| @@ -450,7 +526,7 @@ class ImageBrowser(tk.Tk): | ||||
|  | ||||
|         # Website link | ||||
|         website_frame = ttk.Frame(frame) | ||||
|         website_frame.grid(row=14, sticky=tk.W) | ||||
|         website_frame.grid(row=next(row_counter), sticky=tk.W) | ||||
|         ttk.Label(website_frame, text=_("Website:")).pack(side=tk.LEFT) | ||||
|         website_url = "https://booru.mlesniak.pl" | ||||
|         website = ttk.Label( | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: Kapitanbooru Uploader 0.4.4\n" | ||||
| "Project-Id-Version: Kapitanbooru Uploader 0.5.0\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2025-03-02 00:39+0100\n" | ||||
| "POT-Creation-Date: 2025-03-11 00:35+0100\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
|  | ||||
| @@ -43,300 +43,345 @@ msgstr "Found auth_token:" | ||||
| msgid "auth_token not found in the HTML page." | ||||
| msgstr "auth_token not found in the HTML page." | ||||
|  | ||||
| #: ImageBrowser.py:30 | ||||
| #: ImageBrowser.py:33 | ||||
| msgid "Processing..." | ||||
| msgstr "Processing..." | ||||
|  | ||||
| #: ImageBrowser.py:34 | ||||
| #: ImageBrowser.py:37 | ||||
| msgid "Processing, please wait..." | ||||
| msgstr "Processing, please wait..." | ||||
|  | ||||
| #: ImageBrowser.py:263 | ||||
| #: ImageBrowser.py:244 | ||||
| #, python-brace-format | ||||
| msgid "Update check failed: {error}" | ||||
| msgstr "Update check failed: {error}" | ||||
|  | ||||
| #: ImageBrowser.py:246 | ||||
| #, python-brace-format | ||||
| msgid "Malformed pyproject.toml: {error}" | ||||
| msgstr "Malformed pyproject.toml: {error}" | ||||
|  | ||||
| #: ImageBrowser.py:249 | ||||
| #, python-brace-format | ||||
| msgid "Unexpected error during update check: {error}" | ||||
| msgstr "Unexpected error during update check: {error}" | ||||
|  | ||||
| #: ImageBrowser.py:256 | ||||
| msgid "Update Available" | ||||
| msgstr "Update Available" | ||||
|  | ||||
| #: ImageBrowser.py:258 | ||||
| #, 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:367 | ||||
| msgid "Błąd przy otwieraniu pliku" | ||||
| msgstr "Error opening file" | ||||
|  | ||||
| #: ImageBrowser.py:305 | ||||
| #: ImageBrowser.py:409 | ||||
| msgid "Tagger przetworzył:" | ||||
| msgstr "Tagger processed:" | ||||
|  | ||||
| #: ImageBrowser.py:308 | ||||
| #: ImageBrowser.py:412 | ||||
| msgid "Błąd Taggera dla" | ||||
| msgstr "Tagger error for" | ||||
|  | ||||
| #: ImageBrowser.py:334 | ||||
| #: ImageBrowser.py:438 | ||||
| msgid "Otwórz folder" | ||||
| msgstr "Open folder" | ||||
|  | ||||
| #: ImageBrowser.py:337 ImageBrowser.py:600 ImageBrowser.py:814 | ||||
| #: ImageBrowser.py:822 | ||||
| #: ImageBrowser.py:441 ImageBrowser.py:728 ImageBrowser.py:944 | ||||
| #: ImageBrowser.py:952 | ||||
| msgid "Wyślij" | ||||
| msgstr "Send" | ||||
|  | ||||
| #: ImageBrowser.py:340 ImageBrowser.py:807 | ||||
| #: ImageBrowser.py:444 ImageBrowser.py:937 | ||||
| msgid "Wyślij wszystko" | ||||
| msgstr "Send all" | ||||
|  | ||||
| #: ImageBrowser.py:344 ImageBrowser.py:808 ImageBrowser.py:814 | ||||
| #: ImageBrowser.py:448 ImageBrowser.py:938 ImageBrowser.py:944 | ||||
| msgid "Podmień tagi" | ||||
| msgstr "Replace tags" | ||||
|  | ||||
| #: ImageBrowser.py:347 ImageBrowser.py:809 | ||||
| #: ImageBrowser.py:451 ImageBrowser.py:939 | ||||
| msgid "Otwórz post" | ||||
| msgstr "Open post" | ||||
|  | ||||
| #: ImageBrowser.py:350 | ||||
| #: ImageBrowser.py:454 | ||||
| msgid "Zakończ" | ||||
| msgstr "Finish" | ||||
|  | ||||
| #: ImageBrowser.py:352 | ||||
| #: ImageBrowser.py:456 | ||||
| msgid "Plik" | ||||
| msgstr "File" | ||||
|  | ||||
| #: ImageBrowser.py:356 ImageBrowser.py:430 | ||||
| #: ImageBrowser.py:460 ImageBrowser.py:557 | ||||
| msgid "Ustawienia" | ||||
| msgstr "Settings" | ||||
|  | ||||
| #: ImageBrowser.py:359 | ||||
| #: ImageBrowser.py:463 | ||||
| msgid "Wyczyść cache Taggera" | ||||
| msgstr "Clear Tagger cache" | ||||
|  | ||||
| #: ImageBrowser.py:362 | ||||
| #: ImageBrowser.py:466 | ||||
| msgid "Zregeneruj bazę tagów" | ||||
| msgstr "Regenerate tag database" | ||||
|  | ||||
| #: ImageBrowser.py:364 | ||||
| #: ImageBrowser.py:468 | ||||
| msgid "Opcje" | ||||
| msgstr "Options" | ||||
|  | ||||
| #: ImageBrowser.py:367 | ||||
| #: ImageBrowser.py:471 | ||||
| msgid "About" | ||||
| msgstr "About" | ||||
|  | ||||
| #: ImageBrowser.py:368 | ||||
| #: ImageBrowser.py:472 | ||||
| msgid "Help" | ||||
| msgstr "Help" | ||||
|  | ||||
| #: ImageBrowser.py:373 | ||||
| #: ImageBrowser.py:477 | ||||
| msgid "About Kapitanbooru Uploader" | ||||
| msgstr "About Kapitanbooru Uploader" | ||||
|  | ||||
| #: ImageBrowser.py:386 | ||||
| #: ImageBrowser.py:494 | ||||
| #, python-brace-format | ||||
| msgid "A new version {new_version} is available!" | ||||
| msgstr "A new version {new_version} is available!" | ||||
|  | ||||
| #: ImageBrowser.py:501 | ||||
| #, python-brace-format | ||||
| msgid "Current version: {version}" | ||||
| msgstr "Current version: {version}" | ||||
|  | ||||
| #: ImageBrowser.py:503 | ||||
| msgid "A GUI application for uploading images to KapitanBooru." | ||||
| msgstr "A GUI application for uploading images to KapitanBooru." | ||||
|  | ||||
| #: ImageBrowser.py:387 | ||||
| #: ImageBrowser.py:504 | ||||
| msgid "Features include image upload, tag management, automatic" | ||||
| msgstr "Features include image upload, tag management, automatic" | ||||
|  | ||||
| #: ImageBrowser.py:388 | ||||
| #: ImageBrowser.py:505 | ||||
| msgid "tagging with wdtagger, and cache management." | ||||
| msgstr "tagging with wdtagger, and cache management." | ||||
|  | ||||
| #: ImageBrowser.py:390 | ||||
| #: ImageBrowser.py:507 | ||||
| msgid "Authors:" | ||||
| msgstr "Authors:" | ||||
|  | ||||
| #: ImageBrowser.py:393 | ||||
| #: ImageBrowser.py:510 | ||||
| msgid "License: MIT License" | ||||
| msgstr "License: MIT License" | ||||
|  | ||||
| #: ImageBrowser.py:396 | ||||
| #: ImageBrowser.py:521 | ||||
| msgid "Repository:" | ||||
| msgstr "Repository:" | ||||
|  | ||||
| #: ImageBrowser.py:397 | ||||
| #: ImageBrowser.py:530 | ||||
| msgid "Website:" | ||||
| msgstr "Website:" | ||||
|  | ||||
| #: ImageBrowser.py:414 | ||||
| #: ImageBrowser.py:541 | ||||
| msgid "Close" | ||||
| msgstr "Close" | ||||
|  | ||||
| #: ImageBrowser.py:422 ImageBrowser.py:425 | ||||
| #: ImageBrowser.py:549 ImageBrowser.py:552 | ||||
| msgid "Cache" | ||||
| msgstr "Cache" | ||||
|  | ||||
| #: ImageBrowser.py:422 | ||||
| #: ImageBrowser.py:549 | ||||
| msgid "Cache Taggera zostało wyczyszczone." | ||||
| msgstr "Tagger cache has been cleared." | ||||
|  | ||||
| #: ImageBrowser.py:425 | ||||
| #: ImageBrowser.py:552 | ||||
| msgid "Błąd przy czyszczeniu cache:" | ||||
| msgstr "Error clearing cache:" | ||||
|  | ||||
| #: ImageBrowser.py:434 | ||||
| #: ImageBrowser.py:562 | ||||
| msgid "Login:" | ||||
| msgstr "Login:" | ||||
|  | ||||
| #: ImageBrowser.py:440 | ||||
| #: ImageBrowser.py:568 | ||||
| msgid "Hasło:" | ||||
| msgstr "Password:" | ||||
|  | ||||
| #: ImageBrowser.py:446 | ||||
| #: ImageBrowser.py:574 | ||||
| msgid "Base URL:" | ||||
| msgstr "Base URL:" | ||||
|  | ||||
| #: ImageBrowser.py:452 | ||||
| #: ImageBrowser.py:580 | ||||
| msgid "Default Tags:" | ||||
| msgstr "Default Tags:" | ||||
|  | ||||
| #: ImageBrowser.py:458 | ||||
| #: ImageBrowser.py:586 | ||||
| msgid "Browser:" | ||||
| msgstr "Browser:" | ||||
|  | ||||
| #: ImageBrowser.py:472 | ||||
| #: ImageBrowser.py:600 | ||||
| msgid "Language:" | ||||
| msgstr "Language:" | ||||
|  | ||||
| #: ImageBrowser.py:504 | ||||
| #: ImageBrowser.py:632 | ||||
| msgid "Zapisz" | ||||
| msgstr "Save" | ||||
|  | ||||
| #: ImageBrowser.py:546 | ||||
| #: ImageBrowser.py:674 | ||||
| msgid "PNG Tags" | ||||
| msgstr "PNG Tags" | ||||
|  | ||||
| #: ImageBrowser.py:558 | ||||
| #: ImageBrowser.py:686 | ||||
| msgid "Tagger Tags" | ||||
| msgstr "Tagger Tags" | ||||
|  | ||||
| #: ImageBrowser.py:572 | ||||
| #: ImageBrowser.py:700 | ||||
| msgid "Manual Tags" | ||||
| msgstr "Manual Tags" | ||||
|  | ||||
| #: ImageBrowser.py:580 | ||||
| #: ImageBrowser.py:708 | ||||
| msgid "Final Tags" | ||||
| msgstr "Final Tags" | ||||
|  | ||||
| #: ImageBrowser.py:605 | ||||
| #: ImageBrowser.py:733 | ||||
| msgid "Wyświetl" | ||||
| msgstr "Display" | ||||
|  | ||||
| #: ImageBrowser.py:622 | ||||
| #: ImageBrowser.py:750 | ||||
| msgid "Przetworzono tagi:" | ||||
| msgstr "Processed tags:" | ||||
|  | ||||
| #: ImageBrowser.py:622 ImageBrowser.py:623 ImageBrowser.py:624 | ||||
| #: ImageBrowser.py:750 ImageBrowser.py:751 ImageBrowser.py:752 | ||||
| msgid "plików" | ||||
| msgstr "files" | ||||
|  | ||||
| #: ImageBrowser.py:623 | ||||
| #: ImageBrowser.py:751 | ||||
| msgid "Zweryfikowano status uploadu:" | ||||
| msgstr "Upload status verified:" | ||||
|  | ||||
| #: ImageBrowser.py:624 | ||||
| #: ImageBrowser.py:752 | ||||
| msgid "Zuploadowano:" | ||||
| msgstr "Uploaded:" | ||||
|  | ||||
| #: ImageBrowser.py:652 | ||||
| #: ImageBrowser.py:780 | ||||
| msgid "Wybierz folder z obrazkami PNG" | ||||
| msgstr "Select folder with PNG images" | ||||
|  | ||||
| #: ImageBrowser.py:683 | ||||
| #: ImageBrowser.py:813 | ||||
| msgid "Informacja" | ||||
| msgstr "Information" | ||||
|  | ||||
| #: ImageBrowser.py:683 | ||||
| #: ImageBrowser.py:813 | ||||
| msgid "Brak plików PNG w wybranym folderze." | ||||
| msgstr "No PNG files in the selected folder." | ||||
|  | ||||
| #: ImageBrowser.py:766 | ||||
| #: ImageBrowser.py:896 | ||||
| msgid "Błąd podczas sprawdzania paczki uploadu:" | ||||
| msgstr "Error while checking upload package:" | ||||
|  | ||||
| #: ImageBrowser.py:842 | ||||
| #: ImageBrowser.py:972 | ||||
| msgid "Błąd przy obliczaniu MD5:" | ||||
| msgstr "Error calculating MD5:" | ||||
|  | ||||
| #: ImageBrowser.py:898 | ||||
| #: ImageBrowser.py:1028 | ||||
| msgid "Błąd" | ||||
| msgstr "Error" | ||||
|  | ||||
| #: ImageBrowser.py:898 | ||||
| #: ImageBrowser.py:1028 | ||||
| msgid "Nie można załadować obrazka:" | ||||
| msgstr "Unable to load image:" | ||||
|  | ||||
| #: ImageBrowser.py:1108 ImageBrowser.py:1118 | ||||
| #: ImageBrowser.py:1238 ImageBrowser.py:1248 | ||||
| #, python-brace-format | ||||
| msgid "Warning: Tag '{tag}' not found in implication graph" | ||||
| msgstr "Warning: Tag '{tag}' not found in implication graph" | ||||
|  | ||||
| #: ImageBrowser.py:1348 | ||||
| #: ImageBrowser.py:1478 | ||||
| msgid "Tagger przetwarza..." | ||||
| msgstr "Tagger processing..." | ||||
|  | ||||
| #: ImageBrowser.py:1373 | ||||
| #: ImageBrowser.py:1503 | ||||
| #, python-brace-format | ||||
| msgid "Wysyłam plik {base_file_name}..." | ||||
| msgstr "Sending file {base_file_name}..." | ||||
|  | ||||
| #: ImageBrowser.py:1414 | ||||
| #: ImageBrowser.py:1544 | ||||
| msgid "Wysyłanie zakończone powodzeniem!" | ||||
| msgstr "Upload completed successfully!" | ||||
|  | ||||
| #: ImageBrowser.py:1418 ImageBrowser.py:1427 | ||||
| #: ImageBrowser.py:1548 ImageBrowser.py:1557 | ||||
| #, python-brace-format | ||||
| msgid "" | ||||
| "Wysyłanie zakończone błędem.\n" | ||||
| "Status: {status_code}\n" | ||||
| "Treść: {text}" | ||||
| msgstr "" | ||||
| "Upload failed.\nStatus: {status_code}\nContent: {text}" | ||||
| "Upload failed.\n" | ||||
| "Status: {status_code}\n" | ||||
| "Content: {text}" | ||||
|  | ||||
| #: ImageBrowser.py:1433 ImageBrowser.py:1436 | ||||
| #: ImageBrowser.py:1563 ImageBrowser.py:1566 | ||||
| msgid "Wysyłanie" | ||||
| msgstr "Uploading" | ||||
|  | ||||
| #: ImageBrowser.py:1449 | ||||
| #: ImageBrowser.py:1579 | ||||
| msgid "Błąd wysyłania" | ||||
| msgstr "Upload error" | ||||
|  | ||||
| #: ImageBrowser.py:1469 | ||||
| #: ImageBrowser.py:1599 | ||||
| msgid "Błąd edycji" | ||||
| msgstr "Edit error" | ||||
|  | ||||
| #: ImageBrowser.py:1469 | ||||
| #: ImageBrowser.py:1599 | ||||
| msgid "Post nie został znaleziony dla tego pliku" | ||||
| msgstr "Post not found for this file" | ||||
|  | ||||
| #: ImageBrowser.py:1479 | ||||
| #: ImageBrowser.py:1609 | ||||
| #, python-brace-format | ||||
| msgid "Aktualizuję tagi dla {base_file_name}..." | ||||
| msgstr "Updating tags for {base_file_name}..." | ||||
|  | ||||
| #: ImageBrowser.py:1489 ImageBrowser.py:1499 ImageBrowser.py:1530 | ||||
| #: ImageBrowser.py:1619 ImageBrowser.py:1629 ImageBrowser.py:1660 | ||||
| msgid "Operacja anulowana" | ||||
| msgstr "Operation cancelled" | ||||
|  | ||||
| #: ImageBrowser.py:1540 | ||||
| #: ImageBrowser.py:1670 | ||||
| msgid "Tagi zostały zaktualizowane!" | ||||
| msgstr "Tags have been updated!" | ||||
|  | ||||
| #: ImageBrowser.py:1542 | ||||
| #: ImageBrowser.py:1672 | ||||
| msgid "Sukces edycji" | ||||
| msgstr "Edit successful" | ||||
|  | ||||
| #: ImageBrowser.py:1548 | ||||
| #: ImageBrowser.py:1678 | ||||
| #, python-brace-format | ||||
| msgid "" | ||||
| "Błąd podczas aktualizacji tagów\n" | ||||
| "Status: {code}" | ||||
| msgstr "" | ||||
| "Error updating tags\nStatus: {code}" | ||||
| "Error updating tags\n" | ||||
| "Status: {code}" | ||||
|  | ||||
| #: ImageBrowser.py:1552 | ||||
| #: ImageBrowser.py:1682 | ||||
| msgid "Treść:" | ||||
| msgstr "Content:" | ||||
|  | ||||
| #: ImageBrowser.py:1556 | ||||
| #: ImageBrowser.py:1686 | ||||
| msgid "Krytyczny błąd edycji" | ||||
| msgstr "Critical edit error" | ||||
|  | ||||
| #: ImageBrowser.py:1568 | ||||
| #: ImageBrowser.py:1698 | ||||
| msgid "Potwierdzenie" | ||||
| msgstr "Confirmation" | ||||
|  | ||||
| #: ImageBrowser.py:1570 | ||||
| #: ImageBrowser.py:1700 | ||||
| msgid "" | ||||
| "Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n" | ||||
| "Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n" | ||||
| @@ -346,17 +391,18 @@ msgstr "" | ||||
| "Each will be tagged with 'meta:auto_upload'.\n" | ||||
| "Make sure the tags are correct!" | ||||
|  | ||||
| #: ImageBrowser.py:1589 | ||||
| #: ImageBrowser.py:1724 | ||||
| msgid "Anulowano operację!" | ||||
| msgstr "Operation cancelled!" | ||||
|  | ||||
| #: ImageBrowser.py:1597 | ||||
| #: ImageBrowser.py:1732 | ||||
| #, 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}" | ||||
| msgstr "" | ||||
| "Uploading {file_path} with tags: {final_tags} and rating: {final_rating}" | ||||
|  | ||||
| #: ImageBrowser.py:1608 | ||||
| #: ImageBrowser.py:1748 | ||||
| msgid "Przesłano pliki!" | ||||
| msgstr "Files have been uploaded!" | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: Kapitanbooru Uploader 0.4.4\n" | ||||
| "Project-Id-Version: Kapitanbooru Uploader 0.5.0\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2025-03-02 00:39+0100\n" | ||||
| "POT-Creation-Date: 2025-03-11 00:35+0100\n" | ||||
| "Language: pl\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| @@ -17,8 +17,7 @@ msgstr "Błąd przy otwieraniu przeglądarki:" | ||||
|  | ||||
| #: common.py:72 | ||||
| msgid "Login succeeded, but expected cookies were not set." | ||||
| msgstr "" | ||||
| "Logowanie powiodło się, ale oczekiwane ciasteczka nie zostały ustawione." | ||||
| msgstr "Logowanie powiodło się, ale oczekiwane ciasteczka nie zostały ustawione." | ||||
|  | ||||
| #: common.py:74 | ||||
| msgid "Login successful. Cookies stored in session." | ||||
| @@ -45,284 +44,324 @@ msgstr "Znaleziono auth_token:" | ||||
| msgid "auth_token not found in the HTML page." | ||||
| msgstr "Nie znaleziono auth_token w stronie HTML." | ||||
|  | ||||
| #: ImageBrowser.py:30 | ||||
| #: ImageBrowser.py:33 | ||||
| msgid "Processing..." | ||||
| msgstr "Przetwarzanie..." | ||||
|  | ||||
| #: ImageBrowser.py:34 | ||||
| #: ImageBrowser.py:37 | ||||
| msgid "Processing, please wait..." | ||||
| msgstr "Przetwarzanie, proszę czekać..." | ||||
|  | ||||
| #: ImageBrowser.py:263 | ||||
| #: ImageBrowser.py:244 | ||||
| #, python-brace-format | ||||
| msgid "Update check failed: {error}" | ||||
| msgstr "Sprawdzenie aktualizacji nie powiodło się: {error}" | ||||
|  | ||||
| #: ImageBrowser.py:246 | ||||
| #, python-brace-format | ||||
| msgid "Malformed pyproject.toml: {error}" | ||||
| msgstr "Nieprawidłowy plik pyproject.toml: {error}" | ||||
|  | ||||
| #: ImageBrowser.py:249 | ||||
| #, python-brace-format | ||||
| msgid "Unexpected error during update check: {error}" | ||||
| msgstr "Nieoczekiwany błąd podczas sprawdzania aktualizacji: {error}" | ||||
|  | ||||
| #: ImageBrowser.py:256 | ||||
| msgid "Update Available" | ||||
| msgstr "Aktualizacja dostępna" | ||||
|  | ||||
| #: ImageBrowser.py:258 | ||||
| #, python-brace-format | ||||
| msgid "" | ||||
| "A new version {new_version} is available!\n" | ||||
| "You have version {current_version}.\n" | ||||
| "\n" | ||||
| "Update using: {update_command}" | ||||
| msgstr "" | ||||
| "Dostępna jest nowa wersja {new_version}!\n" | ||||
| "Masz wersję {current_version}.\n" | ||||
| "\n" | ||||
| "Aktualizuj za pomocą: {update_command}" | ||||
|  | ||||
| #: ImageBrowser.py:367 | ||||
| msgid "Błąd przy otwieraniu pliku" | ||||
| msgstr "Błąd przy otwieraniu pliku" | ||||
|  | ||||
| #: ImageBrowser.py:305 | ||||
| #: ImageBrowser.py:409 | ||||
| msgid "Tagger przetworzył:" | ||||
| msgstr "Tagger przetworzył:" | ||||
|  | ||||
| #: ImageBrowser.py:308 | ||||
| #: ImageBrowser.py:412 | ||||
| msgid "Błąd Taggera dla" | ||||
| msgstr "Błąd Taggera dla" | ||||
|  | ||||
| #: ImageBrowser.py:334 | ||||
| #: ImageBrowser.py:438 | ||||
| msgid "Otwórz folder" | ||||
| msgstr "Otwórz folder" | ||||
|  | ||||
| #: ImageBrowser.py:337 ImageBrowser.py:600 ImageBrowser.py:814 | ||||
| #: ImageBrowser.py:822 | ||||
| #: ImageBrowser.py:441 ImageBrowser.py:728 ImageBrowser.py:944 | ||||
| #: ImageBrowser.py:952 | ||||
| msgid "Wyślij" | ||||
| msgstr "Wyślij" | ||||
|  | ||||
| #: ImageBrowser.py:340 ImageBrowser.py:807 | ||||
| #: ImageBrowser.py:444 ImageBrowser.py:937 | ||||
| msgid "Wyślij wszystko" | ||||
| msgstr "Wyślij wszystko" | ||||
|  | ||||
| #: ImageBrowser.py:344 ImageBrowser.py:808 ImageBrowser.py:814 | ||||
| #: ImageBrowser.py:448 ImageBrowser.py:938 ImageBrowser.py:944 | ||||
| msgid "Podmień tagi" | ||||
| msgstr "Podmień tagi" | ||||
|  | ||||
| #: ImageBrowser.py:347 ImageBrowser.py:809 | ||||
| #: ImageBrowser.py:451 ImageBrowser.py:939 | ||||
| msgid "Otwórz post" | ||||
| msgstr "Otwórz post" | ||||
|  | ||||
| #: ImageBrowser.py:350 | ||||
| #: ImageBrowser.py:454 | ||||
| msgid "Zakończ" | ||||
| msgstr "Zakończ" | ||||
|  | ||||
| #: ImageBrowser.py:352 | ||||
| #: ImageBrowser.py:456 | ||||
| msgid "Plik" | ||||
| msgstr "Plik" | ||||
|  | ||||
| #: ImageBrowser.py:356 ImageBrowser.py:430 | ||||
| #: ImageBrowser.py:460 ImageBrowser.py:557 | ||||
| msgid "Ustawienia" | ||||
| msgstr "Ustawienia" | ||||
|  | ||||
| #: ImageBrowser.py:359 | ||||
| #: ImageBrowser.py:463 | ||||
| msgid "Wyczyść cache Taggera" | ||||
| msgstr "Wyczyść cache Taggera" | ||||
|  | ||||
| #: ImageBrowser.py:362 | ||||
| #: ImageBrowser.py:466 | ||||
| msgid "Zregeneruj bazę tagów" | ||||
| msgstr "Zregeneruj bazę tagów" | ||||
|  | ||||
| #: ImageBrowser.py:364 | ||||
| #: ImageBrowser.py:468 | ||||
| msgid "Opcje" | ||||
| msgstr "Opcje" | ||||
|  | ||||
| #: ImageBrowser.py:367 | ||||
| #: ImageBrowser.py:471 | ||||
| msgid "About" | ||||
| msgstr "O programie" | ||||
|  | ||||
| #: ImageBrowser.py:368 | ||||
| #: ImageBrowser.py:472 | ||||
| msgid "Help" | ||||
| msgstr "Pomoc" | ||||
|  | ||||
| #: ImageBrowser.py:373 | ||||
| #: ImageBrowser.py:477 | ||||
| msgid "About Kapitanbooru Uploader" | ||||
| msgstr "O programie Kapitanbooru Uploader" | ||||
|  | ||||
| #: ImageBrowser.py:386 | ||||
| #: ImageBrowser.py:494 | ||||
| #, python-brace-format | ||||
| msgid "A new version {new_version} is available!" | ||||
| msgstr "Dostępna jest nowa wersja {new_version}!" | ||||
|  | ||||
| #: ImageBrowser.py:501 | ||||
| #, python-brace-format | ||||
| msgid "Current version: {version}" | ||||
| msgstr "Obecna wersja: {version}" | ||||
|  | ||||
| #: ImageBrowser.py:503 | ||||
| msgid "A GUI application for uploading images to KapitanBooru." | ||||
| msgstr "Aplikacja GUI do przesyłania obrazów do KapitanBooru." | ||||
|  | ||||
| #: ImageBrowser.py:387 | ||||
| #: ImageBrowser.py:504 | ||||
| msgid "Features include image upload, tag management, automatic" | ||||
| msgstr "Funkcje obejmują przesyłanie obrazów, zarządzanie tagami, automatyczne" | ||||
|  | ||||
| #: ImageBrowser.py:388 | ||||
| #: ImageBrowser.py:505 | ||||
| msgid "tagging with wdtagger, and cache management." | ||||
| msgstr "tagowanie za pomocą wdtagger oraz zarządzanie cache." | ||||
|  | ||||
| #: ImageBrowser.py:390 | ||||
| #: ImageBrowser.py:507 | ||||
| msgid "Authors:" | ||||
| msgstr "Autorzy:" | ||||
|  | ||||
| #: ImageBrowser.py:393 | ||||
| #: ImageBrowser.py:510 | ||||
| msgid "License: MIT License" | ||||
| msgstr "Licencja: MIT License" | ||||
|  | ||||
| #: ImageBrowser.py:396 | ||||
| #: ImageBrowser.py:521 | ||||
| msgid "Repository:" | ||||
| msgstr "Repozytorium:" | ||||
|  | ||||
| #: ImageBrowser.py:397 | ||||
| #: ImageBrowser.py:530 | ||||
| msgid "Website:" | ||||
| msgstr "Strona internetowa:" | ||||
|  | ||||
| #: ImageBrowser.py:414 | ||||
| #: ImageBrowser.py:541 | ||||
| msgid "Close" | ||||
| msgstr "Zamknij" | ||||
|  | ||||
| #: ImageBrowser.py:422 ImageBrowser.py:425 | ||||
| #: ImageBrowser.py:549 ImageBrowser.py:552 | ||||
| msgid "Cache" | ||||
| msgstr "Cache" | ||||
|  | ||||
| #: ImageBrowser.py:422 | ||||
| #: ImageBrowser.py:549 | ||||
| msgid "Cache Taggera zostało wyczyszczone." | ||||
| msgstr "Cache Taggera zostało wyczyszczone." | ||||
|  | ||||
| #: ImageBrowser.py:425 | ||||
| #: ImageBrowser.py:552 | ||||
| msgid "Błąd przy czyszczeniu cache:" | ||||
| msgstr "Błąd przy czyszczeniu cache:" | ||||
|  | ||||
| #: ImageBrowser.py:434 | ||||
| #: ImageBrowser.py:562 | ||||
| msgid "Login:" | ||||
| msgstr "Login:" | ||||
|  | ||||
| #: ImageBrowser.py:440 | ||||
| #: ImageBrowser.py:568 | ||||
| msgid "Hasło:" | ||||
| msgstr "Hasło:" | ||||
|  | ||||
| #: ImageBrowser.py:446 | ||||
| #: ImageBrowser.py:574 | ||||
| msgid "Base URL:" | ||||
| msgstr "Base URL:" | ||||
|  | ||||
| #: ImageBrowser.py:452 | ||||
| #: ImageBrowser.py:580 | ||||
| msgid "Default Tags:" | ||||
| msgstr "Domyślne tagi:" | ||||
|  | ||||
| #: ImageBrowser.py:458 | ||||
| #: ImageBrowser.py:586 | ||||
| msgid "Browser:" | ||||
| msgstr "Przeglądarka:" | ||||
|  | ||||
| #: ImageBrowser.py:472 | ||||
| #: ImageBrowser.py:600 | ||||
| msgid "Language:" | ||||
| msgstr "Język:" | ||||
|  | ||||
| #: ImageBrowser.py:504 | ||||
| #: ImageBrowser.py:632 | ||||
| msgid "Zapisz" | ||||
| msgstr "Zapisz" | ||||
|  | ||||
| #: ImageBrowser.py:546 | ||||
| #: ImageBrowser.py:674 | ||||
| msgid "PNG Tags" | ||||
| msgstr "Tagi PNG" | ||||
|  | ||||
| #: ImageBrowser.py:558 | ||||
| #: ImageBrowser.py:686 | ||||
| msgid "Tagger Tags" | ||||
| msgstr "Tagi Taggera" | ||||
|  | ||||
| #: ImageBrowser.py:572 | ||||
| #: ImageBrowser.py:700 | ||||
| msgid "Manual Tags" | ||||
| msgstr "Tagi ręczne" | ||||
|  | ||||
| #: ImageBrowser.py:580 | ||||
| #: ImageBrowser.py:708 | ||||
| msgid "Final Tags" | ||||
| msgstr "Ostateczne tagi" | ||||
|  | ||||
| #: ImageBrowser.py:605 | ||||
| #: ImageBrowser.py:733 | ||||
| msgid "Wyświetl" | ||||
| msgstr "Wyświetl" | ||||
|  | ||||
| #: ImageBrowser.py:622 | ||||
| #: ImageBrowser.py:750 | ||||
| msgid "Przetworzono tagi:" | ||||
| msgstr "Przetworzono tagi:" | ||||
|  | ||||
| #: ImageBrowser.py:622 ImageBrowser.py:623 ImageBrowser.py:624 | ||||
| #: ImageBrowser.py:750 ImageBrowser.py:751 ImageBrowser.py:752 | ||||
| msgid "plików" | ||||
| msgstr "plików" | ||||
|  | ||||
| #: ImageBrowser.py:623 | ||||
| #: ImageBrowser.py:751 | ||||
| msgid "Zweryfikowano status uploadu:" | ||||
| msgstr "Zweryfikowano status uploadu:" | ||||
|  | ||||
| #: ImageBrowser.py:624 | ||||
| #: ImageBrowser.py:752 | ||||
| msgid "Zuploadowano:" | ||||
| msgstr "Zuploadowano:" | ||||
|  | ||||
| #: ImageBrowser.py:652 | ||||
| #: ImageBrowser.py:780 | ||||
| msgid "Wybierz folder z obrazkami PNG" | ||||
| msgstr "Wybierz folder z obrazami PNG" | ||||
|  | ||||
| #: ImageBrowser.py:683 | ||||
| #: ImageBrowser.py:813 | ||||
| msgid "Informacja" | ||||
| msgstr "Informacja" | ||||
|  | ||||
| #: ImageBrowser.py:683 | ||||
| #: ImageBrowser.py:813 | ||||
| msgid "Brak plików PNG w wybranym folderze." | ||||
| msgstr "Brak plików PNG w wybranym folderze." | ||||
|  | ||||
| #: ImageBrowser.py:766 | ||||
| #: ImageBrowser.py:896 | ||||
| msgid "Błąd podczas sprawdzania paczki uploadu:" | ||||
| msgstr "Błąd podczas sprawdzania paczki uploadu:" | ||||
|  | ||||
| #: ImageBrowser.py:842 | ||||
| #: ImageBrowser.py:972 | ||||
| msgid "Błąd przy obliczaniu MD5:" | ||||
| msgstr "Błąd przy obliczaniu MD5:" | ||||
|  | ||||
| #: ImageBrowser.py:898 | ||||
| #: ImageBrowser.py:1028 | ||||
| msgid "Błąd" | ||||
| msgstr "Błąd" | ||||
|  | ||||
| #: ImageBrowser.py:898 | ||||
| #: ImageBrowser.py:1028 | ||||
| msgid "Nie można załadować obrazka:" | ||||
| msgstr "Nie można załadować obrazka:" | ||||
|  | ||||
| #: ImageBrowser.py:1108 ImageBrowser.py:1118 | ||||
| #: ImageBrowser.py:1238 ImageBrowser.py:1248 | ||||
| #, 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:1348 | ||||
| #: ImageBrowser.py:1478 | ||||
| msgid "Tagger przetwarza..." | ||||
| msgstr "Tagger przetwarza..." | ||||
|  | ||||
| #: ImageBrowser.py:1373 | ||||
| #: ImageBrowser.py:1503 | ||||
| #, python-brace-format | ||||
| msgid "Wysyłam plik {base_file_name}..." | ||||
| msgstr "Wysyłam plik {base_file_name}..." | ||||
|  | ||||
| #: ImageBrowser.py:1414 | ||||
| #, fuzzy | ||||
| #: ImageBrowser.py:1544 | ||||
| msgid "Wysyłanie zakończone powodzeniem!" | ||||
| msgstr "Upload zakończony powodzeniem!" | ||||
| msgstr "Wysyłanie zakończone powodzeniem!" | ||||
|  | ||||
| #: ImageBrowser.py:1418 ImageBrowser.py:1427 | ||||
| #, fuzzy, python-brace-format | ||||
| #: ImageBrowser.py:1548 ImageBrowser.py:1557 | ||||
| #, python-brace-format | ||||
| msgid "" | ||||
| "Wysyłanie zakończone błędem.\n" | ||||
| "Status: {status_code}\n" | ||||
| "Treść: {text}" | ||||
| msgstr "" | ||||
| "Upload zakończony błędem.\n" | ||||
| "Wysyłanie zakończone błędem.\n" | ||||
| "Status: {status_code}\n" | ||||
| "Treść: {text}" | ||||
|  | ||||
| #: ImageBrowser.py:1433 ImageBrowser.py:1436 | ||||
| #: ImageBrowser.py:1563 | ||||
| msgid "Wysyłanie" | ||||
| msgstr "" | ||||
| msgstr "Wysyłanie" | ||||
|  | ||||
| #: ImageBrowser.py:1449 | ||||
| #, fuzzy | ||||
| #: ImageBrowser.py:1579 | ||||
| msgid "Błąd wysyłania" | ||||
| msgstr "Błąd edycji" | ||||
| msgstr "Błąd wysyłania" | ||||
|  | ||||
| #: ImageBrowser.py:1469 | ||||
| #: ImageBrowser.py:1599 | ||||
| msgid "Błąd edycji" | ||||
| msgstr "Błąd edycji" | ||||
|  | ||||
| #: ImageBrowser.py:1469 | ||||
| #: ImageBrowser.py:1599 | ||||
| msgid "Post nie został znaleziony dla tego pliku" | ||||
| msgstr "Post nie został znaleziony dla tego pliku" | ||||
|  | ||||
| #: ImageBrowser.py:1479 | ||||
| #: ImageBrowser.py:1609 | ||||
| #, python-brace-format | ||||
| msgid "Aktualizuję tagi dla {base_file_name}..." | ||||
| msgstr "Aktualizuję tagi dla {base_file_name}..." | ||||
|  | ||||
| #: ImageBrowser.py:1489 ImageBrowser.py:1499 ImageBrowser.py:1530 | ||||
| #: ImageBrowser.py:1619 ImageBrowser.py:1629 ImageBrowser.py:1660 | ||||
| msgid "Operacja anulowana" | ||||
| msgstr "Operacja anulowana" | ||||
|  | ||||
| #: ImageBrowser.py:1540 | ||||
| #: ImageBrowser.py:1670 | ||||
| msgid "Tagi zostały zaktualizowane!" | ||||
| msgstr "Tagi zostały zaktualizowane!" | ||||
|  | ||||
| #: ImageBrowser.py:1542 | ||||
| #: ImageBrowser.py:1672 | ||||
| msgid "Sukces edycji" | ||||
| msgstr "Sukces edycji" | ||||
|  | ||||
| #: ImageBrowser.py:1548 | ||||
| #: ImageBrowser.py:1678 | ||||
| #, python-brace-format | ||||
| msgid "" | ||||
| "Błąd podczas aktualizacji tagów\n" | ||||
| @@ -331,19 +370,19 @@ msgstr "" | ||||
| "Błąd podczas aktualizacji tagów\n" | ||||
| "Status: {code}" | ||||
|  | ||||
| #: ImageBrowser.py:1552 | ||||
| #: ImageBrowser.py:1682 | ||||
| msgid "Treść:" | ||||
| msgstr "Treść:" | ||||
|  | ||||
| #: ImageBrowser.py:1556 | ||||
| #: ImageBrowser.py:1686 | ||||
| msgid "Krytyczny błąd edycji" | ||||
| msgstr "Krytyczny błąd edycji" | ||||
|  | ||||
| #: ImageBrowser.py:1568 | ||||
| #: ImageBrowser.py:1698 | ||||
| msgid "Potwierdzenie" | ||||
| msgstr "Potwierdzenie" | ||||
|  | ||||
| #: ImageBrowser.py:1570 | ||||
| #: ImageBrowser.py:1700 | ||||
| msgid "" | ||||
| "Czy na pewno chcesz wrzucić wszystkie niewrzucone pliki?\n" | ||||
| "Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n" | ||||
| @@ -353,18 +392,18 @@ msgstr "" | ||||
| "Każdy z nich zostanie oznaczony tagiem 'meta:auto_upload'.\n" | ||||
| "Upewnij się, że tagi są poprawne!" | ||||
|  | ||||
| #: ImageBrowser.py:1589 | ||||
| #: ImageBrowser.py:1724 | ||||
| msgid "Anulowano operację!" | ||||
| msgstr "Operacja anulowana!" | ||||
|  | ||||
| #: ImageBrowser.py:1597 | ||||
| #, fuzzy, python-brace-format | ||||
| #: ImageBrowser.py:1732 | ||||
| #, 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:1608 | ||||
| #: ImageBrowser.py:1748 | ||||
| msgid "Przesłano pliki!" | ||||
| msgstr "Pliki zostały przesłane!" | ||||
|  | ||||
| @@ -497,19 +536,3 @@ msgstr "Błąd podczas odczytu tag_aliases:" | ||||
| #: tag_processing.py:181 | ||||
| msgid "Błąd podczas odczytu tags:" | ||||
| msgstr "Błąd podczas odczytu tags:" | ||||
|  | ||||
| #, python-brace-format | ||||
| #~ msgid "" | ||||
| #~ "Upload zakończony błędem.\n" | ||||
| #~ "Status: 409\n" | ||||
| #~ "Treść: {error}" | ||||
| #~ msgstr "" | ||||
| #~ "Upload zakończony błędem.\n" | ||||
| #~ "Status: 409\n" | ||||
| #~ "Treść: {error}" | ||||
|  | ||||
| #~ msgid "Upload" | ||||
| #~ msgstr "Upload" | ||||
|  | ||||
| #~ msgid "Błąd uploadu" | ||||
| #~ msgstr "Błąd uploadu" | ||||
|   | ||||
| @@ -3,4 +3,5 @@ Pillow==11.1.0 | ||||
| pywin32==308 | ||||
| Requests==2.32.3 | ||||
| wdtagger==0.13.2 | ||||
| bs4==0.0.2 | ||||
| bs4==0.0.2 | ||||
| tomli==2.2.1 | ||||
| @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" | ||||
|  | ||||
| [project] | ||||
| name = "kapitanbooru-uploader" | ||||
| version = "0.4.4" | ||||
| version = "0.5.0" | ||||
| description = "A GUI application for uploading images to KapitanBooru" | ||||
| authors = [ | ||||
|     {name = "Michał Leśniak", email = "kapitan@mlesniak.pl"} | ||||
| @@ -15,7 +15,8 @@ dependencies = [ | ||||
|     "pywin32==308", | ||||
|     "requests==2.32.3", | ||||
|     "wdtagger==0.13.2", | ||||
|     "bs4==0.0.2" | ||||
|     "bs4==0.0.2", | ||||
|     "tomli==2.2.1" | ||||
| ] | ||||
| requires-python = ">=3.13" | ||||
| readme = "README.md" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user