diff --git a/downloader_utils.py b/downloader_utils.py index f5fe8ca..10bbfb4 100644 --- a/downloader_utils.py +++ b/downloader_utils.py @@ -1347,6 +1347,7 @@ class PostProcessorWorker: unique_links_data = {} for match in link_pattern.finditer(post_content_html): link_url = match.group(1).strip() + link_url = html.unescape(link_url) # Decode HTML entities in the URL link_inner_text = match.group(2) if not any(ext in link_url.lower() for ext in ['.css', '.js', '.ico', '.xml', '.svg']) \ diff --git a/main.py b/main.py index b9ec5c8..1e35a71 100644 --- a/main.py +++ b/main.py @@ -236,10 +236,11 @@ class TourDialog(QDialog): # --- Define Tour Steps with Updated Content --- step1_content = ( - "Hello! This quick tour will walk you through the main features of the Kemono Downloader, including recent updates." + "Hello! This quick tour will walk you through the main features of the Kemono Downloader, including recent updates like enhanced filtering, manga mode improvements, and cookie management." "" @@ -256,7 +257,7 @@ class TourDialog(QDialog): " Click 'Browse...' to choose a folder on your computer where all downloaded files will be saved. " "This is required unless you are using 'Only Links' mode.
" "
  • πŸ“„ Page Range (Creator URLs only):
    " - " If downloading from a creator's page, you can specify a range of pages (e.g., pages 2 to 5). " + " If downloading from a creator's page, you can specify a range of pages to fetch (e.g., pages 2 to 5). " "Leave blank for all pages. This is disabled for single post URLs or when Manga/Comic Mode is active.
  • " "" ) @@ -268,11 +269,11 @@ class TourDialog(QDialog): "
  • 🎯 Filter by Character(s):
    " " Enter character names, comma-separated (e.g., Tifa, Aerith). Group aliases for a combined folder name: (alias1, alias2) becomes folder 'alias1 alias2'.
    " " The 'Filter: [Scope]' button next to this input controls how this filter is applied:" - " " - " This filter also influences folder naming if 'Separate Folders' is enabled.

  • " + " " + " This filter also influences folder naming if 'Separate Folders by Name/Title' is enabled.
    " "
  • 🚫 Skip with Words:
    " " Enter words, comma-separated (e.g., WIP, sketch, preview). " " The 'Scope: [Type]' button (next to this input) cycles how this filter applies:" @@ -295,14 +296,18 @@ class TourDialog(QDialog): "More options to customize your downloads:" "" ) self.step4 = TourStepWidget("β‘’ Fine-Tuning Downloads", step4_content) @@ -312,25 +317,36 @@ class TourDialog(QDialog): "" "
    You're all set! Click 'Finish' to close the tour and start using the downloader." ) @@ -358,7 +375,7 @@ class TourDialog(QDialog): bottom_controls_layout = QVBoxLayout() bottom_controls_layout.setContentsMargins(15, 10, 15, 15) # Adjusted margins - bottom_controls_layout.setSpacing(10) + bottom_controls_layout.setSpacing(12) # Slightly more spacing self.never_show_again_checkbox = QCheckBox("Never show this tour again") bottom_controls_layout.addWidget(self.never_show_again_checkbox, 0, Qt.AlignLeft)