<html> <p>I always wanted to be able to save my Steem posts locally. After that better searching tools are available than the ones we have at the blockchain level.</p> <p>I have only started poking around the development APIs for Steem, and this is the first script with a real purpose I've done in Python. On top of that, I'm also kind of new to Ubuntu. :)</p> <p>If you are a dev and have been doing this for a while, you probably can write a more efficient script.</p> <p>I wasn't looking for efficiency when I wrote it, I was interested to learn, and from there maybe others who are also Python beginners or haven't tried to code using Steem APIs. Hence the extensive comments.</p> <h3>Features and options:</h3> <ul><li>saves all your markdown posts as .md files</li><li>saves all your raw HTML posts as .html files</li><li>you can set a main sub-directory or sub-path in the current directory where the files will be placed</li><li>posts will be placed in subdirectories based on the creation date (year-month) or primary tag - option to set at the beginning of the script</li><li>you can save the posts for any account</li><li>you can save resteemed posts as well or not</li><li>you can add tags at the end of the post or not</li><li>title is automatically added as H1 at the beginning of the post</li></ul> <p>I've tested the script on Python 3.7.4, but I believe it should work on earlier versions. Also the script is written for Linux/Ubuntu, for Windows you will need to adapt the parts of the script handling paths and creation of directories.</p> <p>You will also need a good Markdown viewer/editor to see the saved files. I used Typora, but it looks like this will be a paid software when it exits beta version, so a good free alternative will be nice.</p> <p>So, here's the Python script. Pay attention, settings are hard coded, you'll have to manually change them.</p> <p>While I'm far from a Python or Steem dev expert, if you have questions let me know.</p> <p>Feedback to improve from more experienced devs is welcomed as well. :)</p> <pre><code>import os<br/>import sys<br/>import json<br/>from steem import Steem<br/>s = Steem()<br/><br/># script parameters<br/># =================<br/><br/># author<br/>author_name = 'testuser123'<br/><br/># relative directory under which the posts will be saved (don't add a final "/"!)<br/>main_save_dir = 'steem-posts-' + author_name<br/><br/># structure of directories under which posts will be saved<br/># Options:<br/># primary-tag - posts are saved under their primary tag subdirectory<br/># year-month - posts are saved under the year-month of their creation date subdirectory<br/>dir_struct_option = 'year-month'<br/>print('Save posts by ' + dir_struct_option)<br/><br/># bool flag to determine if tags are added at the end of the post or not<br/>adding_tags_to_saved_post = True<br/>print('Adding tags to the end of each post? ' + str(adding_tags_to_saved_post))<br/><br/># bool flag to determine if to save resteemed posts of other authors as well<br/>include_resteem_posts = False<br/>print('Include resteemed posts? ' + str(include_resteem_posts))<br/><br/># =====================<br/># end script parameters<br/>#<br/><br/>#create main save directory (as a subdirectory or sub-path of the current directory)<br/>try:<br/> os.makedirs(main_save_dir)<br/> print('Directory ' + main_save_dir + ' created in current directory ' + os.curdir)<br/>except FileExistsError:<br/> print('Directory ' + main_save_dir + ' already exists in current directory ' + os.curdir)<br/>except OSError:<br/> print('Directory ' + main_save_dir + ' couldn\'t be created in current directory ' + os.curdir)<br/><br/>#save current dir<br/>cur_dir_saved = os.curdir<br/><br/># loops through all the posts of the given author<br/># we break out of the loop after we reach the last post of the author<br/>i = 1<br/>while True:<br/> <br/> #retrieve current blog post info<br/> #theoretically we can retreieve more than one blog per call, in my tests anything more than 2 generated an error, so I prefered to take them one by one<br/> try:<br/> blogs = s.get_blog(author_name, i, 1)<br/> except Exception:<br/> print('Couldn\'t get blog #' + str(i) + '. Trying again. Ctrl+C to interrupt.')<br/> continue<br/> #is it empty? then we reached the end and we should break out of the loop<br/> if blogs == []: break<br/><br/> #is it the author's post or a resteem?<br/> #if it's a resteem continue from the next iteration and resteems are not to be included<br/> if blogs[0]['comment']['author'] != author_name:<br/> if not include_resteem_posts:<br/> print('Post #' + str(i) + ' author is ' + blogs[0]['comment']['author'] + '. Skipping it.')<br/> i += 1<br/> continue<br/> else:<br/> print('Post #' + str(i) + ' author is ' + blogs[0]['comment']['author'] + '. Including it.')<br/><br/> #choose the name of the subdir where to place the saved posts<br/> #(i.e. posts can be saved by primary-tag or date [year-month])<br/> if dir_struct_option == 'primary-tag':<br/> subdir_name = 'tags/' + blogs[0]['comment']['category']<br/> elif dir_struct_option == 'year-month':<br/> subdir_name = 'date/' + blogs[0]['comment']['created'][0:7]<br/><br/> #attempt to create the subdir first<br/> if cur_dir_saved == '.':<br/> dir_name = main_save_dir + '/' + subdir_name<br/> elif cur_dir_saved == '/':<br/> dir_name = cur_dir_saved + main_save_dir + '/' + subdir_name<br/> else:<br/> dir_name = cur_dir_saved + '/' + main_save_dir + '/' + subdir_name<br/><br/> #create the subdirectory/ies where we will place our files<br/> try:<br/> os.makedirs(dir_name)<br/> print('Directory ' + dir_name + ' created.')<br/> except FileExistsError:<br/> pass<br/> except OSError:<br/> print('Directory ' + dir_name + ' couldn\'t be created.')<br/> raise OSError<br/><br/> #deserialize json_metadata<br/> json_metadata_str = blogs[0]['comment']['json_metadata']<br/> json_metadata_dict = json.loads(json_metadata_str)<br/><br/> try:<br/> format = json_metadata_dict['format']<br/> except KeyError:<br/> print('Broken blog json before format key. Defaulting to "markdown+html".')<br/> format = 'markdown+html'<br/><br/> #is the post markdown?<br/> if format == 'markdown+html' or format == 'markdown':<br/> #choose the filename as the blog post's permlink + ".md" extension<br/> filename = blogs[0]['comment']['permlink'] + '.md'<br/> <br/> if (adding_tags_to_saved_post):<br/> #get tags and create a string with them to add at the end of the post<br/> try:<br/> tags_str = '\n\n'<br/> for x in json_metadata_dict['tags']:<br/> tags_str += '#' + x + ' '<br/> except KeyError:<br/> tags_str = ''<br/> else: tags_str = ''<br/><br/> #get post body<br/> body = blogs[0]['comment']['body']<br/><br/> #get post title<br/> title = blogs[0]['comment']['title']<br/><br/> #format the body to also include title at the begining as H1 and tags (with #) at the end<br/> body_with_title_and_tags = '# ' + title + '\n\n' + body + tags_str<br/> #or is the post raw html?<br/> else:<br/> #choose the filename as the blog post's permlink + ".md" extension<br/> filename = blogs[0]['comment']['permlink'] + '.html'<br/><br/> if (adding_tags_to_saved_post):<br/> #get tags and create a string with them to add at the end of the post<br/> try:<br/> tags_str = '\n\n'<br/> for x in json_metadata_dict['tags']:<br/> tags_str += '<a id="' + x + '" href="#' + x + '">' + x + '</a> '<br/> except KeyError:<br/> tags_str = ''<br/> else: tags_str = ''<br/><br/> #get post body<br/> body = blogs[0]['comment']['body']<br/><br/> #get post title<br/> title = blogs[0]['comment']['title']<br/><br/> #format the body to also include title at the begining as H1 and tags (with #) at the end<br/> body_with_title_and_tags = '<h1>' + title + '</h1>\n\n' + body + tags_str<br/><br/> #write post to file (overwrite if exists)<br/> try:<br/> f = open(dir_name + '/' + filename, 'w')<br/> f.write(body_with_title_and_tags)<br/> f.close()<br/> print('Post #' + str(i) + ': ' + dir_name + '/' + filename + ' successfully saved.')<br/> except OSError:<br/> print('Something went wrong while attempting to write file ' + dir_name + '/' + filename)<br/> raise OSError<br/><br/> i+=1<br/><br/>print('No (more) posts.')</code></pre> <p></p> <p><b>Update:</b> <i>Edited the post because in the original there were some errors due to the copy-pasted code to html, which I haven't initially tested.</i></p> </html>
author | gadrian |
---|---|
permlink | python-script-to-save-all-your-posts-as-markdown-or-html-files |
category | hive-139531 |
json_metadata | "{"tags": ["python", "save-allposts", "markdown", "html", "technology", "neoxian", "palnet"], "app": "steemit/0.2", "format": "html", "canonical_url": "https://peakd.com/hive-139531/@gadrian/python-script-to-save-all-your-posts-as-markdown-or-html-files"}" |
created | 2020-03-09 18:24:06 |
last_update | 2020-05-24 16:06:39 |
depth | 0 |
children | 10 |
last_payout | 2020-03-16 18:24:06 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 3.627 HBD |
curator_payout_value | 3.570 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 10,132 |
author_reputation | 637,102,342,684,233 |
root_title | "Python Script to Save All Your Posts As MarkDown or Html Files" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 96,212,108 |
net_rshares | 27,620,538,818,304 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
gregory-f | 0 | 1,871,780,114 | 0.21% | ||
hedge-x | 0 | 345,694,748,344 | 100% | ||
kenny-crane | 0 | 152,441,807,652 | 25% | ||
igl00 | 0 | 1,592,373,784 | 100% | ||
matt-a | 0 | 8,723,914,722 | 0.25% | ||
redpalestino | 0 | 486,317,060,175 | 6.5% | ||
ausbitbank | 0 | 1,525,461,040,044 | 100% | ||
gikitiki | 0 | 2,688,641,255 | 6.5% | ||
arcange | 0 | 51,926,192,273 | 3% | ||
raphaelle | 0 | 1,111,429,163 | 3% | ||
sazbird | 0 | 10,948,226,457 | 6.5% | ||
remlaps | 0 | 35,447,006,666 | 100% | ||
shaka | 0 | 325,276,218,118 | 9.75% | ||
cmp2020 | 0 | 40,127,367,278 | 37% | ||
chrispop | 0 | 783,390,162 | 50% | ||
uwelang | 0 | 56,074,110,031 | 4.87% | ||
aggroed | 0 | 5,521,195,830,585 | 100% | ||
remlaps1 | 0 | 472,299,106,066 | 100% | ||
vannour | 0 | 1,895,056,609 | 2.43% | ||
ethandsmith | 0 | 15,985,916,562 | 3.25% | ||
cardboard | 0 | 22,054,806,266 | 100% | ||
alexvan | 0 | 252,140,663,499 | 100% | ||
steemnet | 0 | 1,257,440,011 | 9.75% | ||
remlaps2 | 0 | 6,136,425,864 | 100% | ||
shaunmza | 0 | 5,256,335,960 | 13% | ||
cub2 | 0 | 3,362,649,706 | 37% | ||
dhimmel | 0 | 2,359,688,341,630 | 100% | ||
daio | 0 | 8,231,443,273 | 100% | ||
ili0braz | 0 | 1,124,611,845 | 99% | ||
mvd | 0 | 661,754,652,996 | 100% | ||
martie7 | 0 | 87,187,133,197 | 100% | ||
jagged | 0 | 4,353,871,140 | 1.95% | ||
valued-customer | 0 | 11,072,562,268 | 25% | ||
farizal | 0 | 15,360,337,263 | 100% | ||
pennsif | 0 | 311,750,476,878 | 58% | ||
techken | 0 | 0 | 0.04% | ||
suesa | 0 | 71,642,594,401 | 20% | ||
netuoso | 0 | 340,958,816,010 | 100% | ||
becometheartist | 0 | 16,109,839,499 | 13% | ||
edkarnie | 0 | 39,497,009,956 | 10% | ||
zipity | 0 | 3,189,218,464 | 100% | ||
viorel | 0 | 639,792,584 | 75% | ||
cryptopassion | 0 | 1,436,020,295 | 13% | ||
minismallholding | 0 | 57,226,347,268 | 25% | ||
modemser | 0 | 779,389,821 | 100% | ||
jjb777 | 0 | 1,600,356,557 | 100% | ||
free999enigma | 0 | 48,880,024,025 | 25% | ||
crokkon | 0 | 40,316,231,697 | 100% | ||
markjason | 0 | 1,678,806,088 | 6.5% | ||
johnwatson | 0 | 6,185,375,976 | 13% | ||
sorin.cristescu | 0 | 513,668,100,459 | 50% | ||
majes.tytyty | 0 | 738,372,493 | 0.07% | ||
izzydawn | 0 | 2,940,965,235 | 25% | ||
jlsplatts | 0 | 6,948,679,646 | 1.5% | ||
qurator | 0 | 46,263,878,475 | 0.36% | ||
fknmayhem | 0 | 1,060,486,967 | 8.58% | ||
astrizak | 0 | 15,893,909,319 | 100% | ||
familyprotection | 0 | 374,036,549,758 | 70% | ||
blockbrothers | 0 | 2,283,611,851,285 | 100% | ||
abbak7 | 0 | 111,121,337,818 | 33% | ||
steinhammer | 0 | 547,079,918 | 50% | ||
emrebeyler | 0 | 77,188,436,689 | 9.75% | ||
bobinson | 0 | 156,265,612,511 | 100% | ||
lishu | 0 | 9,623,651,407 | 50% | ||
tute | 0 | 95,969,662 | 100% | ||
mytechtrail | 0 | 41,888,151,182 | 20% | ||
sunnyali | 0 | 1,622,114,317 | 50% | ||
qustodian | 0 | 1,148,450,875 | 0.36% | ||
alexandraioana26 | 0 | 18,781,303,241 | 50% | ||
obvious | 0 | 20,070,775,391 | 9.75% | ||
rombtc | 0 | 6,195,646,484 | 70% | ||
sco | 0 | 8,132,008,083 | 7.8% | ||
stuffbyspencer | 0 | 136,449,227,425 | 100% | ||
turekivanoz | 0 | 535,850,246 | 100% | ||
suesa-random | 0 | 1,781,448,323 | 50% | ||
rbm | 0 | 4,244,405,105 | 75% | ||
realtreebivvy | 0 | 1,900,017,325 | 25% | ||
lemony-cricket | 0 | 23,738,180,524 | 6.5% | ||
warpedpoetic | 0 | 2,541,283,933 | 13% | ||
ericburgoyne | 0 | 7,028,492,548 | 20% | ||
blervin | 0 | 4,960,572,984 | 13% | ||
ruth-elise | 0 | 961,084,551 | 50% | ||
alexdory | 0 | 106,523,609,404 | 100% | ||
life-relearnt | 0 | 1,059,665,733 | 12.5% | ||
organduo | 0 | 1,733,920,490,313 | 50% | ||
vargart | 0 | 1,539,277,022 | 25% | ||
erikah | 0 | 142,681,529,514 | 50% | ||
azircon | 0 | 969,601,385,461 | 10.4% | ||
alphasteem | 0 | 2,807,982,772 | 10% | ||
photovitamin | 0 | 3,085,350,612 | 30% | ||
stmdev | 0 | 213,573,029 | 2% | ||
thevote | 0 | 5,634,032,689 | 4.29% | ||
nurainiwahab | 0 | 857,937,022 | 100% | ||
flaxz | 0 | 48,508,155,936 | 25% | ||
gadrian | 0 | 19,602,980,299 | 100% | ||
tonimontana | 0 | 541,486,405 | 16.62% | ||
tijntje | 0 | 1,251,251,891 | 6.5% | ||
blurrydude | 0 | 2,204,181,051 | 100% | ||
soteyapanbot | 0 | 93,252,418,624 | 100% | ||
les.sisters | 0 | 557,480,652 | 100% | ||
petertag | 0 | 28,485,637,911 | 100% | ||
powerguy | 0 | 177,345,144,363 | 25% | ||
andreasgrubhofer | 0 | 15,249,078,767 | 14% | ||
steemromania | 0 | 130,154,831,299 | 100% | ||
blockways | 0 | 600,174,421 | 13% | ||
spamfarmer | 0 | 715,679,732 | 50% | ||
carolinaelly | 0 | 2,690,359,302 | 100% | ||
profitcheck | 0 | 1,475,751,079 | 100% | ||
pereu4ivatel | 0 | 872,696,221 | 100% | ||
ressolid | 0 | 6,186,880,942 | 50% | ||
ro-witness | 0 | 69,551,624,924 | 30% | ||
lux-witness | 0 | 16,143,456,641 | 75% | ||
voxmortis | 0 | 1,254,156,906 | 0.13% | ||
spoke | 0 | 19,625,777,225 | 10.4% | ||
remlaps-lite | 0 | 15,482,810,013 | 100% | ||
laissez-faire | 0 | 127,322,238 | 100% | ||
macoolette | 0 | 33,372,788,437 | 2.6% | ||
lion200 | 0 | 73,238,431,823 | 40% | ||
sbi9 | 0 | 152,620,677,618 | 93.13% | ||
milky-concrete | 0 | 43,928,128,929 | 13% | ||
teenagecrypto | 0 | 13,347,182,501 | 100% | ||
adalger | 0 | 13,824,277,660 | 1.3% | ||
sorin.lite | 0 | 40,305,412,465 | 100% | ||
bluerobo | 0 | 24,126,005,381 | 100% | ||
ga-sm | 0 | 625,589,980 | 100% | ||
maxsieg | 0 | 1,204,583,537 | 100% | ||
epicdice | 0 | 86,773,652,893 | 3.9% | ||
gadrian-sp | 0 | 265,797,529,358 | 100% | ||
tinyhousecryptos | 0 | 538,248,771 | 5% | ||
yarak | 0 | 310,077,973 | 100% | ||
ph1102 | 0 | 114,944,663,572 | 80% | ||
imbartley | 0 | 1,486,842,612 | 50% | ||
olaf123 | 0 | 940,435,753 | 1% | ||
partitura.stem | 0 | 327,263,507 | 100% | ||
babytarazkp | 0 | 623,071,727 | 10% | ||
shtup | 0 | 986,024,129 | 6.5% | ||
cryptopassionpal | 0 | 107,602,059 | 40% | ||
curangel | 0 | 5,728,009,681,219 | 13% | ||
dpoll.witness | 0 | 759,743,089 | 6.5% | ||
spinvest-leo | 0 | 3,168,741,180 | 4% | ||
joshmania | 0 | 71,484,048,277 | 6.5% | ||
tonimontana.neo | 0 | 0 | 0.74% | ||
yggdrasil.laguna | 0 | 332,327,910 | 70% | ||
antiretroviral | 0 | 1,157,025,556 | 6.5% | ||
toni.pal | 0 | 0 | 0.73% | ||
garlet | 0 | 2,245,387,263 | 100% | ||
davidlionfish | 0 | 3,432,518,036 | 100% |
why use steem module and not beem module? many steem features are no longer up to date. https://github.com/holgern/beem beem is a bit more uptodate. what i noticed though when the api.steemit.com site was down, is that it relies even if you specify a different node, still on the steemit node, so when installing it from github you first have to replace all api.steemit.com in the sourcecode with a different API you trust. also ive been trying to write posts and upvote using directly the API requests over the requests module to be able to update my code more flexibly and not rely on another steem user but i havent figured out yet how to correctly format the broadcast operation and i havent found anyone yet willing to help me.... but here is what i have for example to get the blog posts from your steem account: import json import ast import requests def query(node,data,tor): headers = {'Content-Type': 'application/json',} if tor==False: return requests.post(node,headers=headers, data=data) else: session=requests.session() session.proxies={'http': 'socks5://127.0.0.1:9050', 'https': 'socks5://127.0.0.1:9050'} return session.post(node,headers=headers, data=data, proxy=proxy) def get_blog(name,nod,tor,start,end): querry='{"jsonrpc":"2.0", "method":"condenser_api.get_blog", "params":["'+name+'",'+str(start)+','+str(end)+'], "id":1}' return dict(dict(json.loads(query(nod,querry,tor).text))["result"][0]) i havent tested yet (and i see now tht i comment some mistakes) if the tor function works yet, but when having the tor browser open and sending the traffic over local host port 9050 would usually send the traffic through the tor browser. if someone were so kind and help me out how to correctly write a vote query broadcast operation i would be very grateful
author | maxsieg |
---|---|
permlink | re-gadrian-q6zfq9 |
category | hive-139531 |
json_metadata | {"tags":["hive-139531"],"app":"steempeak/2020.03.1"} |
created | 2020-03-10 14:47:00 |
last_update | 2020-03-10 14:54:51 |
depth | 1 |
children | 1 |
last_payout | 2020-03-17 14:47:00 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.207 HBD |
curator_payout_value | 0.206 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 1,836 |
author_reputation | 4,035,631,210,399 |
root_title | "Python Script to Save All Your Posts As MarkDown or Html Files" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 96,236,463 |
net_rshares | 2,286,264,765,932 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
dhimmel | 0 | 2,266,644,812,412 | 98% | ||
gadrian | 0 | 19,619,953,520 | 100% |
> why use steem module and not beem module? many steem features are no longer up to date. I haven't seen Holger in a while. Will he or someone else keep updating beem? Not that there's anyone updating Steem APIs at Steemit, Inc. now. You're already more experienced in Python and Steem/beem APIs than I am. Maybe you'll receive some guidance from someone who is even more experienced...
author | gadrian |
---|---|
permlink | re-maxsieg-q6zhfc |
category | hive-139531 |
json_metadata | {"tags":["hive-139531"],"app":"steempeak/2020.03.1"} |
created | 2020-03-10 15:23:39 |
last_update | 2020-03-10 15:23:39 |
depth | 2 |
children | 0 |
last_payout | 2020-03-17 15:23:39 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 388 |
author_reputation | 637,102,342,684,233 |
root_title | "Python Script to Save All Your Posts As MarkDown or Html Files" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 96,237,537 |
net_rshares | 0 |
### According to the Bible, *Graven Images: Should You Worship These According to the Bible?* ### Watch the Video below to know the Answer... ***(Sorry for sending this comment. We are not looking for our self profit, our intentions is to preach the words of God in any means possible.)*** https://youtu.be/vJWTMjWmdMQ Comment what you understand of our Youtube Video to receive our full votes. We have 30,000 #SteemPower. It's our little way to **Thank you, our beloved friend.** Check our [Discord Chat](https://discord.gg/vzHFNd6) Join our Official Community: https://steemit.com/created/hive-182074
author | olaf123 |
---|---|
permlink | l93gp7an8vn |
category | hive-139531 |
json_metadata | "" |
created | 2020-03-09 18:32:21 |
last_update | 2020-03-09 18:32:21 |
depth | 1 |
children | 1 |
last_payout | 2020-03-16 18:32:21 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 607 |
author_reputation | -10,813,981,844,129 |
root_title | "Python Script to Save All Your Posts As MarkDown or Html Files" |
beneficiaries | [] |
max_accepted_payout | 10,000.000 HBD |
percent_hbd | 100 |
post_id | 96,212,316 |
net_rshares | 0 |
My name is Jesus Christ and I do not condone this spamming in my name. Your spam is really fucking annoying @hiroyamagishi aka @overall-servant aka @olaf123 and your spam-bot army. This is not what my father, God, created the universe for. You must stop spamming immediately or I will make sure that you go to hell. If anybody wants to support my eternal battling of these relentless religion spammers, please consider upvoting this comment or delegating to @the-real-jesus
author | the-real-jesus |
---|---|
permlink | re-olaf123-q6y1am |
category | hive-139531 |
json_metadata | {"tags":["hive-139531"],"app":"steempeak/2020.03.1"} |
created | 2020-03-09 20:46:09 |
last_update | 2020-03-09 20:46:09 |
depth | 2 |
children | 0 |
last_payout | 2020-03-16 20:46:09 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.040 HBD |
curator_payout_value | 0.040 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 474 |
author_reputation | 753,830,482,788 |
root_title | "Python Script to Save All Your Posts As MarkDown or Html Files" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 96,215,893 |
net_rshares | 521,551,836,463 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
dhimmel | 0 | 521,551,836,463 | 23% |
As a note, I use VS Code (because I'm a dev I guess) w/ an extension to preview .md files as I write them (basically like writing a post with preview), probably similar free apps to do it with that aren't as massive as VS Code though.
author | petertag |
---|---|
permlink | re-gadrian-q6zno0 |
category | hive-139531 |
json_metadata | {"tags":["hive-139531"],"app":"steempeak/2020.03.2"} |
created | 2020-03-10 17:38:12 |
last_update | 2020-03-10 17:38:12 |
depth | 1 |
children | 3 |
last_payout | 2020-03-17 17:38:12 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.011 HBD |
curator_payout_value | 0.011 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 234 |
author_reputation | 17,170,168,350,944 |
root_title | "Python Script to Save All Your Posts As MarkDown or Html Files" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 96,240,785 |
net_rshares | 158,691,728,047 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
gadrian | 0 | 18,835,736,813 | 100% | ||
dustsweeper | 0 | 139,855,991,234 | 24.07% |
Yes, I used VS Code to write this Python script as well. Didn't try it for md though, but I will. Thanks for mentioning it.
author | gadrian |
---|---|
permlink | re-petertag-q6zonr |
category | hive-139531 |
json_metadata | {"tags":["hive-139531"],"app":"steempeak/2020.03.2"} |
created | 2020-03-10 17:59:57 |
last_update | 2020-03-10 17:59:57 |
depth | 2 |
children | 2 |
last_payout | 2020-03-17 17:59:57 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 123 |
author_reputation | 637,102,342,684,233 |
root_title | "Python Script to Save All Your Posts As MarkDown or Html Files" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 96,241,247 |
net_rshares | 0 |
Just checked it, I was using Markdown Preview Enhanced for the extension, looks like there are a few though. No problem, nice script man!
author | petertag |
---|---|
permlink | re-gadrian-q6zoxs |
category | hive-139531 |
json_metadata | {"tags":["hive-139531"],"app":"steempeak/2020.03.2"} |
created | 2020-03-10 18:05:39 |
last_update | 2020-03-10 18:05:39 |
depth | 3 |
children | 1 |
last_payout | 2020-03-17 18:05:39 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 137 |
author_reputation | 17,170,168,350,944 |
root_title | "Python Script to Save All Your Posts As MarkDown or Html Files" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 96,241,361 |
net_rshares | 0 |
Great.. I will try this out.
author | sathyasankar |
---|---|
permlink | q6zi9a |
category | hive-139531 |
json_metadata | {"app":"steemit/0.2"} |
created | 2020-03-10 15:41:36 |
last_update | 2020-03-10 15:41:36 |
depth | 1 |
children | 0 |
last_payout | 2020-03-17 15:41:36 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 28 |
author_reputation | 25,037,930,470,038 |
root_title | "Python Script to Save All Your Posts As MarkDown or Html Files" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 96,237,963 |
net_rshares | 18,901,162,751 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
gadrian | 0 | 18,901,162,751 | 100% |
<center>[](https://steemitboard.com/@gadrian) <center>@gadrian, sorry to see you have less Steem Power. Your level lowered and you are now a **Red Fish**!</center> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
author | steemitboard |
---|---|
permlink | steemitboard-notify-gadrian-20200316t163718000z |
category | hive-139531 |
json_metadata | {"image":["https://steemitboard.com/img/notify.png"]} |
created | 2020-03-16 16:37:18 |
last_update | 2020-03-16 16:37:18 |
depth | 1 |
children | 0 |
last_payout | 2020-03-23 16:37:18 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 436 |
author_reputation | 38,975,615,169,260 |
root_title | "Python Script to Save All Your Posts As MarkDown or Html Files" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 96,410,030 |
net_rshares | 0 |