k1 入出力設計

k1 入出力設計

入力/出力設計について記述する。(作成中 07-08-09)


1. 入力

基本形式:

Windows コマンドプロンプト でのコマンド実行。

 コマンド  はてなダイアリー各日記の完全URI

(例:) hdc http://d.hatena.ne.jp/s_kanda/

コマンド名の後ろに指定されたパラメータ(コマンド第1引数)を、入力として受け取る。

  • コマンド名は hdc とする。( Hatena Diary Checker の略。)
  • 第1引数の入力ルール
    • http://d.hatena.ne.jp/ から始まること。
    • その後に ユーザーID があること。
    • 末尾の / は省略可。
    • 即ち、
      • 末尾の / は処理の最初に Trim するので、
      • (a) 引数文字列の中に、 '/' が 3 個あること。(2個以下でも4個以上でもダメ。)
      • (b) 最後の '/' の後に、文字列(ユーザーID)があること。
      • 上記 a,b を満たす場合、その末尾に "/rss2" を付け、 http://d.hatena.ne.jp/s_kanda/rss2 のURIへ RSS2 データを取得しにいく。
      • 上記 a,b を満たしていない場合は、引数指定エラーとし、エラーメッセージを表示する。
    • (文字長は3+n文字~55文字までを有効とし、56文字目以降は無視する。)
    • (文字長が3文字未満の場合は、エラーとする。)
  • 第2引数以降は指定されていても無視する。
  • 後々の拡張(案)
    • -id:s_kanda のような指定で、ユーザーID のみの指定を可とする。
    • -file:///e:/rss2.xml のような指定で、ローカルのXMLファイルも指定可とする。
(1) 正常な入力とする場合

以下のようなコマンド引数が指定された場合は、正常な入力として処理を実行する。

hdc http://d.hatena.ne.jp/s_kanda/       .. (1a) 完全なURI指定
hdc http://d.hatena.ne.jp/s_kanda        .. (1b) 完全なURI指定(末尾の '/' を省略)
hdc http://d.hatena.ne.jp/s_kanda/  xyz  .. (1c) 第2引数以降は無視する

(2) 正常な入力として処理するが、XMLの取得時に異常になる(と想定される)場合

以下のようなコマンド引数が指定された場合は、正常な入力として処理を実行するが、XMLの取得時または評価時に異常になる(と想定される)。異常になった場合は、エラーメッセージを表示する。

hdc http://d.hatena.ne.jp/skanda/        .. (2a) プライベートモードに設定された日記(RSS取得不可)
hdc http://d.hatena.ne.jp/kanda/         .. (2b) 存在しない ユーザーID (RSS取得不可)

(3) 異常な入力とする場合

以下のようなコマンド引数が指定された場合は、異常な入力としてエラーメッセージを表示する。

hdc http://d.hatena.ne.jp/               .. (3a) ユーザーID がない
hdc http://d.hatena.ne.jp/s_kanda/rss2   .. (3b) '/' が 3 個より多い
hdc d.hatena.ne.jp/s_kanda/              .. (3c) http://d.hatena.ne.jp/ で始まっていない
hdc s_kanda                              .. (3d) http://d.hatena.ne.jp/ で始まっていない
hdc http://d.hatena.ne.jp/@,;=?[]/       .. (3e) 不正な ユーザーID 文字列

(4) その他

コマンド引数が1つも指定されなかった場合は、コマンドの簡単な説明とバージョン情報を表示する。

hdc

2. 出力


2.1. 正常時の出力


2.2. 異常時の出力