Instead of hard-coding a check for pinned items when storing the first
item, allows the creater of NodeIterator to specify how the comparison
should be made.
This also allows storing the newest post (whatever it's status is),
instead of simply storing the newst non-pinned post, which prevents
redownloads in case a user adds only a pinned post between runs.
* fixed fetching a users profile information
switched to new api/v1/users/web_profile_info/?username=xy endpoint
* fixed non existing users
thanks to @Dibort for fixing this!
- handle case where `Profile.from_id` works, but `Profile.from_username` doesn't
- Handle case where `QueryReturnedNotFoundException` lies and `similar_profiles` contains the exact username
- Still raises `ProfileNotExistsException` for compatibility.
This commit is made up of 21365ec6688b55c91803040693c3b67cc8820cb8 555c86633c61b106c5c3201e1d5f030a04a4f801 d864ce08ff43a2d86ac6123459bb9fa32b924657
Discussed in #1305, #1316, #1372.
Co-Authored-By: Misael <misael.om@gmail.com>
Co-Authored-By: Eduardo Kalinowski <eduardo@kalinowski.com.br>
The most recent post is cached in NodeIterator (and
saved to the disk), and its timestamp is used, instead of the
timestamp instaloader was run.
This way, even in later resuming runs the timestamp stored is the same
that would have been stored if the first run.
Fixes#1206.
Earlier, if someone had an email address in the caption, those were provided as mentions in the Post.mentions attribute. With this update to the regular expression, email addresses are no longer ingested.
Fixes#1029.
This fetch was done for sidecar posts that contain a video when going
through a profile. The fetched information is already present with the
new profile query introduced in the last commit, making this full
metadata fetch query unnecessary. Instaloader now better evaluates if
that fetch must be done or not.
The fetch was also (eventually unnecessarily) made when accessing
get_sidecar_posts() on a Post that has been loaded with
load_structure_from_file().
- It's necessary because for the old query_hash IG isn't returning the full structure any more.
- So the old query_hash is replaced with the current one.
Remove unnecessary queries when a file in a target does not have to be
re-downloaded.
This significantly speeds up the download in cases where the majority of media
is already present locally.
Co-Authored-By: André Koch-Kramer <koch-kramer@web.de>