Releases: FurryCoders/FAAPI
Releases · FurryCoders/FAAPI
v3.10.1
🔧 Fixes
- Fix parsed URLs not being properly encoded if they contained non-allowed URL characters
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.10.1
- Full changelog: v3.10.0...v3.10.1
v3.10.0
🚀 New Features
- Fur Affinity UI update
- Support the new UI introduced on November 26, 2022
- Note: the new UI does not show comment parents yet, but the parent comment link is stil present in the HTML and just commented out, so the parser uses regex to extract the parent ID; this could cause unforeseen issues so be careful when parsing comments
- User banners
- Parse new user banners (when set)
- New
User.banner_urlvariable holds the banner URL
⚙️ Changes
- Rename
User.user_icon_urlandUserPartial.user_icon_urltoUser.avatar_urlandUserPartial.avatar_url
📦 Dependencies
- Use flake ^6.0.0 for testing
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.10.0
- Full changelog: v3.9.6...v3.10.0
v3.9.6
⚙️ Changes
- Remove implicit
Optionaltypes to comply with PEP 484
🔧 Fixes
- Fix selectors for date tags in journals and submissions which sometimes caused the incorrect date to be selected
📦 Dependencies
- Use mypy ^0.991
- Complies with PEP 484
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.9.6
- Full changelog: v3.9.5...v3.9.6
v3.9.5
⚙️ Changes
- Improve parsing of usernames and statuses
- Thanks to PR #7 by @Xraydylan
🔧 Fixes
- Fix parsing of user tags for folders when the user had no title set, or used bars (
|) in their title
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.9.5
- Full changelog: v3.9.4...v3.9.5
v3.9.4
🔧 Fixes
- Fix admins' username and status not being parsed correctly in watchlists and users tags
- Fix issue #6
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.9.4
- Full changelog: v3.9.3...v3.9.4
v3.9.3
⚙️ Changes
- Users with non-alphanumeric characters in their name are now escaped in URLs
- From suggestion in issue #5
🔧 Fixes
- Fix admins' username and status not being parsed correctly
- Fix issue #6
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.9.3
- Full changelog: v3.9.2...v3.9.3
v3.9.2
🔧 Fixes
- Fix ` being removed from usernames
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.9.2
- Full changelog: v3.9.1...v3.9.2
v3.9.1
🔧 Fixes
- Fix incorrect user icon URLs when converting BBCode to HTML
📦 Dependencies
- Use pytest ^7.2.0
- Fix CVE-2022-42969 issue
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.9.1
- Full changelog: v3.9.0...v3.9.1
v3.9.0
🚀 New Features
- Submission footers
- Submission footers are now separated from the submission description and stored in the
Submission.footerfield - The BBCode of the footer can be accessed with the
Submission.footer_bbcodeproperty
- Submission footers are now separated from the submission description and stored in the
- Generate user icon URLs
- New
generate_user_icon_url()method added toUserPartialandUserto create the URL for the current user icon
- New
- BBCode to HTML conversion
- Work-in-progress version of a BBCode converter based on the bbcode library
- Converter function is located in the
parsesubmodule:faapi.parse.bbcode_to_html() - The majority of HTML fields (submission descriptions, journal contents, comments, etc.) can be converted back and forth between HTML and BBCode without loosing information
- If a submission contains incorrect or very unusual BBCode tags or text, the BBCode to HTML conversion may create artifacts and tags that did not exist in the original content
⚙️ Changes
- Added
Journal.header_bbcodeandJournal.footer_bbcodeproperties to convertJournal.headerandJournal.footerto BBCode - Return
Noneinstead of 0 (or""for favorites) when reaching the last page withFAAPI.gallery(),FAAPI.scraps(),FAAPI.journals(),FAAPI.favorites(),FAAPI.watchlist_by(), andFAAPI.watchlist_to() - Added
__hash__method toUser,UserPartial,Submission,SubmissionPartial,Journal,JournalPartial, andComment; the hash value is calculated using the same fields used for equality comparisons - Improved cleanup of HTML fields by using htmlmin
- Fur Affinity URLs are now properly converted to relative
[url=<path>]tags in BBCode - Unknown tags are converted to
[tag=<name>.<classes>]in BBCode - Added
CookieDict(TypedDict)notation for cookies dictionary (alternative toCookieJar) to provide intellisense and type checking information
🔧 Fixes
- Fix comments being considered equal even if they had different parents but the same ID
- Fix break lines tags (
<br/>) not always being converted to newlines when converting to BBCode - Fix errors when converting nav links (e.g.
[2,1,3]) to BBCode - Fix incorrect detection of last page in
FAAPI.watchlist_by()andFAAPI.watchlist_by() - Fix errors when converting special characters (e.g.
&) - Fix trailing spaces around newlines remaining after converting to BBCode
- Fix horizontal lines not being correctly converted from BBCode if the dashes (
-----or longer) were not surrounded by newlines
📦 Dependencies
- Added htmlmin ^0.1.12
- Added bbcode ^1.1.0
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.9.0
- Full changelog: v3.8.1...v3.9.0
v3.8.1
⚙️ Changes
- Improved HTML extraction for specific tags to avoid encoding issues
- HTML fields are cleaned up (i.e., removed newlines, carriage returns, and extra spaces)
- None of the parsed pages use tags with pre white space rendering, so no information is lost
- Improvements to BBCode conversion
- Do not quote URLs when converting to BBCode
- Support nested quote blocks
- Support non-specific tags (e.g.
div.submission-footer) and convert them to[tag.<tag name>.<tag class>][/tag.<tag.name>]
🔧 Fixes
- Fix incorrect encoding of special characters (
<,>, etc.) in HTML fields- Was caused by the previous method of extracting the inner HTML of a tag
- Fix URLs automatically shortened by Fur Affinity being converted to BBCode with the wrong text content
- Fix HTML paragraph tags (
<p>) sometimes appearing in BBCode-converted content - Fix BBCode conversion of
:usernameicon:links (i.e., user icon links without the username)
🔗 Links
- PyPi release: https://pypi.org/project/FAAPI/3.8.1
- Full changelog: v3.8.0...v3.8.1