tomatomax.net

Every rule has its exception.

Archive for the Program Category

はてブのお気に入りユーザを隠すスクリプトを更新

以前書いた、はてブのお気に入りページで、ユーザコメントを隠すGreaseMonkeyスクリプトの更新をしました。今回の変更で、はてブのAutoPagerize機能で継ぎ足されたページに対してもスクリプトが有効になるようになっています。

ダウンロードは
userscript.orgから

twigadge ver1.1.1

http://code.google.com/p/twigadge/
Issueリストに登録された問題の修正

  • POSTを使ったタイムライン取得機能を削除

uninitialized constant Class::YAML (NameError)

自宅サーバのアップデートを行ったのだけれども、そのあといつの間にかBotが止まっていた。いつもはcronで動かしているけど、手動で実行してみると以下のエラー。

/usr/lib/ruby/gems/1.8/gems/twitter4r-0.3.0/lib/twitter/console.rb:23:in `from_config’: uninitialized constant Class::YAML (NameError)

とりあえずエラーメッセージでぐぐってみると、以下の記事がヒット。

environment.rb uninitialized constant when starting console

この記事に書いてあるとおり、require ‘yaml’を追加することで無事復活。今は反応するようになってます

さくらサーバにWWW::Mechanizeをインストール

さくらインターネットのサーバでこのブログを運用しているわけですが、せっかくサーバを借りてみたのでRubyスクリプトを動作させたい!

でもWWW::Mechanizeが入ってません><

rubygemも入ってません(こっちはまあ当然か)

さくらのレンタルサーバーに RubyGems をインストールする手順を参考に、rubygemをインストール。ここまでは問題なし。

続けてmechanizeのインストールに取り掛かったのだけれども、こっちは失敗。

%gem18 install nokogiri
Building native extensions. This could take a while…
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.

/usr/local/bin/ruby18 extconf.rb install nokogiri
checking for #include … no
libxml2 is missing. try ‘port install libxml2′ or ‘yum install libxml2′
*** extconf.rb failed ***
(略)

libxml2がないそうです。自分のサーバなら、書いてあるようにyumでインストールするところなんだけど、当然できません。なので、ユーザフォルダにlibxml2を展開してみる。
The XML C parser and toolkit of Gnomeからlibxml2をダウンロード。prefixにユーザフォルダを指定してインストールします(UserNameを自分のユーザ名に置き換える)

%./configure –prefix=/home/UserName
%make
%make install

あとはインストールしたヘッダを読むように指定してmechanizeのインストール

%gem18 install mechanize — –with-opt-include=/home/UserName/include/libxml2
Building native extensions. This could take a while…
Successfully installed nokogiri-1.2.1
Successfully installed mechanize-0.9.2
2 gems installed
Installing ri documentation for nokogiri-1.2.1…
Installing ri documentation for mechanize-0.9.2…
Installing RDoc documentation for nokogiri-1.2.1…
Installing RDoc documentation for mechanize-0.9.2…
%

今度は成功。ページも取得できているみたい。

Hatena::Bookmark hide users in favorite

最近、はてなブックマークを本格的に使い始めました。特に使っているのが「お気に入り」という他の人のブックマークを表示する機能。でも、お気に入りに追加した人を増やしすぎたためか、コメントで画面が埋め尽くされてしまうことがありました。というわけで、「お気に入り」画面でコメントを非表示にするGreaseMonkeyスクリプトを作ってみました。

・使い方
はてブのお気に入り画面を表示するとコメントが非表示になります。
# ページの自動ロードが有効だと2ページ目以降が表示されます>< どうすればいいんだ
・ダウンロード
userscript.orgからダウンロードできます

初めてGreaseMonkeyスクリプトに挑戦してみたけど、手軽にWebサイトをいじれるのがいいですね!ちゃんと本を読んでみようかな

Greasemonkeyスクリプティング TIPS&SAMPLES
高山 恭介
秀和システム
売り上げランキング: 308175
おすすめ度の平均: 4.0

4 開発者向けならばもう一歩踏み込んでも

haika ver0.3

リリースしました。
変更点

  • 投稿を拡大表示する機能を追加
  • 設定の保存が正しく行われていない問題の対応

ダウンロードはこちらからどうぞ。

スロウダンス
スロウダンス
posted with amazlet at 09.02.15
haika
インディーズ・メーカー (2007-07-06)
売り上げランキング: 308037

haika ver0.2

リリースしました。
変更点

  • 自動再生時の更新間隔を変更可能にした
  • ASIN記法が使われていると表示が崩れる問題の対応
  • ひとつの投稿に画像とURLの両方が張られていると、一方が変換されない問題の対応

ダウンロードはこちらから。

haika

毎年恒例の年越しプログラミング。

f:id:maruguu:20081231183331p:image

haika – Google Code

サイドバーで常駐するはてなハイクビューワ。少ないながらも一応公開できるだけの機能を整えたので公開しておきます。

twigadge ver1.1

http://code.google.com/p/twigadge

ダイレクトメッセージ対応と細かい点を修正

  • FavoriteのURLを変更
  • ダイレクトメッセージ対応
  • クリックで通知を消す機能を追加

機能追加はこんなもんかな。バグがなければ、しばらくは別の開発をするつもり。

Flyout

Windowsサイドバーガジェットにおいて横に飛び出すやつのこと。

f:id:maruguu:20080810220925p:image

ガジェット本体のHTML文書とは別のHTML文書で記述されている。

  • 設定方法
System.Gadget.Flyout.file = 'sendmessage.html'; // HTML文書を指定する

実行中に切り替えることも可能。ただし、同時に2つ以上開くことはできない。

  • 表示
if(System.Gadget.Flyout.show) {
System.Gadget.Flyout.show = false;
} else {
System.Gadget.Flyout.show = true;
}

System.Gadget.Flyout.showで現在のFlyoutの状態をtrue(表示),false(非表示)で得ることができる。また、true,falseを代入することで、Flyoutの表示、非表示が可能。

Flyout表示中、別のアプリケーションにフォーカスを移すとFlyoutは閉じる。

  • ガジェットからのアクセス方法

System.Gadget.Flyoutオブジェクトから、Flyoutにアクセスする。

var uptext = System.Gadget.Flyout.document.getElementById('update-text');
uptext.value = message;