Bump version to 0.9.5; update localization files and refactor file upload logic in Core
	
		
			
	
		
	
	
		
	
		
			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:
		| @@ -35,7 +35,7 @@ class Core: | |||||||
|     """ |     """ | ||||||
|  |  | ||||||
|     def __init__(self, settings: Settings, gui_mode: bool = True): |     def __init__(self, settings: Settings, gui_mode: bool = True): | ||||||
|         self.version = "0.9.4" |         self.version = "0.9.5" | ||||||
|         self.acknowledged_version = parse_version(self.version) |         self.acknowledged_version = parse_version(self.version) | ||||||
|         self.settings = settings |         self.settings = settings | ||||||
|         self.tags_repo = TagsRepo(settings) |         self.tags_repo = TagsRepo(settings) | ||||||
| @@ -221,7 +221,9 @@ class Core: | |||||||
|         final_tags.add("meta:auto_upload") |         final_tags.add("meta:auto_upload") | ||||||
|         return " ".join(sorted(final_tags)), rating |         return " ".join(sorted(final_tags)), rating | ||||||
|  |  | ||||||
|     def get_tagger_results(self, file_path, callback: Callable|None = None) -> wdt.Result: |     def get_tagger_results( | ||||||
|  |         self, file_path, callback: Callable | None = None | ||||||
|  |     ) -> wdt.Result: | ||||||
|         md5 = self.image_files_md5[file_path] |         md5 = self.image_files_md5[file_path] | ||||||
|         cached = self.tagger_cache[md5] |         cached = self.tagger_cache[md5] | ||||||
|         if cached: |         if cached: | ||||||
| @@ -424,24 +426,29 @@ class Core: | |||||||
|         """ |         """ | ||||||
|         Autotaguje pliki przy użyciu Taggera i wysyła je na serwer. |         Autotaguje pliki przy użyciu Taggera i wysyła je na serwer. | ||||||
|         """ |         """ | ||||||
|         for file_path in file_paths: |         self.image_files = file_paths | ||||||
|             if not os.path.isfile(file_path): |         self.total_files = len(self.image_files) | ||||||
|                 print(_("Plik nie istnieje:"), file_path) |         self.image_files_md5 = { | ||||||
|                 continue |             file: md5 | ||||||
|             try: |             for file, md5 in zip( | ||||||
|                 tags, rating = self.compute_final_tags_and_rating_for_file( |                 self.image_files, self.compute_md5_parallel(self.image_files) | ||||||
|                     file_path, lambda: None |             ) | ||||||
|                 ) |         } | ||||||
|                 print(_("Tagi dla pliku"), file_path, ":", tags, "Rating:", rating) |         self.tagger_processed.clear() | ||||||
|                 self.upload_file( |         for md5 in self.image_files_md5.values(): | ||||||
|                     file_path, |             if self.tagger_cache[md5]: | ||||||
|                     final_tags=tags, |                 self.tagger_processed.add(md5) | ||||||
|                     final_rating=rating, |         self.uploaded.clear() | ||||||
|                     progress_queue=None, |         self.upload_verified = 0 | ||||||
|                     cancel_event=None, |         self.uploaded_count = 0 | ||||||
|                 ) |         for file in self.image_files: | ||||||
|             except Exception as e: |             self.uploaded[file] = False | ||||||
|                 print(_("Błąd podczas autotagowania pliku"), file_path, ":", e) |         if not self.image_files: | ||||||
|  |             return | ||||||
|  |         self.post_load_processing() | ||||||
|  |         self.check_uploaded_files_thread.join() | ||||||
|  |         self.process_tagger_queue_thread.join() | ||||||
|  |         self.upload_all_files() | ||||||
|  |  | ||||||
|     def autotag_dir(self, dir): |     def autotag_dir(self, dir): | ||||||
|         """ |         """ | ||||||
| @@ -454,12 +461,8 @@ class Core: | |||||||
|         self.load_images() |         self.load_images() | ||||||
|         self.check_uploaded_files_thread.join() |         self.check_uploaded_files_thread.join() | ||||||
|         self.process_tagger_queue_thread.join() |         self.process_tagger_queue_thread.join() | ||||||
|         files_to_upload = [x for x in self.image_files if not self.uploaded[x]] |  | ||||||
|         if not files_to_upload: |  | ||||||
|             print(_("Brak obrazów do przetworzenia w katalogu:"), dir) |  | ||||||
|             return |  | ||||||
|  |  | ||||||
|         self.autotag_files(files_to_upload) |         self.upload_all_files() | ||||||
|  |  | ||||||
|     def upload_file( |     def upload_file( | ||||||
|         self, |         self, | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: Kapitanbooru Uploader 0.9.4\n" | "Project-Id-Version: Kapitanbooru Uploader 0.9.5\n" | ||||||
| "Report-Msgid-Bugs-To: kapitan@mlesniak.pl\n" | "Report-Msgid-Bugs-To: kapitan@mlesniak.pl\n" | ||||||
| "POT-Creation-Date: 2025-06-26 18:00+0200\n" | "POT-Creation-Date: 2025-06-26 18:09+0200\n" | ||||||
| "Content-Type: text/plain; charset=UTF-8\n" | "Content-Type: text/plain; charset=UTF-8\n" | ||||||
| "Content-Transfer-Encoding: 8bit\n" | "Content-Transfer-Encoding: 8bit\n" | ||||||
|  |  | ||||||
| @@ -47,52 +47,36 @@ msgstr "auth_token not found in the HTML page." | |||||||
| msgid "Błąd przy otwieraniu pliku" | msgid "Błąd przy otwieraniu pliku" | ||||||
| msgstr "Error opening file" | msgstr "Error opening file" | ||||||
|  |  | ||||||
| #: Core.py:237 | #: Core.py:239 | ||||||
| msgid "Tagger przetworzył:" | msgid "Tagger przetworzył:" | ||||||
| msgstr "Tagger processed:" | msgstr "Tagger processed:" | ||||||
|  |  | ||||||
| #: Core.py:240 | #: Core.py:242 | ||||||
| msgid "Błąd Taggera dla" | msgid "Błąd Taggera dla" | ||||||
| msgstr "Tagger error for" | msgstr "Tagger error for" | ||||||
|  |  | ||||||
| #: Core.py:295 | #: Core.py:297 | ||||||
| msgid "Error computing MD5:" | msgid "Error computing MD5:" | ||||||
| msgstr "Error computing MD5:" | msgstr "Error computing MD5:" | ||||||
|  |  | ||||||
| #: Core.py:420 | #: Core.py:422 | ||||||
| msgid "Błąd podczas sprawdzania paczki uploadu:" | msgid "Błąd podczas sprawdzania paczki uploadu:" | ||||||
| msgstr "Error while checking upload package:" | msgstr "Error while checking upload package:" | ||||||
|  |  | ||||||
| #: Core.py:429 | #: Core.py:458 | ||||||
| msgid "Plik nie istnieje:" |  | ||||||
| msgstr "File does not exist:" |  | ||||||
|  |  | ||||||
| #: Core.py:435 |  | ||||||
| msgid "Tagi dla pliku" |  | ||||||
| msgstr "Tags for file" |  | ||||||
|  |  | ||||||
| #: Core.py:444 |  | ||||||
| msgid "Błąd podczas autotagowania pliku" |  | ||||||
| msgstr "Error during file autotagowania" |  | ||||||
|  |  | ||||||
| #: Core.py:451 |  | ||||||
| msgid "Podana ścieżka nie jest katalogiem:" | msgid "Podana ścieżka nie jest katalogiem:" | ||||||
| msgstr "Given path is not a directory:" | msgstr "Given path is not a directory:" | ||||||
|  |  | ||||||
| #: Core.py:459 | #: Core.py:485 | ||||||
| msgid "Brak obrazów do przetworzenia w katalogu:" |  | ||||||
| msgstr "No images to process in directory:" |  | ||||||
|  |  | ||||||
| #: Core.py:482 |  | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "Wysyłam plik {base_file_name}..." | msgid "Wysyłam plik {base_file_name}..." | ||||||
| msgstr "Uploading file {base_file_name}..." | msgstr "Uploading file {base_file_name}..." | ||||||
|  |  | ||||||
| #: Core.py:517 | #: Core.py:520 | ||||||
| msgid "Wysyłanie zakończone powodzeniem!" | msgid "Wysyłanie zakończone powodzeniem!" | ||||||
| msgstr "Upload completed successfully!" | msgstr "Upload completed successfully!" | ||||||
|  |  | ||||||
| #: Core.py:521 Core.py:530 | #: Core.py:524 Core.py:533 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "" | msgid "" | ||||||
| "Wysyłanie zakończone błędem.\n" | "Wysyłanie zakończone błędem.\n" | ||||||
| @@ -103,52 +87,52 @@ msgstr "" | |||||||
| "Status: {status_code}\n" | "Status: {status_code}\n" | ||||||
| "Content: {text}" | "Content: {text}" | ||||||
|  |  | ||||||
| #: Core.py:539 Core.py:545 ImageBrowser.py:664 ImageBrowser.py:667 | #: Core.py:542 Core.py:548 ImageBrowser.py:664 ImageBrowser.py:667 | ||||||
| #: ImageBrowser.py:1187 ImageBrowser.py:1190 | #: ImageBrowser.py:1187 ImageBrowser.py:1190 | ||||||
| msgid "Wysyłanie" | msgid "Wysyłanie" | ||||||
| msgstr "Uploading" | msgstr "Uploading" | ||||||
|  |  | ||||||
| #: Core.py:557 | #: Core.py:560 | ||||||
| msgid "Błąd wysyłania pliku" | msgid "Błąd wysyłania pliku" | ||||||
| msgstr "Upload error" | msgstr "Upload error" | ||||||
|  |  | ||||||
| #: Core.py:587 | #: Core.py:590 | ||||||
| msgid "Anulowano operację!" | msgid "Anulowano operację!" | ||||||
| msgstr "Operation cancelled!" | msgstr "Operation cancelled!" | ||||||
|  |  | ||||||
| #: Core.py:597 | #: Core.py:600 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "" | msgid "" | ||||||
| "Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}" | "Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Uploading {file_path} with tags: {final_tags} and rating: {final_rating}" | "Uploading {file_path} with tags: {final_tags} and rating: {final_rating}" | ||||||
|  |  | ||||||
| #: Core.py:616 | #: Core.py:619 | ||||||
| msgid "Przesłano pliki!" | msgid "Przesłano pliki!" | ||||||
| msgstr "Files have been uploaded!" | msgstr "Files have been uploaded!" | ||||||
|  |  | ||||||
| #: Core.py:637 Core.py:641 | #: Core.py:640 Core.py:644 | ||||||
| msgid "Post nie został znaleziony dla tego pliku" | msgid "Post nie został znaleziony dla tego pliku" | ||||||
| msgstr "Post not found for this file" | msgstr "Post not found for this file" | ||||||
|  |  | ||||||
| #: Core.py:652 | #: Core.py:655 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "Aktualizuję tagi dla {base_file_name}..." | msgid "Aktualizuję tagi dla {base_file_name}..." | ||||||
| msgstr "Updating tags for {base_file_name}..." | msgstr "Updating tags for {base_file_name}..." | ||||||
|  |  | ||||||
| #: Core.py:662 Core.py:672 Core.py:697 | #: Core.py:665 Core.py:675 Core.py:700 | ||||||
| msgid "Operacja anulowana" | msgid "Operacja anulowana" | ||||||
| msgstr "Operation cancelled" | msgstr "Operation cancelled" | ||||||
|  |  | ||||||
| #: Core.py:707 | #: Core.py:710 | ||||||
| msgid "Tagi zostały zaktualizowane!" | msgid "Tagi zostały zaktualizowane!" | ||||||
| msgstr "Tags have been updated!" | msgstr "Tags have been updated!" | ||||||
|  |  | ||||||
| #: Core.py:712 ImageBrowser.py:729 | #: Core.py:715 ImageBrowser.py:729 | ||||||
| msgid "Sukces edycji" | msgid "Sukces edycji" | ||||||
| msgstr "Edit successful" | msgstr "Edit successful" | ||||||
|  |  | ||||||
| #: Core.py:719 | #: Core.py:722 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "" | msgid "" | ||||||
| "Błąd podczas aktualizacji tagów\n" | "Błąd podczas aktualizacji tagów\n" | ||||||
| @@ -157,15 +141,15 @@ msgstr "" | |||||||
| "Error updating tags\n" | "Error updating tags\n" | ||||||
| "Status: {code}" | "Status: {code}" | ||||||
|  |  | ||||||
| #: Core.py:723 | #: Core.py:726 | ||||||
| msgid "Treść:" | msgid "Treść:" | ||||||
| msgstr "Content:" | msgstr "Content:" | ||||||
|  |  | ||||||
| #: Core.py:727 ImageBrowser.py:726 | #: Core.py:730 ImageBrowser.py:726 | ||||||
| msgid "Błąd edycji" | msgid "Błąd edycji" | ||||||
| msgstr "Edit error" | msgstr "Edit error" | ||||||
|  |  | ||||||
| #: Core.py:733 | #: Core.py:736 | ||||||
| msgid "Krytyczny błąd edycji" | msgid "Krytyczny błąd edycji" | ||||||
| msgstr "Critical edit error" | msgstr "Critical edit error" | ||||||
|  |  | ||||||
| @@ -569,5 +553,17 @@ msgstr "Fetched implications for {count} tags..." | |||||||
| msgid "Regeneracja bazy zakończona." | msgid "Regeneracja bazy zakończona." | ||||||
| msgstr "Database regeneration complete." | msgstr "Database regeneration complete." | ||||||
|  |  | ||||||
|  | #~ msgid "Plik nie istnieje:" | ||||||
|  | #~ msgstr "File does not exist:" | ||||||
|  |  | ||||||
|  | #~ msgid "Tagi dla pliku" | ||||||
|  | #~ msgstr "Tags for file" | ||||||
|  |  | ||||||
|  | #~ msgid "Błąd podczas autotagowania pliku" | ||||||
|  | #~ msgstr "Error during file autotagowania" | ||||||
|  |  | ||||||
|  | #~ msgid "Brak obrazów do przetworzenia w katalogu:" | ||||||
|  | #~ msgstr "No images to process in directory:" | ||||||
|  |  | ||||||
| #~ msgid "Błąd przy obliczaniu MD5:" | #~ msgid "Błąd przy obliczaniu MD5:" | ||||||
| #~ msgstr "Error calculating MD5:" | #~ msgstr "Error calculating MD5:" | ||||||
| @@ -1,8 +1,8 @@ | |||||||
| msgid "" | msgid "" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Project-Id-Version: Kapitanbooru Uploader 0.9.4\n" | "Project-Id-Version: Kapitanbooru Uploader 0.9.5\n" | ||||||
| "Report-Msgid-Bugs-To: kapitan@mlesniak.pl\n" | "Report-Msgid-Bugs-To: kapitan@mlesniak.pl\n" | ||||||
| "POT-Creation-Date: 2025-06-26 18:00+0200\n" | "POT-Creation-Date: 2025-06-26 18:09+0200\n" | ||||||
| "Language: pl\n" | "Language: pl\n" | ||||||
| "Content-Type: text/plain; charset=UTF-8\n" | "Content-Type: text/plain; charset=UTF-8\n" | ||||||
| "Content-Transfer-Encoding: 8bit\n" | "Content-Transfer-Encoding: 8bit\n" | ||||||
| @@ -49,52 +49,36 @@ msgstr "Nie znaleziono auth_token w stronie HTML." | |||||||
| msgid "Błąd przy otwieraniu pliku" | msgid "Błąd przy otwieraniu pliku" | ||||||
| msgstr "Błąd przy otwieraniu pliku" | msgstr "Błąd przy otwieraniu pliku" | ||||||
|  |  | ||||||
| #: Core.py:237 | #: Core.py:239 | ||||||
| msgid "Tagger przetworzył:" | msgid "Tagger przetworzył:" | ||||||
| msgstr "Tagger przetworzył:" | msgstr "Tagger przetworzył:" | ||||||
|  |  | ||||||
| #: Core.py:240 | #: Core.py:242 | ||||||
| msgid "Błąd Taggera dla" | msgid "Błąd Taggera dla" | ||||||
| msgstr "Błąd Taggera dla" | msgstr "Błąd Taggera dla" | ||||||
|  |  | ||||||
| #: Core.py:295 | #: Core.py:297 | ||||||
| msgid "Error computing MD5:" | msgid "Error computing MD5:" | ||||||
| msgstr "Błąd przy obliczaniu MD5:" | msgstr "Błąd przy obliczaniu MD5:" | ||||||
|  |  | ||||||
| #: Core.py:420 | #: Core.py:422 | ||||||
| msgid "Błąd podczas sprawdzania paczki uploadu:" | msgid "Błąd podczas sprawdzania paczki uploadu:" | ||||||
| msgstr "Błąd podczas sprawdzania paczki uploadu:" | msgstr "Błąd podczas sprawdzania paczki uploadu:" | ||||||
|  |  | ||||||
| #: Core.py:429 | #: Core.py:458 | ||||||
| msgid "Plik nie istnieje:" |  | ||||||
| msgstr "" |  | ||||||
|  |  | ||||||
| #: Core.py:435 |  | ||||||
| msgid "Tagi dla pliku" |  | ||||||
| msgstr "" |  | ||||||
|  |  | ||||||
| #: Core.py:444 |  | ||||||
| msgid "Błąd podczas autotagowania pliku" |  | ||||||
| msgstr "Błąd podczas autotagowania pliku" |  | ||||||
|  |  | ||||||
| #: Core.py:451 |  | ||||||
| msgid "Podana ścieżka nie jest katalogiem:" | msgid "Podana ścieżka nie jest katalogiem:" | ||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: Core.py:459 | #: Core.py:485 | ||||||
| msgid "Brak obrazów do przetworzenia w katalogu:" |  | ||||||
| msgstr "" |  | ||||||
|  |  | ||||||
| #: Core.py:482 |  | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "Wysyłam plik {base_file_name}..." | msgid "Wysyłam plik {base_file_name}..." | ||||||
| msgstr "Wysyłam plik {base_file_name}..." | msgstr "Wysyłam plik {base_file_name}..." | ||||||
|  |  | ||||||
| #: Core.py:517 | #: Core.py:520 | ||||||
| msgid "Wysyłanie zakończone powodzeniem!" | msgid "Wysyłanie zakończone powodzeniem!" | ||||||
| msgstr "Wysyłanie zakończone powodzeniem!" | msgstr "Wysyłanie zakończone powodzeniem!" | ||||||
|  |  | ||||||
| #: Core.py:521 Core.py:530 | #: Core.py:524 Core.py:533 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "" | msgid "" | ||||||
| "Wysyłanie zakończone błędem.\n" | "Wysyłanie zakończone błędem.\n" | ||||||
| @@ -105,52 +89,52 @@ msgstr "" | |||||||
| "Status: {status_code}\n" | "Status: {status_code}\n" | ||||||
| "Treść: {text}" | "Treść: {text}" | ||||||
|  |  | ||||||
| #: Core.py:539 Core.py:545 ImageBrowser.py:664 ImageBrowser.py:667 | #: Core.py:542 Core.py:548 ImageBrowser.py:664 ImageBrowser.py:667 | ||||||
| #: ImageBrowser.py:1187 ImageBrowser.py:1190 | #: ImageBrowser.py:1187 ImageBrowser.py:1190 | ||||||
| msgid "Wysyłanie" | msgid "Wysyłanie" | ||||||
| msgstr "Wysyłanie" | msgstr "Wysyłanie" | ||||||
|  |  | ||||||
| #: Core.py:557 | #: Core.py:560 | ||||||
| msgid "Błąd wysyłania pliku" | msgid "Błąd wysyłania pliku" | ||||||
| msgstr "Błąd wysyłania pliku" | msgstr "Błąd wysyłania pliku" | ||||||
|  |  | ||||||
| #: Core.py:587 | #: Core.py:590 | ||||||
| msgid "Anulowano operację!" | msgid "Anulowano operację!" | ||||||
| msgstr "Operacja anulowana!" | msgstr "Operacja anulowana!" | ||||||
|  |  | ||||||
| #: Core.py:597 | #: Core.py:600 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "" | msgid "" | ||||||
| "Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}" | "Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}" | "Wysyłanie {file_path} z tagami: {final_tags} i ratingiem: {final_rating}" | ||||||
|  |  | ||||||
| #: Core.py:616 | #: Core.py:619 | ||||||
| msgid "Przesłano pliki!" | msgid "Przesłano pliki!" | ||||||
| msgstr "Pliki zostały przesłane!" | msgstr "Pliki zostały przesłane!" | ||||||
|  |  | ||||||
| #: Core.py:637 Core.py:641 | #: Core.py:640 Core.py:644 | ||||||
| msgid "Post nie został znaleziony dla tego pliku" | msgid "Post nie został znaleziony dla tego pliku" | ||||||
| msgstr "Post nie został znaleziony dla tego pliku" | msgstr "Post nie został znaleziony dla tego pliku" | ||||||
|  |  | ||||||
| #: Core.py:652 | #: Core.py:655 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "Aktualizuję tagi dla {base_file_name}..." | msgid "Aktualizuję tagi dla {base_file_name}..." | ||||||
| msgstr "Aktualizuję tagi dla {base_file_name}..." | msgstr "Aktualizuję tagi dla {base_file_name}..." | ||||||
|  |  | ||||||
| #: Core.py:662 Core.py:672 Core.py:697 | #: Core.py:665 Core.py:675 Core.py:700 | ||||||
| msgid "Operacja anulowana" | msgid "Operacja anulowana" | ||||||
| msgstr "Operacja anulowana" | msgstr "Operacja anulowana" | ||||||
|  |  | ||||||
| #: Core.py:707 | #: Core.py:710 | ||||||
| msgid "Tagi zostały zaktualizowane!" | msgid "Tagi zostały zaktualizowane!" | ||||||
| msgstr "Tagi zostały zaktualizowane!" | msgstr "Tagi zostały zaktualizowane!" | ||||||
|  |  | ||||||
| #: Core.py:712 ImageBrowser.py:729 | #: Core.py:715 ImageBrowser.py:729 | ||||||
| msgid "Sukces edycji" | msgid "Sukces edycji" | ||||||
| msgstr "Sukces edycji" | msgstr "Sukces edycji" | ||||||
|  |  | ||||||
| #: Core.py:719 | #: Core.py:722 | ||||||
| #, python-brace-format | #, python-brace-format | ||||||
| msgid "" | msgid "" | ||||||
| "Błąd podczas aktualizacji tagów\n" | "Błąd podczas aktualizacji tagów\n" | ||||||
| @@ -159,15 +143,15 @@ msgstr "" | |||||||
| "Błąd podczas aktualizacji tagów\n" | "Błąd podczas aktualizacji tagów\n" | ||||||
| "Status: {code}" | "Status: {code}" | ||||||
|  |  | ||||||
| #: Core.py:723 | #: Core.py:726 | ||||||
| msgid "Treść:" | msgid "Treść:" | ||||||
| msgstr "Treść:" | msgstr "Treść:" | ||||||
|  |  | ||||||
| #: Core.py:727 ImageBrowser.py:726 | #: Core.py:730 ImageBrowser.py:726 | ||||||
| msgid "Błąd edycji" | msgid "Błąd edycji" | ||||||
| msgstr "Błąd edycji" | msgstr "Błąd edycji" | ||||||
|  |  | ||||||
| #: Core.py:733 | #: Core.py:736 | ||||||
| msgid "Krytyczny błąd edycji" | msgid "Krytyczny błąd edycji" | ||||||
| msgstr "Krytyczny błąd edycji" | msgstr "Krytyczny błąd edycji" | ||||||
|  |  | ||||||
| @@ -571,5 +555,8 @@ msgstr "Pobrano implikacje dla {count} tagów..." | |||||||
| msgid "Regeneracja bazy zakończona." | msgid "Regeneracja bazy zakończona." | ||||||
| msgstr "Regeneracja bazy zakończona." | msgstr "Regeneracja bazy zakończona." | ||||||
|  |  | ||||||
|  | #~ msgid "Błąd podczas autotagowania pliku" | ||||||
|  | #~ msgstr "Błąd podczas autotagowania pliku" | ||||||
|  |  | ||||||
| #~ msgid "Błąd przy obliczaniu MD5:" | #~ msgid "Błąd przy obliczaniu MD5:" | ||||||
| #~ msgstr "Błąd przy obliczaniu MD5:" | #~ msgstr "Błąd przy obliczaniu MD5:" | ||||||
| @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" | |||||||
|  |  | ||||||
| [project] | [project] | ||||||
| name = "kapitanbooru-uploader" | name = "kapitanbooru-uploader" | ||||||
| version = "0.9.4" | version = "0.9.5" | ||||||
| description = "A GUI application for uploading images to KapitanBooru" | description = "A GUI application for uploading images to KapitanBooru" | ||||||
| authors = [{ name = "Michał Leśniak", email = "kapitan@mlesniak.pl" }] | authors = [{ name = "Michał Leśniak", email = "kapitan@mlesniak.pl" }] | ||||||
| dependencies = [ | dependencies = [ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user