ese-fortune.l

Last modified: "2008/01/01 01:08:26"
■概要

  起動時にリファレンスとか,占いとか,TODOをランダムに表示します。

  TKI さんの fortune-yz をもとにつくったものです。

    http://www2.ocn.ne.jp/~cheerful/script/xyzzy/play/startword.html


■インストール

  1. reference.txt を取得し,etc フォルダにコピーする。

     NetInstaller からインストールした場合は,etc フォルダに置かれます。

  2. ese-fortune.l を site-lisp にコピーする。

  3. 必要に応じ,バイトコンパイルする。(任意)

       M-x byte-compile-file

  4. .xyzzy か siteinit.l に以下の記述を追加する。

       (require "ese-fortune")

  5. xyzzy を再起動すると,xyzzy Reference が表示されるようになります。


■使い方

    a : 自動更新のトグル
    i : 更新間隔(秒)を変更
    n : 次ページ
    j : 指定 No に移動
    q : 終了
    . : 終了


■設定例

  ;;; 起動時からぼうっと見る。(自動更新モード)
  (setq *ese-fortune-absent* t)

  ;;; ぼうっと見られてるときに,ブルブルする。
  ;;;   TKI さんの,shakeWindow を頂き,読み込んでおく。
  ;;;   http://www2.ocn.ne.jp/~cheerful/script/xyzzy/mode/shakeWindow.html
  (require "shakeWindow")

  ;;; バッファタブを非表示する。
  (setq *ese-fortune-buffer* " *ese-fortune*")

  ;;; 関連するキーワードを F1 で info-modoki-mode から引く。
  ;;; (info-modoki-mode が必要です)
  (define-key *ese-fortune-mode-map* '#\F1 'imm-refer-selection)

  ;;; その他,カスタマイズ用変数を参照して適当に。


■データ形式

  ese-fortune 用のデータは,1行を1件として扱います。改行コードはTABで表
  現します。サンプルは,以下のとおり。([  TAB  ]は,TAB文字をあらわす)

    1|格言です。[  TAB  ]    ── 権兵衛
    2|ねむくておきれません。1点
    3|夏休みのきまりごと[  TAB  ]  * 早寝[  TAB  ]  * 早起き[  TAB  ]  * 歯磨き!?


■データファイルの設定例

  xyzzy Reference 以外のデータを表示させる場合は,データファイルの指定を
  行います。データファイルを指定するには,以下の方法があります。

  # データファイルは,どこかからテキトーに探します。

    1. データファイルを指定する。

           (setq *ese-fortune-dat* "tentori.data")

    2. データフォルダを指定する

       *ese-fortune-dat* にフォルダを指定すると,フォルダに存在するファ
       イルすべてをデータファイルとして認識し,ランダムに選択します。

           (setq *ese-fortune-dat* "F:/foo/bar/")

    3. 複数のファイルを指定する。

       使用するデータファイルをランダムに選択します。
       *ese-fortune-dat-list* を指定した場合,*ese-fortune-dat* に優先し
       ます。

           (setq *ese-fortune-dat-list*
                 '("reference.dat"
                   "tentori.data"
                   ))

    4. etc フォルダ以外のファイルを指定する。

      *ese-fortune-dat* にフルパスでファイル指定します。

           (setq *ese-fortune-dat* "d:/foo/bar.dat")

      複数ファイルを指定する場合。

           (setq *ese-fortune-dat-list*
                 '("d:/foo/bar.dat"
                   "piyo.txt"
                   ))


■利用可能なデータファイル

  [点とり占い]

    Taro's Page [Let's Enjoy Tentori Fortune!] から,tentori.lzh を頂き,
    お言葉データ(tentori.data) をetc フォルダにコピーします。

      http://taro.haun.org/tenjoy.html

    点とり占いデータを使う場合は,データファイルの指定が必要です。

      (setq *ese-fortune-dat* "tentori.data")

  [(BSD産の) fortune 用データ]

    以下の手順で,ese-fortune 用のファイルに変換して使用することができます。

      1. fortune 用データファイルを準備する
      2. F12 キーを押す
      3. 変換元ファイル(fortune 用データファイル)を指定する
      4. 変換先ファイル(ese-fortune 用データファイル)を指定する
      5. データファイルを指定する

           (setq *ese-fortune-dat* "hoge.dat")


■ ese-fortune 用のデータ形式でないデータファイルを直接使う

    拡張子を".dats"としたファイルを指定すると,以下のような形式のファイ
    ルをそのまま使用することができます。

    [hoge.dats]
      1|B&D で,トイレットペーパーを買う。
      2|
      3|  色はピンク。
      4|
      5|%
      6|マキロンをトイレにおいておく。
      7|
      8|%
      9|ひえさん。不具合です。 0点

    TODO リストのように,変更を即反映させたいような場合は,この形式を利
    用するとよいでしょう。但し,実行する都度データ変換を行うため,処理は
    重くなります。


■更新履歴

  [Version 1.09] 2007-12-31 (月)
  ・ライセンス条項(MITライセンス)を記載。
  ・reference.txt から reference.dat を必要に応じ自動作成するようにした。
    → 初回実行時と,更新時。
  ・改行認識文字列既定値(*ese-fortune-br*)をタブ文字に変更した。
  ・xyzzy Part7 657 さんの提案を取り込み,複数のデータファイルをランダム
    に表示できるようにした(今頃)。m(__)m
  ・ese-fortune 用のデータファイルでなくても,実行時に変換して見ることも
    できるようにした。
  ・データフォルダを指定できるようにした。
  ・info-modoki-mode で引きやすいように,シンタックスを定義した。
  ・ese-fortune 用バッファを,表示するようにした。
  ・再実行時に,バッファを作成しなおさないようにした。
  ・ぼうっと見れるようにした。(ふかえさんのアイディア)
  ・TKI さんの shakeWindow を読み込んでおくと,ぼうっと見てるときに
    ブルブルするようにした。

  [Version 1.08.3] 2003/07/06 (日)
  ・本体は site-lisp に,reference.dat は etc に置くようにした。
  ・dat ファイルは,同梱しないようにした。
  ・あまり使わなさそうなキーバインドを削除した。

  [Version 1.08.2] 2003/05/05 (月)
  ・reference.dat を reference.xml から直接作成するようにした。また、
    表示してもあまりうれしくなさげな「目的別索引」とか「関数一覧」
    はデータに含めないようにした。これにより、ref2fortune は削除した。
  ・reference.dat を reference.xml 2003.04.30 版からつくったものに
    した。
  ・refernce.dat のみを同梱するようにした。

  [Version 1.08.1] 2003/04/19 (土)
  ・mixed.dat を同梱しないようにした。かわりに作成方法を追加してお
    いた。m(__)m

  [Version 1.08] 2003/04/06 (日)
  ・.xyzzy に (ese-fortune) とか書かなくてもいいようにした。
  ・xyzzy 起動時の ese-fortune 実行時点で、*scratch*, ミニバッファ
    以外のバッファが存在する場合は、起動しないようにした(つもり)。
  ・同梱の reference.dat を reference.xml 2003.03.30 版からつくった
    ものにした。

  [Version 1.07] 2003/02/18 (火)
  ・user パッケージに移した。(だけ。)

  [Version 1.06] 2002/12/06 (金)
  ・データファイル末尾の空白行まで選択してしまっていたのを修正した。
  ・*ese-fortune-title* を追加した。
  ・export するものをいくつか追加した。
  ・設定例とかを見直した。

  [Version 1.05] 2002/11/29 (金)
  ・xyzzy を SendTo とかから、ファイル名を指定して起動した場合、
    ese-fortune を実行しないようにしていたつもりが、そうなって
    なかったのを修正したつもり。
  ・その他、いらなさそうなところを少し削った。
  ・でも、かぜをひいているので、鼻水がついているかもしれない。1点

  [Version 1.04] 2002/11/26 (火)
  ・*ese-fortune-br* で改行認識文字列を指定できるようにした。
  ・mixed.dat をつくっておいた。

  [Version 1.03] 2002/11/25(月)
  ・ref2fortune を修正した。→ *.dat をすべて作成しなおした。
    ・もとの reference に \n 記述されている場合に、改行されてしまっていたところ。
    ・「■目的別索引」とかが、まとまってしまっていたところ。
  ・指定行に jump をつくった。(どちらかというと私の確認用)

  [Version 1.02] 2002/11/24(日)
  ・ref2fortune を修正した。
    ・行頭のホワイトスペースが削除されていたところ。
  ・同梱の reference.dat を reference.xml 2002.11.23版 から作り直した。
  ・ひとつのディレクトリにまとめた。
  ・その他細かい修正。

  [Version 1.01.1] 2002/11/22(金)
  ・そっと差し替え。

  [Version 1.01] 2002/11/22(金)
  ・random 関数に、二つ目の引数を与えた。佐野匡俊さんに感謝。

  [Version 1.00] 2002/11/21(木)
  ・とりあえず公開。


■ライセンス

  ese-fortune.l はMITライセンスに基づいて利用可能です。
  

Copyright (c) 2002-2007 HIE Masahiro

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Download ...