Introducing Steem Desktop - A New App for the Steem Blockchain [Initial Release]

in steemit •  7 years ago 

I've been inspired by @jesta's steemstats to work on a desktop application that would provide (at least in the beginning) similar functionalities. So, in this post, I release the code and provide a short description for the application that I created. Enter Steem Desktop:


Showcase1.png


I started with the very basics; and it took a while until I figured some things out with respect to parsing different stuff from the Steem blockchain (credits to @furion, @xeroc and the rest of the developers behind the steemtools and the piston libraries).

Tying it all together in a GUI app was somewhat of a nice challenge for me. However, more challenging was the figuring out of the 'votes' list as I've used a dictionary approach in Python and sorted the values/votes by date. I was in a kindof deep concentration when I did this (some like to call it flow, but that's a buzzword right now). I simply enjoyed what I was doing, that much that everything else (the world around me) faded away.

There are some 'technical' details that I should go into (such as the use of threading for example) but I think that's unimportant to the most of you who may be using this. I'll just describe the two main functions of the current version of the app. So:

First, you enter your username, then hit Enter or click the Retrieve button. This will retrieve/populate both tabs (User Account, Last Post) with information from the Steem blockchain. The 'User Account':

Showcase2.png

And the 'Last Post':

Showcase3.png


These provide a few stats for the user account and for their most recent blog post.


Now, the important: I created a new repository for this project, so you can go and grab the code yourself. I've also added substantial explanation in the code itself (as comments) so it may be easily understood and further developed.

I've been developing this using Python 3.4 in Windows 10. However, I'm most certain it would run error-less on Linux and Mac due to the compatibility of both tkinter and piston that power the app.

So, the only main requirement would be piston:

pip install piston-lib
pip install piston-cli

I might create a Windows binary (.exe) in the following few days so that it can run standalone. But I guess the value is in the raw code.

Obviously, there are unlimited functionalities and uses that can be added to it, the only limitation being the imagination of the developer.

Anyway, feel free to grab the code and please link back, if possible.


To stay in touch with me, follow @cristi


Cristi Vlad, Self-Experimenter and Author

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:  

Really looking forward to this, especially scheduling, multiple drafts, extra details etc etc. I love the mobile app and Iam really looking forward to using this.

thanks for the ideas!

This is a very cool project, I'm sure that new and veteran developers will have fun extrapolating on this. The readout reminds me of the Fallout.

it's highly likely that I'll keep working on it too :D

Thanks for sharing. I've never worked with piston - this might be a interesting project to start with... Just add a few ideas, some CSS and some spare time!

It's a very good start, I'm looking forward to seeing the rest. Good job.

Nice work.Looking forward for the rest :)

thanks!

Did you use Tkinter or PyQT for the GUI?

wow, that's awesome @cristi, STEEMIT is attracting so many CREATIVE SOULS! TOP MAN!

Keep going1 u will ALWAYS get paid on steemit for develiping new upgrades and new programs relatedto steemit!!!!! see how greatly u are rewarded for this one?!?!? everyone who programs for steemit gets steem! ur gonna be living off ur programming sills and hard work soon!

thanks for the encouragement!

Good job ! Keep going !
p.s. we are from same country :) I follow you and you have my vote

thank you.

Looking forward to this, it will definitely be useful :) Thanks for taking the time, I wish I could code.

there's nothing stopping you from learning.

Awesome work @cristi, keep it up! I would also love a windows .exe version, not that much of a programmer myself even if I would like that!

be on the lookout for that in the following days.

@cristi
Nice writeup
Good job
Keep it up.

Verry good job! For my please only exe. Sourcecode I not understand.

I'll work on that :)

nice

Good post,how are you

great job!!

Nice work! Keep going.

Thanks for making this desktop app! I will use it when you make it available!

Hi @cristi I really like the app Idea. Also on last post I would like to see after Voter and Percentage how much steem represent 100% vote from @ionescur.
I'm looking forward for new features.
Also I started to develop a Chrome extension in order to improve experience with feed and user blog part. :)

Great Great JOB!

  ·  7 years ago (edited)

Cool stuff!

I tried it on my Linux (Manjaro) and Python 3.6 and it worked after I comment out these two lines:

line 13: root.iconbitmap('stm.ico')
line 22: style.theme_use('winnative')

I'm Python beginner so i have no clue what is going on, just though to give you feedback. "winnative" may be something that is only on MS Windows?

I downloaded from your git-hub everything, I have stm.ico in the same folder as your code, I opened it and it shows correctly, so it is not corrupted...

Also another interesting thing, it works well on my account, but if I try my wife's (@anica) it returns exception. She never post any "main" post on her blog, but she did comment few times since she is playing papa peper's game. Maybe lack of blog post is causing a problem?

Here is traceback:

Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/al/py_36/7_steem/steem_desktop1/steem_desktop.pyw", line 60, in callback
post = piston.post.Post(acnt.steem.get_blog(entry1.get())[0])
IndexError: list index out of range

Great idea and concept.
looking forward to the upgraded version. What ever you are drinking or smoking, do not stop it's good stuff.

it's kool-aid :)