The goal of this file is explaining to the users of our project the notable changes relevant to them that occurred between commits.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning
- Fixed
relationship_tools
to check if notusername == self_username
- Added delays after load cookie in login.util.py
- Added
apidisplaypurposes about
insmart_hashtags
and new api token; Python3.5 - Added
interact_user_likers
interacting with the likers from a given user's posts - Added second
accept_igcookie_dialogue
to handled the second "cookie accept screen" that is not automatically accepted - Added delays after
update_activity()
infollow_util.py
andutil.py
- Added extra trace in
get_followers()
- Added
verified_only
argument toget_followers
to return only verified users mandatory_bio_keywords
control before evaluating for mandatory- Fix user following and verification of follow
- Skipping of public account with (optional) percentage
- Move call to
get_following_status
aboveweb_address_navigator
insideget_links_for_username
function - Fixed the correct URL
displaypurposes.com
, the olddisplaypurposes.com
API is deprecated - Fixed
additional-information.md
, removed extra info forcron
configuration - Fixed
actions.md
andsettings.md
for identation - Fixed getting additional data from page source
- Fixed xpath for when images cannot be detected
- Fixed empty shared data
- Cannot detect post media type
- Updated xpath Image "Like" and "Unlike"
- Change the ip data supplier to https://freegeoip.app/ from https://seeip.org/
- Handle situation if stale elements detected when cookie cannot be loaded
- Convert Documentation to Docusaurus
- Check if user's account is private
- Added informational message when videos found instead of images in
likers_from_photo
- Two Factor Authentication check when acct is protected
- Added Pull Request Template
- Added function
accept_igcookie_dialogue
that clicks accept at IG cookie dialogue - Added
comment_liked_photo
toset_do_comment
to be able to comment twice a photo that is already liked; deactivated by default
- Fixed typo in message when a video is tried to like.
- Fixed the problem where
followers_list
could be used without being initialized. - Fixed incorrect xpath used by
interact_by_comments
- Fixed typo in
dissmiss_save_information
todismiss_save_information
- Fixed
get_followers
return for empty list - Fixed xpath for
likers_from_photo
- Changed windows size to
iPhone XS Max: 414, 896
- Fixed
process_comments
where some comments used the InstaPy user - Updated
user_agent
profile to be the same for the bot session - Fixed required
sameSite:Strict
parameter in browser cookie session - Fixed
login_session
for issues when cookie cannot be loaded - Fixed
likes_dialog_close_xpath
to generic format - Fixed
validate_username
to navigate user profile to read their Bio - Fixed
Liked button now found, might be a video
that could be floodig general log - Fixed
logger.warn
tologger.warning
as default warning in Python - Fixed xpath for
watch_story
- Defined local variables ( ie: 'unfollow_state') to fix message for referenced before assignment
- *.code-workspace in .gitignore for vscode project (macOS)
like_by_locations()
with randomize flag- Added firefox_options.log.level = geckodriver_log_level for debugging
dissmiss_save_information
inlogin_user()
- new path used in login_util.py
- information for geckodriver_log_level, development only
- check if liking activity was blocked after every like
- Call scroll_down() after follower accepted, with this new def the window is scrolled down after accepting a follower.
- Sorted imports, to make code readable
- Modified followed.txt log to append information
like_image
now needs to handle images and videos- Imports were ordered
like_by_feed
limits from 100 to 50
- fixed some comments were double quotes were not necessary
- issue where
getTitle
was timing out get_users_through_dialog_with_graphql
with a new try/except
- Use random tag list for
session.like_by_tags
- General log rotation, gecko driver log in user directory, comments in 80 chars
- Unfollowing of users that haven't posted anything
get_links
xpath for yet another change- Path for Obtaining user id
like_util.py
list index out of range errorlike_by_feed()
method- `follow_user_following
- processing unexpected alert error on resize
- Generallize mandatory words and add mandatory_bio_keywords
- Update xpath for like/unlike and comment
- Fix
like_by_feed()
xpath get_like_on_feed()
improve function readability
- "UnboundLocalError: local variable 'commenting_approved' referenced before assignment" error when bot tries to comment
- Typo updating configuration object. Changed nofity into notify
- Add specific firefox preference agent data to prevent error
- Smart location url
- Error "Hide Selenium Extension: Error" mentioned in #5304
- XPATH for like svg
- Additional parameter
browser_executable_path
now available when initializing InstaPy. Use it to run a specific installation of Firefox. - A new feature -
target_list()
to parse text files containing target lists of users, hashtags etc.
- Remove
view-source
which stops bot from proceeding - Remove instagram status check
- xPath for breaking LIKE and COMMENT
- Adjusted follow xPath
- Additional web checks default
False
to avoid erros on runtime
- Additional CLI-Argument for connection checks
- Post types now as Enum in separate file
- Internet connection checks
- Small typos in documentation
- Firefox Proxy error
- prettyfied code
- fixed onetap account page on login
- fix minor bug in unfollow function
- Improved documentation
- Added "no_comments" for Pods
- Improved Tox / Travis testing
- Improved random sleep delay
- Telegram support
- Able to use Domains as a Proxy
- jsonschema requrements version
- skip_top_posts function
- Backup plan for graphql additional / shared data
- New bypass challenge approach (choose sms or email option)
- Show InstaPy version on initialization
- Login xpath update
- Add log information about the non-working feature (unfollow with All Following option enabled)
- Fix an issue with screen shot file creation
- Fix an issue with JSON file state creation
- Fix Get Query Hash function to work on all Python 3.x versions
- Fix Unfollow with option nonFollowers
- Firefox Extension which hides Selenium
- Black code formatter
- Mobile user agent
- Mobile Mode to enable mobile features
- Screen shots (rotative screen shots are taken and saved in your InstaPy user folder)
- Connection State
- removed chromedriver
- signature changes:
- set_action_delays(random_range) -> (random_range_from, random_range_to)
- set_delemit_liking(max, min) ->(max_likes, min_likes)
- set_delemit_commenting(max, min) ->(max_comments, min_comments)
- unfollow_users(customList, instapyfollowed) -> (custom_list_enabled, custom_list, custom_list_param, instapy_followed_enabled, instapy_followed_param)
- setquota_supervisor(peak) ->(peak___hourly, peak*_daily)
- Fix follow_likers feature
- Fix follow_user_followers
- Fix comment_image feature
- Update dont_unfollow_active_users to Mobile Mode
- Fix scroll down (util) function
- Remove bypass_by_mobile, it will auto detect the mobile if required now
- Update profile scrapping to use GraphQL (get_users_through_dialog_with_graphql)
- skip user based on profile bio
- xpath error likers from photo
- user agent error in firefox
- xpath compile multiple errors
- feature watch stories
- always use the lastest user-agent
get_action_delay
check for uninitialized delays in settings
- Always start chromedriver with --no-sandbox to fix #4607
get_action_delay
method always returning default values #4540
- Argument Being Interpreted as Sequence in
bypass_suspicious_login
session.get_relationship_counts()
broken behavior
- Documentation for basic Selenium Errors
- Import
Settings
in docs
session.follow_user_following()
broken behavior
- Additional check for like block.
- Remove support for python2
- Information regarding the nogui parameter in documentation.
- XPath Isolation
- Remove redundant assignment of pod_post_ids
- Remove address var assigned multiple times without intermediate usage
set_mandatory_language
can maintain multiple character sets- Feature finetuning comments for pods
- Interact_by_comments aborts when self.abort is true
- Media type filter (Photo, Video) in get_links
- 'Failed to get comments' issue
- Threaded session ending with exception
ValueError: signal only works in main thread
like_image
in dev has this arg- Verifying mandatory words when the script can not get post description
- Codacy checks for unused var, out of scope, and missing args
- Commenting issue #4409
- Fail of whole pod run on exception
- Support for split database with -sdb flag to avoid SQLite lock up
- "Failed to find login button" when trying to login (add KEYS.ENTER to submit login data)
- Improved info provided by log messages in instapy.py and like_util.py
- Possibility to skip non bussiness accounts
- Remove docker from core, moved into instapy-docker repo
- Remove quickstart templates and only reference instapy-quickstart
- Restructure README and add new DOCUMENTATION file
- "UnboundLocalError: local variable 'tag' referenced before assignment" when there is no smart-hastag genereated
- xPath to dialog_address
- (re) add page_reload, after cookie load, on login_user()
- "Failed to load desired amount of users" when trying to read long follower lists
- Add additional exception catch to Login check
- Set language on the browser (no clicks required)
- Get_active_users hotfix
- Hot fix problems with browser abstraction class
- Removed retry decorator
- Allowing
follow_by_tags
to interact with the user - Context manager to interaction calls in
like_by_tags
andfollow_likers
- Engagement pods feature 🙌
- Smart Hashtags based on locations
set_smart_location_hashtags
- Verify action for unfollow and follow actions
- Browser abstraction and Decorator that handles Selenium Browser exceptions by reloading
- Add delay unfollow of follow backers
- Expose
threaded_session
of Instapy.end()
follow_likers
always fetches zero likers- Prevent division by zero in
validate_username
- Made Log in text checking more resilient
- Chromedriver requirement now >= 2.44 instead of == 2.44
- xPath for Log In button
- Accept pending follow requests for private account
- Feature to
follow_by_locations
- Proxy Authentication support for Firefox
- Only import instapy-chromedriver package when needed
- Avoid user errors providing user names with caps
- Fix get_active_users wrong behavior on videos
- Bug in CLI argparsing -
proxy_port
&page_delay
are integers and not strings. - Selectors for finding comments and liking comments on posts
- Temporarily turn off follow for
like_by_tags
interaction
- Enable users interact by the comments of their own profiles.
- Moved elements from docs folder to instapy-docs and instapy-research repositories
- Fix "Failed to load desired amount of users!" issue.
- Add Progress Tracker to
get_users_through_dialog()
function. - Add Proxy Authentication for Firefox
- Fix for scrollIntoView error.
- Workspace folders; Now user's data files will be stored at the workspace folder.
- InstaPy has been published to PyPI; Now, can install/manage it by pip as instapy package.
- Github releases has been initiated; Will be released in-parallel with PyPI deployments.
- Add Universal Testing Framework- tox with pytest & flake8.
- Upgrade Travis CI usage (tox as build script).
- Send messages to Discord #status channel about jobs' build states from Travis CI.
- Add instapy-chromedriver package if no chromedriver is in path.
- Add argparsing feature. Users are now able to provide credentials (and more) through CLI args.
- Turn off verification based on relationship bounds by default, completely (see #757815f commit).
- Simplify the default quickstart script much more.
- Add track post/profile
- Avoid prints for only one user
- No posts exception when scraping likes
- Now
set_dont_unfollow_active_users()
feature also has a Progress Tracker support.
- Fix
set_dont_unfollow_active_users()
feature completely.
- Optimizing Dockerfile for smaller docker image.
- Fix "Unable to locate element: ...xpath","selector":"//div[text()='Likes'..." error.
- Fix "Failed to load desired amount of users!" issue.
- Handle A/B-Test for comments (graphql edge).
- Adjust docker-compose.yml according to new Dockerfile.
- Correctly mount Docker volume, make it work properly with chromedriver installed in assets folder.
- Feature to remove outgoing unapproved follow requests from private accounts.
- Resolve security warning with new pyyaml version, updated pyyaml to version 4.2b1.
- Fix for non-authenticated proxies in chrome headless browser.
- User without timestamp will use the timestamp of previous user.
- PEP8 layout changes.
- A new setting -
set_do_reply_to_comments()
to control replying to comments. - A new feature -
run_time()
to get information of how many seconds the session is running; Added to "Sessional Live Report" and can also be manually requested likesession.run_time()
from quickstart scripts, any time.
- A few visual changes to source code for PEP8 compliance.
- Rename
set_reply_comments()
toset_comment_replies()
out of revised design.
- Fix bug off #3318 which hit python 2 saying, "TypeError: can't multiply sequence by non-int of type 'float'" (raised & solved at #3451).
- Fix error occured while liking a comment (raised at #3594).
- Fix Follow-Likers feature which couldn't fetch likers properly (raised at #3573).
- Save account progress information into database adding the possibility for external tools to collect and organize the account progress.
- Fix
person_id
missing in post_unfollow_cleanup() [line 1152].
- Remove https://i.instagram.com/api/v1/users/{}/info/ as it not working and killing the unfollow with error.
- Fix logging uncertain having no userid nor time log, will be important for sync feature.
- Fix get active users when Video have no likes button / no posts in page.
- Full docker-compose and complex template + documentation.
- Fixes likers_from_photo when liked counter is "liked by X and N others".
- Fix for python 2.7 users, ceil returns a float in python 2.
- Added mandatory_language (updated check_link definition in like_util).
- Add self.aborts for the follow followers and follow following because otherwise InstaPy won't exit properly on them.
- A new feature - Interact By Comments to auto-like comments, auto-reply to them, etc. (see README).
- New text analytics - MeaningCloud Sentiment Analysis API & Yandex Translate API (Language Detection & Translation) integrated into InstaPy for doing sophisticated text analysis (see README).
- Speed up logging in at least 25 (default
page_delay
) seconds (see #ee6acba commit). - Upgrades to
live_report()
feature ("Sessional Live Report" uses it..). Now it is more smarter. - Lots of visual changes to source code for PEP8 compliance.
- Modify
check_authorization()
to dismiss redundant navigations to profile pages. The gain is a few seconds (~2-3) saved which is so good.
- Fix a little misbehaviour in
set_relationship_bounds()
with min_posts & max_posts. Nowenabled
parameter controls the whole setting. - Update
grpcio
package's version in requirements.txt to1.16.1
. Its1.16.0
had a bug duplicating logger messages.
- Switch
mandatory_words
from ALL to ANY.
- Added location to image_text in the
check_link()
method of like_util.py, so the script also searches for the mandatory words in location information.
- "Cookie file not found, creating cookie..." bug fixed.
- Maintain names: 'person' for target user and 'username' for our running user.
- Verify private users in get_links_for_username.
- Changed behaviour of validate_username to check if a user is included in the blacklist. If yes will skip it and log why.
- Interact with tagged images of users, and validation of a user to be optional.
- Use Clarifai to check video content. By default deactivated and should only be used if necessary.
- This CHANGELOG file to hopefully serve as a useful resource for InstaPy fellas to stay up-to-date with the changes happened so far.
- Custom action delays capability (see README).
- Now follow engine has the same compact action verification procedure used in the unfollow engine.
- Lots of stability in action verification steps which are held at newly added
verify_action
function. - New quickstart templates from 11 different people shared at #3033.
- Now "already followed" state is being tracked by the following status result rather than catching a
NoSuchElementException
.
- Stale element reference error raised at #3173 (occured after #3159).
- Invalid like element issue (occured after IG introduced comment liking to its web interface).
- Working version with basic features.
- Use Clarifai to check the images for inappropriate content.
Please, don't dump raw git logs into this file - which is intended for users rather than developers.