Thank you for this explanation. Glad to hear its just a combination of a bug with the idea that apparently, it is not your responsibility to check false positives yourself.
Sorry if I ruined your mood. This was not meant as a personal attack.
This all basically boils down to false positives. As I was working on a simple comment-bot downvoting away-bot (an away bot is a simple bot that activates only then voting strength exceeds an 'away' threshold and then tries to use the available voting power for constructive downvotes, without actually flagging anything, just vote attenuation), @cheetah started showing up as false positive.
You might have noticed in your log, about three or four weeks ago, @cheetah was matching hundreds of posts to a single URL, and the result was that , 1st, @cheetah was marked as a potential comment bot. I had a threshold of 100 times the same post for marking a bot, and then of two for marking comments by that potential bot, and by pure chance, at that time, cheetah's comment on my own posts started to get matched.
When I collect @cheetah posts over three weeks that refer to steemit posts as similar content, print out the page author and the link, then run the following command on them:
- ./cheetah_whitelist_candydates-2.py |sort|uniq -c|grep -v " 1 "|grep -v " 2 "|sort -rn
I get the following results
- 15 @abdo00 life/@morad1/4xznep-life
- 12 @pibarabot voting/@croupierbot/croupierbot-watching-the-watchers-2017-12-15
- 11 @entact iota/@bitgeek/iota-price-forecast---28th-november
- 9 @hatemelpop11 life/@morad1/4xznep-life
- 8 @boyhaqi97 introducemyself/@taministy/the-follow-me-in-steemit-report-of-15-09-2017
- 7 @steembloggers steembloggers/@blockgators/steembloggers-post-recognition-12-15-17
- 6 @bl0cktrades life/@morad1/4xznep-life
- 3 @veraingoa investing/@fredinjapan64/silver-wheaton-nyse-slw-1508673307-0747676
- 3 @abdo555 life/@morad1/4xznep-life
I'dd invite you to go find these in your logs and see how many aren't false positives.
Maybe it's because I'm coming at this from a different angle, but due to how trivial it was to identify, this made me jump to the premature conclusion that the whitelist wasn't being actively maintained anymore.
As for python code, I'm not sure how helpfull it will be, but I'll past my two scripts I used to gather this info below:
class WhitelistCandidateFinder:
def __init__(self):
self.hourcount = 0
self.start = time.time()
self.hashcount = dict()
self.whitelist_candidates = set()
self.log = open("cheetah.log","w")
def comment(self,tm,event,cont):
if "author" in event and event["author"] == "cheetah" and "body" in event and "parent_author" in event:
if "I found similar content that readers might be interested in" in event["body"] and "://steemit.com/" in event["body"]:
candidate = "@"+event["parent_author"]+" " + event["parent_permlink"]
old = event["body"].split("://steemit.com/")[1]
self.log.write(str(self.hourcount)+" "+candidate+" "+old+"\n")
self.log.flush()
def hour(self,tm,event,cont):
self.hourcount = self.hourcount + 1
now = time.time()
total_duration = str(timedelta(seconds=now-self.start))
print colored("* HOUR mark: Processed "+str(self.hourcount)+ " blockchain hours in "+ total_duration,"green")
if self.hourcount == 21*24:
print "Ending eventloop"
print "===== Whitelist candidates ======="
for candidate in self.whitelist_candidates:
print " * ",candidate
print "=================================="
reactor.stop()
bc = ActiveBlockChain(reactor,rewind_days=21,parallel = 8)
tb = WhitelistCandidateFinder()
bc.register_bot(tb,"whitelistcandidatefinder")
bc.start()
reactor.run()
And a trivial second script:
with open("cheetah.log") as logfile:
for line in logfile:
parts = line.split()
if len(parts) ==4:
parts[3].replace(parts[1],"@ACCOUNTNAME")
print parts[1],parts[3]
I hope the above is useful and again, sorry if my post has upset you, but I hope that knowing the angle that I came from at this, you understand how these observations made me question if indeed my away-bot false positive for @cheetah were indeed false positives.
I looked at these examples: none of them seem to be "false positives". ALL of them had an element of copy-paste to them. (note: make sure you also check the edit history of posts: a lot of people "delete" their previous post by editing it, and then repost it.)
Waste of my time.
The only issue I see here is you. You're the only one who hasn't gone through the whitelisting process and therefore you are the only one who is getting comments on your reports. (And, the reports contain copy paste -- THAT'S NOT A FALSE POSITIVE).
Other people who frequently post reports do not have the issue you are having, because they bothered to go get themselves whitelisted.
So, I will say the following again:
And secondly, I am still waiting for your volunteered time.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Interesting view. When I looked at them MOST appeared to be false positives. Either automated posts based on recent stats, or things like photo posts of unrelated photo's.
As for my Watching The Watchers posts, they too are meant as a public service.It is 'my'responsibility to keep the whitelist up to date. For me, that means whitelisting accounts that do 100% curated or automated flagging of abusive content. For me, this also means I'm currently 'NOT' sharing my comment-bot upvote attenuating away bots because I don't have the whitelisting in order yet and it currently would attenuate upvotes of @cheetah comments. It's my responsibility to make sure @cheetah gets whitelisted as not being a comment bot in the same way, that, in my opinion, it's 'your' responsibility to make sure @pibarabot and @entact get whitelisted for automated stats based posts. Writing a HOWTO that describes that you should connect with me on EFnet if you feel you should be whitelisted doesn't absolve me from my responsibility to maintain my own whitelist.
As for donating time, I'm a bit busy right now working on asyncsteem, but as soon as i'm past the 1.0 release I'll be happy to donate some time to @steemcleaners and spent some time on making my away-bot collection (that will be ported to asyncsteem) contain a few bots that consider @steemcleaners posts as authoritative.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
This comment has received a 3.09 % upvote from @steemdiffuser thanks to: @fersher. Steem on my friend!
Above average bids may get additional upvotes from our trail members!
Get Upvotes, Join Our Trail, or Delegate Some SP
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit