Flag Rewards Dev Post - AdmiralBot CoinGecko Integration, Meme Ranks, SFR Mod Fund and More! 🚩steemCreated with Sketch.

in utopian-io •  8 days ago

Greetings Righteous Flaggers and Those Vicariously Defending the Steem Blockchain

          I have been fairly busy as of late and doesn't look like that's changing anytime soon. Below is a report of some of the things completed or being worked on. I'm spread pretty thin in terms of projects but we're making progress, nevertheless. Here's a quck list of what I have been up to followed by more detailed descriptions:

  • Discord Bot CoinGecko API integration
  • Mention Bot and Admiral Migrations
  • Flagger Post Frequency Limit

On to the Nitty Gritty

Discord Bot CoinGecko API integration

          First, we implented the btc_price function, powered by @coingecko's web API, into @admiralbot's code. Admiralbot is our Discord Greeter and more. Credit to @lovenfreedom for the original code. Now, our Discord users can check USD and BTC relative price of Steem and other coins. As you can see, I had a little fun with it below.

Not to my surprise. 1 BTC still equals 1 BTC.

          This is not a development category post but here's the code which hopefully may be helpful for others trying to add similar functionality. It depends on the urllib.request and json modules so make sure you have the in your imports. Additionally, I will be making modifications per @emrebeyler's last suggestion here to both this and the blacklist_check function.


That will be done with the next Github commit as that functionality has not been pushed to the respository as of yet.

    elif command.lower().startswith('btc_price'):
            cg_coin = command.split(' ')[1].lower()
        except IndexError:
            await client.send_message(msg.channel, errorMsg)
            contents = urllib.request.urlopen("https://api.coingecko.com/api/v3/simple/price?ids="+cg_coin+"&vs_currencies=btc").read()
            contents = json.loads(contents)
            a = contents[cg_coin]['btc'] #grabbing btc price from json
            btc_price = f'{a:.20f}' #reformatting as string literal
            await client.send_message(msg.channel,"Current BTC price of "+cg_coin+" is "+btc_price+" BTC! Powered by CoinGeckoAPI.")
        except Exception:
            await client.send_message(msg.channel, str("Argh! Thar be a problem with that command. May be a barnacle in the syntax. Try a different one, matey!"))
    elif command.lower().startswith('help'):
        await client.send_message(msg.channel, helpInfo)
        command_error = await client.send_message(msg.channel, errorMsg)
        await asyncio.sleep(6)
        await client.delete_message(command_error)

Mention Bot and Admiral Migrations

          Next, we migrated our @steemflagrewards mention webhook bot to the SFR host. The server has been graciously provided by witness @themarkymark (Steemconnect voting link). I did an oopsie though and forgot to bg the process on the mention. There was a slight amount of downtime when the ssh session timed out but we are good now.

          We have a peculiar version of the Python Discord wrapper (1.0.0a1584+g1da6962) that SFR requires which is currently incompatible with Admiral. I have opted to run from my dev environment until we can address the compatibility issue. It is an Ubuntu 18 VM hosted on a Windows Server 2012 OS on a Dell Poweredge 2950. Yes, it is prehistoric hardware but gets the job done for now.

          It should fairly trivial to adapt the code to the weird SFR version by changing things like bot.send_message to bot.say but I don't see a compelling reason to worry about that now as there is work with greater priority. I will re-engage as time permits.

Flagger Post Frequency Limit

With the recent addition of @reazuliqbal's flag trail(Incredibly useful tool and post could use a bit more love. Highly recommend checking it out!), we have found it very easy for us to trip the 9 distinct flagger threshold for our regular reports in a very short span of time. If you see this comment, you will see exactly what I mean. That would have generated almost 2 posts from one flagged content under the previous code.

That's a whopping 16 follow-on flags!

So, many that I could not reasonable fit them all in a screenshot!

In order to prevent frequent posting, we have put in an 8 hour limit between reports. This means we should have no more than 3 reports per day from @steemflagrewards.


My ever growing Todo list

Meme Ranks

         Big item on my list is the @smartmeme meme abuse flag campaign payouts. You may see the latest update here. I wanted to use the distribution as an opportunity to promote our new meme ranks to be developed. The way it works is our brave flag warriors are bestowed their corresponding meme rank. It's essentially adding an element of gamification to abuse fighting which spices things up a bit. 🌶️

          I have a couple in mind such as @bigchungus. It entails my creating 11 gifs sized to 64x64 pixels, uploading them to a host, and plugging them into a list variables. I also need to merry up a corresponding list paired to either the dollar amount or rshares range for the respective rank. It's tedious but the end result is worth it.

Interesting Factoid: Youtube listed a fake BIG CHUNGUS XBOX ONE title on Ebay which was going for over 90k USD. I must be in the wrong business! jk

Subset of a previous rank system established but for taking flags. It was fun. Well. Not the taking flags part.

         Probably going to be a couple Mafia City inspired memes and should be fun putting it all together. Wanna be a Lv 35 Boss? Better get to flagging on the next campaign! I recently checked the memes tag and it looks like all the combined efforts made a helluva difference. Glad we have an anti-abuse community we can count on. 👍

That's how mafia works

SFR Mod Fund

Image courtesy of @steemseph!

          In other news, we have been developing an incentive structure for our SFR moderators. Reviewing all the incoming blockchain flags takes significant amount of time. We currently spread out the labor between our 9 moderators.

          Our mods spend a fair amount of time reviewing and approving flag comments. The @sfr-mod-fund account doesn't nearly have sufficient support to adequately reward the activity so if anybody would like to help, setting up your auto voters on @sfr-mod-fund's posts would be great.

Latest post is here

          I have it set to pull the last 50 approvals with mods set to beneficiaries on the post relative to the number of approvals on that list. The posts make somewhere around $0.30 STU so about $0.20 STU divided for 50 flags. It's not much but it's honest work. Helps keep Steem clean so hopefully we can build more support as we go.

          I recently worked out the kinks in our SQL which were formerly causing our beneficiary weights to not match the flags on the post body. With that, we are one step closer to getting it set to full auto. Fire and forget. I should be cranking out a development post soon with the many changes that have been put into effect since the dust flagger upgrade.

SFR Defense Fund

          Our friend and partner @slobberchops reached out about standing up an SFR defense bot. Priority would be to counter flags on the @steemflagrewards and @sfr-mod-fund beneficiary posts. We would also want to protect any approved mention comment as they tend to be the most susceptible. More to come on that.

Staying on the grind but also taking my time

          I have a ton of stuff in my work backlog. It's pretty daunting to be honest but gotta take it day by day. Not enough hours in the day and I also have a very demanding day job so it's easy for me to get a bit burned out. "Slow is smooth. Smooth is fast." or for my fans of Latin out there, "festina lente".

         Our friends at the dolphin council, @imacryptorick and @kabir88, inquired about how they may support the SFR mission. After discussing our fellow admins, there seemed to be agreement about flag defense. This is important as the lot of us have been taking plenty of revenge flags from butthurt abusers. Neutralizing those flags will help make a statement of the futility of flag abuse.

         The folks at the council are an awesome bunch and I look forward to joining their ranks soon as I invest and work my way to dolphin 🐬. As we all grow together, we will be able to do greater things. The sky is the limit. Thank you all for your consistent support of what we do with SFR! Hope this has been informative But also entertaining!

With that, it's time for me to get to work!

Would you like to delegate to the Steem Flag Rewards project and promote decentralized moderation? It's much more fashionabe than self-voting. Here are some handy delegation links!

50 SP 100 SP 500 SP 1000 SP

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Hi Anthony!
Very significant progress for the SteemFlagRewards operations.

  1. Migrating the mentionbot to a more reliable host is overdue.
  2. Admiralbot using Coingecko's API is a good start in supporting our fellow Steemian.
  3. Reducing the frequency of posting report is also a great update, this should help reduce blockchain bloat and save the project supporters' manna power

Glad to see future plans for the project as well. I hope the project grows stronger and attract fellow Steemians in seeing the value it brings to the blockchain.

Thanks for staying with us on Steem. Thanks for helping Steem less friendly to abusers.

My sincere apologies for not catching your contribution sooner.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.

Need help? Chat with us on Discord.



Thank you for your review, @lovenfreedom! Keep up the good work!

RE: Flagger post frequency limits

Witness, Ura-soul, seems interested in possibly limiting by hardfork, the number and duration of purely ideologically-driven malicious, automated downvotes one person can hit another with over a give time. However, as of right now he is the only witness who is favorable to that. Most whales and witnesses seem to love the power to simply crush anyone who disagrees with them.

Are you interested in doing more than just documenting this type of abuse of the platform, or...?


100% agree that flagging should never be for ideology but about the quality of content. We don't need to agree with the substance of the content to acknowledge it's quality and that it adds value. However, we may be more inclined to support content that coincides with our worldview at a higher level which I think is natural.

I've been thinking deeply about this problem and actually brought up one thing I thought could be a solution to our partner @r0ndon over at @freezepeach (the flag neutralizer) but the idea needs work.

The idea was something I like to call reactive flag protection mechanism and would be a simple check of incoming down votes on a user that is attempting to flag another. If it is found that the flag appears to be reactive or retaliatory, it would then be nerfed or wholly negated. The problem is that it can be used to cover abuse as all the accounts would need to do is flag @steemcleaners and SFR users in advance for instance. It would not address the issue of flag abuse by alts though but at least reduce the damage potential of vindictive flagging.

The idea didn't sit too well with @r0ndon not just for that reason but also ideologically as he thinks it may be a tad too authoritarian. I don't really see it that way and am still considering the implications but am not sure the idea would gain traction unless I had a damn good presentation.

So, let's think about the scenario I posed. Perhaps, there should be either an rshares or weight threshold that would result in a significant cost of attempting to exploit the RFPM.

Let's say the abuse account would need to employ 100% weight flags against all known abuse fighter accounts in order to be covered by the RFPM. The problem is with very low stake accounts as the cost would be negligible so that may be one reason to consider an rshares threshold.

Being that RFPM would probably be a hard sell. I think pursuing an automated off chain solution may be worthwhile but that would require stake. Perhaps an account that would target the same flags as RFPM and neutralize or dampen them. The goal is to increase the cost of revenge flagging rendering it a non-optimal use of one's SP.

Thanks for bringing up the issue and sorry you are caught up in that war. Thinking about writing a post about it. It has resulted in a loss of about 3.5k of SP to SFR from both sides.

P.S. Any idea why @fulltimegeek doesn't just agree to decline rewards on the @proboards stuff? Hoping they arrive at some sort of cease fire soon.

Posted using Partiko Android


Excellent stuff. I've been having similar discussions with a sympathetic witness (who, sadly, says he is currently outnumbered on this issue, from the top.) You may want to check that here:


I don't know anything about fulltimegeek or his strategies, but he has been MAGNIFICENT to me the past three days...basically kept this blog alive.


Anyone can do whatever he/she wants to do with his/her stake. Just buy more SP and counter the downvotes.


When we consider making this platform attractive to prospective investors / bloggers, the issue is more nuanced that "one can do whatever they want with their stake".

I'm sure the impact of flag abuse is catastrophic to user retention and not saying to remove that freedom but to limit it's efficacy. Much like the curation penalty for late (greater than 6 day) voting to preclude abuse.

Are you against that?

Posted using Partiko Android

I'll be upping my SFR delegation soon, there's more flaggers but the account I can see is struggling to keep up. We need more delegators.

Thanks for everything you do @anthonyadavisii :)

Excellent work. I'm off to flag something shit!

Posted using Partiko Android

Outstanding article and work you do! Will read after a good night sleep. It’s 5am here 🙀

Sleep is for the weak! This is all amazing stuff and it's great to see SFR growing. Thanks again


Hahha I am back up again :)

Posted using Partiko iOS


You slept for just 3hrs ?

Hi, @anthonyadavisii!

You just got a 6.95% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.

Hi @anthonyadavisii!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.551 which ranks you at #1852 across all Steem accounts.
Your rank has not changed in the last three days.

In our last Algorithmic Curation Round, consisting of 212 contributions, your post is ranked at #22.

Evaluation of your UA score:
  • Some people are already following you, keep going!
  • The readers appreciate your great work!
  • Good user engagement!

Feel free to join our @steem-ua Discord server

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

You made more than 13000 upvotes. Your next target is to reach 14000 upvotes.

Click here to view your Board
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 not miss the last post from @steemitboard:

SteemWhales has officially moved to SteemitBoard Ranking
SteemitBoard - Witness Update

Support SteemitBoard's project! Vote for its witness and get one more award!

Hey, @anthonyadavisii!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!