How to secretly follow/unfollow accounts

in #steemdev6 years ago (edited)

When an account is followed or unfollowed, a notification may broadcast to the account. Services that provide this, are GINAbot or the busy.org site for example.

When beembot is following me, i will receive a notification like:

  • busy.org
    image.png
  • GINAbot
    image.png
  • steemd
    image.png

Follow/Unfollow notification can be prevented by using beem and by creating the follow ops in a special way

Follow / unfollow operations are custom_json operations, this means they will not be checked when broadcasting. When a follow/unfollow operation is embedded into a list, notification services will not notice, as they do not recognize them as valid follow operation.

beembot is currently following me:
image.png
Lets beembot secretly unfollow me using beem (notice the double [ and ]):

from beem import Steem
from beem.account import Account
stm = Steem(keys=["POSTINGKEYBEEMBOT"])
account = Account("beembot", steem_instance=stm)

what = "" # "blog" for follow
json_body = [['follow', {'follower': 'beembot', 'following': 'holger80', 'what': [what]}]]
stm.custom_json("follow", json_body, required_posting_auths=[account["name"]])

The operation was sucessfull:
image.png
Link to steemd

steemd does not recognize the valid unfollow op:
image.png

I did not receive a notification from GINAbot or from busy.org.

Let's secretly unfollow all followed accounts

beembot is following three accounts now:
image.png
Let`s secretly unfollow all in one batch by broadcasting a valid list of unfollow operation embedded into a single custom_json operation:

from beem import Steem
from beem.account import Account
stm = Steem(keys=["POSTINGKEYBEEMBOT"])
account = Account("beembot", steem_instance=stm)
following_list = account.get_following()

json_body = []
what = '' # unfollow
# what = 'blog' # follow
for following in following_list:
    follow_op = ['follow', {'follower': account["name"], 'following': following, 'what': [what]}]
    json_body.append(follow_op)
stm.custom_json("follow", json_body, required_posting_auths=[account["name"]])

There is a maximum custom_json size, this example may not work with many accounts in following_list. It worked for three accounts:

image.png


The code of GINAbot, busy.org and steemd may be adapted, so check first if the secret follow/unfollow operation still works.

Sort:  

i use the steemify app and when i see an follow or a unfollow is comment and try to build a relationship or ask why they unfollowed. I learn from that and also thank always. have a great thursday.
greetsz from holland

Congratulations @holger80! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments received

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!