[kemonoparty] Support /posts endpoint and Creator Tag Calls
- Adding support for calling a creator with a tag selected.
It is using a legacy endpoint but there is no other way currently
documented to get the users post filtered by a tag.
- Fixing the User Tags feature to be paginated
offset is not defined in the API but it is supported.
- Fixed the `/posts` endpoint not working:
1. Added check along with metadata to make sure there is a
creator/service information as that is a requirement
2. Fixed the parameter from tags -> tag.
3. Fixed the _paginate call to exit correctly when there is
a key required for the data (it was prematurely exiting)
- Adding a type of caching mechanism for the metadata/user information.
The current logic would work just fine if looking up for a
singular user, however for the multiple posts via normal
filtering would cause it to either:
This builds a local cache during the process so it should
only make a call for the user info once during the process.
- Updating to meet standards
Fixes
1. Reset formatting for unnecessary line changes
2. Removed Type Hinting
3.Replaced f-string with "".format
Updates
Renamed function creator_posts_tags -> creator_tagged_posts
for clarity of what it does (get posts tags vs get tagged posts)
- Fixing check for the length of response:
1. If it is list - just check len
2. If there is a key - check that the key length is less
than the batch.
- add test for '?tag=...' user URLs
plus some code simplifications
This commit is contained in:
@@ -39,6 +39,21 @@ __tests__ = (
|
||||
"id": "8779",
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://kemono.su/patreon/user/3161935?tag=pin-up",
|
||||
"#comment" : "'tag' query parameter",
|
||||
"#category": ("", "kemonoparty", "patreon"),
|
||||
"#class" : kemonoparty.KemonopartyUserExtractor,
|
||||
"#urls" : (
|
||||
"https://kemono.su/data/03/e6/03e62592c3b616b8906c1aaa130bd9ceaa24d7f601b31f90cc11956a57ca1d82.png",
|
||||
"https://kemono.su/data/6a/9b/6a9b6d93dcb86c24a48def1bb93ce2a9ad77393941f3469d87d39400433cf825.png",
|
||||
"https://kemono.su/data/2a/b8/2ab8ba30644249e9516afaea05d61c0de14591cb9d232a2dc249650eb1a9a759.jpg",
|
||||
"https://kemono.su/data/b0/38/b03882c8b0ab3b1cf9fc658a2bb2f9ac6ad4f3449015311dcd2d7ee7f748db31.png",
|
||||
),
|
||||
|
||||
"tags": r"\bpin-up\b",
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://kemono.su/subscribestar/user/alcorart",
|
||||
"#category": ("", "kemonoparty", "subscribestar"),
|
||||
@@ -379,7 +394,7 @@ __tests__ = (
|
||||
"#category": ("", "kemonoparty", "discord-server"),
|
||||
"#class" : kemonoparty.KemonopartyDiscordServerExtractor,
|
||||
"#pattern" : kemonoparty.KemonopartyDiscordExtractor.pattern,
|
||||
"#count" : 15,
|
||||
"#count" : 26,
|
||||
},
|
||||
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user