にしし らぼらとりー

にしし(西村文宏)製スクリプトの公開開発実験場(ラボラトリー)です。各種スクリプトの最新版やβ版の動作確認ができます。バグ報告や、機能面でのご要望などもお気軽にお知らせ下さい。

※当ウェブサイトは、にしし製フリーCGIなどの動作確認サンプルを公開したり、製作進行に関する呟きを掲載している実験場のようなものです。 各種CGIスクリプトの配布パッケージを入手したい場合や、にしし(西村文宏)の個人サイトをお探しの場合は、 本家サイト「にしし ふぁくとりー」へお越し下さい。(╹◡╹)ノ

ざっくり最近の方針や状況など

最近のフリーCGI開発は、てがろぐ(→動作テスト)がメインになっています。しかし、他のネタもあるので新規に開発を進めたいとも思ってはいます。思っては。

個人的に日常的に活用しているのは、マイクロブログ的なメモ蓄積CGI「てがろぐ」と、複数のRSSフィードを結合して配信できるCGI「Fumy RSS Merger」でしょうかね。

たぶん昔から一番よく利用されているのは、スケジュール・カレンダー表示CGI「Fumy Teacher's Schedule Board」ですが、2000年代設計の古いUIが気になっていたので、ようやく2022年6月に新スケジュールカレンダー表示CGI「さんごよみ」として再開発しました。てがろぐ共々ご活用頂ければ幸いです。

諸々ご要望を頂ければ開発継続のモチベーション維持に役立つのでありがたいです。(๑╹◡╹๑)

RSS Feed

開発放言 (最新の20件)

てがろぐCGIで、パラメータ ?mode=around3&postid=123 で、No.123の前後3件の最大7投稿を閲覧できる機能はできた。パラメータを例えば around4 にすれば前後4件ずつの最大9投稿を閲覧できる。投稿単独表示時のURLの末尾に &mode=aroundを加えれば良い。とはいえ、自力でパラメータを加えるのは面倒なので、ユーティリティリンク枠にリンクを追加しておく方が良いか。(もちろん、設定で表示/非表示を選択できるようにする。)

てがろぐ <230文字>

何か作るときには、「何のツールなのか」という点を決めるのは当たり前だが、「何ではないのか」もしっかり押さえておく必要がある。「これは○○ではない(のでそういう機能は加えない)」というような。そうしないと、同種の既存ツールに寄ってしまいがちなのだが、そうすると存在する意味が薄れてしまう上に、開発の手間も増えてしまって、気力の維持が難しくなるので。そこは避けないといけない。

開発ネタ <186文字>

パラメータ ?around=123 とかで、No.123 の前後5件ずつくらいの計11投稿を閲覧できるような機能が欲しい。で、そのリンクは投稿単独表示時にユーティリティリンク枠に表示される感じで。

てがろぐ <98文字>

国立国会図書館サーチのAPIを使うと書影データは手に入るのか。これで蔵書管理スクリプトを自作すればいいか……? 何をいつ読んだか、という情報だけでなくて、「その本がどの電子書籍リーダーに入っているのか」の情報を記録しておきたい。そうしないと読み返そうとしたときに探すのが大変なので。

開発ネタ <141文字>

てがろぐ側の画像表示機能がかなり「行き当たりばったり」的な開発だったので、内側スキンで画像の表示をどうにかしたい場合のカスタマイズ自由度に制限があった反省から、いろいろ細かく情報を得られる記法を用意してみた。需要があるかどうかはともかく。

とはいえ、簡単に書ける記法もある方が望ましいので、単に [[ONEFILE]] みたいに書けば、そこに当該ファイル(画像なら画像、動画なら動画、サムネイルがあるならサムネイル)の表示用HTMLが出てくる。しかし、細かく表示用HTMLを自力で(スキン側で)組み立てたい場合とか、CSSでの装飾のためにclass名を用意しておきたい場合とかには、以下のような記法が使える。

※例えば、300×200pxでNSFWフラグ付きの画像 ./images/sample.png の場合、
  • [[FILE:TYPE]] で種類の大分類: IMG
  • [[FILE:NAME]] でファイル名: sample.png
  • [[FILE:PATH]] でパス全体: ./images/sample.png
  • [[FILE:EXT]] で拡張子だけ: png
  • [[FILE:BASE]] でベース名だけ: sample
  • [[CAPTION]] でキャプション: サンプル画像
  • [[FLAGS]] でフラグ: nsfw
  • [[IMAGE:WIDTH]] で横幅: 300
  • [[IMAGE:HEIGHT]] で高さ: 200
  • [[IMAGE:SIZEATT]] でHTML用属性: width="300" height="200"
今の時点でそう実装してみた、というだけなので、変更する可能性はあるが。
種類の大分類とか、拡張子だけとか、ベース名だけとかを得る記法は、それをclass名に使えば「その条件に該当する画像(とか)」をCSSで一括して装飾する際に活用できる。

製作中ツール <792文字>

サブフォルダも一覧に表示する場合、(共通のフォルダアイコン画像ではなく)それぞれのフォルダごとに画像を用意しようと思えばできる仕様に実装できた。めでたい。

例えば、
  • 画像の場合、オリジナルファイルが sample.jpg なら、サムネイル画像は ./mini/sample.jpg が(あれば)使われる。
  • 動画の場合、オリジナルファイルが yomple.mp4 なら、サムネイル画像は ./mini/yomple.*** が(あれば)使われる。
  • サブフォルダの場合、そのPATHが ./gopple なら、それ用のサムネイル画像は ./mini/gopple.*** が(あれば)使われる。
……という仕様にできた。なので、「そのフォルダ用のアイコン」的に使いたい画像は、サムネイル画像として用意すれば表示に使われる。

※「***」の部分は、png、jpg、gif、webp のどれか。(この順で走査して最初に見つかったものを採用する。)

製作中ツール <425文字>

てがろぐのメリットの1つがたぶんスキンの自由度だと思うので、スキンの自由度は同じレベルになるようにする。

製作中ツール <52文字>

今のところ、ソースコードは1,052行ほど書いているのだが、まだ先は長い。>>2480,2477/R

製作中ツール <50文字>

絵に描いた餅に終わらないように。

製作中ツール <16文字>

今、開発中の画像等ファイル展示PHP >>2477 だが、掲載順序をパラメータで指定できるようにした。デフォルトではタイムスタンプの新しい順に並ぶが、パラメータに
  • ?sort=time&order=reverse が指定されたら、タイムスタンプ古い順でソートして並べる。
  • ?sort=cap が指定されたら、キャプション文字昇順(ABC…)でソートして並べる。
  • ?sort=cap&order=reverse が指定されたら、キャプション文字降順(ZYX…)でソートして並べる。
  • ?sort=size が指定されたら、ファイルサイズ大きい順にソートして並べる。
  • ?sort=size&order=reverse が指定されたら、ファイルサイズ小さい順にソートして並べる。
  • ?sort=name が指定されたら、ファイル名昇順(ABC…)でソートして並べる。
  • ?sort=name&order=reverse が指定されたら、ファイル名降順(ZYX…)でソートして並べる。
……というような感じの指定ができる。

ファイル名やキャプション文字を使ってソートすることもできるので、事実上、自分の好きな順序で画像を並べて掲載することもできるだろう。ファイル名やキャプション文字を工夫すれば。(登録できる情報なら何でもソートキーに使えるようにするつもりなので、キャプション以外にコメント等も登録可能になれば、そのコメントの文字を使ってソートすることもできる。ただ、最初のリリース時点でそこまで作るかどうかは今の時点ではまだ分からない。)

ソートに使うキーをパラメータで指定できるので、複数の並べ方を共存させられる点が、何かちょっとメリットになりそうな気がする。「標準では新着画像の順に並ぶ」が、別途「ファイル名順に並べるリンクも設けておいて、望みの順序で表示するモードとして使う」とか。

主に画像を並べる用途を想定しているが、画像・動画・その他のファイルを並べることもできる。サブディレクトリの存在も認識するので、ファイラーっぽい感じの表示もできるハズ。(サブディレクトリへのリンクは、画像等と並べて同時に表示することもできるし、表示しないでおくこともできる。設定次第で。)

キャプション等を保持するデータファイルは、てがろぐCGIの画像インデックスファイル(index.xml)と互換性を持たせたので、てがろぐCGIの画像保存用ディレクトリを表示対象に設定して、てがろぐと組み合わせて使うこともできるような気がする。たぶん。

このツール上でファイルをアップロードすることもできるが(※まだそこまでは作れていないのだが)、FTP等の別手段でUPされたファイルもすべて認識する。キャプション等の情報はWeb上で1つ1つ登録することもできるが、データファイルはXMLなので、(FTPで一気に大量UPしたファイル群に対するキャプションは)XMLファイルを直接編集すると一気に登録できて楽かもしれない。

製作中ツール <1257文字>

WAFによる警告を回避して投稿できるように、フレーズの置き換え機能を用意したら良いのかもしれない。例えば「 @UPUP@ 」と打ったら内部では「 ../../ 」に変換されて解釈されるとか。「 @ETC@ 」と打ったら内部では「 /etc/ 」に変換されて解釈されるとか。「@」記号で挟まれる文字列は、利用者が自由に登録できるようにしたら、好きなように作れて良いのではないか。ショートコードみたいに使う方法もあるかもしれない。

てがろぐ <213文字>

次のてがろぐ正式版からは、TegUp も同梱するようにしたい。

てがろぐ <31文字>

不特定多数の人間で共用する、画像中心のファイル共有Webを用意する必要が出てきたので、何かそれっぽいツールを開発したい。2月中に。てがろぐのギャラリーモードでは機能的に適当ではないので。
必須の機能はだいたい以下のような感じ。
  • スキン式(てがろぐのようにスキンファイルでデザインを自由にできる)
  • 🔵指定ディレクトリ内に存在する画像ファイル等をすべて認識して表示できる(=このツールを経由せずにFTP等で別途UPしたファイルもすべて認識する)。
  • 🔵サブディレクトリも認識する。
  • 画像を投稿するのが基本だが、PDFとかZIPとか(あらかじめ許可しておいた)任意の形式のファイルも投稿できる。
  • 画像サムネイル(またはファイルアイコン)を並べて表示したり、リストで表示したり、複数の表示形態を併用できる(=複数のスキンを併用できる)。
  • キャプション(タイトル)を付けられる。
  • ハッシュタグで分類できる。
  • サムネイルを自動生成する(投稿時に)。 ※GDライブラリで扱える形式だけ。
  • サムネイル用画像を別途指定もできる。
  • PDFとかZIPとかの画像以外のファイルでは、サムネイルを指定しなければ、デフォルトの分類画像(アイコン)で表示する。
  • 画像(or任意ファイル)1つだけを単独で表示する個別ページも生成できる。
  • ログインしていなくても誰でも投稿できる。(この機能をOFFにすれば、自分専用の画展ツールになる)
  • 非ログイン者が自分の投稿ファイルを削除できるように、投稿時に「削除用パスワード」を設定しておける。
  • 投稿者名も併せて投稿できる。(非ログイン者用)
  • 投稿可能なファイルサイズの上限を指定できる。キャプション等の文字数上限も。
  • 投稿年月日で区切って表示できる。(てがろぐの「日付境界バー」みたいな区切りを自動挿入できる)
  • ページ内に投稿欄を表示できる。(てがろぐのQUICKPOSTみたいな。)

そのほか、あると望ましいが必須ではなさそうな機能は、以下のような感じ。
  • キャプションとは別に、短いコメントも付けられる。(プレーンテキスト)
  • ログインしていれば投稿者を認識して投稿・編集・削除できる。
  • 既にUPされている画像(or任意ファイル)の差し替えができる。
  • ハッシュタグの一覧を表示できる。
  • NSFW等のフラグを付けられる。
  • 検索できる(ファイル名、キャプション、コメント、ディレクトリ名、ファイル種類、投稿者、日付で)。
  • 新着順以外に並べ替えができる。(ファイル名のアルファベット順とか)
  • OGP(+Twitter Card)を出力できる。
  • RSSフィードを出力できる。
  • ファイルのタイムスタンプとは別に「投稿日時」を保持しておける。(手動で投稿日時を編集できるように。)

さらに、あったら便利だろうと思う(最初には作らないが、将来的に作ることを想定しておく)機能は、以下のような感じ。
  • カテゴリで分類できる。+カテゴリの一覧を表示できる。
  • サブディレクトリがある場合は、投稿時にアップロード先ディレクトリを選択できる。
  • 離れた位置にあるディレクトリも対象にできる。
  • 一覧から、複数ファイルの一括削除ができる。
  • サムネイルが生成されていない画像(FTP等でUPされたとか)のサムネイルを一括生成できる。
  • コメントの文字を装飾可能にする。
  • 複数画像の連結表示ができる。(並び順も指定できると良い)
  • NGワードを登録しておける。
  • ダウンロード数(閲覧数)を記録できる。
  • 鍵付きにできる。(アクセス制限された専用ディレクトリにUPしておいて、プログラム側が毎回バイナリを読み込んでダウンロードさせることで、直アクセスを不可にする。)
  • ユーザIDに、名前だけでなくアイコンや紹介文等の付加情報を登録できる。

キャプション等を記録するデータファイルは、てがろぐ画像保存用ディレクトリで使っている index.xml と互換性があると便利かもしれない。

問題は、企画倒れにならないようにモチベーションを維持して開発できるかどうかだ。(何らかのツールが必要なのは間違いないのだが。現状では、2000年代に開発されたファイル共有CGIが稼働しているので最低限の中の最低限くらいのことは実現できているので。絶対的に何が何でも開発が必要というわけではないので、モチベーションの維持材料が何かもうちょっと要るかもしれない。)

製作中ツール <1829文字>

ログインしていない限り全部見えなくする「完全プライベートモード」的な動作も、そんなに手間を掛けずに実装できそうな気がしてきたので、実装しようかな……。
主に「自分(または仲間内)専用の空間にする」という用途だけども、同時に「ゲスト権限(Lv.1)での投稿を禁止する」という設定も可能にすると、「読めるだけのユーザID」を用意することもできそうな気もする。その場合、事実上「すべての投稿を(共通)鍵付きにする」のと同じ効果にできそうな。(そういう要望もあった気がする。)

てがろぐ <234文字>

自前の静的サイトジェネレータを作るとしても、時間(と気力)が確保できそうなのは早くても3月か4月頃になりそうな気がする。気温が春になってからだな……。_(:3」z)_ ざっくり、1月は寒くて気力が減退気味だし他の用事もあるし、2月は税金で忙しいし、3月は別件でちょっと忙しい可能性があるので。ただ、3月の別件は、3月に始めたのではやや遅いので2月中には始めないといけないのだが。なので早ければ3月には予定が空く可能性はあるのだけども。もちろん、仕事の入り具合にも依って異なるけども。

<241文字>

てがろぐで、最新の1投稿だけを別ページに埋め込みたい場合、今は「埋め込み用のスキンを作ってSSIやPHPで合成する」とか「RSSを読んで整形して合成する」とか何かそういう感じの方法しかないので、何にしても「最新の1件を出力するために、てがろぐCGIが動作する」という背景は避けられない。なので、『最新の1件だけを指定のスキンを適用して出力した結果を、静的なHTMLとして出力しておく』という動作をする「埋め込みモード」みたいなのを用意できれば、埋め込むためだけにCGIを稼働させずに済むので、埋め込み先ページの速度向上(というか速度低下の防止)に役立つ気がする。もちろん、サーバの負荷軽減にもなる。埋め込み先ページはたいていHOMEみたいな「アクセス頻度の高いページ」だろうから。

てがろぐ <340文字>

ようやく申請が通った。20分弱くらいだ。予想よりは早かった。数時間は待たねばならないのかと思っていた。

<51文字>

私のネット環境では、既にこのドメインは新サーバに繋がっているのだが、まだSSLの申請ができない……。(ので、HTTPSでアクセスするとセキュリティ警告が出る。)

<80文字>

《ここは移転先の新サーバ》

<13文字>

今は、ChatGPTとかのAIによる補助が得られるから、もっと速度UPできそうな気はする。

開発ネタ <45文字>

Powered by てがろぐ Ver 4.2.3.

関連サイト・ページのご案内

にしし(西村文宏)の個人サイトをお探しの場合は、本家サイト「にしし ふぁくとりー」へお越し下さい。

  • 各フリーCGIの公式ページをご覧になりたい場合は、フリーCGIコーナーをご覧下さい。
  • 作者(にしし)へ連絡を取りたい場合は、連絡先ページをご覧下さい。
  • 作者(にしし)にコーヒーをおごりたい場合は、コーヒーをおごるページをご覧下さい。(✧ω✧)

▼にしし製 重点開発フリーCGIの動作テスト

▼にしし製フリーCGIの動作テスト

▼にしし製フリーCGIの動作サンプル

※当サイト内にある稼働例と、実際に配布しているスクリプトを設置した結果とでは、若干動作が異なる場合もあります。疑問点はお気軽にお問い合わせ下さい。 また、機能面のご要望なども歓迎致します。(╹◡╹)ノ