css-api

CSS から読み取るためのデータを SVG として返す API。応答は 3 つのチャンネルに分かれる: info(値を SVG の寸法にエンコード)、view(表示用テキストを画像として返す)、post(フォーム POST を受け付ける)。以下では機能ごとに、その機能が持つ各チャンネルのエンドポイントをまとめている。

datetime

現在日時。アクセス元のタイムゾーン・ロケールに対応する。

info

/info/datetime/clock

現在時刻。SVG 内で animate し、時計のように進む。

使用例:

/info/datetime/clock → 進み続ける時計

/info/datetime/current-time

現在の時分秒(静的)。

使用例:

/info/datetime/current-time → 現在の時分秒

/info/datetime/current-date

現在の年月日(静的)。

使用例:

/info/datetime/current-date → 現在の年月日

/info/datetime/current-day

現在の曜日。月曜を 0 とした 0〜6。

使用例:

/info/datetime/current-day → 現在の曜日

view

/view/datetime/now

現在日時を、人が読めるテキスト画像で返す。基準は常に現在時刻で、パラメータでずらして表示できる。

year / month / week / date / day / hour / minute / second
その単位を絶対値でセット。day は曜日(Mon〜Sun)。week、date、day の順に処理される。
addyear / addmonth / addweek / adddate / addhour / addminute / addsecond
その単位を相対的に加減算(負も可)。
show
表示する要素をカンマ区切りで指定(year,month,date,day,hour,minute,second)。all を指定すると全要素。省略時は年月日時分。
fmt
書式ロケール(例 ja-JP, en-US, sv-SE)。省略時はブラウザの言語。
pad
付けると月日時分秒をゼロ埋め(2桁)にする。

使用例:

/view/datetime/now?addhour=3&show=hour,minute&pad → 3 時間後の時分をゼロ埋めで表示

weather

現在の天気(Open-Meteo)。lat / lon を省略するとアクセス元の現在地(取得できなければ東京)を使う。

info

/info/weather/temperature

現在の気温。摂氏の10倍。

lat
緯度(省略時 35.6895=東京)
lon
経度(省略時 139.6917=東京)

使用例:

/info/weather/temperature?lat=35.6895&lon=139.6917 → 236(23.6℃)

/info/weather/apparent-temperature

現在の体感温度。摂氏の10倍。

lat / lon
緯度・経度(省略時は東京)

使用例:

/info/weather/apparent-temperature → 291(29.1℃)

/info/weather/humidity

現在の相対湿度(%)。

lat / lon
緯度・経度(省略時は東京)

使用例:

/info/weather/humidity → 81

/info/weather/precipitation

現在の降水量(mm)。

lat / lon
緯度・経度(省略時は東京)

使用例:

/info/weather/precipitation → 0

/info/weather/probability

現在の降水確率(%)。

lat / lon
緯度・経度(省略時は東京)

使用例:

/info/weather/probability → 59

/info/weather/wind-speed

現在の風速(km/h、四捨五入)。

lat / lon
緯度・経度(省略時は東京)

使用例:

/info/weather/wind-speed → 12

/info/weather/weather-code

現在の天気コード(WMO code)。0=晴れ、45=霧、51-67=雨、71-77=雪、95-99=雷雨など。

lat / lon
緯度・経度(省略時は東京)

使用例:

/info/weather/weather-code → 3(曇り)

/info/weather/pressure

現在の気圧(hPa、四捨五入)。

lat / lon
緯度・経度(省略時は東京)

使用例:

/info/weather/pressure → 1013

view

/view/weather/now

現在の天気を、人が読めるテキスト画像で返す。show で表示要素を選べる。

lat / lon
緯度・経度(省略時はアクセス元の現在地)
show
表示する要素をカンマ区切りで指定(weather-code, weather, temperature, apparent-temperature, humidity, precipitation, probability, wind-speed, pressure)。all を指定すると全要素。省略時は weather, temperature, humidity。

使用例:

/view/weather/now?show=weather,temperature,humidity → 快晴 23℃ 湿度81%

stock

株価。東証銘柄は .T を付ける(例: 5244.T)。取引時間中は最大1分キャッシュ、時間外はキャッシュされる。

info

/info/stock/open/:symbol

指定銘柄の始値。始値は確定後、翌9:05までキャッシュされる。

:symbol
銘柄コード(パス)。例: 5244.T

使用例:

/info/stock/open/5244.T → 171

/info/stock/high/:symbol

指定銘柄の高値。取引時間中は最大1分キャッシュ。時間外はキャッシュされる。

:symbol
銘柄コード(パス)。例: 5244.T

使用例:

/info/stock/high/5244.T → 174

/info/stock/low/:symbol

指定銘柄の安値。取引時間中は最大1分キャッシュ。時間外はキャッシュされる。

:symbol
銘柄コード(パス)。例: 5244.T

使用例:

/info/stock/low/5244.T → 170

/info/stock/close/:symbol

指定銘柄の終値。取引時間中は最大1分キャッシュ。時間外はキャッシュされる。

:symbol
銘柄コード(パス)。例: 5244.T

使用例:

/info/stock/close/5244.T → 173

view

/view/stock/:symbol

指定銘柄の株価を、人が読めるテキスト画像で返す。show で表示要素を選べる。取引時間中は最大1分キャッシュ。時間外はキャッシュされる。ただし show=open のみの場合は始値専用の長期キャッシュ(翌9:05まで)を使う。

:symbol
銘柄コード(パス)。東証は .T を付ける(例: 5244.T)
show
表示する要素をカンマ区切りで指定(open, high, low, close)。all を指定すると全要素。省略時は close。

使用例:

/view/stock/5244.T?show=all → 始値171円 高値174円 安値170円 終値173円

cookie

cookie の読み書き。数値・カンマ区切りリスト操作つき。env 空間はサービスが管理する予約 cookie で、読み取り専用。

view

/cookie/view/:name

cookie の値をテキスト画像で返す。数値でなくても、範囲外でもそのまま表示する。存在しなければ 404。

:name
cookie 名(パス)

使用例:

/cookie/view/name → name の中身をそのまま表示

/cookie/set/:name

cookie に値を書き込む(上書き)。

:name
cookie 名(パス)
value
書き込む値(省略時は空文字)

使用例:

/cookie/set/score?value=100 → score に 100 を書き込む

/cookie/delete/:name

cookie を削除する。

:name
cookie 名(パス)

使用例:

/cookie/delete/score → score を削除する

number

/cookie/number/get/:name

cookie の値を数値として読んで返す。数値でない、または -8388607〜8388607 の範囲外なら 404。

:name
cookie 名(パス)

使用例:

/cookie/number/get/score → score を数値で読む

/cookie/number/add/:name

cookie の値に数値を加算する。存在しなければ 0 を基準に加算する。既存値または加算値が数値として読めなければ 400。範囲制限はなく、値はそのまま保持される。

:name
cookie 名(パス)
value
加算する数値(省略時は 1)。負も可

使用例:

/cookie/number/add/count → count を 1 増やす

/cookie/number/add/count?value=10 → count を 10 増やす

list

/cookie/list/push/:name

cookie を「,」区切りのリストとみなし、末尾に要素を追加する。既存が空(または存在しない)ときは区切りなしでそのまま書く。value 未指定なら何もしない。

:name
cookie 名(パス)
value
追加する要素

使用例:

/cookie/list/push/fruits?value=apple → apple を追加(apple → apple,banana → ...)

/cookie/list/remove/:name

「,」区切りリストから要素を 1 つ取り除く。value か index のどちらか一方を指定する(両方・皆無は 400)。value 指定なら最初に一致した要素、index 指定ならその位置(0 始まり、負で末尾から)。対象がなければ 404。

:name
cookie 名(パス)
value
取り除く要素(値で指定)
index
取り除く位置(0 始まり、負で末尾から)

使用例:

/cookie/list/remove/fruits?value=banana → banana を取り除く

/cookie/list/remove/fruits?index=-1 → 末尾を取り除く

/cookie/list/includes/:name

「,」区切りリストに指定要素が含まれるかを 1(あり)/ 0(なし)で返す。完全一致で判定する(部分一致しない)。value 未指定なら 400。

:name
cookie 名(パス)
value
探す要素

使用例:

/cookie/list/includes/fruits?value=banana → 含めば 1、なければ 0

/cookie/list/index/:name

「,」区切りリスト内で指定要素が何番目かを返す(0 始まり)。見つからなければ 404。value 未指定なら 400。

:name
cookie 名(パス)
value
位置を調べる要素

使用例:

/cookie/list/index/fruits?value=banana → apple,banana なら 1

/cookie/list/at/:name

「,」区切りリストの指定位置の要素をテキスト画像で返す。位置は 0 始まり、負なら末尾から(-1 が最後)。範囲外なら 404、index が数値でなければ 400。

:name
cookie 名(パス)
index
取り出す位置(0 始まり、負で末尾から)

使用例:

/cookie/list/at/fruits?index=1 → apple,banana なら banana

/cookie/list/at/fruits?index=-1 → 最後の要素

env(読み取り専用)

/cookie/env/view/:name

env 空間(サービスが管理する予約 cookie)の値をテキスト画像で返す。env 空間は読み取り専用で、書き込み・削除はできない。存在しなければ 404。

:name
cookie 名(パス)。env_ プレフィックスは自動で付く

使用例:

/cookie/env/view/comment.name → env 空間の comment.name を表示

/cookie/env/number/get/:name

env 空間の値を数値として読んで返す。数値でない、または -8388607〜8388607 の範囲外なら 404。

:name
cookie 名(パス)

使用例:

/cookie/env/number/get/count → env 空間の count を数値で読む

/cookie/env/list/includes/:name

env 空間の「,」区切りリストに指定要素が含まれるかを 1(あり)/ 0(なし)で返す。完全一致で判定する。value 未指定なら 400。

:name
cookie 名(パス)
value
探す要素

使用例:

/cookie/env/list/includes/tags?value=vip → 含めば 1、なければ 0

/cookie/env/list/index/:name

env 空間の「,」区切りリスト内で指定要素が何番目かを返す(0 始まり)。見つからなければ 404。value 未指定なら 400。

:name
cookie 名(パス)
value
位置を調べる要素

使用例:

/cookie/env/list/index/tags?value=vip → 見つかった位置

/cookie/env/list/at/:name

env 空間の「,」区切りリストの指定位置の要素をテキスト画像で返す。位置は 0 始まり、負なら末尾から(-1 が最後)。範囲外なら 404、index が数値でなければ 400。

:name
cookie 名(パス)
index
取り出す位置(0 始まり、負で末尾から)

使用例:

/cookie/env/list/at/tags?index=0 → 先頭の要素

comment

掲示板。フォーム UI は CSS 側が持ち、この API は投稿・名前変更の受け口と、一覧・投稿者名の表示画像を提供する。

view

/view/comment/list

コメント一覧の最新20件を、デザインされた画像で返す。名前・日時・本文を表示し、本文は自動折り返し。日時は見る人のタイムゾーンで表示される。0件のときは「まだコメントはありません」と表示。

fmt
日時の書式ロケール(例 ja-JP, en-US)。省略時はブラウザの言語。

使用例:

/view/comment/list → 最新20件のコメント一覧

/view/comment/name

現在の投稿者名をテキスト画像で返す。未設定なら「名無し」。

使用例:

/view/comment/name → 投稿者名を表示する

post

/post/comment

コメントを投稿する。フォームの action 先として使う。投稿者名は cookie に保存された名前(未設定なら名無し)。成功すると referer へ 303 リダイレクトで戻る(referer 必須)。

comment
本文(フォームフィールド)。280文字以内。

使用例:

<form action="/post/comment" method="post">name="comment" の textarea を置いて送信

/post/comment/rename

コメントの投稿者名を変更する。名前は cookie に保存され、以後の投稿に使われる。成功すると referer へ 303 リダイレクトで戻る(referer 必須)。

rename
新しい名前(フォームフィールド)。24文字以内。文字・数字と ・ . _ - が使える。

使用例:

<form action="/post/comment/rename" method="post">name="rename" の input を置いて送信

heartbeat

/heartbeat

アクセスを打刻し、現在の同時接続数をテキスト画像で返す。

使用例:

/heartbeat → 同時接続数を表示する

online-count

/info/online-count

現在の同時接続数。打刻はせず数だけ返す。

使用例:

/info/online-count → 現在の同時接続数

random

/info/random

指定範囲の整数乱数(両端を含む)。

from
下限(省略時 0)。-8388607 以上
to
上限(省略時 8388607)。8388607 以下

使用例:

/info/random?from=1&to=6 → 1 から 6 までの乱数を返す