feat: improve carousel/reel interactions and Android 12 compatibility#443
Open
coco11211 wants to merge 1 commit intoGramAddict:masterfrom
Conversation
This commit enhances the Instagram bot's carousel and reel interaction capabilities with more natural, human-like behavior patterns and adds Android 12+ compatibility.
Changes:
1. Android 12 Compatibility (device_facade.py):
- Added Android 12+ (SDK 31+) detection and compatibility mode
- Added is_android_12_plus() method for version-specific logic
- Enhanced device info logging for better debugging
2. Enhanced Carousel Swiping (interaction.py):
- Added variable viewing times for photos/videos in carousels (0.85-1.25x variance)
- Implemented more natural swipe coordinates with greater randomness (0.80-1.20 variance)
- Added humanlike decision delays before swiping (0.2-0.6s)
- Implemented "look back" behavior - 15% chance to swipe back and review previous carousel items
- Added pre-swipe delays to simulate human browsing patterns
3. Natural Reel Playback (views.py):
- Created _watch_reel_naturally() method for segmented reel viewing
- Added 0.85-1.40x variance to reel watching times
- Implemented multi-segment viewing (2-4 segments) to mimic natural attention patterns
- Added 20% chance to "re-watch" moments in reels
- Small pauses between viewing segments for realistic behavior
4. Improved Owner Detection Fallback (views.py):
- Refactored _check_if_ad_or_hashtag() with better error handling
- Created _get_owner_name_with_fallbacks() with multiple fallback strategies:
* OCR extraction with graceful error handling
* Sibling UI element text search
* Content description fallback
- Better error messages for missing dependencies (pytesseract/Tesseract)
- Prevents crashes when owner name cannot be extracted
Benefits:
- More human-like interaction patterns reduce detection risk
- Better Android 12+ support for modern devices
- Improved reliability with enhanced fallback mechanisms
- More natural carousel and reel viewing behavior
- Reduced chance of bot detection through varied timing patterns
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This commit enhances the Instagram bot's carousel and reel interaction capabilities with more natural, human-like behavior patterns and adds Android 12+ compatibility.
Changes:
Android 12 Compatibility (device_facade.py):
Enhanced Carousel Swiping (interaction.py):
Natural Reel Playback (views.py):
Improved Owner Detection Fallback (views.py):
Benefits:
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Test Configuration:
Checklist: