Sage++ (Higmmer's Edition)で未読/既読管理を実現する「Read Manager for Sage++」制作進行中!

■ 自作ソフト Posted by ひぐま (Higmmer) on 2006-10-25 at 01:02:42

◆共有テーマ: Firefox [コンピュータ]

リリース版を公開しました。こちらのエントリへどうぞ。 [10/29 追記]

こちらのエントリで公開している「Sage++ (Higmmer's Edition)」に未読/既読管理機能を追加して利便性を飛躍的に(?)向上させるためのアドオンツールとして、「Read Manager for Sage++」の開発を現在急ピッチで行っています。

動作イメージはこんな感じ(実際に動作している画面をキャプチャしました)。

現在のところ、以下の機能の実装がほぼ完了しています。

  • エントリの未読/既読状態の管理
  • 未読/総エントリ数の画面表示、及び色分け表示
  • 未読エントリのみ表示⇔全て表示をボタンひとつで切り替え可能
  • フィード毎の履歴削除と全データの一括消去
  • 操作パネルの表示/非表示切り替え
  • Google Readerライクなキーボード操作

「Read Manager for Sage++」はSage++ (Higmmer's Edition) 1.3.8c 以降に備わっているユーザースクリプト機能によって動作します。但し、それだけではJavascriptのセキュリティ制約によってローカルファイルへのデータ保存ができないため、履歴データの保存/読込を実現するためにActionScript 2.0で開発したFlashアプリケーションを使用しています(上のスクリーンショットで右下に表示されている操作パネルがそれ)。ActionScriptに触るのは今回が初めてだったので少し試行錯誤が必要でしたが、なんとか目指す機能が実現できる見通しが立ったため今回発表することにしたというわけです。

あと残っている作業は、いくつかのマウス操作とキーボードショートカットを追加して操作性の向上を図ることと、履歴データ管理部のデバッグのために暫く使い込んでみること。特にデータ肥大化を防ぐための処理を入れるべきかどうかで現在悩んでいるところなのですが…。

あ、期待しすぎて後でがっかりしないために念のため付記しておきますが、管理するのはあくまでも各エントリの既読/未読状態だけで、フィードそのものをローカルに蓄積する機能はありませんし、実装の予定もありません。そういった目的のためには全く使えませんので悪しからず。

それでも欲しいという人は果たしてどれくらいいるのかな…? 興味がある方はコメント欄にでも一言書いて下されば励みになります(だからといってリリースが早くなる保証はありませんが(笑))。

トラックバック

この記事について書く(FC2ブログユーザー)
※言及リンクの無いトラックバックは無効です

PageTop▲

コメント

■ 未読/既読管理
Posted by tinyfox (ID:-) [URL]  on 2006-10-25 at 13:17:26 [編集]
新しいタブで開いたら、自動的にMark All as Readがクリックされた状態になるのが理想です。
以前はこうしていました。
1 フォルダを右クリック - Chek Feedsで更新チェック
2 未読フィードをクリックして新しいタブで開く
3 開いたらMark All as ReadのアイコンをクリックするかCtrl+Shift+Cで既読にする

ひぐまさんのおかげで1と2が自動化されました。3も自動化していただければ、私は幸せになれます。

> フィードそのものをローカルに蓄積する機能

私は要りません。
■ Mark All as Read の自動化
Posted by ひぐま (ID:z1/vyMRg) [URL on 2006-10-29 at 18:01:27 [編集]
ツールメニューに「フィードを開くと同時に全て既読にする」を追加しました。
これでよろしかったでしょうか?
■ Re: Mark All as Read の自動化
Posted by tinyfox (ID:-) [URL]  on 2006-10-29 at 20:42:36 [編集]
> これでよろしかったでしょうか?

いいえ。私の説明不足でした。申し訳ありません。
「Mark All as Readがクリックされた状態」とは、Feed Item Listが既読になり、コンテンツエリアのリンクの色は、未読(今回開いた分)と既読(前回開いたときに既読にした分)に分かれている状態です。今回開いたタブのリンクがすべて既読になっていると、どこから未読がわかりません……。

> 残念ながら拙作の「Read Manager for Sage++」の既読管理機能とは連動していません。

とのことですが、「Read Manager for Sage++」が完成すれば、私は幸せになれるのでしょうか。期待したいです。

検索バーはまだ使えないようですが、検索エンジンを追加していただき、ありがとうございます。
それから、はてなブックマークアイコンは自分で追加していたので大変嬉しいです。
もう一度、ありがとうございます。
■ すみません
Posted by ひぐま (ID:z1/vyMRg) [URL on 2006-10-29 at 21:14:04 [編集]
そうですか…。早とちりしてしまってすみません。
ですが、その動作でしたら現在の仕様では難しいです。
というのもコンテンツエリアでフィードを開く動作はFirefox本体側で非同期に動作していて
ページが開き終わる前にSage側に制御が戻ってきてしまうため、
既読になった後でページが読み込まれてしまうという現象が発生します。
(Sageでの「既読にする」とは、Firefoxの履歴に追加することを意味します)

既読にするタイミングをタイマーで遅延させるとしてもロード時間が長くなると同じなので、
考えられる対策としてはFirefox内部のロードイベントを全てフックして、
ページを開き終わったタイミングをSage側で取得できるようにするしかないと思います。
ちょっと大掛かりな改修になるのと、本体側の動作に影響を及ぼす可能性があるので
今の自分の知識&技術力では実現が困難です……。

ところで先ほど「Read Manager for Sage++」をリリースしました。
もしよかったらこちらも試してみてもらえませんか?
■ やはり無理っぽいです
Posted by ひぐま (ID:z1/vyMRg) [URL on 2006-10-30 at 03:15:49 [編集]
とりあえずいろいろと思考実験しましたが、やはりご希望には沿えそうにないです。
例えばフィードAをクリックしてロード中の間に、続けてフィードBをクリックしたとします。
するとその瞬間に項目リストの中身はフィードBのものに入れ替わってしまうので、
フィードAのロードが終わっていざ既読にしようと思っても、肝心のアイテムが無い
という状況が発生します。

それに対応するには、ロードが終わるまでフィードAの項目リストをどこか別の領域に
退避しておかなければなりません。続けてどんどん開いたとすると…((((;゚Д゚)))ガクガクブルブル
そもそもSageは一度にひとつのフィードを開くことを前提として全体が構成されていますので、
それだけでもかなり多岐に亘る修正が必要となります。
(自動更新チェックもかなり無理矢理実装しています)

それ以外にも非同期(並列)処理に伴う様々な問題に対処するにはそれなりにちゃんとした
設計をする必要があり、バグなく動作するようにするのは結構大変だと思います。
そこまでしても入れるべき仕様かというと……?
ご期待に沿えず申し訳ありません m(_ _)m

ただ、ご要望の意図である「どこから未読か」を知るという目的は
Read Managerを使えばかなりの部分達成できるかと思うのですが、どうでしょう?

PageTop▲

コメントの投稿

 
 
 
 
 
 (後で編集・削除したいなら必須)
 
  

PageTop▲