-
Notifications
You must be signed in to change notification settings - Fork 148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to download all related illustrations with illust_related() #247
Comments
Currentry, It seems problematic behavior, isn't it? Line 129 in 304e65e
Maybe need to fix. |
for key, value in up.parse_qs(query).items():
# merge seed_illust_ids[] liked PHP params to array
if "[" in key and key.endswith("]"):
# keep the origin sequence, just ignore array length
key_, *_ = key.split("[")
if key_ not in result_qs:
result_qs[key_] = value
elif isinstance(result_qs[key_], list):
result_qs[key_].extend(value)
else:
# error
else:
result_qs[key] = value[-1] |
Thank you for your prompt reply. I replaced the relevant part of
|
Since it does not appear to be intended to be paging in the related works displayed on the browser's works page, perhaps it is a specification that duplicates are returned in the request by @upbit How about this? |
def illust_related(
self,
illust_id: int | str,
filter: _FILTER = "for_ios",
seed_illust_ids: int | str | list[str] | None = None,
offset: int | str | None = None,
viewed: list[str] | None = None,
req_auth: bool = True,
) -> ParsedJson:
url = "%s/v2/illust/related" % self.hosts
params: dict[str, Any] = {
"illust_id": illust_id,
"filter": filter,
"offset": offset,
}
if isinstance(seed_illust_ids, str):
params["seed_illust_ids[]"] = [seed_illust_ids]
elif isinstance(seed_illust_ids, list):
params["seed_illust_ids[]"] = seed_illust_ids
r = self.no_auth_requests_call("GET", url, params=params, req_auth=req_auth)
return self.parse_result(r) Sorry, it seems like a bug. elif isinstance(seed_illust_ids, list):
params["seed_illust_ids[]"] = seed_illust_ids
+ if isinstance(viewed, list):
+ params["viewed[]"] = viewed
r = self.no_auth_requests_call("GET", url, params=params, req_auth=req_auth) |
Thank you for your reply. I have applied your correction and was able to download a large number of related illustrations. However, there still seem to be a lot of duplicates in the The bar graph below shows the number of related illustrations at each step of the If all duplicate illustrations are removed from here, the bar graph is as follows. I have found that I can download a sufficient number of illustrations if I set the number of repetitions to about Thank you very much for your time. |
I'm not sure if the client side has merged the In addition, |
The first source code is reproduced below. from pixivpy3 import *
import urllib.parse as up
REFRESH_TOKEN = 'xxxxx'
aapi = AppPixivAPI()
aapi.auth(refresh_token=REFRESH_TOKEN)
# https://www.pixiv.net/artworks/98699730
res = aapi.illust_related('98699730')
print(up.unquote(res.next_url))
next_qs = aapi.parse_qs(res.next_url)
print(next_qs)
res = aapi.illust_related(**next_qs)
print(up.unquote(res.next_url)) I repeated getting the The number of iterations is determined by looking at the bar chart above only, so the |
Updated methods `illust_related()`, `illust_recommended()` in `AppPixivAPI` class. Both of them have had `viewed` parameter in their signatures but the parameter was unused.
Updated methods `illust_related()`, `illust_recommended()` in `AppPixivAPI` class. Both of them have had `viewed` parameter in their signatures but the parameter was unused.
Updated methods `illust_related()`, `illust_recommended()` in `AppPixivAPI` class. Both of them have had `viewed` parameter in their signatures but the parameter was unused.
I would like to use illust_related() to download illustrations related to a certain illustration. However, when I execute the following code, the next_url retrieved the first time and the next_url retrieved the second time are almost the same, and I can only download a small portion of the related illustrations. How can I download all the related illustrations?
The results are as follows.
If I extract the values of viewed[num] in next_url (and sort them), most of the illust_ids are duplicates.
The text was updated successfully, but these errors were encountered: