Groovyではてブカウンター風はてなスターカウンターを作成する   10)完結編 作成したはてなスターカウンターをはてダに貼り付ける

作成したはてなスターカウンターをはてダに貼り付けて完成だ。
はてなフォトライフにすると毎回URLが変わってしまう。
かと言って自前のサーバなんて持ってない。
そんな時は、Dropbox!!
DropboxのPublic はファイル共有、簡易Webサーバとして使うことができるからだ。


使い方は以下。

1.設定をカスタマイズする

URIの変更

MYURIの"orangeclover"の部分を自分のはてなIDに変更する

/* orangeclover is changed to your hatena id. */
MYURI="http://s.hatena.ne.jp/blog.json/http://d.hatena.ne.jp/orangeclover/"
色の指定

コメントの15色から1つを選択して、MYCOLORに設定する。
存在しない色を選択した場合は、デフォルトの"deepblue"になる

/* "deepblue", "darkgray", "green", "purple", "brown", "red", "sepia", "pink",
   "tea", "lightgray", "lightblue", "white", "black", "lime", "orange" 
   default:"deepblue"
*/
MYCOLOR="orange"
保存先の変更

DropBoxのpublicフォルダもしくはpublicのサブフォルダにカウンターを保存する。

/* this path is changed to your save fiel path. */
SAVEFILE="D:\\MyDropbox\\My Dropbox\\Public\\hatenastar\\HatenaStarCount.png"
ソース

前回の状態からmapのアクセス方法を、配列からプロパティのような.を使うように変更

変更前 ColorMap[myColor]["star"]
変更後 ColorMap."$myColor".star
import groovy.swing.j2d.*
import net.arnx.jsonic.JSON;

/* 
 * customize 
 */
/* orangeclover is changed to your hatena id. */
MYURI="http://s.hatena.ne.jp/blog.json/http://d.hatena.ne.jp/orangeclover/"

/* "deepblue", "darkgray", "green", "purple", "brown", "red", "sepia", "pink",
   "tea", "lightgray", "lightblue", "white", "black", "lime", "orange" 
   default:"deepblue"
*/
MYCOLOR="orange"

/* this path is changed to your save fiel path. */
SAVEFILE="D:\\MyDropbox\\My Dropbox\\Public\\hatenastar\\HatenaStarCount.png"

/* 
 * Don't touch after this line. 
 */
class HatenaStar {
    String title;
    String uri;
    Integer star_count;
}

ColorMap=["deepblue":  ["highlight":'#839ce6', "body":'#1841cd', "shadow":'#10205a', "star":'#83a4ff', "number":'white']
        , "darkgray":  ["highlight":'#949ca4', "body":'#6a6a7b', "shadow":'#414a52', "star":'#cdcdcd', "number":'white']
        , "green":     ["highlight":'#73bdc5', "body":'#4194a4', "shadow":'#206a73', "star":'#b4f6de', "number":'white']
        , "purple":    ["highlight":'#9473c5', "body":'#6a39a4', "shadow":'#41207b', "star":'#b49ce6', "number":'white']
        , "brown":     ["highlight":'#bd8362', "body":'#9c5a31', "shadow":'#733918', "star":'#e6b494', "number":'white']
        , "red":       ["highlight":'#e65a52', "body":'#cd2018', "shadow":'#9c0000', "star":'#ff9494', "number":'white']
        , "sepia":     ["highlight":'#eed5ac', "body":'#debd6a', "shadow":'#bd8341', "star":'#ffeed5', "number":'white']
        , "pink":      ["highlight":'#f6bdbd', "body":'#ee8383', "shadow":'#cd5a62', "star":'#ffdede', "number":'white']
        , "tea":       ["highlight":'#d5e6cd', "body":'#b4cda4', "shadow":'#94ac7b', "star":'#eef6ee', "number":'white']
        , "lightgray": ["highlight":'#deded5', "body":'#bdbdb4', "shadow":'#9c9494', "star":'#f6f6f6', "number":'white']
        , "lightblue": ["highlight":'#d5e6ff', "body":'#8bb4ff', "shadow":'#6294ee', "star":'#eef6ff', "number":'white']
        , "white":     ["highlight":'#ffffff', "body":'#ffffff', "shadow":'#b4b4b4', "star":'#cdcdcd', "number":'#9c9c9c']
        , "black":     ["highlight":'#b4b4b4', "body":'#525252', "shadow":'#000000', "star":'#b4b4b4', "number":'white']
        , "lime":      ["highlight":'#bdffde', "body":'#5ae6a4', "shadow":'#41bd83', "star":'#deffee', "number":'white']
        , "orange":    ["highlight":'#ffd583', "body":'#ff9429', "shadow":'#ff7b18', "star":'#ffdea4', "number":'white']
]

myURI = new URL(MYURI)
hatenastar = JSON.decode(new InputStreamReader( myURI.openStream() ,"UTF-8"), HatenaStar.class)

myColor = ColorMap."$MYCOLOR"==null ? "deepblue" : MYCOLOR

gr = new GraphicsRenderer()
gr.renderToFile(SAVEFILE, 75, 14){

    antialias("on")
    rect(x:0, y:0, width:75, height:14,
        fill: color(ColorMap."$myColor".body),
        borderColor: color(ColorMap."$myColor".highlight),
        borderWidth:1
    )
    star(cx:7, cy:7, count:5, ir:2, or:4,
         fill: color(ColorMap."$myColor".star),
         borderColor: no
    )
    
    /* 3D-ish */
    /* right side of of star:Shadow */
    line(x1:14, y1:0, x2:14, y2:14, borderColor:color(ColorMap."$myColor".shadow), borderWidth:1)
    /* left side of the rectangle:Hilight */    
    line(x1:15, y1:0, x2:15, y2:14, borderColor:color(ColorMap."$myColor".highlight), borderWidth:1)
    /* right side of the rectangle:Shadow */
    line(x1:74, y1:0, x2:74, y2:14, borderColor:color(ColorMap."$myColor".shadow), borderWidth:1)
    /* base of the rectangle:Shadow */
    line(x1:0, y1:13, x2:75, y2:13, borderColor:color(ColorMap."$myColor".shadow), borderWidth:1)

    font(new java.awt.Font('Tahoma', java.awt.Font.BOLD, 10))
    text( x:70 - (hatenastar.star_count.toString().length() -1) * 10, y:4,
        text: hatenastar.star_count.toString(),
        fill: ColorMap."$myColor".number,
        borderColor: no
    )
}

2.カウンターを作成

groovy -classpath c:\usr\lib\jsonic\jsonic-1.1.3\jsonic-1.1.3.jar C:\usr\bin\GraphicsHatenaStarCount.groovy

3.カウンターのURLを取得する

Dropboxのpublicに作成したカウンターのURLを以下の方法で取得する。

右クリック > Dropbox > Copy Public Link 

http://dl.dropbox.com/u/645223/hatenastar/HatenaStarCount.png

4.はてなダイアリーに画像として貼り付ける。

はてなダイアリーの管理 > デザイン編集でサイドバーにはてなスターカウンターのURLを貼り付ける。

        <b>はてなスター</b>
        <br>
        <img src="http://dl.dropbox.com/u/645223/hatenastar/HatenaStarCount.png">
        <br>

4.自動更新

スタートアップか、タスクの登録して自動更新
今回はタスクに登録

4.1バッチファイルを作成
  • ファイル名
    C:\usr\bin\GraphicsHatenaStarCount.bat
  • 内容
    set JAVA_HOME=C:\usr\opt\java\jdk1.6.0_12
    set GROOVY_HOME=C:\usr\opt\groovy
    set PATH=%JAVA_HOME%\bin;%GROOVY_HOME%\bin;%PATH%
    call groovy -classpath c:\usr\lib\jsonic\jsonic-1.1.3\jsonic-1.1.3.jar C:\usr\bin\GraphicsHatenaStarCount.groovy
4.2このバッチのショートカットを作成する
  • ショートカット
    C:\usr\bin\GraphicsHatenaStarCount

ショートカットのプロパティで実行時の大きさを「最小化」にする

4.3タスクに登録
  • 実行するファイル名
  C:\usr\bin\GraphicsHatenaStarCount.lnk
4.4スケジュール
  • 日単位 5:00
  • 日単位 17:00

as you like

最近のキーワード







Groovyイン・アクション
Dierk Konig Andrew Glover Paul King Guillaume Laforge Jon Skeet
毎日コミュニケーションズ
売り上げランキング: 294340




Groovyイン・アクションを読むならあった方が便利かな。

ブックストッパー
ブックストッパー
posted with amazlet at 10.09.18

トモエ算盤
売り上げランキング: 614


Rubyレシピブックは「ほんたった」で立ててる

EDISON ほんたった黒(ハードケース入り)
株式会社エジソン
売り上げランキング: 2164