スマホからはてなブックマークを効率的に収集するためのRuby DSLを作った
はてブ中毒なのでRubyPicoで動くDSLを書いてみました。
特徴
- DSL: Rubyを使って効率的にブックマークを収集
- 履歴: 同じURLを何度も表示しない
特に履歴機能が欲しくて作りました。特定のタグから情報を収集するときに何度も同じURLが表示されてしまうのを防いでくれます。
インストール
AppStoreからRubyPicoをインストールします。
rubypico/hatebu のソースコードを全てダウンロードすればよいのですが、GitHubからソースコードをダウンロードできるライブラリがあるので先にそれをインストールします。
-
RubyPicoGemsを参考に
github_download.rb
をインストール -
github_download.rb
を起動 -
hatebu
を指定してライブラリをダウンロード- rubypico/xxxx のレポジトリは xxxx でインストール可能です
使い方
- 以下のスクリプトをRubyPicoの
.app
フォルダ以下にhatebu
などの名前で置きます - Appタブにファイル名が表示されるのでタップして実行します
- 実行するたびに新しいブックマークが表示されれば成功です。
require "hatebu/dsl"
history_file = File.join(Dir.documents, "hatebu", ".hatebu_history")
history(history_file) do
case rand(100)
when 0..29
show category("総合").take(4)
c = ["テクノロジー", "アニメとゲーム"]
show category(c.sample).take(3)
show category("動画").take(2)
when 30..59
show tag("ruby").take(3)
show tag("mruby").take(3)
show text("docker").take(3)
when 60..89
show tag("mac").take(3)
show title("airpods").take(3)
show title("airpods", sort: "popular").take(3)
else
show category("世の中").take(2)
show category("政治と経済").take(2)
show category("暮らし").take(2)
show category("エンタメ").take(2)
show category("おもしろ").take(2)
end
end
コメント付きのソースコードです。
require "hatebu/dsl"
# ヒストリファイルとして hatebu/.hatebu_history を選択
history_file = File.join(Dir.documents, "hatebu", ".hatebu_history")
# このブロック内は hatebu/.hatebu_history の影響を受ける
# 1. すでに履歴に含まれるURLは表示しない
# 2. ブロックを抜けたときに今回表示したURLを履歴ファイルに追加して保存
history(history_file) do
# 乱数抽選して以下のどれかを表示する
case rand(100)
when 0..29
# その1: 主要カテゴリから表示
# 総合の上位4つを取り出して表示する
show category("総合").take(4)
# テクノロジーかアニメとゲームのどちらかの上位3つを表示
c = ["テクノロジー", "アニメとゲーム"]
show category(c.sample).take(3)
# 動画の上位2つを表示 (はてブの動画カテゴリ割と好き)
show category("動画").take(2)
when 30..59
# その2: テクノロジタグから表示
# 興味の矛先はよく変わるので定期的に変更する、今だと"ディープラーニング"とか
show tag("ruby").take(3)
show tag("mruby").take(3)
show text("docker").take(3)
when 60..89
# その3: 趣味タグから表示
show tag("mac").take(3)
show title("airpods").take(3)
# 普段は新着から表示されるがsort: popularだと人気順になる
show title("airpods", sort: "popular").take(3)
else
# その4: 普段見ないカテゴリもたまに表示
show category("世の中").take(2)
show category("政治と経済").take(2)
show category("暮らし").take(2)
show category("エンタメ").take(2)
show category("おもしろ").take(2)
end
end
Rubyで書けるので他にも色々できるんじゃないかと思っています。今は曜日毎に表示するタグを変えてみようかな、とか思っています。
リファレンス
rubypico/hatebu#reference をどうぞ。DSL部分のソースコードはdsl.rbです。
Author And Source
この問題について(スマホからはてなブックマークを効率的に収集するためのRuby DSLを作った), 我々は、より多くの情報をここで見つけました https://qiita.com/ongaeshi/items/ac5e2ef99c1ef6497f82著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .