Releases: FurryCoders/FAAPI
Releases · FurryCoders/FAAPI
v3.7.2
🚀 New Features
- Requests timeout
- New
FAAPI.timeout: int | Nonevariable to set request timeout in seconds - Timeout is used for both page requests (e.g. submissions) and file requests
- New
🔧 Fixes
- Fix possible parsing error arising from multiple attributes in one tag
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.7.2
- Full changelog: v3.7.1...v3.7.2
v3.7.1
🚀 New Features
- Frontpage
- New
FAAPI.frontpage()method to get submissions from Fur Affinity's front page
- New
- Sorting of
Journal,Submission, andUserobjects- 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
JournalandJournalPartial - Fix parsing of usernames from user pages returning the title instead
- Caused by a change in Fur Affinity's DOM
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.7.1
- Full changelog: v3.7.0...v3.7.1
v3.7.0
🚀 New Features
- Journal headers and footers
- The
Journalclass now contains header and footer fields which are parsed from journal pages (FAAPI.journal)
- The
- Submission favorite status and link
- The
Submissionclass now contains a booleanfavoritefield that is set toTrueif the submission is a favorite, and afavorite_toggle_linkcontaining the link to toggle the favorite status (/fav/or/unfav/)
- The
- User watch and block statuses and links
- The
Userclass now contains booleanwatchedandblockedfields that are set toTrueif the user is watched or blocked respectively, andwatched_toggle_linkandblocked_toggle_linkfields containing the links to toggle the watched (/watch/or/unwatch/) and blocked (/block/or/unblock/) statuses respectively.
- The
⚙️ Changes
- Remove
parse.check_pagefunction which had no usage in the library anymore - Remove
parse.parse_search_submissionsfunction andFAAPI.searchmethod- 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
- PyPi release: https://pypi.org/project/FAAPI/3.7.0
- Full changelog: v3.6.1...v3.7.0
v3.6.1
🔧 Fixes
- Fix
FAAPI.journalsnot detecting the next page correctly- Caused by a change in Fur Affinity's journals page
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.6.1
- Full changelog: v3.6.0...v3.6.1
v3.6.0
🚀 New Features
-
Comments! 💬
- A new
Commentobject 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 (
SubmissionorJournal) and, if the comment is a reply, to its parent comment too - The auxiliary functions
faapi.comment.flatten_commentsandfaapi.comment.sort_commentsallow to flatten the comment tree or reorganise it
- A new
-
Separate
JournalPartialandJournalobjects- The new
JournalPartialclass takes the place of the previousJournalclass, and it is now used only to parse journal from a user's journals folder - The new
Journalclass contains the same fields asJournalPartialwith the addition of comments, and it is only used to parse journal pages
- The new
-
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: intfor submissions and journals, andname_url: strfor users)
- All objects can now be used with the comparison (==) operator with other objects of the same type or the type of their key property (
⚙️ Changes
- The
cookiesargument ofFAAPIis now mandatory, and anUnauthorizedexception is raised ifFAAPIis initialised with an empty cookies list - The list of
Submission/Journalobjects returned byFAAPI.gallery,FAAPI.scraps, andFAAPI.journalsnow uses a sharedUserPartialobject in theauthorvariable (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
- PyPi release: https://pypi.org/project/FAAPI/3.6.0
- Full changelog: v3.5.0...v3.6.0
v3.5.0
🚀 New Features
- New
Submission.statsfield for submission statistics stored in a named tuple (views,comments(count) ,favorites)- Pull request #2, thanks to @warpKaiba!
- New
Journal.statsfield for journal statistics stored in a named tuple (comments(count))
⚙️ Changes
- Rename
UserStats.favstoUserStats.favorites
🔧 Fixes
- Fix links in PyPi metadata pointing to previous hosting at GitLab
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.5.0
- Full changelog: v3.4.3...v3.5.0
v3.4.3
⚙️ Changes
- Better and more resilient robots.txt parsing
🔧 Fixes
- Fix spaces around slash (/) not being preserved for submission categories
🔗 Links
- PyPi release: https://pypi.org/project/faapi/v3.4.3
- Full changelog: v3.4.2...v3.4.3
v3.4.2
⚙️ Changes
- Raise
DisabledAccountfor users pending deletion - Error messages from server are not lowercased
🔗 Links
- PyPi release: https://pypi.org/project/faapi/v3.4.2
- Full changelog: v3.4.1...v3.4.2
v3.4.1
🔧 Fixes
- Fix rare occurrence of error message not being parsed if inside a
section.notice-message
🔗 Links
- PyPi release: https://pypi.org/project/faapi/v3.4.1
- Full changelog: v3.4.0...v3.4.1
v3.4.0 (was 3.3.8)
🚀 New Features
- New
NotFoundexception inheriting fromParsingError
⚙️ Changes
- Removed
FAAPI.submission_exists,FAAPI.journal_exists, andFAAPI.user_existsmethods - Improved reliability of error pages' parser
🔧 Fixes
- Custom exceptions inherit from
Exceptioninstead ofBaseException
🔗 Links
- PyPi release: https://pypi.org/project/faapi/v3.4.0
- Full changelog: v3.3.8...v3.4.0