【Programming】Java Development vol.2 / Used SteemJ to count the number of Japanese Steemian / SteemJを使ってJapanese Steemianの数をカウントしてみた。

前回に引き続きSteemJを使いJavaからSteem APIを呼び出してみたいと思います。

https://github.com/marvin-we/steem-java-api-wrapper

iond0xml4z.png

javaneseタグで投稿されているSteemianのリストとそのSteemianのレピュテーションを表示したいと思います。ここではSteemJの詳細な使い方は解説しません。

56dwbycshg.png

以下取得ソースです。

// Get DiscussionQuery
DiscussionQuery discussionQuery = new DiscussionQuery();
discussionQuery.setTag("japanese");
discussionQuery.setLimit(100);

List<Discussion> listDiscussion = steemJ.getDiscussionsBy(discussionQuery, DiscussionSortType.GET_DISCUSSIONS_BY_CREATED);
LOGGER.info("discussion size:{}", listDiscussion.size());
LOGGER.info("------------- Get discussion query! -------------");
    AtomicInteger i = new AtomicInteger();
    listDiscussion.stream()
    .map(Discussion::getAuthor)
    .distinct()
    .sorted(comparing(AccountName::getName))
    .forEach(account -> LOGGER.info("author[{}]: {}({})", i.getAndIncrement(), account.getName(), getAccountReputation(steemJ, account)));
    LOGGER.info("japanease steemians:{}", i);

出力結果はこちら。ユーザー名の昇順で出力しています。

ud1db8wc12.png

------------- Get discussion query! -------------
author[0]: abamogeteru(52)
author[1]: abbey701(44)
author[2]: aitommylr(60)
author[3]: akipponn(61)
author[4]: amblog(60)
author[5]: andresaulait(55)
author[6]: areuspicy(56)
author[7]: argon(63)
author[8]: bbxb1a4(58)
author[9]: chronogn(57)
author[10]: crypto-coffee(52)
author[11]: cticket(53)
author[12]: denjiro(56)
author[13]: djynn(65)
author[14]: evansezjapanese(46)
author[15]: fusan(59)
author[16]: glastar(61)
author[17]: hhhiiirrrooo(55)
author[18]: hiradate(62)
author[19]: illustrator-jp(40)
author[20]: iyuta(65)
author[21]: kamada3(56)
author[22]: kan6034(53)
author[23]: kaneni(54)
author[24]: kayoko(65)
author[25]: kinakomochi(68)
author[26]: krispnatz(52)
author[27]: miho(63)
author[28]: mike2004(27)
author[29]: nadeshiko(62)
author[30]: niwatako(25)
author[31]: noopu(65)
author[32]: osarusan(55)
author[33]: piercesword(49)
author[34]: promari(55)
author[35]: sallyfun(60)
author[36]: saraneco(51)
author[37]: shizuka(59)
author[38]: sho-t(56)
author[39]: shogo(65)
author[40]: shokomint(53)
author[41]: skyleap(65)
author[42]: spinels.records(50)
author[43]: steemit112i(38)
author[44]: sumi(62)
author[45]: suminohou(58)
author[46]: sweetsqueenyumi(58)
author[47]: tama.arin(51)
author[48]: torachibi(60)
author[49]: ultraseven(64)
author[50]: usagi-alis(55)
author[51]: waraji-report(41)
author[52]: yadamaniart(69)
author[53]: yasu(64)
author[54]: yasu24(66)
author[55]: yoshiko(69)
author[56]: ytrphoto(69)
japanease steemians57

あまり見たくはないかもしれませんが、レピュテーションの降順にしてみます。

author[0]: yadamaniart(69)
author[1]: ytrphoto(69)
author[2]: yoshiko(69)
author[3]: kinakomochi(68)
author[4]: yasu24(66)
author[5]: shogo(65)
author[6]: skyleap(65)
author[7]: iyuta(65)
author[8]: noopu(65)
author[9]: djynn(65)
author[10]: kayoko(65)
author[11]: yasu(64)
author[12]: ultraseven(64)
author[13]: miho(63)
author[14]: argon(63)
author[15]: sumi(62)
author[16]: hiradate(62)
author[17]: nadeshiko(62)
author[18]: glastar(61)
author[19]: akipponn(61)
author[20]: amblog(60)
author[21]: torachibi(60)
author[22]: aitommylr(60)
author[23]: sallyfun(60)
author[24]: fusan(59)
author[25]: shizuka(59)
author[26]: bbxb1a4(58)
author[27]: sweetsqueenyumi(58)
author[28]: suminohou(58)
author[29]: chronogn(57)
author[30]: sho-t(56)
author[31]: kamada3(56)
author[32]: areuspicy(56)
author[33]: denjiro(56)
author[34]: usagi-alis(55)
author[35]: promari(55)
author[36]: osarusan(55)
author[37]: andresaulait(55)
author[38]: hhhiiirrrooo(55)
author[39]: kaneni(54)
author[40]: cticket(53)
author[41]: kan6034(53)
author[42]: shokomint(53)
author[43]: crypto-coffee(52)
author[44]: krispnatz(52)
author[45]: abamogeteru(52)
author[46]: saraneco(51)
author[47]: tama.arin(51)
author[48]: spinels.records(50)
author[49]: piercesword(49)
author[50]: evansezjapanese(46)
author[51]: abbey701(44)
author[52]: waraji-report(41)
author[53]: illustrator-jp(40)
author[54]: steemit112i(38)
author[55]: mike2004(27)
author[56]: niwatako(25)

直近のjapaneseの投稿から今回は結果を拾いましたので、漏れているSteemianの皆様も多いと思います。

レビュテーションの計算は、Githubで公開されているPythonの計算式をJavaに置き換えてみました。

List<AccountReputation> accountReputation = steemJ.getAccountReputations(accountName, 1);
long raw = accountReputation.get(0).getReputation();
String rawStr = String.valueOf(raw);
boolean neg = rawStr.charAt(0) == '-' ? true : false;
rawStr = neg ? rawStr.substring(1) : rawStr;

double out = Math.log10(Long.parseLong(rawStr));
if (out == Double.NaN) out = 0;
out = Math.max(out - 9, 0);
out = (neg ? -1 : 1) * out;
out = out * 9 + 25;

repInt = (int) out;

トライアンドエラーで色々と遊んでいるので、ソースは汚いのですが、まずはこれで動作させました。

DiscussionQueryの仕様で最大100件までしか一度に取得できませんので、取得できてないSteemianの方もいます。全て取得するには何かしら工夫が入りますね。

RGgukq5E6HBS5wrYDNU5euL5kWt6DCj2LPGHAqZSwkfuoLdEdH7eB2otBDVMtGomJ8P4VL5cKfjf69rtMbw4585DE9g1mLB8NZM7JXuMHuBBCgyw74nJcZCj8hD8Z6n.png
written by tamito0201

プログラミングとのご縁結びならプロマリへ。

オンラインプログラミング学習スクールのプロマリは、プログラミングの初学者の皆様を応援しています。プログラミング講師と一緒に面白いアプリを作りませんか。

btpb5hmlur.png

omchy0nhkl.png

The programming school "Promari" will help you learn programming. "Promari" is supporting the first scholars of programming. Let's develop an application with our programming instructor.

H2
H3
H4
Upload from PC
Video gallery
3 columns
2 columns
1 column
9 Comments