JAVA無しで描けるお絵かき掲示板NEOが動画再生に対応

2018年10月23日

うれしい事にお絵かき掲示板の希望の光「PaintBBS NEO」が動画再生に対応したようです。
開発者のfunigeさんに心から感謝です。ありがとうございます。

今回は「お絵かき掲示板CGIのRelm」で、NEOの動画再生が出来るように改造したいと思います。

RelmにNEOを組み込む改造については前回の記事をご参照お願いします。

お絵かき掲示板PaintBBS NEOの設置方法(Relm簡単改造)

まず用意する物は、NEOの1.4.5以上のバージョン。
Relm側で改造するのは毎度おなじみ「paint.pl」だけです。
(l_paint.htmにJavascript追加するだけでも動きそうなので解る人はお好みで)

NEOの動画再生用ソース

以下のソースを動画再生ページのHTMLのHEAD部分に追加します。
Relm以外のCGIに応用する場合でも同じです(PHPは解りません)

<!– ■NEO動画再生用 –>
<script>
document.paintBBSCallback = function (str)
{//neo
console.log(‘paintBBSCallback’, str)
if (str == ‘check’) { return true; }
else { return; }
}//neo
</script>
<link rel=”stylesheet” href=”neo.css” type=”text/css”>
<script src=”neo.js” charset=”UTF-8″></script>

paint.plの改造【1/3】

改造箇所は、すべて、paint.plのサブルーチン sub animation{~} 内です。

paint.plに元からあるif文 (動画ファイルの拡張子がspch以外だった場合に~)を利用します。
spch以外だった場合に、変数$NEOPCHTAGに、NEO動画再生用のタグをセットします。

#■NEO動画再生用タグ追加【1/3】■NEO■NEO■NEO■NEO■NEO■
$NEOPCHTAG = <<“HTML”;

<!– ■NEO動画再生用 –>
<script>
document.paintBBSCallback = function (str)
{//neo
console.log(‘paintBBSCallback’, str)
if (str == ‘check’) { return true; }
else { return; }
}//neo
</script>
<link rel=”stylesheet” href=”neo.css” type=”text/css”>
<script src=”neo.js” charset=”UTF-8″></script>

HTML
#■NEO■NEO■NEO■NEO■NEO■NEO■NEO■NEO■NEO■NEO■NEO■

画像で追加位置が1行ズレていたので修正しました(2018/10/23)

paint.plの改造【2/3】

すぐ下の行にあるname=”pchapp”をname=”pch”に書き換えます。
例では、副作用が出た時に、元に戻せるように、元の行を#でコメントアウトして、新しい行を追加しています。

# Applet タグの中
$applettag = qq|code=”$appclass” archive=”$apparchive” name=”pch” \n\t width=”$appwid” height=”$apphei”|;
#■$applettag = qq|code=”$appclass” archive=”$apparchive” name=”pchapp” \n\t width=”$appwid” height=”$apphei”|;

paint.plの改造【3/3】

最後にHTMLスキンファイル(skin/l_paint.htm)の置き換え処理の部分に、最初に作った変数$NEOPCHTAGを追加します。
スキンHTMLファイルの<!–PAINT_JAVASCRIPT–>の部分をRelmの拡張機能Javascript類が入っている$paintjsに置き換えています。
その先頭にNEOの動画再生用のタグ$NEOPCHTAGを追加しています。

s//$NEOPCHTAG$paintjs/io;

動画ファイルでツールを判定する処理 (Relm以外のCGIに応用する場合のメモ)

「NEO」と「しぃペイント」を併用している場合など、拡張子で判定が出来ない場合などに。
動画ファイルの1行目を読み込んで、先頭を見て振り分ける処理です。

$PCH=”test.pch”;
open ( IN, “$PCH”);
flock(IN, 2);
binmode IN;
$TES=<IN>;
close(IN);
#■動画ファイルの1行目の先頭で種類を判定する
if ( $TES =~ /^NEO/i ) { $KEKA=”NEOの動画です”; }
elsif ( $TES =~ /^layer/i ) { $KEKA=”しぃペインターの動画です”; }
else { $KEKA=”しぃペイントの動画です”; }

あとがき

これでRelmお絵かき掲示板でも、NEOの動画再生が出来るようになりました。
NEOの「動画から続きを描く」については、改造なしで動作します。
chromeはブラウザのキャッシュが強烈に出る場合があるので、続きを描いても更新されない場合はキャッシュを消してみましょう。

Relm以外のCGIについても、似たような改造で出来ると思います
(私はPHPはまったく解らないので、その辺の解説は詳しい人のページを参照してください)
ぜひ皆さんも、この機会に、お絵かき掲示板を設置してはいかがでしょう!
最後まで、お読みいただきありがとうございました。