Hatena::ブログ(Diary)

itouhiroメモ

2013-01-11 WebAbornデスクトップ版

[話者] 個人的に作成・公開してる WebAborn(ウェブあぼ〜ん)は、これまでWebサービスとして作っていた。つまりWebブラウザで http://webaborn.herokuapp.com/ に行かないと使えなかった。


でもデスクトップ版を作ったので、これからは自分のPCでWebAborn.user.jsを生成できるぞ。


[合いの手] どう使うんだい?


[話者]

  1. Node.jsというプログラミング言語のWindows版をインストール。 http://nodejs.org/ で[INSTALL]をクリック。
  2. WebAbornをダウンロード。 https://github.com/itouhiro/webaborn の画面左上にある [(↓)ZIP] というボタンクリックでダウンロード。
    f:id:itouhiro:20130112010305p:plain

  3. zipファイルを展開して、c:\home\webaborn などに置く。
  4. WebAborn.bat にNGワード書いたテキストファイルをドラッグドロップ。
    f:id:itouhiro:20130112020905p:image

  5. テキストファイルと同じフォルダに、WebAborn.user.jsが生成される。
    f:id:itouhiro:20130112020939p:image

という手順だよ。WebAborn.batのショートカットアイコンをデスクトップに置いたほうが使いやすいかもな。

生成したWebAborn.user.jsの使い方はWebサービス版と同じだ。



[合いの手] それって便利になったの? どうせWebAborn.user.jsを作っても、Webブラウザでインターネット見るときしか使わないよね。だったら、Webブラウザで動くヤツだけあればよかったんじゃない?


[話者] デスクトップ版は、使い勝手の点でWebサービス版より、よくなってるんだ。

  • テキストファイルをドラッグ&ドロップすれぱ、そのテキストファイルと同じフォルダにWebAborn.user.js生成されるので、Webサービス版みたいにコピーペーストしなくていいのでラク。
  • 複数のテキストファイルにNGワードを分けて書いているとき、それをまとめてドラッグ&ドロップできるので、すごくラク。

[合いの手] 「複数のテキストファイルにNGワードを分けて書いている」ってのは、どんな状況?


[話者] オレの場合3ファイルに分けている。

  • いつでも見たくないNGワード NGWords.txt
  • ネット上のまとめサイトやTwitter,はてなブックマークで、ヤな感じに使われているので、そこを見るときだけNGワード NGWords-net.txt
  • 仕事場では見たくないけど、家ではときに見るアダルト系NGワード NGWords-adult.txt

仕事場ではこの3つのNGワードをすべて合わせたWebAbornを使うし、

自宅ではnetやadultを抜いたWebAbornを使ってる。


[合いの手] はー。


[話者] で、今まではこの3ファイルをコピーしては追加ペーストしながらWebAborn.user.jsを3パターン作ってたので面倒でね。まとめてドラッグ&ドロップできるからラクになったよ。



[合いの手] ところで話変わるんだけどさ、「NGワード再登録のたびに、NGワードを見てしまう」という問題にはどう対処すればいい? この人のようなさ。



[話者] 新規追加するとき、新規追加NGワードを見てしまうのはしかたないよ。見ないと[選択 - コピー]できないから。

でも新規追加するとき、以前に追加したNGワードを見てしまうのは避けることができるよ。


[合いの手] どうするの?


[話者] 新規追加するときに、

  • 新規NGワードをマウスとかで選択して、クリップボードにコピー。
  • NGWords.txtをダブルクリックして開く。
  • テキストファイルを中身を、顔をそむけて見ないようにする。または顔をそむけて目の端でぼんやりと見る。
  • Ctrl+V でペーストする。Enterで改行する。
  • Ctrl+S で上書き保存する。
  • Ctrl+W でテキストファイルを閉じる。

これで見ずに追加できる。


ただし、テキストエディタに「以前に編集した位置を保存」機能があると、カーソル位置が既存NGワードの途中になったりして、Ctrl+Vしたとき既存のNGワードを壊してしまうことがある。


たとえば私の使ってるMeryというWindowsのテキストエディタ http://www.forest.impress.co.jp/lib/offc/document/txteditor/mery.html では、その機能が最初からONになっている。

[ツール - オプション - 基本 - カーソル位置とブックマークを保存する]を OFF にすれば、NGWords.txtをダブルクリックしたとき、カーソルが常にファイルの先頭にくるので、あとはショートカットキーCtrl+Vとかを押すだけで見ずに操作できるのさ。


[合いの手] 顔をそむける‥‥ちょっとアナログな解決方法だな。

でも過去のNGワード見ずに登録すると、同じNGワードを複数追加しちゃったりしない?


[話者] 同じNGワード複数登録してもいいんだよ。WebAborn.user.js生成する前に、内部で自動的に一つにしてくれるから。

オレの場合は、(顔をそむけて目の端でぼんやりと見ながら)Ctrl+Fで検索ボックスを出し、Ctrl+Vで検索文字列を入力してEnterで検索して、同じのがないか確認することもある。


ちなみにいったん登録したNGワードを消すときも、(顔をそむけて目の端でぼんやりと見ながら)Ctrl+Fで検索ボックスを出し、Ctrl+Vで検索文字列を入力してEnterで検索して、あったっぽいなら、[Home]押してカーソルを行頭に移動して[Shift]+[End]押してその行を全部選択して、[Delete]押して削除、している。そしてCtrl+Sで保存だ。


[合いの手] それを全部、顔をそむけながらやるのかぁ。なんか、はたから見るとシュールな光景だな。


[話者] NGワード自体は見ないようにしているので正確に消せたか その時点ではわからないけど、WebAborn.user.jsをブラウザに読み込ませてNGワードが消えるかどうかで確認しているんだ。

もしまちがえたときは、NGWords.txtを更新するたびにDropboxが自動保存するようにしてるので、過去のバージョンに戻せばいい。



話を戻すと、デスクトップ版WebAbornをダウンロード可能にするためにはソースコードを公開しないとならないんだよね。

そこで年末にgithubの使い方を覚えて、githubで公開することにした。Webサービス版のソースコードも含んでいるので、過去バージョンのRuby,PHP,Node.jsのソースコードを履歴から見ることもできる。


[合いの手] デスクトップ版にも欠点あるんでしょう?


[話者] デスクトップ版の欠点は

  • Windows専用。(LinuxやMacでもコマンドラインで $ node desktop-webaborn.js /path/to/NGWords.txt とすれば動作するが、GUIでドラッグ&ドロップはできない)
  • node.jsをインストールする必要がある。
  • NGワードを記録するテキストファイルの形式に決まりがある。

というところ。Webサービス版のほうが手軽だと思えばそちらを使えばいいよ。

デスクトップ版WebAbornとWebサービス版はソースコードを共用しているので、まったく同じuser.jsを作れるからね。


[合いの手] 「NGワードを記録するテキストファイルの形式」って何だい?


[話者] https://github.com/itouhiro/webaborn#readme に書いてあるけど文字コード「UTF-8」だけ受け付けるんだ。

よくわからない人は、付属するNGwords-sample.txtをメモ帳などのテキストエディタでひらいて、そこにNGワードを付け加えたりして使ってくれ。最初からある「まんじゅう、饅頭」は消して構わないよ。





追記 2013-09-29

WebAborn バージョン18で追加された「単語単位で置き換え」をWebAbornデスクトップ版で使うには、

desktop-webaborn.js をテキストエディターで開いて、

    //jssearch
    str = outputJs(jsData_JsSearch.toString(), 'jssearch', ng_txt,
replace_string);

   ↓

    //jssearch
    str = outputJs(jsData_JsSearch.toString(), 'jssearchword', ng_txt,
replace_string);

と書き換えます。