Skip to content

Instantly share code, notes, and snippets.

@mfakane
Created August 22, 2012 14:57
Show Gist options
  • Save mfakane/3426418 to your computer and use it in GitHub Desktop.
Save mfakane/3426418 to your computer and use it in GitHub Desktop.
Megalith API
Megalith API
読み込みに関すること
文字コードは Shift_JIS
各種 txt や dat ファイルはローカルにキャッシュを持ち HTTP の If-Modified-Since を利用することを推奨。
/settings.ini
設定である。
PHP コードではあるが用いられている構文は多くないので、各自適当にパース。
各設定項目はバージョンや管理者の都合により存在したりしなかったりする場合がある。
/sub/subjects.txt
作品集インデックス
内容は以下のようにファイル名が並んでいる。
subject.txt
subject1.txt
subject2.txt
...
最終行に改行文字がある場合とない場合がある。
一番上の subject.txt は最新作品集を指し、それ以降は subject*.txt が作品集 * を指す。
/sub/subject*.txt
作品インデックス
作品集にある作品の情報が並んでいる。subject.txt は最新作品集であり、subject1.txt は作品集 1 である。
内容は以下のようなものが並んでいる。
*.dat<>....<>0.00
各フィールドは <> で区切られており、最初のフィールドは作品データのファイル名である。
ファイル名は投稿日時の unixtime である。
続くフィールドは作品データの一行目と同等のものである。それについては後述。
最後のフィールドは dat ファイルの容量である。単位は KB。
古いバージョンによって生成されたログはこのフィールドが存在しない場合がある。
一覧は基本的に投稿日時昇順に並んでいる。
/dat/*.dat
作品データ
作品に関するデータと作品本文が存在する。コメントとあとがきは別のファイルに存在する。
内容は一行目に作品に関するデータがあり、二行目はハッシュ、三行目以降は本文である。
一行目のメタデータは以下のような形式である。
作品名<>作者名<>メール<>URL<>コメント数/評価数<>点数<>Rate<>更新日時<>ホスト名<>背景<>文字色<>改行変換フラグ<>分類タグ
各フィールドは < > & ' が HTML エンティティ化されている。
古いバージョンによって生成されたログは、改行変換フラグ以降のフィールドは存在しない場合がある。
更新日時は yyyy/MM/dd HH:mm:ss で記録されている。
背景は画像の URL または HTML 色である。
分類タグは半角スペース区切りのタグ文字列である。
二行目のハッシュは無視してよい。二行目が空行になっていて、存在しない場合もある。
改行変換フラグが yes、または存在しない場合 Megalith は改行文字を <br /> に変換して本文に記録する。
Megalith 側の処理であるので、クライアント側は特になにもせずそのまま本文を HTML 断片として利用してよい。
/aft/*.aft.dat
あとがきデータ
作品本文と同じ形式で、あとがきの文章のみが入っている。
/com/*.res.dat
コメントデータ
以下の形式でコメントが並んでいる。
本文<>名前<>メール<>日時<>点数<>ハッシュ<>ホスト名<>管理者フラグ
各フィールドは < > & ' が HTML エンティティ化されている。
古いバージョンによって生成されたログは、管理者フラグ以降のフィールドは存在しない場合がある。
本文が #EMPTY# の物は簡易匿名評価である。
本文に <br /> として改行タグが入ることがある。
日時は yyyy/MM/dd HH:mm:ss で記録されている。
ハッシュ、ホスト名は無視してよい。空欄の物、不正な物も存在する。
管理者フラグが yes の物は、管理者ログインされている状態で追加されたコメントである。
書き込みに関しては Web のフォームと同じものを同じ場所に送ればよいです。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment