Skip to content

Releases: FurryCoders/FAAPI

v3.7.2

04 Jun 20:59
v3.7.2
e19c126

Choose a tag to compare

🚀 New Features

  • Requests timeout
    • New FAAPI.timeout: int | None variable to set request timeout in seconds
    • Timeout is used for both page requests (e.g. submissions) and file requests

🔧 Fixes

  • Fix possible parsing error arising from multiple attributes in one tag

🔗 Links

v3.7.1

24 May 20:37
v3.7.1
a801247

Choose a tag to compare

🚀 New Features

  • Frontpage
    • New FAAPI.frontpage() method to get submissions from Fur Affinity's front page
  • Sorting of Journal, Submission, and User objects
    • All data objects now support greater than, greater or equal, lower than, and lower or equal operations for easy sorting

🔧 Fixes

  • Fix equality comparison between Journal and JournalPartial
  • Fix parsing of usernames from user pages returning the title instead
    • Caused by a change in Fur Affinity's DOM

🔗 Links

v3.7.0

30 Apr 09:56
v3.7.0
147a65e

Choose a tag to compare

🚀 New Features

  • Journal headers and footers
    • The Journal class now contains header and footer fields which are parsed from journal pages (FAAPI.journal)
  • Submission favorite status and link
    • The Submission class now contains a boolean favorite field that is set to True if the submission is a favorite, and a favorite_toggle_link containing the link to toggle the favorite status (/fav/ or /unfav/)
  • User watch and block statuses and links
    • The User class now contains boolean watched and blocked fields that are set to True if the user is watched or blocked respectively, and watched_toggle_link and blocked_toggle_link fields containing the links to toggle the watched (/watch/ or /unwatch/) and blocked (/block/ or /unblock/) statuses respectively.

⚙️ Changes

  • Remove parse.check_page function which had no usage in the library anymore
  • Remove parse.parse_search_submissions function and FAAPI.search method
    • They will be reintroduced once Fur Affinity allows scraping search pages again

🔧 Fixes

  • Fix an incorrect regular expression that parsed mentions in journals, submissions, and profiles which could cause non-Fur Affinity links to be matched as valid
    • Security issue #3

🔗 Links

v3.6.1

05 Apr 20:18
v3.6.1
195b880

Choose a tag to compare

🔧 Fixes

  • Fix FAAPI.journals not detecting the next page correctly
    • Caused by a change in Fur Affinity's journals page

🔗 Links

v3.6.0

02 Apr 13:14
v3.6.0
679ba6f

Choose a tag to compare

🚀 New Features

  • Comments! 💬

    • A new Comment object is now used to store comments for submissions and journals
    • The comments are organised in a tree structure, and each one contains references to both its parent object (Submission or Journal) and, if the comment is a reply, to its parent comment too
    • The auxiliary functions faapi.comment.flatten_comments and faapi.comment.sort_comments allow to flatten the comment tree or reorganise it
  • Separate JournalPartial and Journal objects

    • The new JournalPartial class takes the place of the previous Journal class, and it is now used only to parse journal from a user's journals folder
    • The new Journal class contains the same fields as JournalPartial with the addition of comments, and it is only used to parse journal pages
  • Comparisons

    • All objects can now be used with the comparison (==) operator with other objects of the same type or the type of their key property (id: int for submissions and journals, and name_url: str for users)

⚙️ Changes

  • The cookies argument of FAAPI is now mandatory, and an Unauthorized exception is raised if FAAPI is initialised with an empty cookies list
  • The list of Submission/Journal objects returned by FAAPI.gallery, FAAPI.scraps, and FAAPI.journals now uses a shared UserPartial object in the author variable (i.e. changing a property of the author in one object of the list will change it for the others as well)

🔧 Fixes

  • Fix path checking against robots.txt not working correctly with paths missing a leading forward slash

🔗 Links

v3.5.0

26 Mar 21:50
v3.5.0
b820719

Choose a tag to compare

🚀 New Features

  • New Submission.stats field for submission statistics stored in a named tuple (views, comments (count) , favorites)
  • New Journal.stats field for journal statistics stored in a named tuple (comments (count))

⚙️ Changes

  • Rename UserStats.favs to UserStats.favorites

🔧 Fixes

  • Fix links in PyPi metadata pointing to previous hosting at GitLab

🔗 Links

v3.4.3

03 Mar 09:36
v3.4.3
529b59b

Choose a tag to compare

⚙️ Changes

  • Better and more resilient robots.txt parsing

🔧 Fixes

  • Fix spaces around slash (/) not being preserved for submission categories

🔗 Links

v3.4.2

11 Feb 14:06
v3.4.2
ae9e239

Choose a tag to compare

⚙️ Changes

  • Raise DisabledAccount for users pending deletion
  • Error messages from server are not lowercased

🔗 Links

v3.4.1

28 Jan 13:02
v3.4.1
75b42e8

Choose a tag to compare

🔧 Fixes

  • Fix rare occurrence of error message not being parsed if inside a section.notice-message

🔗 Links

v3.4.0 (was 3.3.8)

27 Jan 17:42
v3.4.0
f67b8e7

Choose a tag to compare

🚀 New Features

  • New NotFound exception inheriting from ParsingError

⚙️ Changes

  • Removed FAAPI.submission_exists, FAAPI.journal_exists, and FAAPI.user_exists methods
  • Improved reliability of error pages' parser

🔧 Fixes

  • Custom exceptions inherit from Exception instead of BaseException

🔗 Links