Java/SWT/SQLite/Win32な簡易RSSリーダーのようなもの


 世にRSSリーダーは数々あれど…単なる断片に過ぎない概要/要約(Description)には興味の無い私としては単にRSS更新チェック(手動で良い)と未読管理ができてWindows98でも動作するものが欲しいわけです。「goo RSSリーダー」がベストなんだけどWindows98では動作しません(涙)。「その他大勢」は諸々の理由により不採用です。

 というわけで、SWTが3.0でBrowserをサポートしたのをこれ幸いとばかりに簡易RSSリーダーのようなものをこさえてみました。RSSリーダーというよりRSSを利用したブログブラウザですかね。Rich Site Summaryのサマリはほとんど無視してます。(表示させることはできます)

 起動時の全画面はこんな感じ。

 RSSサイトツリー、記事一覧テーブル、タブブラウザ(のようなもの)の3ペイン型構成になっています。

ファイルメニュー
  • RSSをすべて更新する … すべてのRSSを更新します。
  • 表示中のページからRSSを登録する … ブラウザで表示中のページからRSSへのリンクを探してRSSツリーに登録します。
  • クリップボードからRSSを登録する … 上の機能で登録できないサイトは、RSSへのリンクを「ショートカットのコピー」にてクリップボードにコピーしてから、この機能で登録します。
  • 表示中のページをブックマークに登録する … ブラウザで表示中のページをRssReaderのブックマークに登録します。
  • データベースを圧縮する … データベースの空き領域を圧縮してファイルサイズを縮小します。
  • データベースをチェックする … データベースをチェックします。(内部的な整合性をチェックするだけです)
  • 終了 … RssReaderを終了します。
 RSSの登録はドラッグ&ドロップでも可能です。なお、登録できるのはRSS 0.91/1.0/2.0、Atom 0.3です(?)。
オプションメニュー
  • 未読のみ表示 … 記事一覧に未読記事のみ表示します。チェックによりOnOffします(以下同様)。
  • マークした記事のみ表示 … 記事一覧にマークした記事のみ表示します。なお未読のみ表示もOnの場合は、未読記事とマークした記事の両方が表示されます。
  • シングルクリックで記事を開く … デフォルトはダブルクリックですが、シングルクリックで記事を開くようにします。
  • 新規タブをアクティブにする … ブラウザを新規タブで開く場合に、そのタブをアクティブにします。
  • 文字のサイズ … 文字のサイズを最大・大・中・小・最小に設定します。
 以下は設定のみ行います。新規タブを開いた時・次回起動時に有効になります。
  • 画像を有効に … Webページを表示する際画像表示を有効にします。
  • ビデオを有効に … Webページを表示する際ビデオ再生を有効にします。
  • サウンドを有効に … Webページを表示する際サウンド(BGSOUND)を有効にします。
  • スクリプトを有効に … Webページを表示する際スクリプトの実行を有効にします。
  • Javaを有効に … Webページを表示する際Javaアプレットを有効にします。
  • ActiveXの実行を有効に … Webページを表示する際ActiveXの実行を有効にします。
  • ActiveXのダウンロードを有効に … Webページを表示する際ActiveXのダウンロードを有効にします。
  • ダイアログ抑止を有効に … Webページを表示する際ダイアログ表示(認証ダイアログやスクリプトエラーなど)を抑止します。
ツリーのポップアップメニュー
  • RSSを更新する … 選択されたサイト(フォルダの場合フォルダ下の全サイト)のRSSを更新します。
  • すべて既読にする … RSSサイト・フォルダ下の全RSSサイトの記事をすべて既読にします。(ルート以外では確認無しで即時実行)
  • すべて未読にする … RSSサイト・フォルダ下の全RSSサイトの記事をすべて未読にします。(ルート以外では確認無しで即時実行)
  • すべて削除する … RSSサイト・フォルダ下の全RSSサイトの記事をすべて削除します。(ルートでは無効)
  • Webページを開く … サイト指定のWebページ(通常トップページ)を開きます。Shiftキー併用で新規タブで開きます(RSSデータ、概要も同様)。
  • RSSデータを開く … RSSをブラウザで開きます。
  • 概要を閲覧する … RSSから概要/要約を整形してブラウザで開きます。
  • 最新記事のみ一覧表示する … 各サイトの最新日付の記事のみを抜き出して一覧表示します。
  • 削除する … RSSサイト・フォルダを削除します。記事データもすべて削除されます。
  • 名前を変更する … RSSサイト名・フォルダ名を変更します。
  • フォルダを追加する … 新規フォルダを選択されたアイテムの次の位置に追加(挿入)します。
記事一覧のポップアップメニュー
  • マークをつける … 記事にマークをつけます。
  • マークをはずす … 記事につけたマークをはずします。
  • 既読にする … 記事を既読にします。チェックボックスをオンにするのと同じです。
  • 未読にする … 記事を未読にします。チェックボックスをオフにするのと同じです。
  • 現在のタブで開く … 記事をアクティブなタブのブラウザで開きます。
  • 新しいタブで開く … 新たなタブを作成し、記事をそちらで開きます。
  • 削除する … 記事を削除します。
  • このブログをツリーに表示する … 記事のブログをRSSツリー上に表示し、選択状態にします。(ツリーでフォルダを選択した場合、記事一覧にはフォルダ下の全RSSサイトの記事が表示されますが、該当ブログがツリーのどこにあるのかぱっと見て判らないことがあるので…^^;)
  • このブログの記事のみ表示する … ツリー表示に加え、記事一覧に該当ブログの記事のみ表示します。
  • 一時的にこのカテゴリのみ表示する … 現在表示されている記事一覧を選択されたカテゴリで絞り込み表示します。
  • 一時的にこの著者のみ表示する … 現在表示されている記事一覧を選択された著者で絞り込み表示します。
タブのポップアップメニュー
  • 新しいタブを開く … タブを新規に作成します。
  • アクティブなタブを閉じる … アクティブなタブを閉じます。タブがひとつしかない時は無効です。
  • アクティブでないタブをすべて閉じる … アクティブなタブ以外のすべてのタブを閉じます。
  • 選択文字列でWeb検索 … 表示中のページ内で選択(マウスでドラッグ)された文字列があればGoogleで検索し、結果を新規タブに表示します。
  • タイトルとURLをコピー … タイトルとURLをHTMLタグ付きでクリップボードにコピーします。
 以下はアクティブなタブだけで有効な一時的な設定を行います。
  • 画像を有効に … Webページを表示する際画像表示を有効にします。
  • ビデオを有効に … Webページを表示する際ビデオ再生を有効にします。
  • サウンドを有効に … Webページを表示する際サウンド(BGSOUND)を有効にします。
  • スクリプトを有効に … Webページを表示する際スクリプトの実行を有効にします。
  • Javaを有効に … Webページを表示する際Javaアプレットを有効にします。
  • ActiveXの実行を有効に … Webページを表示する際ActiveXの実行を有効にします。
  • ActiveXのダウンロードを有効に … Webページを表示する際ActiveXのダウンロードを有効にします。
  • ダイアログ抑止を有効に … Webページを表示する際ダイアログ表示(認証ダイアログやスクリプトエラーなど)を抑止します。
レイアウトメニューボタンのドロップダウンメニュー
  • 縦方向に伸縮 … 記事一覧を非表示にしてツリー・ブラウザの2ペイン表示にします。トグル動作(再度選択すると元に戻る)します(以下同様)。
  • 横方向に伸縮 … ツリーを非表示にして記事一覧・ブラウザの2ペイン表示にします。
  • 両方向に伸縮 … ツリーと記事一覧を非表示にしてブラウザのみの1ペイン表示にします。
 デフォルト(ボタンクリック時の動作)は縦方向に伸縮です。
RssReader.iniの項目
ユーザ用(書式の括弧内はデフォルト)
HomePageURL文字列("about:home")
ホームページのURL。
BaseColor0数値,数値,数値(255,255,255)
記事一覧の背景色。R,G,Bを10進数で。
BaseColor1数値,数値,数値(255,255,255)
記事一覧の背景色。R,G,Bを10進数で。
ReadColor数値,数値,数値(204,204,255)
記事一覧の既読記事の背景色。R,G,Bを10進数で。
MarkColor数値,数値,数値(255,204,255)
記事一覧のマークつき記事の背景色。R,G,Bを10進数で。
ProgressColor数値,数値,数値(255,153,51)
RSS更新時のプログレスバーの背景色。R,G,Bを10進数で。
KeepDays数値(31)
記事の保持日数。負の値の時は無視。0の時は自動削除を行わない。取得日がこれ以前で既読・マークなしの記事はデータベースから削除する。なお、記事の投稿日が古くても新しい記事が無ければRSS情報としては取得するので、保持日数と投稿日とは連動しない。
CheckTitleDiff{true|false}(true)
RSS更新で取得した記事が既に取得済みの時、タイトルが変更されていれば新着扱い(未読)とする。
CheckDateDiff{true|false}(true)
RSS更新で取得した記事が既に取得済みの時、投稿日時が変更されていれば新着扱い(未読)とする。
CheckCategoryDiff{true|false}(true)
RSS更新で取得した記事が既に取得済みの時、カテゴリが変更されていれば新着扱い(未読)とする。
CheckAuthorDiff{true|false}(true)
RSS更新で取得した記事が既に取得済みの時、著者が変更されていれば新着扱い(未読)とする。
ExpandDefault{0|1|2}(0)
レイアウトメニューボタンのデフォルト。0=縦方向に伸縮、1=横方向に伸縮、2=両方向に伸縮
EnableCommentCheck{true|false}(false)
コメントチェック機能(gooブログ限定)を有効にする。
※実験的に新着コメントの有無をチェックする機能を入れています。gooブログのみが対象です。チェックは手動です。記事一覧にて右クリックでメニューが出ます。個別記事に対してコメントチェックをする/しないを設定します。「チェック対象記事をすべてチェックする」では新着コメントがある記事を一覧に表示します。
OpenDefaultOnTree{web|rss|desc}(web)
RSSツリーでダブルクリックした場合のデフォルト。web=Webページを開く、rss=RSSデータを開く、desc=概要/要約を表示
ShowUnreadCountBeforeTitle{true|false}(false)
RSSツリーにおいて未読カウントをタイトルの前に表示する。
ShowUnreadStyleBold{true|false}(false)
RSSツリーにおいて未読記事のあるサイト/フォルダをBOLD(太字)で表示する。
AddTabNext{true|false}(false)
新規タブを現在のタブの右隣に開く。
MaxThreads1〜8の数値(1)
RSS更新チェックの多重度。
BackupOnExit{true|false}(false)
RssReader終了時にDBのバックアップコピーを作成する。
HistorySize0〜50の数値(15)
[戻る][進む]ボタンで一度に表示する履歴の数。
OnCloseTabActivateRight{true|false}(false)
タブを閉じた時、右隣のタブをアクティブにする。
ShowYNewsMenu{true|false}(false)
ファイルメニューにYahoo!ニュース登録メニューを表示する。
※実験的にYahoo!ニュースをRSSに変換する機能を入れています。(Webページを読み込んで記事リンクをRSS化。今のところ4ページ・100件固定。)
EnableProxySetting{true|false}(true)
インターネットのプロパティ〜プロキシサーバーの設定を使用してRSSにアクセスする。
EnableMButton{true|false}(false)
ホイールクリックでリンクを新規タブで開く。
システム用(終了時の状態を保持)
UnreadOnly{true|false}(false) …未読のみ表示。
MarkedOnly{true|false}(false) …マークした記事のみ表示。
SingleClickOpen{true|false}(false) …シングルクリックで記事を開く。
ActivateNewBrowser{true|false}(true) …新規タブをアクティブにする。
ShellRect数値,数値,数値,数値(0,0,800,600) …ウィンドウの位置とサイズ。
isMaximized{true|false}(false) …ウィンドウ最大化。
isMinimized{true|false}(false) …ウィンドウ最小化。
LeftPane数値,数値,(200,800) …左右ペインの比率。
RightPane数値,数値,(200,800) …上下ペインの比率。
その他・備考
  • RSS更新の中止は強制的な中止ではなく、1サイト更新処理する毎に中止が指示されたかチェックするタイプのものです。サイトが応答を返さない場合タイムアウトまでに少し時間がかかります。(一応内部的には5分でタイムアウトするよう仕掛けてあります)
  • 何らかの理由で異常終了した場合、RssReader.lockというファイルが残ることがありますが、このファイルは削除してください。


 インストールは適当なフォルダに解凍するだけです。Windows98以降、IE5.5以降、JRE(Java Runtime Environment) 1.4.2が必要です。JREが正しくインストールされていれば、RssReader.jarをダブルクリックするだけで起動します。なお、RssReader.iniをエディタで開いて、HomePageだけは設定してください(しなくても動作はしますが)。

 よっこらしょと更新してみました。今日現在(2007/04/04)のファイル(本体のみ)はこちらです。(JARファイルです.解凍不要)
 本体以外の必須ファイル(更新はありません)はこちらです。初めての方は両方ダウンロードしてください。

 フィルタ機能についてはこちらを参照してください。
 概要(description)表示機能に関してはこちらを参照してください。
 Browserウィジェットの拡張に関する技術的な話題について興味のある方はこちらをどうぞ?

 そうそう、普通のタブブラウザに普通にあるマウスジェスチャ機能はありません。外部ブラウザで開く機能もありません。ではでは。


戻る
2005/07/27

メール
BLOG