{date_utc} encodes the post creation date in UTC rather than the
current local timezone, as {date} does.
This was proposed in #69. Encoding the post creation date in
local time zone induces problems regarding --fast-update when the
time zone is changed.
The introductionary sections of as-module and cli-options have been
rewritten. Further, Instaloader's short-description is now included in
the sidebar.
- Added owner_id and mediaid to Post class properties.
- In case of not downloading stories, the attributes of the Post class
can now be used in filename-pattern, e.g. {post.owner_id} or {post.mediaid}.
Closes #53.
- If when retrying a failed connection ^C is hit, the retrying is
aborted,
- Option --max-connection-attempts to override default of how many
connection attempts should be made.
Closes #51.
With --metadata-json, a JSON file for each post is created saving the
Post properties defined in instaloader.Post class, i.e. caption, number
of likes, people tagged in caption or the picture itself, etc.
This closes #33 and closes #47.
caption_mentions is a list of all lowercased profiles that are mentioned
in the Post's caption, without preceeding '@'.
tagged_users is a list of all lowercased users that are tagged in the
Post. This was requested in #47.
Just like all properties of instaloader.Post class, caption_mentions and
tagged_users are available for --only-if filters.
caption_hashtags is a list of all hashtags that are mentioned in the
Post's caption. It allows to easily filter Posts that have multiple
hashtags, and as such fixes #24.
Further, the documentation of --only-if has been completed by linking to
a description of the syntax in the Python documentation, and by linking
to a list of all defined properties with their meanings. So, this commit
also closes #42.
I've come across several implausible values for `device_timestamp` (such as 182428140, which would be in october 1975, assuming millisecond). I guess it is due to improperly configured phones, or maybe some third party software that's mangeling the EXIF data on images before posting. Anyway. Since by the nature of stories, the `taken_at` timestamp (presumably when the instagram servers received the post) ought to be approximately when an image was actually taken. So there's no real value trying to use the timestamp provided by the photo-taking-device.
Additional sleeps are necessary because Instagram is rate limiting
GraphQL queries. The error does not occur if not more than 100 queries
are made in a sliding window of eleven minutes.
Ports a894c2d to version 3.
If --only-if='likes>1000 or viewer_has_liked' is given, it is not
neccessary to evaluate viewer_has_liked if the post has more than 1000
likes. The new implementation smartly handles this case.
download_stories() may trow a BadResponseException, which should not
cause abortion of download_profile(). Now, all calls of
download_stories() are within an _error_catcher context.