crouvpony47 / furdown

A mass download tool for FurAffinity written in C#
MIT License
75 stars 7 forks source link

Issue: Favourites Beyond the First Page Fail to Download #39

Closed humanius1994 closed 2 months ago

humanius1994 commented 2 months ago

Every so often I archive my favourites, but this time I ran into the issue that it won't check for favourites beyond the first page. Instead it states that the last page is reached.

Getting page: https://www.furaffinity.net/favorites/[username here]/ Last page reached.

This must have broken somewhere in the past month

Steps to reproduce

  1. Under the tab "Settings" enable the option "Don't download files downloaded before".
  2. Press the "Save and Apply" button
  3. Under the tab "Tasks", under the section "Download gallery, scraps, favourites or a folder", select the following link:
    • https://www.furaffinity.net/favorites/[username here]
  4. Enable "also save .htm descriptions"
  5. Disable "updates check mode"
  6. Press the "Go!" button

Expected behaviour

The tool scans all the favourites of the selected user, and downloads all images that have not been downloaded before.

Observed behaviour

The tool only finds the first page of the user's favourites. It fails to find the next page.

Getting page: https://www.furaffinity.net/favorites/[username here]/ Last page reached.

It then proceeds to download the posts listed on that page, but not the posts listed on subsequent pages

Further Research

It would appear that the way the "Next" button works has been updated

In the source code there is the following regex statement to look for the "Next" button: @"href=""/favorites/.+?/(.+?)/next"">Next<"

However the button on the website looks as follows: <form action="/favorites/[username here]/1682921989/next" method="get"> <button class="button standard" type="submit">Next</button> </form>

crouvpony47 commented 2 months ago

Indeed, that was an easy fix. This release includes the necessary changes.

Closing this as resolved, but feel free to reopen in case I've missed something.