Introducing my partial weight UPVOTING TOOL for minnows with less than 500 SP :) Easy setup!

Hello everyone,

I've been getting these partial upvotes and I was just super envious that I can't give those as well...not that my upvote is worth fortune, but you know how it goes - If you can't have something, you just WANT it even more!

I'm well aware that there are all those Esteems and similar apps running on top of Steemit platform, but I just said hmm, for sure I can do this myself :) Why should I share any of my private keys when there's no need to?

Program was written just for my self-use for the next couple of weeks till I reach 500 SP. So please, no hate, it took me 4 hours of work only, there's no design, no exception handling etc..IT IS FULLY FUNCTIONAL THOUGH!

Work time distribution

  • Getting steem-python to work - 1.5h
  • Succesfully sending an upvote from my program - 1.5h
  • Seaching for supereasy python GUI module - 20mins
  • Installing tkinter module and making GUI - 40mins

Set it up yourself!


Requirements:
  • Python 3.6
  • steem-python module
  • tkinter module

After setting you your environment, you can either clone this Github repo or copy-paste following code. If you don't know how to copy-paste effectively, my post about keyboard shortcuts could be helpful :D

import sys
from tkinter import *
from steem import Steem
from steem.post import Post
from steem.account import Account

def vote():
    #get textbox values
    url = urlVar.get()
    weight = int(weightVar.get())
    # vote for post
    post = Post(url)
    steem.vote('@{}/{}'.format(post.author, post.permlink), weight, me)
    #reset textbox values
    urlVar.set("")
    weightVar.set("")
    return
if __name__ == '__main__':
    #add your steemit credentials
    me = "ENTER_YOUR_USERNAME"
    myPrivatePostingKey = "ENTER_YOUR_PRIVATE_POSTING_KEY"
    #create steem-python class instances
    s = Steem(keys=[myPrivatePostingKey])
    acc = Account(me, steemd_instance=s)
    steem = Steem(wif=myPrivatePostingKey)
    #do tkinter stuff
    voterGui = Tk()
    urlVar = StringVar()
    weightVar = StringVar()
    voterGui.geometry('450x150+500+300')
    voterGui.title('Minnow weight voter')
    mlabel = Label(voterGui, text="Enter post URL and upvote weight").pack()
    urlEntry = Entry(voterGui, textvariable=urlVar).pack()
    weightEntry = Entry(voterGui, textvariable=weightVar).pack()
    voteButton = Button(voterGui, text="Vote!", command=vote, fg="red").pack()
    voterGui.mainloop()

Roadmap

This project has just one main feature which is to allow Steemians with less than 500 SP to upvote with partial voting power from their own computer and without sharing their private keys with 3rd parties. This has been achieved and because it's just an evening for-fun project, I don't plan on continuing with active development.

Possible enhancements could for sure be:
  • implementation of exception handling
  • reading login credentials from config file (rather than putting it straight into code)
  • design :)

Disclaimer: This repo is not ready for any "production" use, it's just a temporary solution (and for-fun evening project) till I reach 500 SP. Use it on your own risk!

Thanks for reading!
Martin



Posted on Utopian.io - Rewarding Open Source Contributors


You can find my latest posts here:

  1. [Crypto data science #1] Programmatical analysis of 200k bitcoin tweets BEFORE and AFTER correction
  2. [My 3 months in Pakistan #0] Introduction + 10 PICS
  3. Keyboard shortcuts CHEATSHEET - my favorite ones & one PRO combo
  4. Learn to be comfortable in UNCOMFORTABLE...teaching dance workshop with ZERO experience
  5. DROPSHIPPING mania. How people passively earn thousands of $$$ and why I find it DISGUSTING...!!
  6. I prepared THREE Slovak national dishes - did my VEGETARIAN Spanish and English friends like it?

Mother tongue version

Ahojte!

uz davnejsie som si vsimol, ze od vela uzivatelov dostavam ciastocne upvoty. Samozrejme som to hned zo zvedavosti chcel vyskusat, no velmi rychlo som zistil, ze tato feature mi bude umoznena az po dosiahnut 500 SP. No a ako to v zivote byva - ked nieco nemozeme mat, chceme to este viac!

Som si velmi dobre vedomy, ze som si dal asi namahu naviac, kedze existuju vsetky mozne Esteems a ine appky, ktore by mi tuto funkcionality umoznili, no povedal som si nasrat, ved to urcite zvladnem aj sam :) Preco by som mal zdielat hocjake privatne kluce s tretou stranou, ked to nie je nevyhnutne?

Tento programik je napisany na kolene a len pre moje vlastne pouzitie, kym neskonci korekcia (ano, aj po dnesku som stale bearish) a nekupim si nejaky STEEM navyse. Takze neodsudzovat a nehejtovat za design, chybajuce exception handlings atd atd...

Praca

  • Presvedcenie steem-python-u aby fungoval - 1.5h
  • Jadro projektu (poslanie weighted upvotu na definovu URL)- 1.5h
  • Googlenie jednoducheho python GUI modulu - 20mins
  • Instalacia tkinter-u a spravene "uzivatelskeho rozhrania" (:D co vravi UX profik @pipiczech ?) - 40mins

Rozbehnite si to doma!


Potrebne:
  • Python 3.6
  • steem-python modul
  • tkinter modul

Po nainstalovani predchadzajucich troch bodov, si mozete bud naklonovat toto Github repo alebo proste copy-pastnut nasledujuci kod. Pokial neviete, ako efektivne copy-pastovat, odporucam Vam moj vcerajsi post o klavesovych skratkach :D

import sys
from tkinter import *
from steem import Steem
from steem.post import Post
from steem.account import Account

def vote():
    #get textbox values
    url = urlVar.get()
    weight = int(weightVar.get())
    # vote for post
    post = Post(url)
    steem.vote('@{}/{}'.format(post.author, post.permlink), weight, me)
    #reset textbox values
    urlVar.set("")
    weightVar.set("")
    return
if __name__ == '__main__':
    #add your steemit credentials
    me = "ENTER_YOUR_USERNAME"
    myPrivatePostingKey = "ENTER_YOUR_PRIVATE_POSTING_KEY"
    #create steem-python class instances
    s = Steem(keys=[myPrivatePostingKey])
    acc = Account(me, steemd_instance=s)
    steem = Steem(wif=myPrivatePostingKey)
    #do tkinter stuff
    voterGui = Tk()
    urlVar = StringVar()
    weightVar = StringVar()
    voterGui.geometry('450x150+500+300')
    voterGui.title('Minnow weight voter')
    mlabel = Label(voterGui, text="Enter post URL and upvote weight").pack()
    urlEntry = Entry(voterGui, textvariable=urlVar).pack()
    weightEntry = Entry(voterGui, textvariable=weightVar).pack()
    voteButton = Button(voterGui, text="Vote!", command=vote, fg="red").pack()
    voterGui.mainloop()

Varovanie: Tento projektik vobec nie je pripraveny na pouzitie v produkcii. Je robeny na kolene a len pre moje osobne vyuzite kym dosiahnem 500 SP. Jeho pouzitie je na vlastne riziko!

Diks za precitanie!
Martin




Posted on Utopian.io - Rewarding Open Source Contributors

H2
H3
H4
3 columns
2 columns
1 column
21 Comments