cocousagi (1)

名称
  cocousagi - Blog Pet APIを使って生成した記事を blog に投稿する

構文
  cocousagi [-f 設定ファイル [-F]] [-h] [-l] [-b blogID] [-p]
            [-u blogユーザID[:パスワード]]
            [-U BlogPetサーバユーザID[:パスワード]]
            [-B blog種別 [-e エンドポイントURL] [-c 文字コード種別]]
            [-S[:アマゾンアソシエイトID[:アマゾンサブスクライブID]]]
            [-t BlogPet種別] [-C カテゴリ名]
            [-T デザインテンプレートID]
            [-E [エディタのパス名]]
            [こうさぎの名前]

説明
  cocousagi は、コマンドライン引数または設定ファイルの内容にしたがって、
  記事を生成し、blog に投稿します。

  cocousagi が対応している blog は、以下の通りです。
    TypePad 系 (ココログ, ココログフリー, ブログ人, TypePad, TypaPad France,
    TypePad Germany, TypePad Japan), Movable Type (2.x および 3.x), livedoor
    Blog, LOVELOG, Seesaa BLOG、blogger, および Atom API サポート blog,
    blogger API サポート blog, metaWeblog API サポート blog, Movable Type API
    サポート blog, News-Handler, metaWeblog API のみサポートしている blog
    (BlogPet飼育箱, など), JUGEM, exciteブログ, ヤプログ!, ドリコムブログ, 
    アメーバブログ, mixiの日記, キヌガサの日記, エコログ, ウェブリブログ, 
    NetLaputa BLOG, 269g, SweetBox Blog, FC2NETWORK の日記, FC2BLOG, 楽天ブログ, 
    So-net blog, goo Blog, COLORSの日記, Windows Live Spaces, Vox, 
    OpenPNEの日記, はてなダイアリー

オプション

        -f 設定ファイル     指定した設定ファイルから設定情報を取得する
          設定ファイルのフォーマット
            cousagiUserName: BlogPetサーバ login 名
            cousagiPassword: BlogPetサーバ パスワード [-F 指定時、省略可]
            blogType:        blog種別   [ココログの場合のみ省略可]
            endpointURL:     XML-RPC API または Atom API エンドポイントURL
                                [blog種別によりエンドポイントURLが一意に決
                                 まる場合(ココログ、ブログ人、livedoor
                                 Blog、Seesaa BLOG など)は省略可]
            blogUserName:    blog login 名        [省略可]
            blogPassword:    blog パスワード      [省略可]
            blogID:          blogID               [省略可]
            blogPetType:     BlogPet種別          [省略可]
            cousagiName:     BlogPet の名前       [省略可]
            categoryName:    カテゴリ名           [省略可]
            charSet:         文字コード種別       [省略可]
            keywordLink:     「はてなダイアリー」キーワードリンクを
                             埋め込むか否か [省略可]

                blogType が省略されている場合は、対象blogを「ココログ」
                とみなす。

                blogPetType が省略されている場合は、BlogPet種別を「BlogPet」
                とみなす。

                blogUserName, blogPassword, blogID の3つを
                全て省略した場合は、生成した記事を標準出力に書き出す。
                cousagiName を省略する場合は、コマンドライン引数で「Blog
                Pet の名前」を必ず指定すること。

                News-Handler に関しては、blogID の指定は必須。metaWeblog
                API のみサポートしている blog については、blogID と endpointURL
                の指定は必須。

                categoryName が省略されている場合は、「BlogPet」、「ここう
                さぎ」、「こうさぎ」などの Blog Pet 関連と思われるカテゴリ
                を探し出し、存在すれば、そのカテゴリに投稿する。なお、カテ
                ゴリの指定が可能なのは XML-RPC API もしくは Atom API をサポー
                トしている blog(ただし、blogger および So-net blog は除く)、
                および、JUGEM、exciteブログ、ヤプログ!、エコログ、ウェブリ
                ブログである。

                charSet が省略されている場合は、投稿用の文字コードを UTF-8
                とみなして処理を行なう

                keywordLink は、埋め込みたい場合は on、埋め込みたくない場
                合は off を指定する。省略した場合は off を指定したものとし
                て取り扱う(が、コマンドラインで埋め込みを指定した場合は、
                コマンドラインでの指定にしたがう) なお、mixi など SNS の日
                記とアメーバブログの場合のみ、keywordLink を on にしても無
                視する(強制的に off とみなす)。

            -f オプションを指定しない場合は、上記の内容をキーボードから入
            力するためのプロンプトを順次表示する

        -F 「Blog Pet サーバ パスワード」、「ココログ パスワード」をキー
           ボード入力から取得することを指示する。-f オプションと同時に指
           定する

        -h 記事に俳句を埋め込む
        -l 記事に「はてなダイアリーキーワード」リンクを埋め込む

        -b blogID   blogID を指定する。設定ファイルによる指定よりコマン
                    ドラインでの指定の方を優先、適用する。
                    blog種別が newsHandler または newPostOnly のとき、
                    必ず指定すること。

        -B blog種別 blog の種別を指定する。本パラメータを省略した場合は、
                    「ココログ」を指定したものとみなす
               blog種別:
                 typepad       Typepad, Typepad France または TypePad 
                               Germany
                 typepadJapan  Typepad Japan
                 cocolog       ココログ
                 cocologFree   ココログフリー
                 blogzine      ブログ人
                 seesaa        Seesaa BLOG
                 netLaputa     NetLaputa BLOG
                 blogG         269g
                 livedoor      livedoor Blog
                 lovelog       LOVELOG
                 blogger       Blogger
                 sonet         So-net blog
                 newsHandler   News-Handler
                 gooBlog       goo Blog
                 ameblo        アメーバブログ
                 msnSpaces     Windows Live Spaces
                 vox           Vox
                 jugemX        JUGEM
                 yaplogX       ヤプログ!
                 drecomX       ドリコムブログ
                 webryX        ウェブリブログ
                 hatena        はてなダイアリー

                 movableType   Movable Type または BOXERBLOG
                 bloggerAPI    blogger API サポート blog
                 metaWeblog    metaWeblog API サポート blog
                 mtAPI         MovableType API (+ 拡張 metaWeblog API)
                               サポート blog
                 atomAPI       Atom API サポート blog
                 newPostOnly   metaWeblog.newPost のみサポートしている
                               blog または「Blog Pet 飼育箱」
                 unsupported   「Blog Pet」による投稿がサポートされてい
                               ない blog

                 exciteBlog    exciteブログ
                 mixi          mixiの日記
                 kinugasa      キヌガサの日記
                 echoo         エコログ
                 fc2network    FC2NETWORKの日記
                 fc2blog       FC2BLOG
                 rakuten       楽天ブログ
                 colors        COLORSの日記
                 openPne       OpenPNEの日記

              -e エンドポイントURL
                   XML-RPC API または Atom API エンドポイント URL を指定
                   する。blog種別が movableType, bloggerAPI, metaWeblog,
                   mtAPI, atomAPI, newPostOnly のとき、必ず指定すること。
              -c 文字コード種別
                   blog への投稿に使用する文字コードを指定する。blog種別が
                   movableType, bloggerAPI, metaWeblog, mtAPI, atomAPI, 
                   newPostOnly のとき、必ず指定すること。
                       文字コード種別:
                         UTF-8
                         Shift_JIS
                         EUC-JP
                         ISO-2022-JP
                       注意: livedoor Blog のように、“管理画面からの投稿
                             時は EUC-JP を使うが、 Atom API による投稿で
                             は UTF-8 を使う”、といったように、 投稿の仕
                             方によって使用する文字コードが異なる場合もあ
                             るので注意!!

        -A 
           このオプションを指定しない場合は、1週間以上あけないと次回の投
           稿ができないように制限がかかる。この制限を外したいときに、-A
           オプションを指定する。ただし、blog種別の値によっては、この制限
           が働かないことがある。

        -n ニックネーム
           通常、「Blog Pet」の各記事にはユーザ名(blogUserName相当)が埋め
           込まれるが、blog によっては、blogUserName=ブログのディレクトリ
           名である場合があり、記事に埋め込むと不自然になることがある。
           本オプションを用いることで、記事中のblogUserName相当文字列を、
           指定したニックネームに置換することができる。

        -p proxy 経由で通信を行なう (Internet Explorer、Firefox、Opera の
           設定を流用、もしくは、以下の設定ファイルから設定を取得する)
              ファイル名: proxy.txt
              ファイルの中身: 以下の2行からなるテキストファイル
                  proxy サーバ名(または IPアドレス)
                  ポート番号

        -u blogユーザID[:パスワード]
        -u blogユーザID
           blog に login するユーザのID(投稿用ID)とパスワードを指定する。
           パスワードの指定を省略した場合は、cocousagi実行時にキーボードか
           ら入力する。

        -U Blog Pet サーバユーザID[:パスワード]
           Blog Pet サーバ に login するユーザのID(投稿用ID)とパスワードを
           指定する。パスワードの指定を省略した場合は、cocousagi実行時に
           キーボードから入力する。

        -S[:[アマゾンアソシエイトID]:アマゾンサブスクライブID]
           「おすすめ」機能を使用する。アマゾンアソシエイトIDの指定は必須
           ではないが、2005年10月以降、アマゾンサブスクライブIDの指定が必
           須になっている。
           なお、この機能を使う場合は、アフィリエイト使用可能なサーバ、ブ
           ログサービスであることをあらかじめ確認しておいてください。

        -t BlogPet 種別  BlogPetの種別を指定する
               BlogPet種別:
                 usagi         こうさぎ
                 neko          こねこ
                 inu           こいぬ
                 panda         こぱんだ
                 nezumi        こねずみ
                 blogPet       Blog Pet (BlogPet の種類を特に意識したくない
                                         場合に指定する)

        -C カテゴリ名
             記事の投稿対象のカテゴリを指定する。指定しなかった場合は、「注1」
             に示す考え方で、投稿先のカテゴリを自動的に決定する。
             なお、カテゴリの指定が可能なのは XML-RPC API もしくは Atom API 
             をサポートしている blog(ただし、blogger, So-net blog および ア
             メーバブログは除く)、および、JUGEM、exciteブログ、ヤプログ!、
             エコログ、ウェブリブログである。ドリコムブログに投稿する場合は、
             カテゴリの設定はできない。

        -T デザインテンプレートID
             投稿後の記事に適用するデザインテンプレートを(名前ではなく) ID で
             指定する。本パラメータは、ウェブリブログに投稿する場合のみ有効。

        -E [エディタ名]
             何らかの理由で Blog Pet API が利用できない場合、代筆機能を使うよ
             う指定する。「エディタ名」をフルパス名で指定すると、指定したエディ
             タを使って、代筆記事を書くことができる。エディタを指定しなかった
             場合は、メモ帳(notepad) を起動する。

    注1: 「こうさぎ」、「ここうさぎ」、「cousagi」、「cocousagi」という名
         前のカテゴリのうち、少なくとも1つが存在すれば、当該カテゴリに対し
         て投稿する(存在しない場合は、カテゴリ指定なしで投稿する)。ただし、
         blog ツールによっては、当該カテゴリにまだ記事が1つも存在しない場合、
         エラー(投稿失敗)となることがある。
    注2: blog ID を指定しなかった場合、投稿可能な blog 一覧を取得し、選択
         肢が複数あれば、選択肢を表示する。選択肢が1つしかない場合は、当該
         blog に投稿する。
    注3: exciteブログ、mixiの日記、キヌガサの日記、COLORS の日記、FC2NETWORK
         の日記、OpenPNEの日記は XML-RPC API、Atom API とも未サポートのため、
         管理画面と直接通信することで投稿を実現している。そのため、管理画面
         の仕様が変更されると投稿できなくなる可能性がある。
    注4: News-Handler の場合は、表示優先度の値が最も小さい(優先度が最も高い)
         カテゴリに投稿する。サーバ側の状態によって、投稿日時がおかしくなる
         ことがある(未来の日時になったり、過去の日時になったりすることがある)。
    注5: FC2BLOG では、XML-RPC API 経由でのカテゴリの取得、設定が正しく行なえ
         ない(2005年4月14日現在)。カテゴリの設定は FC2BLOG の管理画面で、別途
         行なってください。
    注6: 楽天ブログのカテゴリ指定は、今の版では対応していません(2006年9月17日現在)。
    注7: blogger にはカテゴリの概念がないため、カテゴリ指定はできません。
    注8: So-net blog では、moblog 用のカテゴリもしくはデフォルト指定のカテゴリ
         に自動的に投稿されます。API でカテゴリを指定することはできません。
    注9: アメーバブログ、および MSN Spaces では API でカテゴリを指定することが
         できません。投稿後に、ブログの管理画面にてカテゴリを設定してください。
    注10: Vox ではカテゴリに相当するものはタグになります。mobile 投稿用のタグが
          自動的に付くほか、blogpet タグと cocousagi タグも付加されます。
    注11: ドリコムブログは、あらかじめ、XML-RPC API 投稿用のパスワードを設定し
          ておく必要があります(ログイン用のパスワードとは別のパスワードです)

戻り値
   0:   正常終了 (投稿に失敗した場合も含む)
   255: 作業用メモリの確保に失敗した


エラーメッセージ
   こうさぎ ○○ちゃんはお休み中です。
     意味: 過去1週間以内に「ここうさぎ」による投稿記事が存在するため、今
           回は投稿を見送ることにした
   こうさぎ ○○ちゃんのご機嫌が悪いようです。
     意味: BlogPetサーバとの通信に失敗した(BlogPetサーバがメンテ中の場合、
           などが考えられます)、または設定ファイルの内容がおかしい
   (「こうさぎ」の代わりに、「こねこ」とか「こいぬ」とか、BlogPet種別に応
     じて、メッセージ内容が変わります)

   設定ファイルが見つかりません。
     意味: 指定した設定ファイル名が間違っている可能性があります。もう一度
           見直してみてください。
   BlogPetサーバとのお話がうまくいきませんでした。
     意味: BlogPetサーバがメンテ等で停止している、もしくはエラー(500 Internal
           Server Error、など)が発生しているため、BlogPetサーバにログイン
           できなかった、あるいは BlogPet が記事を書いてくれなかった。
   login に失敗しました。
     意味: blog のサーバへのログインに失敗しました。サーバで障害が発生して
           いるか、ユーザ名もしくはパスワードが間違っている可能性があります。

警告メッセージ
   ○○ちゃんは、俳句を詠みたくないそうです (涙)
     意味: BlogPetサーバの「俳句詠唱API」の機能が何らかの理由で停止している
           ため、BlogPetが俳句を詠んでくれなかった。
   「はてなキーワードリンク」で文字化け発生しました!!
     意味: はてなダイアリーのサーバから返ってきた応答電文で文字化けが発生
           している。キーワードリンクを埋め込むのをあきらめて、処理を続行
           する。
   たぶん、投稿に成功したと思います。
     意味: 少なくともエラーは発生しませんでした。が、サーバの状態によって
           は投稿できていなかったり、カテゴリの設定ができていなかったり、
           二重投稿になったりすることがあります。

   なお、「投稿に失敗しました」と表示されている場合でも、実際には投稿に成
   功していることもあります。(例えば、News-Handler の場合は、「投稿に失敗
   されました」と表示されますが、実際には投稿に成功していることが多いです)

例
  cocousagi
    対話形式でパラメータ(設定情報)を入力していきます。入力された情報を
    元に投稿を行ないます。

  cocousagi -l -h -f cocolog.txt
    設定ファイル cocolog.txt の内容にしたがって投稿を行ないます。
    -l が指定されているので、キーワードリンクを埋め込む機能が働きます。
    また、-h オプションが指定されているので、こうさぎは俳句を詠みます。

  cocousagi -B livedoor
    livedoor Blog に投稿します。各種パラメータ(設定情報)は対話形式で入力
    することになります。

  cocousagi -p -f seesaa.txt
    設定ファイル seesaa.txt の内容にしたがって投稿を行ないます。
    -p オプションが指定されているので、proxy サーバ経由で blog サーバと
    通信を行ないます。イントラネット内から投稿する場合などを想定していま
    す。

  実際に動かしてみた例
    % cocousagi
    BlogPetの種類:
     [1] こうさぎ
     [2] こねこ
     [3] こいぬ
     [4] こぱんだ
     [5] こねずみ
    
    [1-5]: 選択してください: 2
    BlogPetの名前: ねここ
    BLOG種別:
      [1] ココログ                           [2] ココログフリー
      [3] ブログ人
      [4] TypePad, TypePad France, TypePad Germany
      [5] Typepad Japan                      [6] livedoor Blog
      [7] LOVELOG                            [8] So-net blog
      [9] アメーバブログ                    [10] Blogger
     [11] Vox                               [12] Seesaa BLOG
     [13] NetLaputa BLOG                    [14] 269g
     [15] News-Handler                      [16] FC2BLOG
     [17] goo Blog                          [18] Windows Live Spaces
     [19] ドリコムブログ                    [20] JUGEM
     [21] ヤプログ!                         [22] ウェブリブログ (XML-RPC API)
     [23] はてなダイアリー                  [24] Movable Type
     [25] Movable Type 互換のAPIサポートblog
     [26] blogger API サポートblog          [27] metaWeblog API サポートblog
     [28] Atom API サポートblog
     [29] metaWeblog.newPost のみサポートの blog
     [30] exciteブログ                      [31] mixi
     [32] キヌガサ                          [33] エコログ
     [34] FC2NETWORK                        [35] 楽天ブログ
     [36] COLORS                            [37] OpenPNE
     [38] その他
    [1-38]: 選択してください: 30
    BlogPetサーバ ユーザ名: tsupo
    BlogPetサーバ パスワード: ************
    BlogPet投稿用ユーザ名: tsupo@na.rim.or.jp
    BlogPet投稿用パスワード: **********
    たぶん、投稿に成功したと思います。

制約
  blogger [blogger.com] もしくは blogger API サポート blog に対してcocousagi
  を使用する場合、BlogPet 投稿用の専用アカウントを必ず用意すること。 BlogPet
  投稿用の専用アカウントを用意せず、普段あなたが使用しているアカウントを使用
  すると、こうさぎによる投稿とあなたによる投稿の区別ができないため、あなたが
  1週間に1回以上記事を書くと、「BlogPet 連続投稿抑制機能」により、BlogPet の
  投稿は永久に行なわれない可能性があります。
  他の blog では、このような制限はありませんが、BlogPet 投稿用の専用アカウン
  トを用意することを推奨します。

  BLOG種別が newPostOnly, unsupported, mixi, kinugasa, fc2network, colors, 
  openPne の場合、「1週間に1回投稿」という制限は発生せず、何回でも連続投稿
  できます。サーバの負荷等を考慮し、十分な時間間隔(1時間に1回程度なら大丈夫
  と思われますが、保証は致しかねます)をあけて投稿するようにしてください。

  楽天ブログは1日5件までしか投稿できません。6件目の記事を投稿しようとすると、
  システムエラーとなり、投稿に失敗します(「ここうさぎ」の制限ではなく、楽天
  ブログの仕様、制約です)。


作者
  tsupo (mailto: tsupo@na.rim.or.jp, http://watcher.moe-nifty.com/)

$Header: /makeRSS/cocousagi/cocousagi.txt 3     09/05/28 20:35 Tsujimura543 $
