Hi is there a way when we use 'follow_user_followers' to ignore the people that are already following you ?
I have another issue, the function 'follow_user_followers' doesn't follow the correct numbers of people,
I set up 300 but it only follows 12 each time, sometimes its works but something it only follows 12
English is not my main langage sorry
Thank you for your help !
@jtrieuDev
After the latest relationship tools, it is possible to do all you have thought and much more.
And in the future it will hopefully provided as a parameter but for now, you can do it manually.
_If you like to do it manually, I can help you get it work._
That
12 people issue
- explain it clearly. There is a sleep delay per some ~10 users. Maybe you meant it
@uluQulu
Yeah I would like some help to do it manually, If you have some time !
For the 12 people issue, I provide 500 person to follow so sometimes it retrieves the good amount of 500 people like here
and most of the times it takes only 12:
So i don't really understand why. i checked some other issues, is it because of the "unrolling" of the followers list ?
Thank you for your time and your help ! :D
Do you get some
"_Failed to load desired amount of users_"
logger message?
Pull the latest changes and tell me to get started with that feature request.
@uluQulu
yes, i Do
ok i just pulled the latest changes, how do I ask the feature request? is it on github ?
Thank you
Okay that means there is a problem with getting users for that needs to be solved some other time @jtrieuDev
Now I will write some lines for you to get that new feature work.
Hold on and make sure you have pulled latest changes, cos that screenshot above says you have not :D
@uluQulu
Sorry i just did, the screenshot was from 2 hours ago lol
Okay thank you so much ! :D
Okay @jtrieuDev
I'm on it.
@jtrieuDev
I am thinking on enlarging the scope of this idea to apply it on all kinds of activities.
E.g. not only ignore those users from following, but also do not like on their pictures, or send comments.
What do you think about it?
@uluQulu
Yes it is a great idea !
I am not very sure about this @jtrieuDev.
Can you provide the reasons why you would like it?
What do you think about this, @timgrossmann?
I think I will do sth like this:
a new parameter in set_ignore_users
set_ignore_users(users=["custom users"], channel="followers")
channel
will be able to get all of the latest additions with relationship tools, so that it can be
"followers"
, "following"
, "unfollowers"
, "nonfollowers"
, "fans"
, "mutual_following"
So e.g. with channel="followers"
, it will ignore any kind of interactions on the _followers_ of the user logged in...
Adding exceptions in features like like_by_feed
is expected. Or like if that user is in the list given like_by_users
, it can continue to do interactions, etc.
@uluQulu
The feature can be useful for people who would like to skip the users that are already following them, for me, I am using 'follow_user_followers' on a user who is in the same "niche" as me and some of his followers are already following me.
@jtrieuDev
It's a bit complex. I meant to ignore all kinds of interactions including follow, like, comment.
E.g. do you think you would also skip liking photos of that user alongside ignoring to follow?
@uluQulu This sounds incredible!
Should be quite nice to do given the great work you did with the new implementation of the unfollow feature.
However, this channel
property sounds like something that needs quite good documentation making sure that people know how to do it.
Also, we should make sure that we can also leave out the users
property completely without having any problem.
Something like
set_ignore_users(channel="followers")
should be perfectly valid.
Thinking this further we might also want to be able to exclude both, followers and followings
set_ignore_users(channels=["followers", "following"])
@uluQulu What do you think about the list?
Thanks, @timgrossmann
I think I will remain in my concern and not do that.
Cos it is ridiculous, user will want to like a photo of his follower or comment, but not follow.
It can also be done with more sophisticated work.
But if it was to ignore that user completely, it would be so easier to implement :P
Fine, the current idea in my mind is sth like
So,
set_ignore_channel(track={"followers":["follow"], "following":["like", "comment"], "nonfollowers":["like", "comment", "follow"]})
The result will be ultimate customization in users hands :)
Well, all of those actions inside the track is gonna be ignored and not done.
As you have seen, it is a big work. I will have to think some to find a good design for that.
@jtrieuDev previously I wanted to help you do it quickly with manual modifications, but now I will do it for all and make a PR. Hope it will be better for you, too. Just wait some time to get it ready. xD
Yeah, @timgrossmann documentation is not a problem. I will do my best to write it clearly when finishes implementing.
BTW I really wonder how you liked the latest visual changes happened with my last PR.
E.g.progress_tracker
,highlight_print
, etc. :>
Cheers
@uluQulu alright thank you very much !
@uluQulu Your approach looks very good.
However I have to also say that I'm pretty familiar with object notation which kind of makes me think how difficult it will be for a less code-familiar person to use this feature.
It's always a hard part deciding whether to go for more complex and more customisable features or keep it easier and less customisable.
So I don't think this has a high priority at the moment.
Maybe we can think about some "design" approach on how we could provide a GUI or some sort of easy set up which will help a lot of people less familiar with code.
I think bug fixing (like you and a lot of others already did a ton of) and making the tool easier to use should have a really high priority at the moment just to provide more mainstream users to also have the privilege of using this incredible, community driven tool.
Thank you
Best
Tim
@uluQulu
By the way, for the 12 people issue,
I changed my code from
session.follow_user_followers(['user'], amount=500, randomize=False)
to
users_to_follow = session.grab_followers(username="user", amount="full", live_match=True, store_locally=True)
session.follow_by_list(users_to_follow[:500], times=1, sleep_delay=600, interact=False)
Is it going to work the same ? Since I am using different functions, the followers I already followed from the previous follow_user_followers will be follow again?
Or it is using the same log files?
Thank you for your answer !
Thanks @timgrossmann.
It's a the structure of a basic dictionary. And with a good documentation it can be understood and be used easily.
Keeping things easier is also my ideal in a code but this situation's easiest solution is that approach that I could realize.
It can be done with simpler approach which would ignore all of the users in a given channel. But if you have noticed, the user will/may not like to ignore all kind of interactions from that channel. And it will lead to confusion + mess + inefficiency + weak code.
There is also another matter,
Considering that it is the most optimal approach to do it, the question comes up:
"followers"
, "nonfollowers"
, "unfollowers"
, "fans"
, etc._)"like"
, "comment"
, "follow"
, etc._)Both of those questions are the matter of design patterns touching efficiency.
E.g. some of those channels or some tracks for those channels will not be used by anybody, truly!
It's hard but it is the only way to implement it. At least, in my mind- no code is perfect, it can't be.
GUI
...
Cool, it is so stunning to realize a good graphical user interface.
Making a sophisticated GUI is a matter of time & taste & work.
I would choose C++ solution with
CMAKE
for a good GUI
But making it also absolutely dynamic is hard.
The main issue is, the program gets so big updates regularly and it is hard to keep it up with its GUI frontend.
Solution is a good permanent design at quickstart side.
E.g. adding a few more layers setting the priorities of the existing (_and new as they come_) actions
, settings
is gonna solve it.
Fine @timgrossmann, you can see that it is a big work to realize a good and end-to-end GUI.
And during this time, some features like this will be waiting so much.
Another thing is, there are cases where GUI will not be used, e.g. small devices running it, e.g. on a Raspberry.
Or some guys will still prefer console for personal choice or ultimate performance.
I wish I could get this GUI happened but I have not any time and I wish somebody will do it.
For the current feature request by @jtrieuDev, after @timgrossmann's review, I suspend writing it.
Best regards
@uluQulu Thank you for the detailed explanation, really appreciate it.
Yes absolutely no pressure, I was just pointing out that making it easier for less code-affine people is a critical step, this, in no means, was a request for you to implement a GUI.
I know it's extremely hard to do it for something as dynamic as InstaPy, but I guess we "simply" have to come up with a way to define all the fields that should be created in the GUI with a config file for which it is rather simple to add new "components" so other devs and contributors are able to add their newly implemented feature into the config file which will then be used to create the components displayed in the GUI.
Thank you very much.
Hey @jtrieuDev
You have chosen a good alternative to get that data, good for you!
With that setup, everything will work as it was before.
Hey @uluQulu
Oh so the feature of "ignore users who are already following you" won't be implemented ?
I didn't understand sorry
Thanks !
IKR @timgrossmann
No problems.
@jtrieuDev I will provide a quick manual way to achieve it.
in instapy.py file, find follow_user_followers
feature and do this modification:
replace
for index, user in enumerate(usernames):
with
my_followers = self.grab_followers(username=self.username, amount="full", live_match=False, store_locally=True)
for index, user in enumerate(usernames):
if user in my_followers:
logger.info("Hey.. this user is already following you ~skipped following {}".format(user))
continue
_Although those quick changes are for follow_user_followers
feature, you can apply the exact steps for any other feature desired similarly._
E.g. with your latest setup used
follow_by_list
directly, you can make it work for it, the same way, too!
BTW yes, at least I will not be implementing it.
You could use helper tool for Instagram chrome extension, get all the names of your followers.
make the bot ignore these followers.
i'm a noob, i hope this helps
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. > If this problem still occurs, please open a new issue
IKR @timgrossmann
No problems.@jtrieuDev I will provide a quick manual way to achieve it.
in instapy.py file, find
follow_user_followers
feature and do this modification:
replacefor index, user in enumerate(usernames):
with
my_followers = self.grab_followers(username=self.username, amount="full", live_match=False, store_locally=True) for index, user in enumerate(usernames): if user in my_followers: logger.info("Hey.. this user is already following you ~skipped following {}".format(user)) continue
_Although those quick changes are for
follow_user_followers
feature, you can apply the exact steps for any other feature desired similarly._E.g. with your latest setup used
follow_by_list
directly, you can make it work for it, the same way, too!BTW yes, at least I will not be implementing it.
Somebody made this? I get a lot of "Unused variable" warning signs...
I need to replace just the phrase "for index, user in enumerate(usernames):"? very new to code here... I am sorry if it is a dumb question
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
If this problem still occurs, please open a new issue
Hello,
i need some help on a customization. Can you help me please ?
Most helpful comment
IKR @timgrossmann
No problems.
@jtrieuDev I will provide a quick manual way to achieve it.
in instapy.py file, find
follow_user_followers
feature and do this modification:replace
with
_Although those quick changes are for
follow_user_followers
feature, you can apply the exact steps for any other feature desired similarly._BTW yes, at least I will not be implementing it.