新月 - P2P掲示板

朔API

には3つのAPIがあります。 あまり洗練されたものではありませんが…。

キャッシュファイル

キャッシュファイルを直接読み書きすることができます。 Perl版開発の頃から、 キャッシュファイルへのアクセスが簡単にできるよう設計してきました。 詳しくは朔のキャッシュ構造をご覧ください。

Pythonライブラリ

from shingetsu.cache import *としてライブラリを読み込み、 それを経由してキャッシュを読み書きすることができます。 キャッシュファイルを直接読むのとの合わせ技の使用例を挙げます: レコードから朔のキャッシュを生成するスクリプト

HTTP経由のAPI

これが本題です。 「(新月ネットワーク)-(朔本体)-(UI)-(ユーザ)」のような システムを作ることができます。 現在の朔では過去の書き込みを1ヶ月を目安にして消していますが、 これはもし長期間書き込みを保存したいのであれば、 上のようなシステムを自分にとって使い易いように作ってほしいからです。 「(新月ネットワーク)-(1ヶ月分のキャッシュ)-(全ての書き込み)-(ユーザ)」 という形です。 こうすることによって、新月について最初に考えていたように、 新月はデータの通信部分であり、その上のソフトウェアは多様である、 という構造になることを期待しています。

gateway.cgi

/gateway.cgi/csv/index/file,stamp,date,path,uri,type,title,records,size のように呼び出すことによって、掲示板の一覧をCSV形式で得ることができます。

indexの部分は次のどれかです。

index
一覧(文字コード順)。
changes
一覧(最終書き込み時刻順)。
recent
最近の書き込み一覧。

file,stamp... の部分は次のうちから取捨選択できます。

file
ファイル名。
stamp
最終書き込み時刻(Unix時刻)。
date
最終書き込み時刻(人間向け形式)。
path
URIのパス部分。
uri
プロトコル、ホスト名も含めたURI。
type
掲示板の種類。
title
掲示板のタイトル。
records
書き込み数。
size
ファイルサイズ。

server.cgi

server.cgiはノード間の通信だけではなく、 ノードとUIの間のインタフェースとしても機能します。 例えば/server.cgi/get/thread_66726565/1147012194-のようにすると、 指定時刻以降の書き込みを一覧出力します。

詳しくはプロトコルをご覧ください。

thread.cgi

/gateway.cgi/掲示板タイトルとして キャッシュにない掲示板を 新月ネットワークからダウンロードすることができます。

書き込みフォームを埋めるようなデータを作ってPOSTすれば 書き込みをすることができます。 cmd以外は任意ですが、 name,mail,attach,bodyのどれか1つはデータがなければなりません。 通常のPOSTのほかにmultipart/form-dataが使えます。

cmd
常に"post"。
file
掲示板のファイル名。
dopost
書き込みを伝播するかどうか。
error
書き込み時刻に誤差を入れるかどうか。
name
投稿者の名前。
mail
投稿者のメールアドレス。
password
署名のためのパスワード。2chでいうトリップ。
file
添付ファイル。 これを使うときはmultipart/form-dataでなければならない。
suffix
添付ファイルの拡張子(最初のドットも含める)。 "AUTO"にしておくと添付ファイルの名前から自動で生成する。
body
書き込み本文。
Copyright© 2003-2016 shinGETsu Project. All Rights Reserved.
webmaster@shingetsu.info (Legal Notices)