WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit e5c7062

Browse files
authored
feat: Add novel_recommended() for #248 (#249)
1 parent 304e65e commit e5c7062

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,9 @@ class AppPixivAPI(BasePixivAPI):
192192
# content_type: [illust, manga]
193193
def illust_recommended(content_type="illust"):
194194

195+
# 小说推荐
196+
def novel_recommended():
197+
195198
# 作品排行
196199
# mode: [day, week, month, day_male, day_female, week_original, week_rookie, day_manga]
197200
# date: '2016-08-01'

demo.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,24 @@ def appapi_bookmark_add(aapi):
233233

234234

235235
def appapi_novel(aapi):
236+
json_result = aapi.novel_recommended()
237+
print(json_result)
238+
novel = json_result.novels[0]
239+
print(
240+
">>> %s, text_length: %s, series: %s"
241+
% (novel.title, novel.text_length, novel.series)
242+
)
243+
244+
# get next page
245+
next_qs = aapi.parse_qs(json_result.next_url)
246+
if next_qs is not None:
247+
json_result = aapi.novel_recommended(**next_qs)
248+
novel = json_result.novels[0]
249+
print(
250+
">>> %s, text_length: %s, series: %s"
251+
% (novel.title, novel.text_length, novel.series)
252+
)
253+
236254
json_result = aapi.user_novels(59216290)
237255
print(json_result)
238256
novel = json_result.novels[0]

pixivpy3/aapi.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,42 @@ def illust_recommended(
330330
r = self.no_auth_requests_call("GET", url, params=params, req_auth=req_auth)
331331
return self.parse_result(r)
332332

333+
# 小说推荐
334+
def novel_recommended(
335+
self,
336+
include_ranking_label: bool | str = True,
337+
filter: _FILTER = "for_ios",
338+
offset: int | str | None = None,
339+
include_ranking_novels: str | bool | None = None,
340+
already_recommended: str | list[str] | None = None,
341+
max_bookmark_id_for_recommend: int | str | None = None,
342+
include_privacy_policy: str | list[int | str] | None = None,
343+
req_auth: bool = True,
344+
) -> ParsedJson:
345+
url = "%s/v1/novel/recommended" % self.hosts
346+
params: dict[str, Any] = {
347+
"include_ranking_label": self.format_bool(include_ranking_label),
348+
"filter": filter,
349+
}
350+
if offset:
351+
params["offset"] = offset
352+
if include_ranking_novels:
353+
params["include_ranking_novels"] = self.format_bool(include_ranking_novels)
354+
if max_bookmark_id_for_recommend:
355+
params["max_bookmark_id_for_recommend"] = max_bookmark_id_for_recommend
356+
if already_recommended:
357+
if isinstance(already_recommended, str):
358+
params["already_recommended"] = already_recommended
359+
elif isinstance(already_recommended, list):
360+
params["already_recommended"] = ",".join(
361+
str(iid) for iid in already_recommended
362+
)
363+
if include_privacy_policy:
364+
params["include_privacy_policy"] = include_privacy_policy
365+
366+
r = self.no_auth_requests_call("GET", url, params=params, req_auth=req_auth)
367+
return self.parse_result(r)
368+
333369
# 作品排行
334370
# mode: [day, week, month, day_male, day_female, week_original, week_rookie, day_manga]
335371
# date: '2016-08-01'

0 commit comments

Comments
 (0)