[ index / * / b / navy / neoranga ] [ mod ] [ home ]

/b/ - Random

kurame channel img
Name
Email
Subject
Comment
Verification
File
Password (For file deletion.)

お絵かき掲示板はこちらへ

投稿しても反映されない時はキャッシュを消すと反映されてる場合も
(firefoxならshift+リロード chromeならctrl+リロード)


>rktn , >amzn

Recent Images ALL boards

Recent Images /b/


File: 1696433397814.png ( 96.94 KB , 1888x1562 , yu-hi.sakura.ne_dtp_231005002645_008494.png )

 No.17[Last 50 Posts]

log mitai

 No.18

$config['webm']['use_ffmpeg'] = true;
$config['webm']['allow_audio'] = true;
$config['webm']['ffmpeg_path'] = 'ffmpeg60';
$config['webm']['ffprobe_path'] = 'ffprobe60';
$config['webm']['max_length'] = 60 * 60 * 60; // seconds

$config['mp4']['use_ffmpeg'] = true;
$config['mp4']['allow_audio'] = true;
$config['mp4']['ffmpeg_path'] = 'ffmpeg60';
$config['mp4']['ffprobe_path'] = 'ffprobe60';

ffmpeg -i videofile.mp4 -frames 1 thumbtest.jpg

 No.19

File: 1696433956280.png ( 173.46 KB , 599x471 , Screenshot 2023-10-04.png )

あ、貼れた

 No.20

https://qiita.com/je3kmz/items/463a62d9817c793be57c
ここの丸々コピペでコンパイルしたのでした

 No.21

soieba tegaki ha jisaku js?

 No.22

File: 1696434687760.png ( 123.68 KB , 1888x1848 , yu-hi.sakura.ne_dtp_231005004827_008495.png )

あとはコメントが空っぽの時に
キタ━━━━(゚∀゚)━━━━!!
に置き換えたい…

 No.23

>>20
じゃあ inc/instance-config.php は変更した?
デフォだと60が付かないffmpegとffprobeを読みに行く

それとffmpegを直接動かしてテストしたいから

ffmpeg60 -i "ここに動画ファイルのパス" -frames 1 thumbtest.jpg

こういうのやってみて
これでthumbtest.jpgが横棒ぐちゃぐちゃならffmpegが悪いってことになる

 No.24

File: 1696434985449.jpg ( 74.83 KB , 1920x1080 , thumbtest.jpg )

./ffmpeg60 -i ~/www/hinabita/cgi-bin/vichan/b/src/1696419897325.mp4 -frames 1 thumbtest.jpg

あれええ
ちゃんと出来てるうう

 No.25

>>22
たぶん $config['filters'][] で出来るけどちょい待ち

 No.26

// WebM Settings
$config['webm']['use_ffmpeg'] = true;
$config['webm']['allow_audio'] = true;
$config['webm']['max_length'] = 1800;
//$config['webm']['ffmpeg_path'] = '/home/yu-hi/bin/ffmpeg501';
//$config['webm']['ffprobe_path'] = '/home/yu-hi/bin/ffprobe501';
$config['webm']['ffmpeg_path'] = '/home/yu-hi/bin/ffmpeg60';
$config['webm']['ffprobe_path'] = '/home/yu-hi/bin/ffprobe60';

 No.27

$config['webm']['ffmpeg_path']
指定するまで全く動かなかったので
恐らく指定場所の物はbinで動いている
あと501でも60でも同じガビガビだった…

 No.28

>>24
dekiteru…
じゃあ他のオプションによって挙動がおかしくなる・・・?

>/inc/lib/webm/ffmpeg.php

>exec("$ffmpeg -strict -2 -ss " . floor($duration / 2) . " -i $filename -v quiet -an -vframes 1 -f mjpeg -vf scale=$width:$height $thumbnailfc 2>&1", $ffmpeg_out, $ret);

じゃあ生成コマンドをコードに似せて

ffmpeg -strict -2 -ss 0.1 -i "動画ファイル名" -v quiet -an -vframes 1 -f mjpeg -vf scale=250:141 thumbtest2.jpg

 No.29

$config['mp4']['use_ffmpeg'] = true;
$config['mp4']['allow_audio'] = true;
$config['mp4']['ffmpeg_path'] = 'ffmpeg60';
$config['mp4']['ffprobe_path'] = 'ffprobe60';

これ指定してない!mp4にもいるんだろうか…
webmには指定してるけどwebmもガビガビ

 No.30

File: 1696435604984.jpg ( 11 KB , 250x141 , thumbtest2.jpg )

./ffmpeg60 -strict -2 -ss 0.1 -i /home/yu-hi/www/hinabita/cgi-bin/vichan/b/src/1696419897325.mp4 -v quiet -an -vframes 1 -f mjpeg -vf scale=250:141 thumbtest2.jpg


 No.31

そもそもffmpegがこういう挙動するのがわからぬ・・・
mp4にも設定行は必要です

そもそもphpからffmpegを呼ばずにimagemagickでサムネ作ってるか・・・?

 No.32


 No.33

mp4設定行入れた…
// mp4 Settings
$config['mp4']['use_ffmpeg'] = true;
$config['mp4']['allow_audio'] = true;
$config['mp4']['ffmpeg_path'] = '/home/yu-hi/bin/ffmpeg60';
$config['mp4']['ffprobe_path'] = '/home/yu-hi/bin/ffprobe60';

でも何故かなくても
$config['webm']['ffmpeg_path'] = '/home/yu-hi/bin/ffmpeg60';
$config['webm']['ffprobe_path'] = '/home/yu-hi/bin/ffprobe60';
があるとサムネが出て
ないとサムネは出なかった…
つまりmp4設定しなくてもwebm指定してると使われるらしい

 No.34

File: 1696435978091.jpg ( 5.53 KB , 250x141 , t2.jpg )

>>30
とりあえずアタリおめでとう
こっちでは正常に出るので何か環境依存のエラーです
どうしよ・・・

 No.35

mjpeg ikou no hensuu ga okasii?(yuv410p?)
kono hensuu dokkara kuru no darou

 No.36

toriaezu mjpeg ikou nakusite UT sitemiyou

 No.37

jpeg2000はjpegではないので問題が違うだろうと思います

 No.38

File: 1696436203055.jpg ( 73.35 KB , 1920x1080 , thumbtest3.jpg )

./ffmpeg60 -strict -2 -ss 0.1 -i /home/yu-hi/www/hinabita/cgi-bin/vichan/b/src/1696419897325.mp4 -v quiet -an -vframes 1 thumbtest3.jpg

 No.39

>>35
それは色表現指定です
ffmpegは挙動全てを引数指定しないといけない思想だから違いはそうそう出ないはず
一応subsamplingパラメーターをjpegは持つけれども

 No.40

>>38
できてる
>In ffmpeg this is named the pixel format. The encoder mjpeg supports yuvj420p, yuvj422p, and yuvj444p as shown with ffmpeg -h encoder=mjpeg under Supported pixel formats. By default ffmpeg will automatically try to choose the least destructive pixel format, but crappy decoders may not support more complicated formats.
kono izureka no mjpeg ni dekireba ikesou

 No.41

./ffmpeg60 -strict -2 -ss 0.1 -i /home/yu-hi/www/hinabita/cgi-bin/vichan/b/src/1696419897325.mp4 -v quiet -an -vframes 1 -f mjpeg thumbtest4.jpg

同じファイルがある言われてしまった…
ちゃんと表示されてます

 No.42

-vf scale=250:141
これがだめらしいー?

 No.43

>>38
コードに埋め込まれている motion jpeg 指定がダメっぽい?
出力ファイルの手前に -vf scale=250:141 を追加してみて

 No.44

>>42
それ見ての通り縮小のための部分だから必須なのだ
なぜ

 No.45

File: 1696436641873.jpg ( 12.14 KB , 250x141 , thumbtest6.jpg )

./ffmpeg60 -strict -2 -ss 0.1 -i /home/yu-hi/www/hinabita/cgi-bin/vichan/b/src/1696419897325.mp4 -v quiet -an -vframes 1 -vf scale=250:141 thumbtest6.jpg

 No.46

>>41
-y で強制上書き出来ます

 No.47

同じファイルがあるはvichanの警告…

 No.48

さくらインターネットのサーバに
何かのライブラリが足りてない…?
コンパイル時に足りてない?で
拡大縮小が使えない?

 No.49

>>47
再現性パーフェクトはそれはそれで安心
ffmpegのスケーラーオプションがあるのでそれを用意します

 No.50

https://unixforum.org/viewtopic.php?t=52603
russian dakedo atta
format = ~ de ikeru nokana

 No.51

>>50
それはffmpegではないです
>>45
スケーラー一通り試しましょう
一応こちらではどれも期待通りだった
https://pastebin.com/68eSyQ1V

 No.52

File: 1696438594165-0.jpg ( 12.14 KB , 250x141 , tb7bicubic.jpg )

File: 1696438594165-1.jpg ( 9.91 KB , 250x141 , tb7bicublin.jpg )

File: 1696438594165-2.jpg ( 1.45 KB , 250x141 , tb7fast_bilinear.jpg )

File: 1696438594165-3.jpg ( 13.88 KB , 250x141 , tb7lanczos.jpg )

File: 1696438594165-4.jpg ( 6.85 KB , 250x141 , tb7neighbor.jpg )

File: 1696438594165-5.jpg ( 15.29 KB , 250x141 , tb7sinc.jpg )

File: 1696438594165-6.jpg ( 14.11 KB , 250x141 , tb7spline.jpg )

tb7neighbor.jpg
だけ成功?

 No.53

上手く行くかわからないけど設定をこうで
$config['webm']['ffmpeg_path'] = 'ffmpeg -sws_flags neighbor';
確かにソース見たら mp4 ffmpeg_path は読んでなかった

 No.54

こうか
$config['webm']['ffmpeg_path'] = '/home/yu-hi/bin/ffmpeg60 -sws_flags neighbor';
呼び出す時にエスケープされてないからこれでオプションとして渡るはず

 No.55

>sws_flags
>Set the scaler flags. This is also used to set the scaling algorithm. Only a single algorithm should be selected. Default value is ‘bicubic’.
hontoda onaji
naruhodo

 No.56

File: 1696439207114.mp4 ( 2.93 MB , 1280x720 , 2023-08-19T03-00-30_1280_2085_3m.mp4 )

test

 No.57

// WebM Settings
$config['webm']['use_ffmpeg'] = true;
$config['webm']['allow_audio'] = true;
$config['webm']['max_length'] = 1800;
//$config['webm']['ffmpeg_path'] = '/home/yu-hi/bin/ffmpeg501';
//$config['webm']['ffprobe_path'] = '/home/yu-hi/bin/ffprobe501';
//$config['webm']['ffmpeg_path'] = '/home/yu-hi/bin/ffmpeg60';
$config['webm']['ffmpeg_path'] = '/home/yu-hi/bin/ffmpeg60 -sws_flags neighbor';
$config['webm']['ffprobe_path'] = '/home/yu-hi/bin/ffprobe60';

だめぽいー

 No.58

File: 1696439469629.webm ( 43.46 KB , 344x135 , fu1668410.webm )

tes

 No.59

とりあえずmjpeg引数も復活させて
./ffmpeg60 -strict -2 -ss 0.1 -i /home/yu-hi/www/hinabita/cgi-bin/vichan/b/src/1696419897325.mp4 -v quiet -an -vframes 1 -vf scale=250:141:flags=neighbor -f mjpeg tb7neighbor_mjpeg.jpg -y

それとffmpegのハードウェアアクセラレーションをオフにする方も考えなきゃ

 No.60

File: 1696439601781.mp4 ( 911.07 KB , 360x360 , 1666980657701.mp4 )

なにこれコワ…

 No.61

./ffmpeg60 -sws_flags neighbor -strict -2 -ss 0.1 -i /home/yu-hi/www/hinabita/cgi-bin/vichan/b/src/1696419897325.mp4 -v quiet -an -vframes 1 -vf scale=250:141 -f mjpeg tb7neighbor_sws_mjpeg.jpg -y

 No.62

-hwaccel auto?

 No.63

File: 1696439895778.png ( 336.96 KB , 1513x411 , 新しいフォルダー (6)_dtp_231005021751_008497.png )

./ffmpeg60 -sws_flags neighbor -strict -2 -ss 0.1 -i /home/yu-hi/www/hinabita/cgi-bin/vichan/b/src/1696419897325.mp4 -v quiet -an -vframes 1 -vf scale=250:141 -f mjpeg tb7neighbor_sws_mjpeg.jpg -y

これもだめー

 No.64

猫まで迷い込んで来ておる
正直ハードウェアの故障だと思うんだよなー

 No.65

>>63
そうなるとソースコード改変して -f mjpegを消しちゃうしかない
>>28
ここの行の-f mjpeg消してみて

 No.66

./ffmpeg60 -strict -2 -ss 0.1 -i /home/yu-hi/www/hinabita/cgi-bin/vichan/b/src/1696419897325.mp4 -v quiet -an -vframes 1 -vf scale=250:141:flags=neighbor -f mjpeg tb7neighbor_mjpeg.jpg -y
こっちは大丈夫!:flags=neighborが重要みたい

 No.67

File: 1696440982893.mp4 ( 7.81 MB , 1920x1080 , 2023-08-24T21-55-09_1476_8m.mp4 )

exec("$ffmpeg -strict -2 -ss " . floor($duration / 2) . " -i $filename -v quiet -an -vframes 1 -f mjpeg -vf scale=$width:$height:flags=neighbor $thumbnailfc 2>&1", $ffmpeg_out, $ret);

 No.68

>>66
こっちで確認したら最初にsws_flagsで渡しても効いてなかった
別の方法考えます
(設定ではffmpegの前半しか指定出来ない)
(ffmpegは引数位置によって意味が変わるからちょっと難しい)

 No.69

キタ━━━━(゚∀゚)━━━━!!

 No.70

File: 1696441092489.mp4 ( 7.57 MB , 480x360 , 334002654.mp4 )


 No.71

>/inc/lib/webm/ffmpeg.php
>exec("$ffmpeg -strict -2 -ss " . floor($duration / 2) . " -i $filename -v quiet -an -vframes 1 -f mjpeg -vf scale=$width:$height:flags=neighbor $thumbnailfc 2>&1", $ffmpeg_out, $ret);
ffmpeg.php直接改変してなんとかした…

 No.72

File: 1696441256204.webm ( 2.65 MB , 1280x576 , 123.webm )

t

 No.73

File: 1696441415191.mp4 ( 2.3 MB , 640x640 , 1589358711331.mp4 )

動けばいいんだよ派的には解決状態
がしかし一体なぜなのだ
長時間ffmpeg使ってるけどこういうバグは踏んだことない
freebsdの何かが噛んでるのかしら

 No.74

git pullした時ffmpeg.phpに更新があると変わらなくなる奴…

 No.75

>>74
というかpullしたら文句言われちゃう
だからconfigに入れたいのよねー

 No.76

shellスクリプト挟んでそこで引数改変するようにしようか
今日はこれで離脱します

 No.77

おつつつtありがたい…

 No.80

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/
ここのRecent Images的なもので全てのファイル
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/sam2.2/sam_r.htm
みたいにずらっと取り出せないだろうか…

 No.81

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/gazou/samne.php

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/src/up0004.zip
上のzipのphpが8で動かないで詰まっていた…
下のやつをディレクトリ再帰するように
ほたさんと大昔頑張って改造したもの
> ☆サムネイルカッター☆ (画像一覧) by ToR + siokara
* ■ 謝辞
* 配布規定は レッツPHP! 様配布規定に準じます。
* 改造ご教示頂いた ハゲあきさん 有難うございます。
* ゆきさん 素晴らしいクラスのご提供を有難うございます。
* 菅処の管理人さん 便利なツールのご提供を有難うございます。
*
* ■ 更新履歴
* Ver2.3 08/09/15 imagick2対応、キャッシュが更新されない不具合を修正

 No.82

>>22
>キタ━━━━(゚∀゚)━━━━!!
のやつと
>>74
ffmpeg を呼ぶ前に引数改変することで neighbor scaler を使わせるやつ

https://pastebin.com/frz4rd2T

>>80
>>81
あとで動かしてみます

 No.83

昨日はおかげさまで助かりました
自分一人じゃどうにもならない奴

>キタ━━━━(゚∀゚)━━━━!!

後で設定してみます
instance-config.php
で出来る事だったんですね…
中身弄るしかないかと思ってました

 No.84

File: 1696496482890.png ( 46.33 KB , 198x198 , hikichanIcon.png )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.85

ffmpeg_neighbor.sh
ffmpeg60の置き換えで大丈夫です?
60どこかに要らないのかな

real_ffmpeg_command=ffmpeg
ここ
real_ffmpeg_command=ffmpeg60
だったか

 No.86

sam.php 単体では動かないものであった
とりあえず正規表現を //i で囲って
eregiが廃止されてるからpreg_matchに書き換え
これで動くかどうかはわからない

https://pastebin.com/T2rKZq3w

>>85
17行目の設定値のところを変えてください
たぶん
real_ffmpeg_command='/home/yu-hi/bin/ffmpeg60';
(そもそもffmpegという名前にした方が楽なのではないか
cd /home/yu-hi/bin/; ln -s ffmpeg60 ffmpeg ;
とでもした方が後々楽なのではないか
パッケージのffmpegだと何か問題あるのだっけ

 No.87

ガビガビがバージョンのせいかと思って
4番台5番台6番台と作った名残…

 No.88

File: 1696500055650.webm ( 2.93 MB , 1920x1080 , pan2_vp9_1920_2pass612_3m.webm )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.89

File: 1696500158642.mp4 ( 34.71 MB , 1920x1080 , 2023-08-31 17-38-55.mp4 )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.90

File: 1696500276128.mp4 ( 2.23 MB , 640x360 , 1670407233134.mp4 )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.91

File: 1696500497972.mp4 ( 4.43 MB , 1280x720 , 0WC9-Y0p8QAZd94x.mp4 )

サムネが出ねええ

 No.92

第二候補の
> $config['webm']['ffmpeg_path'] = 'bash – /path/to/ffmpeg_neighbor.sh';
こっちの設定の方が汎用性があるかも

apache を実行しているかあるいは phpを実行しているユーザーが ffmpeg_neighbor.sh を読み取れる必要があるのと bash が実行出来る必要があるので
えー
chmod a+r ffmpeg_neighbor.sh
とかしてください

あるいは実行ユーザーがわかってるならその権限で ffmpeg_neighbor.sh が単体実行出来るかどうか確認してみてください

 No.93

File: 1696500839221.mp4 ( 11.95 MB , 1280x720 , 【OP】ぱにぽにだっしゅ! 「黄色いバカンス」.mp4 )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.94

$config['webm']['ffmpeg_path'] = 'bash – /home/yu-hi/bin/ffmpeg_neighbor.sh';

した後
/bin内でchmod a+r ffmpeg_neighbor.sh
したものの(705 755)何故かだめぽい…

 No.95

% bash - /home/yu-hi/bin/ffmpeg_neighbor.sh
/home/yu-hi/bin/ffmpeg_neighbor.sh: line 2: $'\r': command not found
/home/yu-hi/bin/ffmpeg_neighbor.sh: line 3: $'\r': command not found
/home/yu-hi/bin/ffmpeg_neighbor.sh: line 4: syntax error near unexpected token `$'{\r''
'home/yu-hi/bin/ffmpeg_neighbor.sh: line 4: `function f() {

 No.96

File: 1696501470148.zip ( 5.73 KB , index.zip )

サムネ出すファイルphp間違えてた!
こっちだ!もうしわけないです
前の修正参考に行けるか一応見てみます

 No.97

apache側から呼び出せてないぽいのかな
自分の権限では実行できてる?
% bash - /home/yu-hi/bin/ffmpeg_neighbor.sh

 No.98

index.phpのほうは
eregi使ってないし/iで正規表現していた…のにphp8で動かない…

 No.99

>>95
余計な改行コードが入っているっぽい
Windowsの改行は \r\n だけど
unixは \n だけで \r いらない

\r消しましょ

tr -d $'\r' < /home/yu-hi/bin/ffmpeg_neighbor.sh > /home/yu-hi/bin/ffmpeg_neighbor2.sh
mv /home/yu-hi/bin/ffmpeg_neighbor2.sh /home/yu-hi/bin/ffmpeg_neighbor.sh

 No.100

>>97
ffmpegのバージョン情報が出るなら成功です
それとbashの次の引数は - が2つ、あるいは0です
一つだとスイッチになっちゃう

 No.101

File: 1696502061200.png ( 86.41 KB , 1772x1350 , yu-hi.sakura.ne_dtp_231005193353_008498.png )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.102

File: 1696502205257.mkv ( 5.83 MB , 2023-10-01_09-40-15.mkv )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.103

File: 1696502281908.mp4 ( 22.53 MB , 1280x720 , 『SPY×FAMILY』Season 2 オープニング主題歌Ado「クラクラ」アニメ映像-ノ….mp4 )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.104

>>101
\r を消すコマンドは失敗してるけど実行には成功してる
どういうことだ…
vichan設定の方もハイフンが一つだったりしないだろうか
そもそもbashは\rを空白文字扱いするはずだから元々なんでエラーしてたのか
環境変数IFSが違うんだろうか

 No.105

File: 1696502351451.webm ( 1.07 MB , 1024x1024 , 1696321721265.webm )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.106

\r 消すコマンド動かなかったので
テキストエディタの機能で
CRLFをLFに置き換えたのをアップしなおした…

 No.107

私はロボットではありません
2分以内に再投稿すると失敗するね…
reCaptcha中はbbs再投稿規制緩める設定ってあるんかな

 No.108

File: 1696502729754.mp4 ( 2.12 MB , 1272x720 , jusjusojus-1697261232296960245-20230831_235306….mp4 )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.109

行けるようにナッタ━━━━(゚∀゚)━━━━!!!
>You seem to have mistyped the verification.
だから別の理由かなこれ…recaptcha中の再投稿出来ない

 No.110

ページ更新しちゃえばいいのだけれど不便は不便
reCAPTCHA v2側には設定ないっぽい
vichanの方にもそれっぽい設定はないから、そうなるとセッション管理か何かしてreCAPTCHAに成功したユーザーにはしばらくreCAPTCHA認証してなくても投稿を通すような制御必要かも
これはソースの変更が必要

> config.php

> $config['error']['captcha'] = _('You seem to have mistyped the verification.');

 No.111

今回一連の面倒おかけしたのが
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/gazou/
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/gazou/sam_r.htm
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/sam_r.htm
このへんのphp5のままになってるうちのウェブ全とっかえを前にホタテさんろっしーとやってて
にじうら役場からvichanに移行をろっしーに勧められた関係だったのでした…

 No.112

File: 1696504472442.png ( 281.59 KB , 768x512 , fu1989897.png )

mov toka jtif ha dameka

 No.113

>>111
watasi yatta oboe nai..
post form no popup ka hosiina

 No.114

sam.phpのディレクトリ再帰化はほたさんじゃなかったかな…
いい加減古すぎるって相談したらろっしーにvichanに変えたらいいよって言われたのだった

 No.115

You look like bot.
?!?!

 No.116

You look like a bot.
が出てスレが建てられなくなった…

 No.117

そしてmodからログインして書き込もうとすると
Your browser sent an invalid or no HTTP referer.

 No.118

>>117
>Your browser sent an invalid or no HTTP referer.
proxy toka de header kieruto naru yatu

 No.119

You look like a bot.
でスレ立てが出来なくなってしまった…
設定で何か変わるんかなこれ…

 No.122

Flood detected; Post discarded.

 No.123

その設定のとこだろうなと思ったけど
数値の意味が分からなくて弄れなかった
スレ立て出来るようにナッター!!!
ありがとう…が別のスレに書き込めない

 No.124

// Allowed post-hover
$config['additional_javascript'][] = 'js/jquery.min.js';
$config['additional_javascript'][] = 'js/post-hover.js';
ロッシが言ってた欲しいpost hoverってこれなのだろうか
jsの便利な機能一覧が欲しい…
それはそれとしてONにしたけど効果が出ないな…

 No.125

modderとしてログインすると
書き込みとかをeditは出来るのに
新規のスレ立てをしようとすると
>Your browser sent an invalid or no HTTP referer.
謎…

 No.126

librejpだと
oekakiのほかにtegakiがあるけれども
どうやって実装しているのだろうか…

 No.127

>Your browser sent an invalid or no HTTP referer.
# true で投稿時にリファラが外部なら弾く
$config['referer_match'] = false;

>You look like bot.

これが起きてるのは見たことない
引っかかりそうなのはreCAPTCHA関係
post.php
if ($config['recaptcha']) {
if (!isset($_POST['g-recaptcha-response']))
error($config['error']['bot']);

>Flood detected; Post discarded.

このあたりの設定を緩和
// 秒数。小さいほど緩い。Minimum time between between each post by the same IP address.
$config['flood_time'] = 5;
// 秒数。小さいほど緩い。Minimum time between between each post with the exact same content AND same IP address.
$config['flood_time_ip'] = 15;
// 回数。大きいほど緩い。Same as above but by a different IP address. (Same content, not necessarily same IP address.)
$config['flood_time_same'] = 30;

あと書かれてはいないけどspam防止機能の緩和
ヘッドレスブラウザで投稿してるタイプのスパムには無力で、今は意味があるのか疑わしい
hidden_inputsを0にするとエラーになる
>Your request looks automated; Post discarded.
// 少ないほど緩い。Number of hidden fields to generate.
$config['spam']['hidden_inputs_min'] = 1;
$config['spam']['hidden_inputs_max'] = 1;
// 大きいほど緩い。How many times can a "hash" be used to post?
$config['spam']['hidden_inputs_max_pass'] = 25;
// 長いほど緩い。How soon after regeneration do hashes expire (in seconds)?
$config['spam']['hidden_inputs_expire'] = 60 * 60 * 24 * 2;

>oekakiのほかにtegakiがあるけれども

あそこのBoard Ownerさんはサーバーサイドに触れないので
板メッセージにJS埋め込んで、そのJSから板独自ページに置いたJSコードを読み込んで、gzipで圧縮してある桃缶っていう手描きスクリプトを呼び出してる
https://appsweets.net/momo/
送信のためのコードはちょっと変えてある
(動作が重いからはっちゃんキャンバスとかに変えようかなと思ったまま放置しちゃっている)

 No.128

>>124
post-hover は番号引用の上にカーソル置くとその投稿がカーソル横に現れるやつ
入れ子ポップアップは出来ない


>post form no popup ka hosiina

なぜ清音になっているのか
これは quick-reply.js のこと

そういえば送信ファイルプレビューが消えてる
file-selector.js

>>125
modderはcaptchaやbanとかの規制を逃れられるからそういう挙動なのだけど
スレだけ建てられないのはよくわからない

ところで今課題は画像一覧phpだけだっけ

 No.129

$config['additional_javascript'][] = 'js/file-selector.js';
$config['additional_javascript'][] = 'js/jquery-ui.custom.min.js';
$config['additional_javascript'][] = 'js/quick-reply.js';
$config['additional_javascript'][] = 'js/quick-post-controls.js';
この辺試しにinstance-config.phpに足してみたけれど効果あるのかな

>画像一覧php

>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/b/src/1696501470148.zip
これがphp8で動かなかったりです…

// Timezone to use for displaying dates/times.
$config['timezone'] = 'Asia/Tokyo';
設定したのにローカル時間が日本じゃない気がする…

 No.130

>>112
$config['allowed_ext'][] = 'jfif';

$config['allowed_ext_files'][] = 'mkv';
$config['allowed_ext_files'][] = 'flv';
$config['allowed_ext_files'][] = 'mov';
足してみたけれどmp4 webm以外は
movieとして認識してくれないみたいね
ffmpegに投げる設定とかあるのかもしれない

 No.131

QuickReplyがreCAPTCHA対応してなくね?!ひどい

 No.132

>>128
画像一覧phpが必要になったのはファイル一覧プレビューが見たかったからなのですが
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/sam2.2/sam_r.htm
こことかでも流用してるのでindex.phpは必要なのですけれども
vichanのファイル一覧の機能に限るなら
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/
indexのRecent Images機能の拡張(複数ページ化)の方が画像クリックで投稿に飛べる分便利な気がしました…

 No.133

https://github.com/satopian/Petit_Note/releases/

tegakiはこっちの方が有名?
はっちゃんキャンパスも「」にはなじみ深い…

 No.134

>>129
ロケールも
$config['locale'] = 'ja_JP.UTF8';
$config['timezone'] = 'Asia/Tokyo';

>>130
webm/posthandler.php に決め打ちしてあるからそれを変える必要があるのと
そもそもmovとかmkvってvideoタグでいけるか・・・?

>>131
どっかのサイトだとメインフォームを引っ剥がしてQuick Replyにくっつけてて合理的だなと思ったがそれはvichanじゃなかったか
4chanも違うな
そんな感じにjs書き換えればいけるとは思う(それなりに面倒くさい)
一回上のフォームで認証を起動しておくと2回目以降はQuickの方でも起動するようになるけど、認証キー入力が共有されてないからダメっぽい

>画像一覧php

>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/b/src/1696501470148.zip
each関数もダメね

 No.135

File: 1696621747676-0.txt ( 19.57 KB , oos.txt )

File: 1696621747676-1.png ( 95.93 KB , 465x608 , ClipboardImage.png )

>>129
>画像一覧php
>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/b/src/1696501470148.zip
php8で動くように最低限変更(混迷up)
設定部分以外の部分を上書きしてください
テキスト貼れるかしら

 No.136

>>134
>webm/posthandler.php に決め打ちしてあるからそれを変える必要があるのと
>そもそもmovとかmkvってvideoタグでいけるか・・・?

videoタグで再生は無理でも
ffmpegに投げてサムネが出たらよいなと思っていた…
正直ファイルアプロダの方とかでもffmpegに投げてサムネを出したい…→動画

 No.137

>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/b/src/1696621747676-0.txt
>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/sam2.2/index.php
動いたあああ!ありがとうございます
これで画像掲示板をvichanに置き換えたら
多分php8に移行できるはず…

 No.138

// サムネイル画像を保存
switch ($size[2]) {
case 1 : if (function_exists('imagegif')) { imagegif($im_out, $thumb_dir.$tim.$ext); }
else { imagejpeg($im_out, $thumb_dir.$tim.str_replace('gif','jpg',strtolower($ext)), THUMB_QUALITY); }
break;
case 2 : imagejpeg($im_out, $thumb_dir.$tim.$ext, THUMB_QUALITY); break;
case 3 : imagepng($im_out, $thumb_dir.$tim.$ext); break;
}
多分ここになんとかしてmp4 webp webmの時はffmpegを差し込むんだろうなという事は分かる…

 No.139

File: 1696650569882.txt ( 17.18 KB , cat.txt )

とりあえずphp8に鯖を更新して
うろうろエラーチェックしていたら
旧掲示板のカタログだけ動いてなかった
これって何が原因なんだろうか…
どうせ置き換えて旧掲示板リンクするだけなので
カタログが見えなくなってもよいけれども
簡単に直せそうなら教えて欲しいです…

 No.140

あとboardの表示設定なのですが
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/gazou/
ここみたいにズラズラhtmlタグ入りで
bbsの注意書きほか色々書き足したい場合
configなりmodder設定なり
どこで書き足したらよいのでしょうか
news使うのが良いのか?

 No.141

// vichan has been translated into a few langauges. See inc/locale for available translations.
$config['locale'] = 'ja_JP.UTF8'; // (en, ru_RU.UTF-8, fi_FI.UTF-8, pl_PL.UTF-8)
// Timezone to use for displaying dates/times.
$config['timezone'] = 'Asia/Tokyo';

おてすと…

 No.142

書き変わらないー
どこかで二重定義してるんだろうか…

 No.143

>>136
vichanの特殊動画のサムネイルだけならたぶんこの行に拡張子足せばいけると思う
https://github.com/vichan-devel/vichan/blob/e9ed9acd300885e0cd12c44df4e07ccee13e26e4/inc/lib/webm/posthandler.php#L6

>>136
>正直ファイルアプロダの方とかでもffmpegに投げてサムネを出したい…→動画
>>138
>多分ここになんとかしてmp4 webp webmの時はffmpegを差し込むんだろうなという事は分かる…
おおよそサムネ生成はそこなのだけど、サムネファイルパスの計算があちこちに散らばっていて、それを関数にまとめないと収集付かなくなりそう
ソース画像と一緒の拡張子でサムネを生成しようとしている謎の拘りあり
動くサムネがほしいとかでなければ全部 jpg でいいはず

それと root っていう名前のディレクトリがある場合にサムネファイルが衝突する可能性があるね
src/img.png と src/root/img.png の区別が出来ない

サムネの命名規則を変えると今まで生成した分が無意味になってサムネ再生成になって負荷が気になるところ

ffmpeg でのサムネ生成は vichan とほぼ一緒です
vichan の方は動画時間の真ん中で取るようになってる
ふたばは動画の1フレーム目で取ってる
気にしないなら vichan の方法よりも簡単

>>139
波括弧を角括弧に
$buf = Washing($_SERVER{'QUERY_STRING'});
-> $buf = Washing($_SERVER['QUERY_STRING']);
後は実行出来ないので分からんです

>>140
$config['global_message'] = '<b>太字</b>';
同じことはmod.php の configuration からも出来ます

>>141
>>142
$config['post_date'] = '%y/%m/%d (%a) %H:%M:%S';
$config['locale'] = 'ja_JP.UTF8';
$config['timezone'] = 'Asia/Tokyo';
日付フォーマットも必要でした
既に投稿されている分はリビルドが必要かも

 No.144

>>143
>波括弧を角括弧に
>$buf = Washing($_SERVER{'QUERY_STRING'});
>-> $buf = Washing($_SERVER['QUERY_STRING']);
>後は実行出来ないので分からんです
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/kkk_imgsl/cat.php
いけたああああありがとうございます
…こんなちょっとの差だったのか…どういうことなの…

 No.145

>>143
// vichan has been translated into a few langauges. See inc/locale for available translations.
$config['locale'] = 'ja_JP.UTF8'; // (en, ru_RU.UTF-8, fi_FI.UTF-8, pl_PL.UTF-8)

// Timezone to use for displaying dates/times.
$config['timezone'] = 'Asia/Tokyo';
// The format string passed to strftime() for displaying dates.
// http://www.php.net/manual/en/function.strftime.php
$config['post_date'] = '%y/%m/%d (%a) %H:%M:%S';

リビルドかけても変わらない…どういうことだ…

 No.146

>>143
>$config['global_message'] = '<b>太字</b>';
>同じことはmod.php の configuration からも出来ます
位置がちょっと違うけどセーフ!
その辺はskinとか自作するべしかな…

 No.147

>>143
>おおよそサムネ生成はそこなのだけど、サムネファイルパスの計算があちこちに散らばっていて、それを関数にまとめないと収集付かなくなりそう
うぐぐ難しいか…とりあえずサムネは何でもjpgで良い気はするけれど
たしか同名の拡張子違いを処理するのが面倒でそういう実装したような記憶…?
rootの処理やら含めて無知のままphp使ったので結構横着が多かったような…
後はどうにか動画サムネ対応させたいものの一応過去同等のphp8化は何とかなりました
ありがたい…ローカル時間は不明…

 No.148

>>143
>vichanの特殊動画のサムネイルだけならたぶんこの行に拡張子足せばいけると思う
>https://github.com/vichan-devel/vichan/blob/e9ed9acd300885e0cd12c44df4e07ccee13e26e4/inc/lib/webm/posthandler.php#L6

if ($post->has_file) foreach ($post->files as &$file) if ($file->extension == 'webm' || $file->extension == 'mp4' || $file->extension == 'mkv' || $file->extension == 'flv' || $file->extension == 'mov') {

There was a problem processing your webm.
動画扱いじゃないファイルもサムネだけでも出るかなと思ったけれど出なかった!

 No.149

>mkv (X-MATROSKA)
There was a problem processing your webm.
>mov (QUICKTIME)
Unknown file extension.
エラーメッセージが…違うだと…?

 No.150

File: 1696681673858.txt ( 7.97 KB , date-time-localization.js.txt )

>>145
日付も時間も効いてる
ロケール曜日(日本語の漢字曜日)になるはずなのに、そうじゃないのはロケール辞書が足りてないか?
どうしようもないなら librejp で使ってる js を(これはサーバーサイドを触れないがゆえの回避策だったもの)

>>147
>たしか同名の拡張子違いを処理するのが面倒でそういう実装したような記憶…?
拡張子を含めてファイル名だから img.jpg なら img.jpg.jpg にしちゃえば一貫性簡単
仕様変えるとしても一回でやらないと余計な変換負荷がかかるから1回で済ませたいところ
あるいは旧画像一覧とは別で運用する?

>>148
>>149
だめかー
じゃあ腰据えて改造しないとわからぬ

 No.151

>>150
日本語化もなってたりなってなかったりしてる気がする!
instance-config.php以外のどこかで多重指定してそうと思って探してるけれどわからない…
もしかして板建て時に決まっちゃうとか?
ローカル時間直すならjs弄るしかないのか…?
もうしばらく調べてわからないならjs入れるか

index(samne).phpの動画サムネ対応
頑張れたらお願いしたいところです…
他の場所(ffmpeg使えないとこ)では従来のアイコンそのままな感じでお願いしたく…
相当大変そうなので気が向いた時で良いので…

 No.152

>>151
このサイト内で漢字曜日は見当たらないけどどっかある?
vichanってテンプレートキャッシュあったかな

>もしかして板建て時に決まっちゃうとか?

こっちのローカル環境だと途中で日付変えて漢字曜日まで表示されてるからそうではないと思う

>index(samne).phpの動画サムネ対応

IMG_REFER って使ってる?(1になってる?)
サムネをクリックした時に直接メディアファイルに飛ぶんじゃなくてhtmlを1回挟む機能
使ってないなら消したい

 No.153

>>152
漢字曜日ないねー
なにかおかしな設定して消えてるのかなローカル時間設定含めて
>IMG_REFER
その機能は自分は使ってない!直リン規制したい人向けだったっけ…
面倒なら消しちゃっても良い気がする…

 No.154

度々話題飛んで申し訳ない
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/
indexとかにあるRecent Imagesの差し込みって
vichan\jsに入ってるようなの呼び出して出来るんだろうか?
https://yu-hi.sakura.ne.jp/hinabita/
右カラムに画像掲示板最新の投稿絵出してたのだけれども
vichanとは全然別のhtmlからRecent Images1件だけ呼び出したい…

 No.155

File: 1696737964835.png ( 148.02 KB , 2205x1539 , 2023-10-08.png )

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/mod/templates/themes/sitemap/thumb.png
う、なんか色々弄ってるうちに
themesのサムネが出なくなった…
何かおかしいねやっぱり
ロケールのja_JP当たりの設定からか?

 No.157

選択ファイル / お絵描き

ごちゃごちゃ弄ってる間に気付いたけれど
$config['locale'] = 'ja_JP.UTF8'; // (en, ru_RU.UTF-8, fi_FI.UTF-8, pl_PL.UTF-8)
入れてると一部分日本語化されてるぽい

 No.158

スゴイ初歩的な質問で申し訳ないけど
//$config['additional_javascript'][] = 'js/jquery.min.js';
$config['additional_javascript'][] = 'js/jquery-ui.custom.min.js';

jquery.min.jsとjquery-ui.custom.min.jsって排他利用で良いんだよね?

 No.159

File: 1696744079997.png ( 11.53 KB , 500x250 , Oekaki.png )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.160

ぐあああmanage themeのThumbnailが治らない…
もうだめだ

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/templates/themes/basic/thumb.png
の筈なのに
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/mod/templates/themes/basic/thumb.png
を参照している…上のナビにmodリンク足していじりまくってる間にパスが壊れたか?

 No.161

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/mod.php
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/mod
上でも下でも入れるのに下だと壊れて見えるだけだった!罠じゃない?

 No.162

Rebuildこけたりこけなかったりするう
単に鯖のデータベース更新が重いだけか?
Caught fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '9cdf24c28efc75d605c10fbaf06c38ad6b22f372' for key 'PRIMARY' in /home/yu-hi/www/hinabita/cgi-bin/vichan/inc/functions.php:1679Stack trace:#0 /home/yu-hi/www/hinabita/cgi-bin/vichan/inc/functions.php(1679): PDOStatement->execute()#1 /home/yu-hi/www/hinabita/cgi-bin/vichan/inc/functions.php(399): _create_antibot()#2 /home/yu-hi/www/hinabita/cgi-bin/vichan/inc/functions.php(1789): create_antibot()#3 /home/yu-hi/www/hinabita/cgi-bin/vichan/inc/mod/pages.php(2250): buildIndex()#4 /home/yu-hi/www/hinabita/cgi-bin/vichan/mod.php(195): mod_rebuild()#5 {main} thrown in /home/yu-hi/www/hinabita/cgi-bin/vichan/inc/functions.php on line 1679

 No.163

Rebuild thread pages
だけ出来なくなってしまった…

 No.164

>>154
>vichanとは全然別のhtmlからRecent Images1件だけ呼び出したい…
https://github.com/tesheke/vichan-theme-recent-media
このテーマ入れると生成される /recent_media.html を iframe でたぶん

>>155
>themesのサムネが出なくなった…
どうも rebuild theme pages するとテーマサムネが吹っ飛ぶみたい
vichan/templates/themes/*/thumb.png を再配置すれば治るけど気にしなければいいと思う

>>158
>jquery.min.jsとjquery-ui.custom.min.jsって排他利用で良いんだよね?
中身確認してないけど部分互換性はあるはず
両方入れても問題は起きないはず

>>161
これはvichanじゃなくて、自動的に拡張子を補間するっていう apache(かnginx) の設定じゃないかな


>>162
antibot(spam)関係で失敗してる
https://github.com/vichan-devel/vichan/blob/master/inc/functions.php#L1679

関係するのはこのあたりの設定
$config['spam']['hidden_inputs_min']
$config['spam']['hidden_inputs_max']
$config['spam']['hidden_inputs_max_pass']
$config['spam']['hidden_inputs_expire']

 No.165

>>161
解決してたか

 No.166

>>164
解決してない!
Rebuild thread pagesでこけるようになってしまった!!

$config['spam']['hidden_inputs_min']
$config['spam']['hidden_inputs_max']
$config['spam']['hidden_inputs_max_pass']
$config['spam']['hidden_inputs_expire']

modder設定の方で上から1,1,100,10800にしてあるけど
(そうするまで自分のスレ立て出来なくなっていた)
これだとダメなんだろうか…

 No.167

Rebuild thread pages出来た!
これ短時間で何度もリビルドしてると怒られるってことか…
暫く経ったら平気になったぽい…?
設定でエラったのか分かりづらいー

 No.168

js/jquery.min.jsとかも何度も書いてて大丈夫なんだろうか…?
重複指定してると動かなくなるという印象があった…

 No.169

>>164
>https://github.com/tesheke/vichan-theme-recent-media
これのvichan-theme-recent-media-master.zip拾って
vichan/templates/themes/recent-media/
に配置したら
Manage themesに出てきたんだけれどもInstall押しても
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/mod.php?/themes/recent-media

Error
An error has occured.
Page not found.
って出て何も起きない…

 No.170

File: 1696760496794.png ( 165.98 KB , 1770x1219 , 2023-10-08 (1).png )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.171

>>169
- じゃなくて _ です
正 vichan/templates/themes/recent-media/
誤 vichan/templates/themes/recent_media/
アップデートのことを考えると README にある git clone の手順を使った方が後々良いです

>>167
なんじゃろなあ・・・
中途半端な状態になっていたとかか

 No.172

File: 1696761750372.txt ( 7.22 KB , instance-config.txt )

重要な事が書かれてるわけじゃなし
直接見てもらった方が早いのか…?

 No.173

そんな…配布ファイル名が-なのに…
automatic1111の関係で
git入れてたのでgit cloneにしといた
Install themeしたら500 error出るようになった…
Uninstallすると直る
あれ、これrecent_media.htmlって
どこに生成されるんだろう…
vichan/templates/themes/recent_media/recent_media.html
ではないよね…
この設定画面の
recent_media.css
recent_media.html
のパスの初期設定がまずい?

 No.174

File: 1696763184968.png ( 91.71 KB , 1432x784 , Configuring the_dtp_231008195114_008505.png )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.175

File: 1696765930170.png ( 234.74 KB , 818x396 , ClipboardImage.png )

あー
$config['root'] = '/hinabita/cgi-bin/vichan/';
があった方がいい
(というかなんでこれ無しである程度動いているんだろう・・・
secret.phpの方で設定されてんのかな・・・)

それと将来的にドメインが移動することを考えてドメイン内相対表記にした方がいいです
たとえば
'index' => 'https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/',
なら
'index' => '/hinabita/cgi-bin/vichan/',
こういう '/' から始まる場合はドメイン以降からのパスとして解釈されます


>>173
ごめん動かないバージョン上げてた(テストもしたのになんで・・・)
アップデートしました
https://github.com/tesheke/vichan-theme-recent-media

上手くいったらここに出るはずです
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media.html

 No.177


 No.178

https://yu-hi.sakura.ne.jp/hinabita/
サイドウィジェットに入れたけど
iframe内で開かれたりスクロールバー出たりするね…
vichanのrecent-mediaテーマ側のスタイルシートいじらないとだ

 No.179

あれー
recent_media.css
が生成されてない…
templates\themes\recent_media\
recent_media.css
recent_media.html
を書き換えた後で
Manage themes→RecentMedia→Rebuild
だよね…?

 No.181

Caught fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '6317f86451fa565ceba908a86f048a30261c36e2' for key 'PRIMARY' in /home/yu-hi/www/hinabita_mt/cgi-bin/vichan/inc/functions.php:1679Stack trace:#0 /home/yu-hi/www/hinabita_mt/cgi-bin/vichan/inc/functions.php(1679): PDOStatement->execute()#1 /home/yu-hi/www/hinabita_mt/cgi-bin/vichan/inc/functions.php(399): _create_antibot()#2 /home/yu-hi/www/hinabita_mt/cgi-bin/vichan/inc/functions.php(2378): create_antibot()#3 /home/yu-hi/www/hinabita_mt/cgi-bin/vichan/inc/functions.php(1297): buildThread()#4 /home/yu-hi/www/hinabita_mt/cgi-bin/vichan/post.php(243): deletePost()#5 {main} thrown in /home/yu-hi/www/hinabita_mt/cgi-bin/vichan/inc/functions.php on line 1679

鯖が弱くて重いのか?!!!

 No.182

>>179
そうね
そういえばCSSの扱いを決めてなかった
プロジェクト内にCSSあるけど処理上は無視されてます
・プロジェクトのファイルをコピーするのか
・既存のCSSを指定させるのか
という2択

というか今回は、他のページに埋め込みたいのだから画像を挿入するjavascript を生成するテーマを書いた方が使い勝手がいいかも
それで /hinabita/ で <script src="/hinabita/cgi-bin/vicahan/recent_media.js"> するとその場所に img タグが埋め込まれるイメージ
CSSはその場に従わせる感じで

>>181
一度 DB のantibot table を消してしまいましょうか
mysql -u データベースユーザー -p
データベースパスワード
use vichanに設定したDB名;
delete from antispam;
これやると権限でしか書き込めなくなるから、それを復旧するためにページリビルドも必要です

 No.183

{% apply spaceless %}
<!doctype html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>{{ settings.title }}</title>
<script>active_page="recent_media"</script>
<style>
*{
margin:0;
padding:0;
}
</style>
</head>
<body>
{% for post in recent_media %}
<a href="{{ post.link }}" target="_blank">
<img src="{{ post.src }}" style="width:244px;">
</a>
{% endfor %}
</body>
</html>
{% endapply %}
滅茶滅茶泥実装…

 No.184

>>183
ハック精神があってよいと思います

 No.185

recent_media2
とかの名前でディレクトリ分ければ
数種類作れるのかな…
泥実装じゃない奴と分けるとか

 No.186

>return Element('themes/recent_media/recent_media.html', Array(
こんな感じにテンプレートパスを決め打ちしちゃってるのでディレクトリ分けられないです
__FILE__ で theme.php の場所取れるのかしら

それと vichan の仕様上、同名のテーマが存在出来るのかどうか分からない(試せばすぐだ)

 No.187

一応過去に使ってたものの代替にはなったので
目下は泥臭い実装で大丈夫そう…?
antibot tableの方消さないと調整時の
リビルド頻発中はエラー出まくる?
ちょっと経つと平気になる雰囲気だ
チャレンジしてみるか…

 No.188

結局ローカル時間日本にする方法が分からないですね…なぜうまく行かない…
→1696761750372.txt

$config['root'] = '/hinabita/cgi-bin/vichan/';
足して他の指定を相対アドレス化してみましたが特に変わらず…
お絵描きとかが日本語になってるので全く効果がないわけではないらしい…

 No.189

>>188
微妙にアップデートしたけど動いているなら不要です
https://github.com/tesheke/vichan-theme-recent-media

関数名も文字列として参照するからテーマフォルダ名を引くようにしないと、コピーしても動作しないみたいでした

>>187
>antibot tableの方消さないと調整時の
>リビルド頻発中はエラー出まくる?
これは分からんです
そもそも antibot table を消して解決するかどうか不明
不正なカラムを参照しているというエラーで、そのあたりが不整合を起こしているならば、一回消してみるといいかも知れないというぐらい

>>188
もう >>150 この js を配置すればいいのでは
librejp の方ではこれで困ってないし

タイムゾーンに従うのと日時フォーマットの適用までは出来た
曜日が漢字にならないのはたぶんlocale辞書の不足
FreeBSDで日本語ロケール辞書がどこにあるのかはよく知らんです
/usr/share/locale/ja/LC_TIME/ こういうところにあるやつ

 No.190

>>189
>もう >>150 この js を配置すればいいのでは
// タイムゾーン
$config['additional_javascript'][] = 'js/date-time-localization.js';
行けたー!これでよかったか…
https://github.com/tesheke/vichan-theme-recent-media
htmlは丸々書き換えてたけど一応更新してみます

 No.191

File: 1696957560963.txt ( 22.85 KB , index.php.txt )

大体8割方出来た気がする動画対応板画像一覧php
旧システムのサムネがある場合はそっちを見に行きます
そうじゃなければ静止画像を含めて全部をffmpegでサムネを作ろうとします

考えを寝かせてないから本番稼働には入れない方がいいかも

IMG_DIR と THUMB_DIR の名前は変わって無いけどそれ以外の設定値名が結構変わってるので確認しといてください

 No.192

>>191
ありがたい過ぎる…ありがとうございます
お手間おかけしていてなんとお礼してよいやら
それはそれとして
// これは何形式か?
$config_ext['mpo'] = THUMB_FALSE;
中身はjpeg拡張領域に2枚目のjpegがくっついた
3d表示画像!処理はjpegと同じで大丈夫な奴!
$config_ext['mpo'] = 1;
したらjpegとして処理されるんだろうか…?

 No.193

>>191
>1696957560963.txt
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/sam_r.htm
実行したら出ないなーと思ったけど
考えたらffmpegのパス指定defineがない!
パス通ってない位置にあるから…
あと
[<a href="./../">戻る</a>]
で戻るリンク先も指定できるとありがたい
元phpは直で"./"書き込んでいたけれども
instance-config.php制にするなら
必要な気がしました…
あと何故か生成されたhtmlがキャッシュされてて更新リンクでもshift+リロード必要…
おま観だと思うのだけれどもキャッシュクリアしないと大抵ダメでして…
前のphpの時は更新を押すと同時にキャッシュも消えたけれど
今回のphpは
[<a href="'. basename(__FILE__) .'">更新</a>]
の更新押しても何故か変わらないのでした…何故…

 No.194

>>193
>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/sam_r.htm
あれリンク踏んで飛ばされるフォルダルートだこれ…
ソースというか実行ディレクトリの相対位置も何かで指定しないとダメ?

$ignore_file = '/^(THM_|LOG_|img_|tm_).+\.(png|jpe?g|gif)$|_thumb\.(png|jpe?g|gif)$|-320x180\.(png|jpe?g|gif)$|-160x160\.(png|jpe?g|gif)$/i';
$config_ext['mpo'] = THUMB_FALSE;

とかの設定もinstance-config.phpで指定出来るんかな…

 No.195

File: 1697033087742.txt ( 23.05 KB , index.php.txt )

>>192
> $config_ext['mpo'] = 1;
>したらjpegとして処理されるんだろうか…?
ffmpegが認識出来たので初期設定にしました
>>193
>[<a href="./../">戻る</a>]
>で戻るリンク先も指定できるとありがたい
define('BACK_LINK', '../'); // 戻るリンク
追加

>あと何故か生成されたhtmlがキャッシュされてて更新リンクでもshift+リロード必要…

このPHPはリクエスト-レスポンス-キャッシュ制御に全く関わっていないのでnginxの設定だと思います
etagとかLast-Modifiedとか
あるいは↓
>>193
>[<a href="'. basename(__FILE__) .'">更新</a>]
>の更新押しても何故か変わらないのでした…何故…
PHP自体が致命的失敗していてファイルが更新されていないのかも
このPHPはコマンドラインから直接実行しても動くので試してみてください
あるいはerror.log見てください

>>194
>あれリンク踏んで飛ばされるフォルダルートだこれ…
バグでした 修正しました

>とかの設定もinstance-config.phpで指定出来るんかな…

設定ここまで と書いてあるところまでは設定値です

 No.196

>>195
ありがたい…
ちなみにmpoは3dsの写真形式です

>1697033087742.txt

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/samne.php
define('BACK_LINK', '../'); // 戻るリンク
行けた!ありがとうございます…
要望続いて申し訳ないですが
. ' target="_blank">' . PHP_EOL
の_blank部分も差し替えdef化お願いしたい…

$config_ffmpeg_path = '/home/yu-hi/bin/ffmpeg60';
む、これで行けるはず?なのに動いてない…

 No.197

File: 1697090016768.txt ( 23.92 KB , index.php.txt )

recaptchaめどいのでmod権ください
管理権ナシでいいので

>>196
> . ' target="_blank">' . PHP_EOL
define('TARGET_FRAME', '_blank'); // <a target=TARGET_FRAME>
追加


// サムネイル生成に使う ffmpeg パス
// この値はエスケープやクオーションされずに使われます
$config_ffmpeg_path = 'bash – /home/yu-hi/bin/ffmpeg60';
// ログを有効にするかどうか
$config_log = true;
// ロギング有効時のログ出力先。空文字列('')ならば標準出力へ。
// ファイルへの出力を放置するとログファイルが膨れ続けるので注意
$config_log_path = 'log_oosamuneiru.txt';

これでどうじゃ
index.php と同じディレクトリに log_oosamuneiru.txt というファイルが出来てそこに ffmpeg 実行ログが出る
設定された ffmpeg が見つからない場合もそういうログが残る

 No.198

あ アスタリスク2つがスポイラー指定になった

 No.199

>>197
>recaptchaめどいのでmod権ください
?!自分管理人なのに毎回reCaptchaしてるんですけお!?
もしかしてmodderだと認証要らなくなる設定とかあるんだろうか…設定してなかったよ…どこだろう

>1697090016768.txt

とりあえず試してみます!
log見る方法が分からなくて困っていたので
こういう方法があると助かります…

 No.200

File: 1697099476078.txt ( 2.75 KB , log_oosamuneiru.txt )

ログデタ━━━━(゚∀゚)━━━━!!

[vost#0:0 @ 0x801ccc000] Automatic encoder selection failed Default encoder for format webp (codec webp) is probably disabled. Please choose an encoder manually.
webp対応してネェ━━━━(゚∀゚)━━━━!?

 No.201

>>199
ログインしてても一般フォームからは一般扱い
modderモードページから投稿してみて
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/mod.php?/b/res/17.html

ここからだとBAN設定したIPアドレスからでも投稿出来たり、スパム判定処理が免除されたりするはずだけど
reCAPTCHA の処理だけそうなってない可能性はあります

>>200
はい
たぶんffmpegビルド時に –enable-libwebp フラグが必要です
あるいは $THUMB_EXT = 'jpg'; // 生成するサムネイルの画像形式拡張子 でサムネイルをjpgにしましょ
あ。ってことはこれは入力画像が webp の場合もサムネイル生成が出来ないのか
サムネイル生成全部を ffmpeg でやるのはとりあえずのつもりではあるけど

 No.202

>>201
>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/mod.php?/b/res/17.html
reCaptcha回避できないポイです…
一応ろっしーにuser pass伝えたので聞いてみて!
Mod?Janitor?modにしてしまったけど大丈夫だろうか…


> –enable-libwebp フラグが必要

サムネ生成時の拡縮アルゴリズムもだけれども
コンパイル時に正しくライブラリリンクされてない気がする…
https://qiita.com/je3kmz/items/463a62d9817c793be57c
コンパイル何もわからないでこのままコピペったので
多分色々何か足りてないのだと思われる…
もう一遍コンパイルし直した方が良いのだろうか…?

 No.203

>>201
>$THUMB_EXT = 'jpg';
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/samne.php
キタ━━━━(゚∀゚)━━━━!!

 No.204

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media.html
あれ…空っぽになってしまった…何故…?

 No.205

もしかしてテキスト投稿あると
空っぽになる…?

 No.206

File: 1697107501923.txt ( 1.9 KB , log_oosamuneiru.txt )

謎の1枚だけサムネが出ないpng…
そしてテキスト投稿すると
recent_media.html
が空っぽになるかテスト

 No.207

>>206
>そしてテキスト投稿すると
>recent_media.html
>が空っぽになるかテスト
なる━━━━(゚∀゚)━━━━!!>>206

 No.208

>>205
>>206
>>207
そーね
それが原因
files は中身がjson形式としてデータベースに入っているからクエリに入れにくいんだよね
文字列だけでももう少し絞り込めるからちょっと考えます

>>206
そのpngファイルはこっちのffmpegでも扱えなかった
Error loading PNG file: [FE][B4][91]l: invalid chunk type
不正なチャンクか、あるいは正常にEOFしていないっぽい

 No.209

>>208
Recent Imagesはindexの仕様と同じく
最後に生成されたサムネでも…いい…
最終投稿されたファイルのサムネでなくてもよい気がします
動画と画像決め打ち?

 No.210

アプデ
https://github.com/tesheke/vichan-theme-recent-media
>>209
>動画と画像決め打ち?
そうね
音声だけのファイルだとサムネイルないし

>最後に生成されたサムネでも…いい…

それをする最も負荷の低い方法はvichanのDBにクエリ飛ばすことであります
(ところでサムネイル一覧phpにvichanのサムネを使わせようと思ってます)

今回のアップデートのための記述
横着するとこんなことになるという悪例
>. "WHERE `files` LIKE '%\"type\":\"image\\\\\\\\\\\\/%' "
>. " OR `files` LIKE '%\"type\":\"video\\\\\\\\\\\\/%' "

 No.211

File: 1697119036734.txt ( 400 B , 新規 テキスト ドキュメント.txt )

てst

 No.212


 No.213

>>202
>reCaptcha回避できないポイです…
これでどうだろう
2行変更(効くのは1行)
モデレーターはCAPTCHA免除するようにコード変更
https://github.com/tesheke/h-vichan/tree/hin
https://github.com/tesheke/h-vichan/commit/29566e18a1e43dc8c2f57320fb74d950ed9d7c77

 No.214

>>213
gitの分岐って使ったことないのですが
こういう場合ってとりあえず元を保存して置いて
git pullする時は元に戻す方法なんだろうか…
(Recent Imagesがそうやって誤魔化していた)
自己メンテするならフォークなんだろうけど

 No.215

>>213
https://github.com/tesheke/h-vichan/commit/29566e18a1e43dc8c2f57320fb74d950ed9d7c77
書き換えてみたー!ありがとうございます…動くかな…
You seem to have mistyped the verification.
あれ…

 No.216

File: 1697370360059.txt ( 942 B , a.txt )

>>215
ごめん $is_mod が定義されてるかと思ってたけど別スコープにしかなかった
https://github.com/tesheke/h-vichan/commit/5f9ab21886ed069c3d86367b4bec5d703b1bf0bf

>>214
リモートリポジトリを追加して、リポートにある hin branch を fetch して、それから git checkout です
ダブルハイフンがen dashになっちゃうのでコマンドは添付ファイルの方へ
(この挙動は auto_unicode 設定によるものだったはず)

 No.217

>こういう場合ってとりあえず元を保存して置いて
>(Recent Imagesがそうやって誤魔化していた)
ファイル変更している場合は良い方法はないと思う
git stash は1ファイルだけが対象だと毎回コンフリクトするからあまり便利でないし

 No.218


 No.219

>>216
キタ━━━━(゚∀゚)━━━━!!
重ね重ねありがとうございますですよ

>1697370360059.txt

git何が何だか分かってない事が分かった…
リモートサブバージョンに切り替え設定して
そっちを受け取るって感じなんですね
その後元の分岐前に戻すのとかも
(そもそもここのvichanも表示が5.1.4でgit5.1.5→データベースファイル入りアーカイブ版
上書きの失敗してる気がする…git pullしても5.1.5の状態が残ってるのか最新です言われるし…
0からgitで取ってくるとデータベースファイルがないのでアーカイブ版の新しいファイルだけ上書きした)

 No.220

File: 1697458437997.txt ( 1.74 KB , read_png_itxt.php.txt )

この改造は綺麗に書けたら vichan-devel にマージリクエストを送ろうかと思ってたんだけど
new_thread_capt 設定が説明通りに実装されていなかったり
カスタムキャプチャの条件分岐がおかしかったり、インデントさえおかしかったりして保留中

ところでAI絵をやるならpngのiTXTチャンク(生成情報が入っている部分)を投稿文に含める機能とか欲しいです?
先にサムネ一覧のgd対応作業をするつもりですが

>>219
>(そもそもここのvichanも表示が5.1.4でgit5.1.5→データベースファイル入りアーカイブ版
>上書きの失敗してる気がする…git pullしても5.1.5の状態が残ってるのか最新です言われるし…
>0からgitで取ってくるとデータベースファイルがないのでアーカイブ版の新しいファイルだけ上書きした)
antispamがどうののエラーはこっちでも出たから最新版のバグなんだろうと思う
データベースファイルとはなんだろう・・・テーブル構築のSQLファイル?
こっちだとmysqlでユーザー作ってDB作って、それをvichanの初期設定に渡してtable構築させたから、それっぽいファイルを直接は使ってない

>- Tinyboard + vichan 5.1.4 -

この部分はテンプレートキャッシュに入ってるせいだと思うんだけど、でも何回か再構築走らせてるな・・・
・git remote show origin をやってリモートブランチがどこを指しているか見る(vichan-develのはず)
・git branch やって自分がどのブランチにいるかを見る(hinを入れてないならmasterのはず)
・git status やって modified なファイルを見る(post.phpとffmpeg.phpと生成された板ディレクトリが上がるはず)
・git log でいつのバージョンかを見る
・git diff すると git が管理している現バージョンのファイルとの差異が出るからそれを見る
・いっそのこと git restore –staged . ; git restore . しちゃう。全部の変更が消える(instance-config.php や板ディレクトリみたいにgitが管理していないファイルは消えないし変更されない)。これやると今回のmodder CAPTCHA免除も消えちゃう

 No.221

>>220
https://github.com/vichan-devel/vichan/issues/237
gitで0から入れた時はこの症状が出ていた…
>Table 'yu-hi_vichan.boards' doesn't exist

>pngのiTXTチャンク(生成情報が入っている部分)を投稿文に含める機能

単純実装だと溢れちゃってダメな気がする…(相当長い)
読み込んでもらえたら校正すればいいので便利とは思う

>・git remote show origin をやってリモートブランチがどこを指しているか見る(vichan-develのはず)

この辺後で試してみます

 No.222

>>220
>・git remote show origin をやってリモートブランチがどこを指しているか見る(vichan-develのはず)

* remote origin
Fetch URL: https://github.com/vichan-devel/vichan.git
Push URL: https://github.com/vichan-devel/vichan.git
HEAD branch: master
>git branch
* master
>git status
fatal: not a git repository: js/twemoji/../../.git/modules/js/twemoji
なんかやばい…
>git log
commit e5d6960e4ae84faa0deefa3ab2ade05b89ab909a (HEAD -> master, origin/master, origin/HEAD)
Merge: cca659bd 5e26d5f0
Author: RealAngeleno <angeleno@screamer.wiki>
Date: Sat Sep 16 10:35:59 2023 -0700
あとは大量に何か…
>git diff
fatal: not a git repository: js/twemoji/../../.git/modules/js/twemoji


git restore –staged . ; git restore
すべきなんだろうか

 No.223

>>221
>gitで0から入れた時はこの症状が出ていた…
>>Table 'yu-hi_vichan.boards' doesn't exist
なぜじゃろう
そのissueもだいぶ古いものなのに
スキームが一致してないならこんなに動くとも思えない

>>pngのiTXTチャンク(生成情報が入っている部分)を投稿文に含める機能

>単純実装だと溢れちゃってダメな気がする…(相当長い)
そうね ファイル選択した時にどこかに情報出すぐらいがベターか
これをやるにはJSで色々せねばならぬ

>>222
>fatal: not a git repository: js/twemoji/../../.git/modules/js/twemoji
vichan/.git/modules/js/twemoji/ にtwemojiのgitの管理ファイルが無い、と文句言ってる
これはjsだから影響があったとしてもクライアントサイド(ブラウザで処理される側)だけ

https://github.com/vichan-devel/vichan/blob/master/.gitmodules
submoduleが上手く構築出来ていないみたい
git submodule init && git submodule update
でどうだろうか
たぶんこれは過去にその手順を行っているはずだけれど

>git restore –staged . ; git restore

>すべきなんだろうか
ちょっと違う案件
vichanリポジトリが管理しているファイルに対しては文句言われてないから

 No.224

>>223
>git submodule init && git submodule update
Submodule 'js/twemoji' (https://github.com/basedgentoo/twemoji) registered for path 'js/twemoji'
Submodule 'js/wPaint' (https://github.com/vichan-devel/wPaint.git) registered for path 'js/wPaint'
fatal: could not get a repository handle for submodule 'js/twemoji'
と出ました…

 No.225

>>224
git submodule deinit js/twemoji
あるいは git submodule deinit –force js/twemoji
それから
git submodule init && git submodule update

ffmpegの件と言いハードウェアエラーを疑いたい

 No.226

>>225
vichanは手元のPCでgitしてftp上げしたんだ…それが悪いんだろうか…
ffmpegコンパイルはリモートのさくらサーバで実行した
>git submodule deinit js/twemoji
fatal: not a git repository: js/twemoji/../../.git/modules/js/twemoji
fatal: Submodule work tree 'js/twemoji' contains local modifications; use '-f' to discard them
>git submodule deinit –force js/twemoji
error: pathspec '–force' did not match any file(s) known to git

 No.227

>>226
forceの左はハイフン2つです

入力のときに半角ハイフン2つ入れても、vichanがそれをくっつけて en dash にしちゃうのよね
$config['auto_unicode'] = false;
で文字の置き換えを抑制出来ます

>vichanは手元のPCでgitしてftp上げしたんだ…それが悪いんだろうか…

あるとしたら何かファイルモードが間違っているというやつだけど
それっぽくはないです

 No.228

>>227
>git submodule deinit –-force js/twemoji
error: pathspec '–-force' did not match any file(s) known to git
んんnーーにしてもだめだ

$config['auto_unicode'] = false;
足してみます

 No.229

File: 1697464422462.txt ( 103 B , a.txt )

>>228
>error: pathspec '–-force' did not match any file(s) known to git
2つめはハイフンだけど1つめはen dashになってる
コピペじゃなくて手入力してくだち

 No.230

>>229
>git submodule deinit --force js/twemoji
error: could not lock config file .git/modules/js/twemoji/config: No such file or directory
warning: Could not unset core.worktree setting in submodule 'js/twemoji'
Cleared directory 'js/twemoji'
Submodule 'js/twemoji' (https://github.com/basedgentoo/twemoji) unregistered for path 'js/twemoji'

>git submodule init && git submodule update

Submodule 'js/twemoji' (https://github.com/basedgentoo/twemoji) registered for path 'js/twemoji'
Cloning into 'G:/apache_folder/www/hinabita/cgi-bin/vichan/js/twemoji'...
fatal: could not get a repository handle for submodule 'js/wPaint'
Submodule path 'js/twemoji': checked out '25dc1757783115136a83af34c42c603ac8b470aa'
これでいいんだろうか…?

 No.231

>>230
それでとりあえず消せたから
再び
git submodule init && git submodule update
これで再セットアップしてみてください

 No.232

>>230
>git submodule deinit --force js/wPaint
error: could not lock config file .git/modules/js/wPaint/config: No such file or directory
warning: Could not unset core.worktree setting in submodule 'js/wPaint'
Cleared directory 'js/wPaint'
Submodule 'js/wPaint' (https://github.com/vichan-devel/wPaint.git) unregistered for path 'js/wPaint'

>git submodule init && git submodule update

Submodule 'js/wPaint' (https://github.com/vichan-devel/wPaint.git) registered for path 'js/wPaint'
Cloning into 'G:/apache_folder/www/hinabita/cgi-bin/vichan/js/wPaint'...
Submodule path 'js/wPaint': checked out 'f11220032e7edb8349516d3751d3aaee0fd0de68'

 No.234

>>232
G:\apache_folder\www\hinabita\cgi-bin\vichan>git submodule init && git submodule update

G:\apache_folder\www\hinabita\cgi-bin\vichan>

ヌルで帰ってきた!

 No.235

うーn
それで復活してくると思ったんだけど
vichan/.gitmodules が空っぽになってるのかしら
中身は
https://github.com/vichan-devel/vichan/blob/master/.gitmodules
と同じですか

 No.236

>>235
G:\apache_folder\www\hinabita\cgi-bin\vichan\.gitmodules
だよね?
[submodule "js/wPaint"]
path = js/wPaint
url = https://github.com/vichan-devel/wPaint.git
branch = master

[submodule "inc/lib/parsedown"]
path = inc/lib/parsedown
url = https://github.com/vichan-devel/parsedown.git
branch = master
[submodule "js/twemoji"]
path = js/twemoji
url = https://github.com/basedgentoo/twemoji
で同じに見える…

 No.237

>>236

>git status

On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: inc/instance-config.php
modified: inc/lib/webm/ffmpeg.php
modified: post.php
modified: static/banners/defaultbanner.png
modified: templates/themes/index/index.html

Untracked files:
(use "git add <file>..." to include in what will be committed)
inc/lib/twig/
js/date-time-localization.js
"post - \343\202\263\343\203\224\343\203\274.php"
templates/important.html
"templates/themes/index/index - \343\202\263\343\203\224\343\203\274.html"
templates/themes/recent_media/

no changes added to commit (use "git add" and/or "git commit -a")

これでいいのだろうか?

 No.238

とりあえず綺麗になったみたい

>>237
変なところはないです

>commit e5d6960e4ae84faa0deefa3ab2ade05b89ab909a

これも特に古くはない


書き込み時にエラー出るけど書き込みは成功しているのう
どうしたものか
握りつぶしてしまうか

 No.239

>>238
>>commit e5d6960e4ae84faa0deefa3ab2ade05b89ab909a
>これも特に古くはない

- Tinyboard + vichan 5.1.4 -
Tinyboard Copyright © 2010-2014 Tinyboard Development Group
vichan Copyright © 2012-2023 vichan-devel
の5.1.4は混乱の元なだけで中身は5.1.5なん?

 No.240

File: 1697465856100.png ( 15.58 KB , 401x76 , ClipboardImage.png )

自分の方はどうなっていたかと見に行ったら
空白になっていた
テンプレート見ないとどうやって決定してるかわかんないな

 No.241

$config["version"] を見に行ってるようです
これは inc/config.php には含まれていない
.installed を見に行っているっぽい

https://github.com/vichan-devel/vichan/blob/master/install.php
5.1.4

配布バージョンは5.1.5と銘打ってるけどコードは更新されてない、ので気にしなくていいと思います

 No.242

>>241
混乱の元過ぎる…
でもお陰でjs/twemojiとjs/wPaintの何かが修正されたからいいか…
上が治って何が使えるようになったんだろう?

 No.243

エラー吐いていたのは twemoji
何か絵文字機能なのだろう
IMEを使う日本人にはいらない気配

wPaintは手描き機能です

あとは謎のDBエラー

 No.244

File: 1697466603546.png ( 16.72 KB , 500x250 , Oekaki.png )

>>243
>謎のDBエラー
は単になんかさくらインターネットが重い?
(連続書き込みすると怒られる雰囲気?)

 No.245

🍖

 No.246

🍛

 No.247

>>244
それならタイムアウトエラーとかになるんじゃないかと
antispam関係のクエリでエラーするのはこちらでも再現するのでvichanのバグだと思います

twemojiはemoji非対応環境向けに絵文字文字を画像やsvgに置き換えてくれる機能っぽいです
たぶん instance-config.php で指定しないと動かない

 No.248

そういえば
>>220
>1697458437997.txt
read_png_itxt.phpってどう使うものなんでしょうか…

滅茶面倒なアレかもなんですが
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/sam2.2/sam_r.htm
これ最新の1件だけiframe取る方法って可能ですか?
index.php参考に普通に1件だけ生成するphp自分で新たに書けばよかろうという気もしますが…

 No.249

File: 1697468477322.png ( 171.88 KB , 1113x595 , ClipboardImage.png )

>>248
>read_png_itxt.php
冒頭に書いてある通りコマンドラインで使うものです
あるいは関数を抜き出して他に応用する目的で作ったものでした

php read_png_itxt.php [ここにファイル名やURL]

です
実装は雑

 No.250

>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/sam2.2/sam_r.htm
>これ最新の1件だけiframe取る方法って可能ですか?
既に生成されているそれを取るという目的なら昔風に言えばajaxでsam_r.htmを取って、文字列処理やらDOM処理で最初の画像を取り出して配置することになると思います
あるいはサーバーサイドが触れるのだからサムネイル一覧phpを改造して、最初の一つだけを含むhtml*も*生成するようにしてしまえばいいのでは

 No.251

>>249
>>249
実はpromptはpngだけじゃなくjpgやwebpにも含まれていたりする…
>https://greasyfork.org/ja/scripts/459579-stable-diffusion-image-metadata-viewer
webpには対応してないけれどjpgはこれが参考になりそう

 No.252

>>250
そうか、<a href="hoge.php"><img src ="hoge.php"
みたいな実装にしなくても最後に生成する時に同時に
iframecat.htmlとかの名前で出しても良いんですね…
投稿すなわち最新のファイル更新ですものね

 No.253

>>251
>実はpromptはpngだけじゃなくjpgやwebpにも含まれていたりする…
存じております
pngのそれは元々はimagemagickあたりのコマンドで簡単に取れないかなとやってたんだけど全然だめで、結局ライブラリやツール使わずにファイルを直接読む方法を取ったのでした
jpgとwebpはチャンク形式ではないからたぶん別の場所なのだろう
>https://greasyfork.org/ja/scripts/459579-stable-diffusion-image-metadata-viewer
普通にexif内にあるか
これライセンスがMITだから流用出来るね

>投稿すなわち最新のファイル更新ですものね

アップローダーの仕様を見に行っていないのだけれど、アップロードする度にサムネイル一覧が更新される仕様です?

 No.254

>>253
>アップロードする度にサムネイル一覧が更新される仕様です?
よく考えたらそんなことはなかった
…結構面倒くさいな…

 No.255

負荷を気にしないならアップローダーがファイルを受け付けるたびにサムネイル一覧更新を呼び出せば良いです
あるいはアップローダープログラム側で最新ファイル一つを取り出してしまう

 No.256

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/
気付いたのですけれどもindex themesのRecent Imagesって画像の複数投稿に対応してない…
まあポストそのものにリンクされているんだしその辺は仕方ないか

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media.html
こちらも最後のサムネじゃなくて最後の投稿の最初のサムネなのね
投稿するときに気を付けよう…

 No.257

>256
気付いたのですけれどもindex themesのRecent Imagesって画像の複数投稿に対応してない…
はい
recent_media で取り出すためのコードは既に書いたのでそれをindex themeに移植すれば複数画像にも対応出来ると思います

 No.258

>>256
>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media.html
>こちらも最後のサムネじゃなくて最後の投稿の最初のサムネなのね
ちょっとコード変えれば挙動変えれます

 No.259

>Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '69a9c92fb866a3602698011ece55536e1074a757' for key 'PRIMARY'
プライマリーキーの重複?
あー。hidden inputsを減らしたせいでハッシュの衝突でも起きているか?
何にせよ有効なキーを入れておく場所のはずだから重複しても困らないはず、ならば握りつぶしてもいいか

 No.260

>>257
その辺は何が正しい実装かって存在しない気がする(ラストポストかラストファイルか)ので
今のままでもいいような気がしないでもない…か?

 No.261

>>162
このantibot関連のエラー
どうもhash値の衝突が原因っぽいのでhidden_inputsの値を大きくしましょ

// どうやらこの値が小さいとエラーが起きる
$config['spam']['hidden_inputs_min'] = 4;
$config['spam']['hidden_inputs_max'] = 4;

 No.262

>>260
こう言ったものの
Recent Images
で複数表示の時全投稿分出て欲しい!と考えるに
ラストファイルで逆順に出る必要があって
recent mediaもたまたま最後の1件だけ出してる機能と
考えるべきだなとなりました…すみません

 No.263

新規ポストしたら前の投稿が生えてきた
相変わらずキャッシュで気づきづらいな…
>>261
>$config['spam']['hidden_inputs_min'] = 4;
>$config['spam']['hidden_inputs_max'] = 4;
試しに設定してみました!

 No.264

>>263
>新規ポストしたら前の投稿が生えてきた
>相変わらずキャッシュで気づきづらいな…
キャッシュの可能性もあるけれどたぶんantibot関連障害でスレjsonの更新がされなかったせいのはずです
(あのエラーが出た時は毎回一般向けスレページと一般向けjsonは更新されたりされていなかったりするだろうという意味)

mod.php 経由で見てる場合は、一般向けとは別の経路で構築されるから障害に影響されないです

ともあれ他のvichanサイトでもJSによるUpdateは、長時間放置しておくと死ぬので何か対策したいところ

>>260
>その辺は何が正しい実装かって存在しない気がする(ラストポストかラストファイルか)ので
ここはhinabitaさんのサイトなので自分がどうしたいかで決めれば良かろうと思います
スレページ内レスでは左から右へ向かって1〜5番のファイルが表示されるので、投稿:新しい方→古い方/ファイル:Nが小さい方から大きい方 とすると見た目が一貫する

>Recent Images

>で複数表示の時全投稿分出て欲しい!と考えるに
>ラストファイルで逆順に出る必要があって
(そんなに難しい話かな・・・)

 No.265

Recent Imagesの

{% for post in recent_images %}
<li>
<a href="{{ post.link }}">
<img src="{{ post.src }}" style="width:{{ post.thumbwidth }}px;height:{{ post.thumbheight }}px" alt="">
</a>
</li>
{% endfor %}

の部分を
{% for post in recent_media %}
<a href="{{ post.link }}">
<img src="{{ post.src }}" width={{ post.thumbwidth }} height={{ post.thumbheight }}>
</a>
{% endfor %}
にしたらいいだけなのかな…?

 No.266

>>265
そっちも必要だけど
https://github.com/vichan-devel/vichan/blob/master/templates/themes/index/theme.php#L87C1-L87C26
その{{}}表現に値を与えているphpがfiles[0]の一つしか処理していないので
そっちも変えないといけないです

 No.267


recent_media 変数は、recent_media/theme.php から呼ばないと有効にはならないです
Recent Images のテンプレートではスコープ外

 No.268

>>267
umaku ikanakatta...

 No.269

File: 1697624440596.txt ( 1.15 KB , instance-config.php.txt )

サムネイル一覧phpアプデ
ffmpegだけじゃなく、扱える画像は php-gd に投げるように変更
これで生成出来なかったpngのサムネも生成出来るはず

それとユーザー用フックを追加
$config_on_files_sorted
ファイルの昇順、逆順ソートが終わった後に呼び出される無名関数
例えば最新の画像一つだけを拾う処理をユーザー側(instance-config.php)に書ける
設定例参照(これはtxtに変数の値を出力するだけ)

https://github.com/tesheke/sam_oo_php/blob/master/index.php#L71

 No.270

File: 1697633728968.txt ( 1.95 KB , log_oosamuneiru.txt )

>>269
>サムネイル一覧phpアプデ
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/sam_r.htm
適用してみました!
エラってるpngはダメみたい…?

>$config_on_files_sorted

出力結果のhtmlを記述するのが可能になる感じです?

 No.271

>>269
>設定例参照(これはtxtに変数の値を出力するだけ)
試しにサンプルを動かしてみた

おーここにhtml直書きで中を
<a href="$info['rel_srcpath']" target="_parent"><img src="$info['rel_thumbpath']" /></a>
するようにしたらいいのか…

 No.273

File: 1697635885216.txt ( 5.4 KB , instance-config.php.txt )

>>269
>instance-config.php
さてこれでどうだろうか…

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/thumbs.html
キタ━━━━(゚∀゚)━━━━!!
ありがとうございます!!実装された…

 No.274

>>273
おめおめ

recent media theme アップデート
フォルダーコピーで複数のrecent mediaが動きます
- inline css (ファイルを用意しなくていいCSS設定)
- vichanデフォcssを参照させないように出来る設定
を追加

https://github.com/tesheke/vichan-theme-recent-media

難抗してそうだし index theme のファイル一覧はこれを iframe してはいかがか

 No.275

うーn
PHP Warning: imagecreatefrompng(): gd-png: fatal libpng error: [FE][B4][91]l: invalid chunk type
壊れpngだめか

 No.276

>>274
>フォルダーコピーで複数のrecent mediaが動きます
これが出来るなら
>index theme のファイル一覧はこれを iframe しては
これで良い気がする!作ってみるかな

 No.277

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media2.html
キタ━━━━(゚∀゚)━━━━!!
けど当たり前だけれどまだ新着ポストの投稿順だ
これ新着ファイル順(ポスト内最終が先頭)にするにはどこを改造する必要があるでしょうか…
linkの_parent _self制御も直接html書き換える方法しかなさそう?

あれ?recent_media2ディレクトリなのにrecent_mediaディレクトリがテンプレートに使われてる…?
気のせいか?1と2で最後にリビルドした方のフォルダのrecent_media.htmlが使われているような…
あとはUse vichan CSSを0にしても再度開くと1になってしまう気もする…

 No.278

File: 1697691975853.png ( 62.97 KB , 973x319 , ClipboardImage.png )

アプデ
https://github.com/tesheke/vichan-theme-recent-media/blob/master/theme.php#L108

投稿内ファイル逆順ソート実装

>>277
>あれ?recent_media2ディレクトリなのにrecent_mediaディレクトリがテンプレートに使われてる…?
直しました
実行PHPを元に相対的にテンプレートを求めてたんだけど、関数名が共通だから先に読み込まれた方のディレクトリしか見てなかった
アップデートしたら両方 Reconfigure してください

>これ新着ファイル順(ポスト内最終が先頭)にするにはどこを改造する必要があるでしょうか…

テンプレート内で逆forをする方法がちょっと分からんので設定値追加してphp側に埋め込みました
(Files sort ascのチェックを外すとポスト内最終が先頭に)

>あとはUse vichan CSSを0にしても再度開くと1になってしまう気もする…

こっちでも再現したけど原因分からぬ
ブラウザはちゃんと0を送信している
textの0が無入力扱いになってデフォルトの1が適用されてる気がするがよく分からない
チェックボックスに変えたら期待通り動いたからたぶんよし
そもそもheader.htmlテンプレートでvichan設定cssが埋め込まれてたからuse vichan header.htmlに設定値を変更


それとどうもvichan内のテンプレートキャッシュが残るっぽいので、上手く動かなかったら Rebuild で "Rebuild Tehemes" と "Flush cache" もやってください

 No.279

>>278
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media2.html
いけタ━━━━(゚∀゚)━━━━!!
要望ばかりで申し訳ないのですが
link先の_parent _selfなどの制御と
サムネサイズの相対、絶対指定をtheme側Reconfigureで出来るようにならんでしょうか…
今は1でwidth=244pixel決め打ちと2でwidth heightをサムネサイズそのままですが
2ではサムネサイズの50%とかならindex互換になりそう…
表示だけ変更出来れば十分です…それが済むと自前カスタムが要らなくなってgit pull可能になる…

 No.280

>>279
>link先の_parent _selfなどの制御と
これは何の話でしょう

>サムネサイズの相対、絶対指定をtheme側Reconfigureで出来るようにならんでしょうか…

>今は1でwidth=244pixel決め打ちと2でwidth heightをサムネサイズそのままですが
>2ではサムネサイズの50%とかならindex互換になりそう…
設定値にすると複雑になりすぎるので、どの html template を使うか自体を指定出来るようにしようか

 No.281

>>280
>>link先の_parent _selfなどの制御と
a hrefの target="_blank" "_parent" "_self"を指定したかったのですが
>どの html template を使うか自体を指定出来る
これがあれば全部解決すると思います…
recent_media.htmlの
width={{ post.thumbwidth }}
height={{ post.thumbheight }]
部分を/2すれば…文字じゃなくて数字で良いのかなこれは

 No.282

>>281
アプデ
https://github.com/tesheke/vichan-theme-recent-media/tree/master

テンプレートを設定出来るようにするついでにデフォテンプレートファイル名を変更(recent_media.html -> template.html)

>部分を/2すれば…文字じゃなくて数字で良いのかなこれは

phpは '2' * 2 という表現がOKだからたぶん
テンプレート内の式を評価するのは twig というテンプレートエンジンであってphpではないけど

 No.283

>>282
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media_cat.html
キタ━━━━(゚∀゚)━━━━!!
ありがとうございました!!これで一通り終わったか…?!
あとはindex改造してこれをiframeにでもすれば…

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/
見比べたらカタログは高さ一定?なのか?
まあ何とかなりそう

 No.284

>>283
>あとはindex改造してこれをiframeにでもすれば…
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media_cat.html
キタ━━━━(゚∀゚)━━━━!!

あれじゃない、本家のcatalogより便利じゃない?
いいものをありがとうございました…

 No.285


 No.286

>>283
>見比べたらカタログは高さ一定?なのか?
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/index.css
iframeの外側にあるdivは .box.image { max-height:400px } に高さ制限されてるね
これ解除して resize:both にするとマウスカーソルで大きさ変えられてちょっとだけ便利

>>284
>本家のcatalogより便利じゃない?
確かに画像メインの画像掲示板には画像一覧機能欲しい(つまりいもげスタイルも最適解の一つ)

>title: PHPでffmpegを使わずに動画ファイルのサムネイルを作成する

PHPでやってないじゃん!
ブラウザの機能とそれをJSでハンドルしてるだけじゃん!
サーバー環境でなくクライアント環境にサムネ生成処理をやらせているものです
rrrussssiakkiの発言は見てませんがどっちかは分からぬ
JSは結構ライブラリが多いのでブラウザさえ無しにバイナリとしてビデオファイルを制御出来るものもあるとは思います

 No.287

>>286
>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/index.css
これって何から生成されるんだろう、直接編集したら駄目ですよね…

本家のカタログは2chanからしてスレ立て画像しか出ないですからね…
でも改良重ねるうちにどこでもそれが改造されなかったのが不思議

今回はまあffmpeg様様ですけれども
汎用性を考えると別の手段があったなら
自分も色々詰まらずに済んだ気はします
それはそれとしてvichanが対応してないとダメなんですけども

 No.288

>>287
そのファイルはindex themeがvichan-rootに配置するっぽい
つまり編集してもrebuildタイミングで上書きされる
index themeのテンプレートはもう編集しちゃっているので、それで別のcssを参照させるかテンプレートにインラインでcss内容をコピーして編集してしまえばいいんじゃないでしょうか

>>287
>それはそれとしてvichanが対応してないとダメなんですけども
mp4対応もwebm対応もvichanコードは魔改造っぽいんだよねー
instance-config.phpに書くポストハンドラーあたりで対応出来んだろうか
(というかそもそもros以外にmovとかmkvとか貼りたい人いるのか)
(mkvが貼れるとyoutubeとかから無劣化で切り出したものが貼れて便利だが)

 No.289

>>288
>テンプレートにインラインでcss内容をコピーして編集
試してみました、何故か初期状態の
<iframe width="99%" height="99%" src ="{{ config.root }}recent_media_cat.html"></iframe>
がちゃんと伸びない…掴むと追従するのに

 No.290

>>289
うわー二重スクロールバーが邪魔すぎる
外のスクロールバー出さない設定できないのか
.box img {}にスクロールバー消す設定して大丈夫か…?

 No.291

iframeのwidth,height attributeは単位無しのpx値だそうです
つまり%は指定出来ない

んで親要素(div)の高さは子要素の高さで決まるわけだから・・・
どうしたらいいんじゃ

 No.292

固定値で親要素の高さを与えておけばいいか
.box.image { height: 400px; } としておけば初期値が定まる

 No.293

>>292
>.box.image { height: 400px; }
は良いとして…
>>291
>%は指定出来ない
はどうするのが良いんだろう…
こういうのは大体%指定動いてるようで
safariとかで開くと死ぬ奴なんだ…

 No.294

iframeの大きさはcssかstyleで%指定すればよかろうと思います
飽くまで <iframe width=X height=Y> の X と Y は数字だけじゃないといけないという仕様

 No.295

iframe {
margin: 0px;
width: 99%;
height: 98%;
}

<iframe src ="{{ config.root }}recent_media_cat.html"></iframe>

これで良いのだろうか…

 No.296

>>295
はい
それとiframeの親である .box.image スタイルに width と height があればhtmlは一意の大きさを決定出来る
(htmlとcssなら猫連れてきた方が相手が増えて楽だったろうか)

 No.297

<meta http-equiv="Cache-Control" content="no-cache" />
キャッシュクリアが面倒だったので
index.phpとか皆にこれを足してしまった…
鯖負荷上がる上におま環かも分らんけど…

 No.298

あと不便なのは Quick Reply だと reCAPTCHA が起動しないことがあるやつ
これはjs書き直さねばならぬ


http 200でキャッシュっぽいものが返って来てたからサーバー側のキャッシュ動作ではないかと思う
サーバー側でif-*に一致するかどうかの検証コンテンツとしてキャッシュを使ってしまっているんじゃないかと
>>297
no-chacheは(それが効いたとして)キャッシュ利用の前に確認しろっていう指示だから転送量の削減には有効だと思います
(no-chacheの説明を読んでもよくわからんのだけど、クライアント側にexpiresを(時間指定キャッシュは「検証」ではないから)無視させて、if-*の利用をお願いする指定子なのかこれは)


・サーバー側でphpコードファイルがキャッシュされる可能性
・サーバー側でその実行結果がキャッシュされる可能性
クライアン側は基本的にはサーバー側の指示によってキャッシュする

正攻に調べるなら下みたいなphpを用意して動作検証

# inc.php: アクセスする度に数値が増える。初回は空

<?php

$num = file_get_contents('num.txt');
++$num;
file_put_contents('num.txt', $num);
print($num);

# show.php: 現在の数値を表示するだけ
<?php

print(file_get_contents('num.txt'));

# ----

 No.299

うぐぐ
最新のライブラリでもう大丈夫かなと思っていたら
patipati web拍手が最新のperlだと動かない…!
perlに後方互換の消失なんてないと思っていた…
perl 5.14.4だと動いて5.32.1だと動かない場合
どこが変わっているんだろうか…

 No.300

>>299
AH01215: Can't locate preset.cgi in @INC (@INC contains: /usr/local/perl/5.32/lib/perl5/site_perl/5.32/mach /usr/local/perl/5.32/lib/perl5/site_perl/5.32 /usr/local/perl/5.32/lib/perl5/5.32/mach /usr/local/perl/5.32/lib/perl5/5.32)

at clap.cgi line 7.: /home/yu-hi/www/hinabita/cgi-bin/patipati/clap.cgi, referer: https://yu-hi.sakura.ne.jp/hinabita/
End of script output before headers: clap.cgi, referer: https://yu-hi.sakura.ne.jp/hinabita/

 No.301

>>300
あれ…アップロードし直したら元のファイルに戻しても動かなくなってしまった…死

 No.302

>>300
http://maki-ya.2-d.jp/patipati3/readme.html
これですか

preset.cgi なんてどこにもないが? というエラー
@INC のパス解決にカレントディレクトリがなくなったんじゃないの、とperlの仕様を確認せずに言う

https://gihyo.jp/dev/serial/01/perl-hackers-hub/004601
>Perl 5.26で変わること(1)
>本稿では、まずPerl 5.26の最大の変更点である特殊変数@INCからカレントディレクトリが削除された経緯とその対策を
あっているっぽ

 No.303

>>302

AH01215: suexec policy violation: see suexec log for more details: /home/yu-hi/www/hinabita/cgi-bin/patipati/clap.cgi, referer: https://yu-hi.sakura.ne.jp/hinabita/

End of script output before headers: clap.cgi, referer: https://yu-hi.sakura.ne.jp/hinabita/

ugugu、次から次へとエラーが…
https://fanblogs.jp/script/archive/116/0
パーミッション変わったのか…?

>jcode.plはPerl 5.22で非互換になった機能を利用しているため、そもそもそのままではPerl 5.26では動作しません。


 No.304

>>303
>AH01215: suexec policy violation: see suexec log for more details: /home/yu-hi/www/hinabita/cgi-bin/patipati/clap.cgi
元のファイルとperlのバージョンに戻しても動かなくなった!なぜ?!パーミッションの設定何か変えたっけか

 No.305

うーn
元の奴から書き直すか貰ってそれを治すか
まあdiff取りたいから
>>303 >>304
コードと出来ればデータも頂戴
文字コードが間違っていたりしませんか

jcode.plは文字コードを扱うだけ(のはず)だから今風に書き直して廃止しちゃえばいいと思う

>see suexec log for more details

どっかにエラーの詳細ある
>デフォルトではログファイルは "suexec_log" という名前で、 標準のログファイルディレクトリ (--logfiledir) に置かれます。

 No.306

>>305
>文字コードが間違っていたり
改行コードのアレの気がしてきた…
>see suexec log
これは見せてもらえねえんだよなあさくらインターネット…

大元のソース配布が失われているので
改造前のソースです…

 No.307

File: 1698074357803.zip ( 99.27 KB , pati.zip )

>>306
メールアドレスとパスいいのかなーが気になったのでそちらのzip消しました

・preset.cgi が Shift-JIS/CR-LF だったのを EUC/CR-LF へ
・jcode.pl をコードから除去
・thanksN.htmlのcharsetをclap.plから指定するように(Shift_JIS固定値)

このコード。テンプレートHTMLはShift-JISでコードはEUC-JPで、管理ページはEUC-JPのHTMLが生成されるね
全体的にutf-8にしたい

 No.308

だのでメールアドレスとパスは再設定しておいてください

view.cgi と clap.cgi の一行目を
#!/usr/bin/perl
から
#!/usr/bin/env -S perl
に変更してあります
たぶんこれでも動くんだけど、動かなかったら直してください

preset.cgi は実行されるべきではないので #!/usr/bin/env false

それとログファイルの拡張子は $kakucho は 'cgi' じゃない方がいいです
何かのミスで実行権限が付与されるとリスクになる
(今までのログを流用するなら手作業でファイル名変更必要)

(thanksN.html に共通ヘッダと共通フッタ機能つけたい。けど手間が増えちゃう)

sendmail領域はテストしてません

 No.309

>>308
動いタ━━━━(゚∀゚)━━━━!!
パスは初期値に戻してあったので大丈夫です
メールも公開アドレスだけれども
アーカイブ変更ありがとうございます…
メールも飛ぶしログも見れてます!
logはcgiからlogにしました…
これは昔よくあったcgiにする事で
位置バレしても読めないようにという奴でしょうね
おかげさまで諦めかけていたサイトの最新化が済んだかもです…
本当にありがとうございます…

 No.310

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/src/up0011.png
>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/thumb/up0011.jpg
>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/imgs/t1_up0011.png.jpg

>Failed to resize image! Details: vichan: iCCP: profile 'Photoshop ICC profile': 0h: PCS illuminant is not D50 `/var/tmp/phpZ9Po26' @ warning/png.c/MagickPNGWarningHandler/1669.


…?!

 No.311

消したの余計なお世話であった

ファイルとしては jcode.pl と jacode.pl は残してありますが、消すかrenameしても動くはずです
渡すの急いで色々雑なままなのでした

>>309
動いてヨカタヨカタ

>これは昔よくあったcgiにする事で

>位置バレしても読めないようにという奴でしょうね
あー・・・知らなかったそういうテクニック
nginx も apache も実行権限がないCGIファイルはエラー出すのだっけか
じゃあ .cgi の方がいいかも

(clap.cgi と view.cgiからlogを読む時は1行目を無視する仕様を追加して
1行目に #!/usr/bin/env false を配置するとエラーに頼らず実現出来る
けれども、拍手を強化してもそんなに嬉しくないやも知れぬ)

 No.312

>>310
こっちでも起きる
$ convert up0011.png -scale 100x100 a.png
convert-im6.q16: iCCP: profile 'Photoshop ICC profile': 0h: PCS illuminant is not D50 `up0011.png' @ warning/png.c/MagickPNGWarningHandler/1668.
変換自体には成功してるんだからとりあえずレス構築してくれればよいのに

 No.313

>>312
vichanはサムネトラップが出来ないのかな?
(開くとサムネと絵が変わるタイプのトラップ画像)

 No.314

imagemagickとgraphicmagickがwarning出してる
>>313
サムネトラップはガンマ値を変わった値にするものでこれはpngの仕様だから問題ないはず
これはカラープロファイルに文句を言ってるのかどうか
ちょっと分からない
まあvichan側のエラー検出を見ないと

 No.315

https://github.com/vichan-devel/vichan/blob/master/inc/image.php#L334C5-L334C75
標準エラー出力が1文字以上かどうかで分岐しているっぽい

 No.316


 No.317

File: 1698126175946-0.png ( 180.41 KB , 406x332 , ClipboardImage.png )

File: 1698126175946-1.txt ( 280 B , a.txt )

握りつぶし設定

 No.318

File: 1698148195178.png ( 1.18 MB , 1000x665 , up0011.png )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.319

>>317
こんな部分までいじれるなんて
instance-configすごい自由度だ…

 No.320

>>318
あっるぇ
color profileをsRGBのピクセル値に適用変更する引数を後で考えなきゃなと思ってたのにもう上手く行ってる
が、リニアRGBとしてもちょっと暗い?

>>319
これはvichanの設定と言うよりもシェルスクリプト芸の一種です
シェルスクリプト芸が出来る余地があるのは良い設計

-size %dx%d %s -thumbnail %dx%d -auto-orient +profile "*" %s
までは元々の設定でimagemagickかgraphicsmagickのconvertコマンドの引数になる

2>&1 |
この部分のリダイレクト指定で、エラー出力に出るはずだったものを標準出力に出るように細工して、それを次のプロセス(sed)の標準入力に流し込んでる

sed -e "s/.*PCS illuminant is not D50.*//" -e "/^$/d" 1>&2 ';
件のwarningと空行を消して再び標準エラー出力へ、そしてvichanの判定へ

(もしかしてmp4とwebm以外のvideoもこのサムネイル生成コードを通るのか?
それならinstance-config.phpへの記述で任意の動画形式のサムネが作れる)

 No.321

http://infoarts.jp/cms_test_image/
gamma値が取れてなくて暗くなってるぽい

 No.322

File: 1698253110592.txt ( 2.73 KB , a.php.txt )

mp4とwebm以外のビデオファイルにもサムネをつけるための設定テキスト
instance-config.php に追加すると動きます
もう設定というよりもただのコード
ファイル分けないと見通し悪くなるかも

>>321
ということは騙しpngネタが使える
しかしなぜこちらと動作が違うんだろうか

 No.324

>>323
コナイ━━━━(゚∀゚)━━━━!!

 No.325

File: 1698287407133-0.png ( 227.24 KB , 679x438 , ClipboardImage.png )

File: 1698287407133-1.txt ( 2.37 KB , a.php.txt )

>>323
>>324
65行目あたり修正
コードは映像が0番ストリームに配置してあることを前提としてて、
そのmovは音声が0番ストリームに配置してあったからだめだったみたいです

ちなみにインライン再生はjsが決め打ちだからそっちも作業必要です

 No.326

That file already exists!
あれ…ファイル消しても再投稿出来ないの…?

 No.327

File: 1698312465954.mov ( 9.19 MB , 1280x960 , trim_7795E048-80CE-4F3B-B27C-905151B8A4F2.mov )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.328

already exists のところがリンクになってて先に投稿された方の投稿Noが見れます

ファイルの重複チェックをするかどうかはこのオプション
// Reject duplicate image uploads.
$config['image_reject_repost'] = true;
falseにすれば同じ画像貼り放題

trueでも消せば貼れるはずだけどどうなんだろう

https://github.com/vichan-devel/vichan/blob/master/inc/functions.php#L2595
DBに登録されたハッシュ値で判定してる

 No.329

>>328
>already exists のところがリンクになってて先に投稿された方の投稿Noが見れます

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/mod.php?/b/res/17.html#323
ファイル消してもダメ━━━━(゚∀゚)━━━━!!
消したのに再投稿出来ないのはバグじゃない?!
ファイルじゃなく投稿ごと消さないとダメなのかな

 No.330

File: 1698325765319.mov ( 8.17 MB , 592x1280 , trim_CC419F30-CC56-4CDE-B1BE-2911592637C6.mov )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.331

>>329
>ファイルじゃなく投稿ごと消さないとダメ
コレダ━━━━(゚∀゚)━━━━!!

 No.332

webpだめか
許可してもデフォだとサムネ出ない
となるとやっぱりpostHandler

>>331
>ファイルじゃなく投稿ごと消さないとダメ
うーn
ちょっと使用感が悪い
しかもコード読んでたら
// vichan(2023-10-15)時点で、DBには1番目の画像のハッシュしか記録されない。
// 各既存の投稿の最初の画像と、新たな投稿の最初の画像のみがそのハッシュによって比較される。
// つまり2つ目以降の画像は重複チェックされない
$config['image_reject_repost'] = true;
なことでした

https://github.com/vichan-devel/vichan/blob/master/inc/functions.php#L1130
ファイルのみ削除の時に呼び出される deleteFile 関数が filehash カラムも変更しなきゃいけないんだけど、それが実装されていない
どーすっかなー
これがLISP方言なら関数advice使ってdeleteFileに処理を追加出来るのだけれどPHPだとそれが出来ぬ
削除時イベントもないから、もし振る舞いが必要ならコードをっ1f変更するしかナシ

 No.333

>>332
>webpだめ
webmサムネ出るのにwebpダメなの…

 No.334

png,jpg,gif以外を振り落とす実装してはります

 No.335

File: 1698340681722-0.png ( 71.92 KB , 883x98 , ClipboardImage.png )

File: 1698340681722-1.txt ( 4.45 KB , a.php.txt )

webpとかtiffとかそのほかマイナーな画像形式をimagemagickあるいはgraphicsmagickでハンドルするコード
動画用と同じく instance-config.php 用
前の動画用の部分は消しといてください

 No.336

>>335
webp
svg
>Invalid image.
ぬぬぬ…

 No.337

File: 1698385350330.txt ( 7.37 KB , a.php.txt )

こっちではsvgのサムネも出るのだが

これでどの行の"invalid image"か分かるのでそれ教えてください

 No.338

File: 1698416865340.webp ( 1.32 MB , IMG_2641.WEBP )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.339


 No.340

File: 1698417059155.webp ( 48.4 KB , 10010004988013408043_1.webp )


 No.341

File: 1698417068573.webp ( 79.95 KB , 606109_01_12053003222099_jpg.webp )

貼れなかったwebpが貼れるようになった
svgは未だダメみたい

 No.342

File: 1698417317115.zip ( 14.99 KB , Green_Ensign.zip )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.343

File: 1698420675604.txt ( 7.11 KB , a.php.txt )

>>339
inc/image.php を部分的に流用したコードなんだが
元から必要に見えないチェックをしていてそこにひっかかっているっぽいからチェック自体を削除

(そういえばimagemagickは多レイヤーなEXRとかpsdとか扱えるんだろうか)

 No.344

>>343
IC-3:Invalid image.
ぬぬぬ…

 No.345

>>344
svgの大きさが取れておらぬ
シェルで

identify -format "%w %h" Green_Ensign.svg

ってやってみて 600 300 ってやってたら成功
たぶんこれが出来ないんだと思う

それと
identify --version
でimagemagickかgraphicsmagickのバージョン頂戴

 No.346

>>344
あるいは
gm identify -format "%w %h" Green_Ensign.svg

 No.347

>>345
% identify -format "%w %h" Green_Ensign.svg
tmp: attempt to perform an operation not allowed by the security policy `MVG' @ error/constitute.c/IsCoderAuthorized/421.
% identify --version
Version: ImageMagick 6.9.12-34 Q16 amd64 2021-12-22 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher Modules
Delegates (built-in): bzlib fontconfig freetype jbig jng jp2 jpeg ltdl lzma png tiff webp xml zlib
% gm identify -format "%w %h" Green_Ensign.svg
gm: Command not found.

nununu…

 No.348

>>347
>ImageMagickの脆弱性(ImageTragick)
https://boscono.hatenablog.com/entry/2016/05/08/111159

>ImageMagick で PS や PDF を扱えないわけは脆弱性対策でした

https://www.t3nro.net/posts/imagemagick-and-postscript-files/

うーn
内部的にsvgをmvgに変換していて、mvg形式を処理する時に任意のコードを実行出来てしまう脆弱性があるから、デフォルトのpolicy.xmlによってmvg形式をブロックしている、と。

シェル引数脆弱性はファイル名を潰してから渡すから発生しないし
mvgを直接渡されるんじゃなくて、svgから変換してるんだから任意コード実行脆弱性は発生しないとおもうんだが分からん
(mvg形式を直接受け取る予定はないから、policy.xmlを変更してmvgを許可素通ししてしまえばいいと思うけれど、それが安全であるかどうか分からない)

>影響範囲

> ImageMagick 6系 6.9.3-9 以前のバージョン
> ImageMagick 7系 7.0.1-0 以前のバージョン
imagemagickをアップデートするか、あるいはgraphicsmagickを入れて、
$config['thumb_method'] = 'gm';
とするか
個人的にはgraphicsmagickを入れるのをおすすめします

 No.349

>>348
>graphicsmagickを入れる
ffmpegみたいにコンパイルして置く必要がある感じです?

 No.350

>>349
パッケージ管理が使えるなら簡単なのだけどrootにはなれないんだっけ
rootなしでpkgコマンドが使えるのかどうか分からない
https://docs.freebsd.org/ja/books/handbook/ports/
これが使えるなら引っ張ってくるだけなのだけれど

となると独自ビルドになる
その場合は不便だから instance-config.php で実行PATHを通せるようにしようか

>「さようなら ImageMagick」の考察

https://qiita.com/yoya/items/2076c1f5137d4041e3aa
この騒動は昔読んだけどやはり怖い

あー。
ffmpegがsvgを扱える
この方法を使おう

 No.351

File: 1698492929075.txt ( 8.79 KB , a.php.txt )

>>344
>>349
出来た
imagemagick-convertコマンドではなく設定されたffmpegを使ってsvgサムネを生成

 No.352

File: 1698531892972.svg ( 43.48 KB , Green_Ensign.svg )

>>351
>1698492929075.txt
(なんだかえらいことになってるな…)

 No.353

>>352
1698531892972.svg
サムネは出ないけどアップはできた…
どういうことなの…

 No.354

>>352
>>353
公式コードを引用改変しているからどんどん行が増えてしまう
別ファイルにして require_once 'sono_settei_file.php'; した方が instance-config.php の見通しよくなるかも

そうだった
ffmpegでsvgを使うにはビルドスイッチが必要だ(ついでにwebpも)
>>200
>configuration: --disable-x86asm --enable-openssl --enable-version3 --cc=clang --prefix=/home/yu-hi --disable-ffplay --disable-doc --disable-htmlpages --disable-podpages --disable-txtpages --enable-manpages --enable-small --enable-openssl --enable-static --progs-suffix=60
--enable-librsvg --enable-libwebp
そもそもカスタムビルドで、生成画像が壊れる問題は独自ビルドでも改善していないから
ffmpeg_neighbor.sh は 元々ある ffmpeg を呼び出すようにしてはどうでしょう
元々の ffmpeg は色々 enable してあるはず(ffmpegを実行した時にドバーって出てくる文字列の中に書いてあります)

>サムネは出ないけどアップはできた…

>どういうことなの…
サムネイル生成失敗を検出出来てないからっすね
(引用コードにバグがあったわけだからワタシワルクナイ)
静止画の方のコードでサムネ生成失敗時でも成功時のようにデータ加工しているというのは気付いて直してあるのだけど、ffmpegの方は見落としてたので後で直したのを投げます

 No.355

>>354
>元々の ffmpeg
さくらインターネットでどれが使えるのか分からない…のでコンパイルして使った経緯
どれならいけるんだろう?

 No.356

>>355
パス指定せずにffmpegって打った時に反応するやつないんです?
サムネ異常が元々提供されている ffmpeg に原因があるのではないかと考えたからカスタムビルドしたのかと思っていたのだけど
そうじゃないなら(ffmpeg がそもそも提供されていないならば)
./configure --enable-librsvg --enable-libwebp してもう一回ビルドすればいいと思います
この場合 librsvg のdev用と libwebp のdev用が必要になるわけだが・・・

 No.357

>>356
>この場合 librsvg のdev用と libwebp のdev用が必要になる
https://qiita.com/je3kmz/items/463a62d9817c793be57c
ここの必要ライブラリのビルドのとこが追加されるのだろうか…?
>パス指定せずにffmpeg
ffmpegは標準で使えないのでビルドする必要があった
そしてビルドとか分からないので上のリンク先の文章丸々コピペして作ったのだった…

 No.358

>>357
>ここの必要ライブラリのビルドのとこが追加されるのだろうか…?
はい
ライブラリ側は似たような感じでビルドすればいいはず
そもdev用のlib(とinclude用ファイル)が環境に用意されているならその手順は省けます
(ffmpegソース で ./configure --enable-librsvg しても文句言われなければまあまあ大丈夫)
手間がかかるのはライブラリをビルドするのに別のライブラリが必要になって、その作業を何度か繰り返す必要があること(./configureした時に文句言われるからそのライブラリを探しに行って配置して./configureしてその文句を聞いて...の繰り返し)
クロスビルド(こっちの環境でそっちの環境用のバイナリを生成)してバイナリだけ配置するという方法もあるのだけど、これをするにはそちらの環境を知る必要があってそうなると私が直接sshで入った方が早くねとなってしまう

 No.359

>>357
>librsvg のdev用と libwebp のdev用

% cd ~ && fetch -o- ftp://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz | bsdtar xf -
% cd gmp-6.2.1 && ./configure M4=m4 --prefix=${HOME} CC=clang
% gmake -j4 all && gmake install

これに当たるコマンドって何だろう…?それを実行後に

% cd ~ && fetch -o- https://ffmpeg.org/releases/ffmpeg-5.0.1.tar.xz | bsdtar xf - && cd ffmpeg-5.0.1
% ./configure --disable-x86asm --enable-gmp --enable-openssl --enable-version3 --cc=clang --prefix=${HOME} --disable-ffplay --disable-doc --disable-htmlpages --disable-podpages --disable-txtpages --enable-manpages --enable-small --enable-openssl --enable-static --progs-suffix=`pwd | awk -F- '{print $NF}' | tr -d .`

に --enable-librsvg --enable-libwebp 足せばいいのだろうけれども

 No.360

(無理そう)
>>359
# まず作業用のソース配置ディレクトリへ移動
# これはHOMEへの移動なのだけど、HOMEが散らかるからHOME下にsrcってディレクトリ作ってそこで作業した方がいいと思う
cd ~
# あるいは
mkdir ~/src ; cd ~/src

# ソース取ってくる
git clone https://gitlab.gnome.org/GNOME/librsvg.git

# 移動
cd librsvg

# 環境依存部分解決。m4って指定しなくても自動解決してくれるような?
# ここで何かがmissingって言われるかも
./configure --prefix=${HOME} CC=clang M4=m4

# コンパイル実行。j4の4は同時コンパイル数。&&は左辺が成功したら右辺へ、という意味。
gmake -j4 all && gmake install

>に --enable-librsvg --enable-libwebp 足せばいいのだろうけれども

そっちはそう
ちなみにfetchはダウンロードなので2回目はやらなくていいです
ちょい難しそうなのでまずはsvgだけしましょう

 No.361

さくらインターネット
ports使えそうなのだがどうなのだろう
あるいはクイックインストールにないだろうか

ディストリビューションバージョン知りたいのでこれのコマンド結果も教えてください
freebsd-version ; uname -a

 No.362

>>361
>freebsd-version ; uname -a
13.0-RELEASE-p12
FreeBSD www3006.sakura.ne.jp 13.0-RELEASE-p12 FreeBSD 13.0-RELEASE-p12 #0: Tue Sep 12 19:33:31 UTC 2023 root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64

 No.363

>>362
./configure: コマンドが見つかりません.
あれ、前はどうやってパス通したんだっけな…

 No.364

>>360
>./configure --prefix=${HOME} CC=clang M4=m4

% ../../configure --prefix=${HOME} CC=clang M4=m4
checking build system type... skylake-unknown-freebsd13.0
checking host system type... skylake-unknown-freebsd13.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ../../install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
configure: error: source directory already configured; run "make distclean" there first

 No.365

>>363
./ は現在ディレクトリの、という意味です
configure が librsvg ソースには含まれていないので
./autogen.sh --prefix=${HOME} CC=clang
としてください

>>364
うーn…?
今どこにいるのです?
pwd してみて

 No.366

>>365
>pwd
/home/yu-hi/gmp-6.2.1/src/librsvg
gmp-6.2.1に行かないとconfigureがなかったので
その下にsrcして潜った…ダメだったか

./autogen.sh: コマンドが見つかりません.

 No.367

>>366
どうして gmp の下で作業したのですか…
そこでやっても結果は代わりません
何ゆえ autogen.sh が無いのだろう
ls してみて

 No.368

>>367

% pwd
/home/yu-hi/gmp-6.2.1
% ls
acinclude.m4 errno.lo invalid.lo mp_set_fns.o
aclocal.m4 errno.o invalid.o mpf
asl.h extract-dbl.c libgmp.la mpn
assert.c extract-dbl.lo libtool mpq
assert.lo extract-dbl.o longlong.h mpz
assert.o fac_table.h ltmain.sh NEWS
AUTHORS fib_table.h Makefile nextprime.c
bootstrap.c gen-bases Makefile.am nextprime.lo
ChangeLog gen-bases.c Makefile.in nextprime.o
compat.c gen-fac memory.c primesieve.c
compat.lo gen-fac.c memory.lo primesieve.lo
compat.o gen-fib memory.o primesieve.o
compile gen-fib.c mini-gmp printf
config.guess gen-jacobitab missing rand
config.h gen-jacobitab.c mp_bases.h README
config.in gen-psqr mp_bpl.c scanf
config.log gen-psqr.c mp_bpl.lo src
config.m4 gen-trialdivtab mp_bpl.o stamp-h1
config.status gen-trialdivtab.c mp_clz_tab.c tal-debug.c
config.sub gmp-h.in mp_clz_tab.lo tal-notreent.c
configfsf.guess gmp-impl.h mp_clz_tab.o tal-reent.c
configfsf.sub gmp-mparam.h mp_dv_tab.c tal-reent.lo
configure gmp.h mp_dv_tab.lo tal-reent.o
configure.ac gmp.pc mp_dv_tab.o test-driver
COPYING gmp.pc.in mp_get_fns.c tests
COPYING.LESSERv3 gmpxx.h mp_get_fns.lo trialdivtab.h
COPYINGv2 gmpxx.pc mp_get_fns.o tune
COPYINGv3 gmpxx.pc.in mp_minv_tab.c version.c
cxx INSTALL mp_minv_tab.lo version.lo
demos install-sh mp_minv_tab.o version.o
doc INSTALL.autoconf mp_set_fns.c ylwrap
errno.c invalid.c mp_set_fns.lo
%

 No.369

>>368
% pwd
/home/yu-hi/src/librsvg
% ls
acinclude.m4 COPYING.LIB librsvg-c rsvg_convert
afl-fuzz deny.toml librsvg-zip.in Rsvg-2.0-custom.vala
AUTHORS devel-docs librsvg.doap Rsvg-2.0.metadata
autogen.sh doc librsvg.pc.in rsvg-bench
benchmarks examples m4 rsvg-c-srcs.mk
Cargo.lock fuzz MAINTAINERS rsvg-convert.rst
Cargo.toml gdk-pixbuf-loader Makefile.am tap-driver.sh
ci glib-tap.mk NEWS tap-test
code-of-conduct.md include README.md tools
configure.ac INSTALL rsvg win32

% ./autogen.sh --prefix=${HOME} CC=clang
./autogen.sh: aclocal: not found

 No.370

>>369
>autogen.sh doc librsvg.pc.in rsvg-bench
autogen.sh ある
cd /home/yu-hi/src/librsvg した後に
呼び出す時に何か誤字したのでは
./auto まで入力したらtab押して補間してみて

 No.371

>>370
>autogen.sh ある
% ./autogen.sh --prefix=${HOME} CC=clang
./autogen.sh: aclocal: not found
実行は出来てるみたい?

 No.372

>>371
えー
automakeツールセットに入っているはずの aclocal コマンドが無いと言っている
automakeツールが古いのか…?

これはー…さすがにportsの使い方を調べるべきか

 No.373

うーn
ライブラリ依存ループどころの話ではなかった
automakeツールまで揃ってないのか
これもダウンロードしてきてビルドすればいい話ではありますが…

imagemagickのポリシーを緩めて、それを簡易的なサンドボックスで動かしちゃった方がいいかもしれない
と言ってもその具体的な方法が頭にあるわけではないのだけれど

あるいは他にsvgをハンドル出来るコマンドを探してくるか

 No.374

>>372
>aclocal
/home/yu-hi/gmp-6.2.1
% ls
aclocal.m4
のこれではないのかな…
configureもここにあるし
gmp-6.2.1にパス通したらいいのか?

上のリンクのページでやってる
% cd ~ && fetch -o- ftp://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz | bsdtar xf -
% cd gmp-6.2.1 && ./configure M4=m4 --prefix=${HOME} CC=clang
% gmake -j4 all && gmake install

これでgmp-6.2.1に色々作られる…

 No.375

>>374
その aclocal.m4 はデータファイルです
実行ファイルの aclocal があるはずなのだけど無いのです(普通は /usr/bin/aclocal にある)

gmp は別のライブラリプログラムなので今回(librsvgのビルド)には関係がないです
configure や aclocal.m4 は各プログラムごとに存在していて開発側がそこに設定を書いていたり、設定に応じて生成したりしています
だから gmp の configure や aclocal.m4 は librsvg のそれではないのです

というわけでautomakeをビルドしましょう
このビルドが成功したら .cshrc を変更して set path の行に $HOME/bin を追加する必要があります
それど LIBRARY_PATH とか LD_LIBRARY_PATH も調整しないと使えないかも
(なんにせよ他のライブラリを利用してffmpegをビルドしようと思ったら必要になる)

fetch -o- https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz | xzcat | bsdtar x
# xzcatがないかもしれない
cd automake-1.16.5
./bootstrap
./configure --prefix=${HOME} CC=clang M4=m4
make && make install

 No.376

>>375
>fetch -o- https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz | xzcat | bsdtar x

% fetch -o- https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz | xzcat | bsdtar x
bsdtar: Error opening archive: Failed to open '/dev/sa0'
- 1% of 1564 kB 93 kBps%
%
ikinari si...

 No.377

>>376
portsが使えそうなのでその方法は諦めましょう

 No.378

仮想環境でfreebsdこねくり回し
13.0 のイメージが見つからなくて 13.1 イメージを
pkg は 13.2 用しかない
ports (1200MB)入れたけど依存関係ビルドが頻繁に失敗する
多難


>fetch -o- https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz | xzcat | bsdtar x

fetch -o- https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz | xzcat | bsdtar xf -
これでどうでしょう

 No.379

>>378
ありがたくも大変なことに付き合わせてしまって…
>fetch -o- https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz | xzcat | bsdtar xf -
>これでどうでしょう

% fetch -o- https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz | xzcat | bsdtar xf -
- 1564 kB 1242 kBps 01s
% cd automake-1.16.5
% ./bootstrap
% ./configure --prefix=${HOME} CC=clang M4=m4
checking whether make supports nested variables... yes
checking build system type... x86_64-unknown-freebsd13.0
checking host system type... x86_64-unknown-freebsd13.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... lib/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
checking whether ln -s works... yes
checking for perl... /usr/bin/perl
checking for tex... no
checking for yacc... yacc
checking for lex... lex
checking whether autoconf is installed... yes
checking whether autoconf works... no
configure: error: The installed version of autoconf does not work.
Please check config.log for error messages before this one.
% make && make install
make: no target to make.

make: stopped in /home/yu-hi/automake-1.16.5

 No.380

>>379
趣味の範疇です

>checking whether autoconf is installed... yes

>checking whether autoconf works... no
autoconf 古すぎエラー

cd ~/src/
fetch -o- https://alpha.gnu.org/pub/gnu/autoconf/autoconf-2.72c.tar.xz | xzcat | bsdtar xf - && cd autoconf-2.72c
./bootstrap
./configure --prefix=${HOME} CC=clang M4=m4
make && make install

こういった感じに依存解決のためのビルドが増えてしまいます
だからなんとかして回避策を得たいところ
ffmpegのwebm対応も欲しいし

 No.381

>>380
%
cd ~/src/
fetch -o- https://alpha.gnu.org/pub/gnu/autoconf/autoconf-2.72c.tar.xz | xzcat | bsdtar xf - && cd autoconf-2.72c
./bootstrap
./configure --prefix=${HOME} CC=clang M4=m4
make && make install% cd ~/src/
% fetch -o- https://alpha.gnu.org/pub/gnu/autoconf/autoconf-2.72c.tar.xz | xzcat | bsdtar xf - && cd autoconf-2.72c
- 1342 kB 1177 kBps 01s
% ./bootstrap
./bootstrap: Command not found.
% ./configure --prefix=${HOME} CC=clang M4=m4
checking for a BSD-compatible install... /usr/bin/install -c
checking whether sleep supports fractional seconds... true
checking the filesystem timestamp resolution... 0.1
checking whether build environment is sane... yes
checking for a race-free mkdir -p... mkdir -p
checking for gawk... no
checking for mawk... no

超長い色々

autom4te_perllibdir='.'/lib AUTOM4TE_CFG='lib/autom4te.cfg' bin/autom4te -B ''lib -B '.'/lib --language=M4sh ./tests/wrapper.as -o tests/wrapper.in
autom4te: error: need GNU m4 1.4 or later: m4
*** Error code 1

Stop.
make[1]: stopped in /home/yu-hi/src/autoconf-2.72c
*** Error code 1

Stop.
make: stopped in /home/yu-hi/src/autoconf-2.72c

確かに…根本回避あるなら欲しいですね

 No.382

File: 1698809639511.txt ( 2.6 KB , set_env.sh.txt )

動くかどうか分からないけど試しにバイナリをそのまま使ってみましょう

https://www.mediafire.com/file/fp52m8sl6l6x4gu/local2023-11-01.tar.xz/file

・mediafireのファイルをダウンロードして、 /home/hinabita/ 下に local.tar.xz という名前で配置
・この投稿に添付しているテキストを、 /home/hinabita/ 下に set_env.sh という名前で配置

# 展開
cd ~ ; xzcat local.tar.xz | tar -xf -

# たぶんデフォが csh だから
bash

# 環境変数設定
. set_env.sh

# 動作テスト
ffmpeg

これで長いバージョン情報が出たら成功です

pkgバージョンのffmpegなのだけど、svgは無効でビルドしてあったのでこの段階でもまだ問題は解決していないです
けれどもこれが可能だとすると遠隔でパッケージバイナリを送って使えることになるから大分楽になるはず

ところでサーバー契約は従量プランだったりしますか

 No.383

>>382
% cd ~ ; xzcat local.tar.xz | tar -xf -
% bash
[yu-hi@www3006 ~]$ . set_env.sh
bash: set_env.sh: No such file or directory

bash行以降で使ってるPoderosaが
未サポートのエスケープシークエンスを見つけました。
Unknown escape sequence: ESC [?2004|
エラーを出している…昔のやつ流用したけど古すぎか?
契約は定額プラン

 No.384

>>383
[yu-hi@www3006 ~]$ cd ~ ; xzcat local.tar.xz | tar -xf -
[yu-hi@www3006 ~]$ ls
MailBox ffmpeg-6.0 nasm-2.15.05.tar.gz usr
automake-1.16.5 gmp-6.2.1 ports www
bin include sakura_pocket x264-stable
db lib sblo_files x264-stable.tar.gz
dead.letter libdata share
ffmpeg-4.4.1.tar.gz local.tar.xz src
ffmpeg-5.0.1 log tmp
[yu-hi@www3006 ~]$

Poderosa更新したらエラーは出なくなったけど症状変わらないか
tar.xz展開出来てない?

 No.385

>>384
poderosaのエラーは日本語を受け付けないとかではなく?

>bash: set_env.sh: No such file or directory

>>383
ホームディレクトリのls結果に set_env.sh がないので、配置忘れだろうと思います
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/b/src/1698809639511.txt
これの中身を set_env.sh としてホームに置いてください

tar.xz 展開したら ~/usr/local/ 以下にファイルが配置されます
でもって set_env.sh すると環境変数のライブラリパスとか実行パスを設定する
その状態で ffmpeg って打つと今回渡したffmpegが実行される、という予定です

find ~/usr/local/
としてみてファイルが沢山出てきたら展開自体は成功しているはず
そもそも展開時にエラーが出ていないようなのでそこは問題ないと思います

 No.386

>>383
>Unknown escape sequence: ESC [?2004|
たぶん色文字用のシーケンス表現が解釈出来ていない

 No.387

>>385
・この投稿に添付しているテキストを、 /home/hinabita/ 下に set_env.sh という名前で配置
配置忘れ…まさにそれです…お恥ずかしい

% bash
[yu-hi@www3006 ~]$ . set_env.sh
[yu-hi@www3006 ~]$ ffmpeg
ld-elf.so.1: /lib/libc.so.7: version FBSD_1.7 required by /home/yu-hi/usr/local/lib/libavutil.so.58 not found
[yu-hi@www3006 ~]$

 No.388

>>387
ライブラリキャッシュの更新してなかった
その bash のまま

echo ${LDCONFIG} ; ${LDCONFIG} && echo ok

それから
ffmpeg

 No.389

>>388
% bash
[yu-hi@www3006 ~]$ echo ${LDCONFIG} ; ${LDCONFIG} && echo ok

ok
[yu-hi@www3006 ~]$ . set_env.sh
[yu-hi@www3006 ~]$ ffmpeg
ld-elf.so.1: /lib/libc.so.7: version FBSD_1.7 required by /home/yu-hi/usr/local/lib/libavutil.so.58 not found
[yu-hi@www3006 ~]$ echo ${LDCONFIG} ; ${LDCONFIG} && echo ok
/sbin/ldconfig -f /home/yu-hi/usr/local/var/run/ld-elf.so.hints -i -R /home/yu-hi/usr/local/etc/ld-elf.so.conf
ok
[yu-hi@www3006 ~]$ ffmpeg
ld-elf.so.1: /lib/libc.so.7: version FBSD_1.7 required by /home/yu-hi/usr/local/lib/libavutil.so.58 not found
[yu-hi@www3006 ~]

umumu...

 No.390

>>389
ああそうか。要求されているのは libc.so.7 だ
こっちとそっちでベースライブラリが違う

定額ならやりすぎてもメールが来るだけだろうってことで
これをまた local.tar.xz として配置して上書き展開してください

https://www.mediafire.com/file/npuuwwbl6osn9kq/local.tar.xz/file

xzcat local.tar.xz | tar -xf -

echo ${LDCONFIG} ; ${LDCONFIG} && echo ok

ffmpeg

 No.391

>>390
% cd ~ ; xzcat local.tar.xz | tar -xf -
% bash
[yu-hi@www3006 ~]$ . set_env.sh
[yu-hi@www3006 ~]$ ffmpeg
ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)
configuration: --prefix=/usr/local --mandir=/usr/local/man --datadir=/usr/local/share/ffmpeg --docdir=/usr/local/share/doc/ffmpeg --pkgconfigdir=/usr/local/libdata/pkgconfig --disable-static --disable-libcelt --enable-shared --enable-pic --enable-gpl --cc=cc --cxx=c++ --disable-alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --enable-libaom --disable-libaribb24 --enable-asm --enable-libass --disable-libbs2b --disable-libcaca --disable-libcdio --disable-libcodec2 --enable-libdav1d --disable-libdavs2 --disable-libdc1394 --disable-debug --enable-htmlpages --enable-libdrm --disable-libfdk-aac --disable-libflite --enable-fontconfig --enable-libfreetype --enable-frei0r --disable-libfribidi --disable-gcrypt --disable-libglslang --disable-libgme --enable-gmp --enable-gnutls --enable-version3 --disable-libgsm --enable-iconv --disable-libilbc --disable-libjack --enable-libjxl --disable-libklvanc --disable-libkvazaar --disable-ladspa --enable-libmp3lame --enable-lcms2 --disable-liblensfun --disable-libbluray --enable-libplacebo --disable-librsvg --disable-librtmp --enable-libxml2 --disable-lto --disable-lv2 --disable-mbedtls --disable-libmfx --disable-libmodplug --disable-libmysofa --enable-network --disable-nonfree --enable-nvenc --disable-openal --disable-opencl --disable-opengl --disable-libopenh264 --disable-libopenjpeg --disable-libopenmpt --disable-openssl --disable-libopenvino --enable-optimizations --enable-libopus --disable-pocketsphinx --disable-libpulse --disable-librabbitmq --disable-librav1e --disable-librist --enable-runtime-cpudetect --disable-librubberband --disable-sdl2 --enable-libshaderc --disable-libsmbclient --disable-libsnappy --disable-sndio --disable-libsoxr --disable-libspeex --disable-libsrt --disable-libssh --enable-libsvtav1 --disable-libtensorflow --disable-libtesseract --disable-libtheora --disable-libtwolame --disable-libuavs3d --enable-libv4l2 --enable-vaapi --disable-vapoursynth --enable-vdpau --disable-libvidstab --enable-libvmaf --enable-libvorbis --disable-libvo-amrwbenc --disable-libvpl --enable-libvpx --enable-vulkan --enable-libwebp --enable-libx264 --enable-libx265 --disable-libxavs2 --enable-libxcb --disable-libxvid --disable-outdev=xv --disable-libzimg --disable-libzmq --disable-libzvbi
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'
[yu-hi@www3006 ~]$

キタ━━━━(゚∀゚)━━━━!!

 No.392

使い終わったら local.tar.xz は消していいです
>>391
イェイ
うまく行ったということはこの方法が使える
とりあえずはー どうしよう

> --disable-librsvg

そのffmpegはfreebsdのパッケージにあるものなんですが、前にも書いた通りsvgがオフなのでした
webpは使える

m4, autoconf, automake というったビルドツールを新しくするのと、graphicsmagick を入れようか

 No.393

>>392
>webpは使える
とりあえず今のと差し替えるだけでも有用なのだろうか…

 No.394

https://www.mediafire.com/file/ixyks0a3mzcw5me/local.tar.xz/file

m4, autoconf, automake, graphicsmagick を入れたもの
同じように展開してください ( cd ~ ; xzcat local.tar.xz | tar -xf - )
中身をちょっと変えた set_env.sh も同梱してるから展開すれば更新されます

>>393
そのffmpegはsvgは使えないけれど対応コーデックは増えているはずだからちょっと有用
サムネイル一覧の方で出来なかったwebpサムネも作れるようになる
それとこのffmpegもスケーリングすると壊れた画像を出すかどうかも見たいところ

これらはシステムグローバルにインストールしたものではないので、実行する前に環境変数の設定が必要です
その設定をしているのが set_env.sh というわけ

ライブラリ検索パス設定の LD_LIBRARY_PATH
実行ファイル検索パス設定の PATH

この2つの環境変数が重要で、これらをphpスクリプトやperlスクリプトにも設定する必要があります
php は環境変数いじれるはずだけど調べてないから後で

 No.395

>>394
>中身をちょっと変えた set_env.sh も同梱してるから展開すれば更新されます

% cd ~ ; xzcat local.tar.xz | tar -xf -
% bash
[yu-hi@www3006 ~]$ . set_env.sh
[yu-hi@www3006 ~]$ ffmpeg
ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)
configuration: --prefix=/usr/local --mandir=/usr/local/man --datadir=/usr/local/share/ffmpeg --docdir=/usr/local/share/doc/ffmpeg --pkgconfigdir=/usr/local/libdata/pkgconfig --disable-static --disable-libcelt --enable-shared --enable-pic --enable-gpl --cc=cc --cxx=c++ --disable-alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --enable-libaom --disable-libaribb24 --enable-asm --enable-libass --disable-libbs2b --disable-libcaca --disable-libcdio --disable-libcodec2 --enable-libdav1d --disable-libdavs2 --disable-libdc1394 --disable-debug --enable-htmlpages --enable-libdrm --disable-libfdk-aac --disable-libflite --enable-fontconfig --enable-libfreetype --enable-frei0r --disable-libfribidi --disable-gcrypt --disable-libglslang --disable-libgme --enable-gmp --enable-gnutls --enable-version3 --disable-libgsm --enable-iconv --disable-libilbc --disable-libjack --enable-libjxl --disable-libklvanc --disable-libkvazaar --disable-ladspa --enable-libmp3lame --enable-lcms2 --disable-liblensfun --disable-libbluray --enable-libplacebo --disable-librsvg --disable-librtmp --enable-libxml2 --disable-lto --disable-lv2 --disable-mbedtls --disable-libmfx --disable-libmodplug --disable-libmysofa --enable-network --disable-nonfree --enable-nvenc --disable-openal --disable-opencl --disable-opengl --disable-libopenh264 --disable-libopenjpeg --disable-libopenmpt --disable-openssl --disable-libopenvino --enable-optimizations --enable-libopus --disable-pocketsphinx --disable-libpulse --disable-librabbitmq --disable-librav1e --disable-librist --enable-runtime-cpudetect --disable-librubberband --disable-sdl2 --enable-libshaderc --disable-libsmbclient --disable-libsnappy --disable-sndio --disable-libsoxr --disable-libspeex --disable-libsrt --disable-libssh --enable-libsvtav1 --disable-libtensorflow --disable-libtesseract --disable-libtheora --disable-libtwolame --disable-libuavs3d --enable-libv4l2 --enable-vaapi --disable-vapoursynth --enable-vdpau --disable-libvidstab --enable-libvmaf --enable-libvorbis --disable-libvo-amrwbenc --disable-libvpl --enable-libvpx --enable-vulkan --enable-libwebp --enable-libx264 --enable-libx265 --disable-libxavs2 --enable-libxcb --disable-libxvid --disable-outdev=xv --disable-libzimg --disable-libzmq --disable-libzvbi
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
libpostproc 57. 1.100 / 57. 1.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'
[yu-hi@www3006 ~]$

キタ━━━━(゚∀゚)━━━━!!

 No.396

File: 1698931539753.txt ( 10.56 KB , instance-config.php.txt )

vichan の instance-config.php の部分テキスト
環境変数の設定と

# graphicsmagick を使うように変更
$config['thumb_method'] = 'gm';

こういう行が追加されてます
もし graphicsmagick が動かない場合(例えば . set_env.sh した後の bash 上で gm convert と打ってエラーが出る場合)は静止画サムネが失敗するようになります
その場合は、thumb_methodの行をコメントアウトすれば元に戻って imagemagick を使うようになります

svgをgraphicsmagickが処理するように設定してあります
ffmpegはffmpeg_neighbor.shを経由してffmpeg60を実行するままのはず

 No.397

File: 1698936618245.webp ( 678.65 KB , IMG_2610.WEBP )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.398

>>396
Green_Ensign.svg
IC-3:Invalid image.

ンンーン

 No.399

これを set_env.sh 環境で試してください
gm identify Green_Ensign.svg
gm convert Green_Ensign.svg a.png

 No.400

File: 1698937032742.png ( 88.29 KB , 600x300 , a.png )

>>399
% bash
[yu-hi@www3006 ~]$ . set_env.sh
[yu-hi@www3006 ~]$ gm identify Green_Ensign.svg
Green_Ensign.svg SVG 600x300+0+0 DirectClass 16-bit 43.5Ki 0.000u 0m:0.000002s
[yu-hi@www3006 ~]$ gm convert Green_Ensign.svg a.png
[yu-hi@www3006 ~]$

ちょっとおかしいけど
キタ━━━━(゚∀゚)━━━━!!

 No.401

うーn?
$config['thumb_method']が設定されてなくてimagemagickが実行されてしまっているような

$config['thumb_method'] = 'gm';
をinstance-config.phpの一番下に配置してみてください

 No.402

>>400
ホントだ
十字がちょっと突き出ておる

 No.403

File: 1698937413945-0.png ( 99.11 KB , 2402x1166 , 2023-11-03.png )

File: 1698937413945-1.png ( 109.92 KB , 2402x1166 , 2023-11-03 (1).png )

>>401
2か所書く?

 No.404

>>403
どちらか1ヶ所でいいけど2ヶ所書いても問題ナシです
たぶん secrets.php で thumb_method がインストール時の 'convert' (imagemagickを使うという意味) に設定されてしまうので
それよりも更に下の方がいいです
ちなみに末尾の ?> はなくても問題ないです

 No.405

(話が飛びますが reCAPTCHA v3 も設置してヒューマンポイントが高い通信は reCAPTCHA v2 免除にしてもいいなと思いました。)

 No.406

>>404
1か所なら書いてあった!けど駄目だった

 No.407

reCAPTCHA v3
は対応してないみたいでした
→vichan

 No.408

File: 1698938054524.svg ( 43.48 KB , Green_Ensign.svg )


 No.409

File: 1698938120952.png ( 89.95 KB , 2402x1166 , 2023-11-03 (2).png )

>>404
たぶん secrets.php で thumb_method がインストール時の 'convert' (imagemagickを使うという意味) に設定されてしまうので
それよりも更に下の方がいいです

koredatta━━━━(゚∀゚)━━━━!!

 No.410

File: 1698938121869.svg ( 43.48 KB , Green_Ensign.svg )

>>406
phpコードだから最後の代入がその値になるのです
inc/secrets.php にはインストール時の自動検出設定とかdb関連の設定が書かれていて、その中にthumb_methodの設定もあるから
secrets.phpを読み込んでいる行でthumb_methodが上書きされてしまっていないかということを疑っています

だので ?> 直前に $config['thumb_method'] = 'gm'; 書くか
?> を消してファイル末尾にこの設定を書いてみてください

>>407
まあフォームに組み込んでpost-handlerで判定しようかなという心づもり

 No.411

>>409
はい
svg貼れておる

 No.412

http://www.graphicsmagick.org/formats.html
>Note that SVG is a very complex specification so support is still not complete.
完全ではない、と

 No.413

File: 1698938481345.png ( 352.41 KB , 1984x1320 , 2023-11-03 (3).png )

こっちに
$config['thumb_method']
に相当するものはなさそうね…
ここ書き換えるのが
secrets.php
に適用されるっぽかったけれども

 No.414

>>413
あー…shell path設定があったのか
じゃあこっちで環境変数を設定しても良かったか

WebUIのConfigurationは基本は instance-config.php の末尾に追加されていくはず
DB関係とかが secrets.php に入るのではなかったか

 No.415

File: 1699071486894.png ( 46.2 KB , 541x616 , uxKxtAm4.png )

>>261
// どうやらこの値が小さいとエラーが起きる
$config['spam']['hidden_inputs_min'] = 4;
$config['spam']['hidden_inputs_max'] = 4;

ここの数字戻したらまたbot認定されるのが復活してしまったらしい
知人が使えないーと言っていた
11でエラーで44でbot誤認なら
いくつならいいんだろうか…

 No.416

File: 1699071963468.png ( 328.56 KB , 2006x1231 , 2023-11-04 (1).png )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.417

>>415
投稿フォームにランダムな文字列が設定されていて
それが期限切れ(spam->hidden_inputs_expire秒数を超えた場合; 10800ならば3時間)になった場合にもボットと誹りを受けます
だからページを3時間以上開きっぱなしにして、それから投稿した場合もボット呼ばわりされる
そのランダムな文字列を使って spam->hidden_inputs_max_pass 回数投稿が行われた場合もボット呼ばわりされる
この投稿回数は個人個人ではなく利用者全体で共有される

ただ、合計8パターンのボット扱い条件があってよく分からない
個人的にはこの機能はもう時代遅れだと思ってます(簡単に回避出来るから)

設定で対処するならば
・ hidden_inputs_max を 12 に戻して
・ hidden_inputs_expire をもっと延ばしましょう
max_passは100あれば十分だと思う
(このスレの上の方で私が矛盾した説明をしてますが、上が間違ってます)

この挙動を抑制する設定はないです
けれどサーバーサイドのコードを変えてもいいなら無効にしてしまいましょう
inc/display.php に function error の定義があるので message が $config['error']['bot'] と同じだった場合にエラーせずに戻せば握りつぶせる

 No.418

>・ hidden_inputs_max を 12 に戻して
>・ hidden_inputs_expire をもっと延ばしましょう
>max_passは100あれば十分だと思う
とりあえずこれにしたものの修正が必要かもしれない…

 No.419

File: 1699181860580-0.png ( 42.93 KB , 548x587 , g6zTv0iH.png )

File: 1699181860580-1.png ( 144.59 KB , 890x341 , ZZJ8Fl8x.png )

>>418
新しいスレを建てたら返信で書き込めるものの
古いスレッドには書き込めないらしい…
どういうことなの…

 No.420

>>419
ボットチェックは上の説明の通り
設定を変えると設定反映前のページが残って書き込めなくなるのです
rebuildでスレページ再生成するか、あるいはmod権で書き込むとページが再生成されて書き込めるようになるはず

やはりオフにするためのコード書くか

 No.421

File: 1699188011505.png ( 40.62 KB , 638x281 , ClipboardImage.png )

instance-config.php に独自設定値追加

$config['ignore_error']['bot'] = true;


inc/display.php の 74行目あたりの error 関数の中、gloablが書いてある行の下に

if ($config['ignore_error']['bot']
&& $message == $config['error']['bot']) {

return;
};

たぶんこれでbotチェック無効になります

 No.422

>>421
試してみた…!これで大丈夫だろうか…
ついでにリビルドもしておいた

 No.423

>>422
>>>/neoranga/1
このスレに一般ユーザーとして書き込めたからたぶんOK
レスはもう消しました

 No.424

File: 1699454069067.png ( 1.18 MB , 1000x665 , up0011.png )

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

 No.425

>>424
imagemagickからgraphicsmagickに変わってカラープロファイルを削ぎ落とす時の動作が変わった
これだと偽装サムネネタが使える(たぶん)

 No.426

File: 1699715745883.zip ( 635 B , index.zip )

滅茶滅茶雑に作った
ディレクトリ内の画像全部並べるやつ
これって新しい順にすることは可能なのだろうか…

 No.427

>>426
(1ファイルならzipに包む必要なかったのでは)
dir->read で得られるのは filesystem native な並び順
何か順にしたいならソートする必要があって
ソートするにはファイルリストと作成時間リストを事前に得る必要あります
https://www.php.net/manual/ja/function.stat

それらを貯めて置かないといけないから配列にする
方法は2つで、
A. [ファイル名, 作成時間] が1要素である二次配列
B. (phpで一般的な)ファイル名の配列と作成時間の配列の2つ

作成時間を基準としてソートして欲しいから

A の場合は usort
https://www.php.net/manual/ja/function.usort.php

B の場合は array_multisort(サムネイル一覧でも使われていた方法)
https://www.php.net/manual/ja/function.array-multisort.php

 No.428

>>427
7万ファイルとかあったので
filesystem native側で送り出し順を
指定出来たらな…と思ったりしたのでした…
配列準備して保存するのがやりたくなかった!
(本格的にやるなら既に頂いたindex,phpで良いと思ったので…)

 No.429

>>428
無理どす
filesystem依存するなら方法はあるかも知れないけれど基本的にネイティブオーダーは触れない

自分でソートしたくないということならば ls -Uw1 の結果を読む方法あります(改行を含むファイル名を扱う場合は一手間あり)

>(本格的にやるなら既に頂いたindex,phpで良いと思ったので…)

あれも呼び出す度に全部のファイルをリストするから向かない

10万ファイルを超えるものを快適に扱いたいなら追加分だけを処理するような設計必要です
ファイルを配置する側も処理する側も

処理時間を待てるなら無視していい事柄ではあります

 No.430

>>429
>追加分だけを処理
てっきりサムネが存在しない分だけ処理しているのかと思っていた
リスト化だけは毎回やっているのか…
処理時間、家の鯖だと120秒以内に終わらないと処理中断されてしまう…
上のphpは家のPCのwindows直接たたいているのだった
https://atariya.server-on.net/neoranga/StableDiffusion/outputs/
新しい方からズルズルこうやって出たらいいのになと思っていたのでした
配列準備して処理系考えないとダメなんですね

 No.431

>>430
呼び出されて動作するプログラムがファイルシステムから変更差分を得る方法はないんやな
ファイルが示す作成日時を信用して以前処理した時間よりも古いものは無視するという動作は可能だけど、この場合もディレクトリから全部のリストを得る処理は必要です

>てっきりサムネが存在しない分だけ処理しているのかと思っていた

サムネの生成は存在しない分だけに対してやっているのだけれどね

常時稼働のコードを組んで変更を監視して逐次実行するという手段もあります
linux だと inotifywait が動くけど freebsd だとどうなのだろう
クロスプラットフォームでこれを書く方法は知らないです

ネイティブオーダーでリストを得る処理は、私のPCだと10万ファイルで0.1秒、ソートありだと1秒かかる
これがコードが洗練されたソフトウェアの場合の時間で、phpみたいな非コンパイル言語だと同じように処理を書いても10倍ぐらいかかる
さらに件のphpだとgetimagesizeが重い

>家の鯖だと120秒以内に終わらないと処理中断されてしまう…

自宅サーバーならタイムアウト時間を延ばしてしまう方法もあります

>https://atariya.server-on.net/neoranga/StableDiffusion/outputs/

アクセス出来ませぬ
SSL証明書がlocalhost宛てなのは良いとしても応答タイムアウトしまする
と思ったけどアクセス出来るようになった
lazyload欲しいな・・・


途中書きだけどとりあえず送信

 No.432

>https://atariya.server-on.net/neoranga/StableDiffusion/outputs/
これがwindowsのファイル一覧のそのまま垂れ流しなので
今は古い方から?順に垂れ流しな訳だけれども
新しい方から古い方へならそんなに遡ってみる需要が少なくなるから
どうにか出来ないかなーと思っていたのでした

 No.433

そうだねが欲しくなった…
似たような機能はないのだろうか…
増えるだけのカウンター
vichan

 No.434

処理速度に影響を与えているのは getimagesize が一番で
ソートもする必要も起きると
getimagesize > sort > ファイル列挙
という順番で影響が大きい

一番ネックになっている getimagesize による判定結果をキャッシュするか、あるいは拡張子を信用してしまえばいいのでは?
外部からの投稿を受け付けたりしないのであればこれでも脆弱性にはならない

(小手先の工夫だけでなんとかする)もうひとつの方法としては
20万ファイルぐらいまではソート負荷は些細であるとして
(あるいは、Windowsのファイルシステムに依存して良いのであれば、単純に列挙してから逆順にすればいい。この方法はソートよりも高速だから)
何番目から何番目までという要求を受け付けてその範囲だけを返答するようにする
当然に getimagesize はその要求範囲にだけ適用する
上限を1万とするか1000とするかは後で決めるとして、この上限値の設定で要求から返答までの時間を制御出来る

>>433
vichan用reactionボタンの実装例は知らない
DBのtableは独自のものを用意して
IPアドレスを溜め込んでカウントして
ページ構築に介入するからテンプレートにも介入して
それ用のJS書いてー
という感じ

JSでそうだね数を反映するなら粗結合な実装も出来なくはない

 No.435

自分以外の人から
投稿が反映されないという話が出た
やっぱりおま環ではなくキャッシュが自動的にクリアされないっぽい?
apacheのキャッシュコントロールって.htaccessとかで一括で出来ましたっけ?

 No.436

>>435
>.htaccess
<Files ~ "\.(css|js|html|htm|php|cgi)$">
FileEtag None
RequestHeader unset If-Modified-Since
Header set Cache-Control no-cache
</Files>
これで行けるんかな…

 No.437

>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/b/res/17.json
HTTP/2 200 OK
server: nginx
date: Mon, 13 Nov 2023 14:15:33 GMT
content-type: application/json
last-modified: Mon, 13 Nov 2023 14:07:35 GMT
etag: "5bad3-60a09311b35d3-gzip"
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
X-Firefox-Spdy: h2

>>435
>>436
サーバー応答が正しいなら Apache じゃなくて Nginx
(ブラウザによる更新ボタンではなく)Javascript による Update は上のURLみたいな json を読んでいるのでそれも対象にしないといけないです

今も .css には Expires ヘッダが設定されててこれがクライアントにキャッシュ利用を強く推奨してる
(cache-control: no-store の場合はどっちが優先されるのだったか)

json の方は last-modified と etag があって cache-control が無いから、ブラウザは heuristic にキャッシュ期間を決めます
たぶんそれのせい

 No.438

>>437

ホスト名
www3006.sakura.ne.jp
IPアドレス
IPv4: 49.212.207.16
IPv6: 2403:3a00:201:1e:49:212:207:16
OSバージョン
FreeBSD 13.0-RELEASE-p12 amd64
CPU
Intel Xeon Processor (Cascadelake)
メモリ容量
48GB
Webサーバー
Apache/2.4.54

契約情報だとApacheなのに…

 No.439

<Files ~ "\.(css|js|html|htm|php|cgi|json)$">
FileEtag None
RequestHeader unset If-Modified-Since
Header set Cache-Control no-cache
</Files>

これでどうだろうか…
no-storeだと保存もできなくなるのでno-cacheにしていたが…

 No.440

>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/b/res/17.json
HTTP/2 200 OK
server: nginx
date: Mon, 13 Nov 2023 15:12:22 GMT
content-type: application/json
last-modified: Mon, 13 Nov 2023 15:00:33 GMT
accept-ranges: bytes
vary: Accept-Encoding
content-encoding: gzip
cache-control: no-cache
X-Firefox-Spdy: h2

no-chache 返ってくる
しかし etag が消えた

>>439
別に no-cache で良いんじゃないでしょうか
no-cache なら クライアント側が持っている last modified time をサーバー側が検証してから「新しいコンテンツ」を返すか「キャッシュ使え」を返すかを選ばせる動作だから

>>438
.htaccess が効くのにnginxが応答してるってことは nginx の後ろに apache がいるっぽい
さくらのプランにもそういうこと書いてありました
ユーザー(契約者)には apache の設定を触らせて、そのさくら側の配信制御はnginxでやってるという構造かも

 No.441

>>440
>しかし etag が消えた
無いと全チェックになるのか?何が悪いんだろうか…

 No.442

>>441
last-modified があるのでキャッシュは効きます
なぜ消えたのかなと

>FileEtag None

これか

>RequestHeader unset If-Modified-Since

じゃあこれだと要求がある度にコンテンツ全体を毎回送信になるな・・・

追加設定は
>Header set Cache-Control no-cache
これだけでいいんじゃないでしょうか

 No.443

>>442
<Files ~ "\.(css|js|html|htm|php|cgi|json)$">
Header set Cache-Control no-cache
</Files>
これだけで良かったのか…

 No.444

>>443
今見たら応答ヘッダ良さげ
キャッシュは問題も起こすけれど応答速度を上げる良い機能なので残したいのでした

問題を解決するためにまずは最大限の設定をするというのなら
>>439
これにさらに no-store でも良いと思います

 No.445

File: 1701415652802-0.png ( 1.45 MB , 1240x1338 , 2023-12-01.png )

File: 1701415652802-1.png ( 1.74 MB , 1244x1312 , 2023-12-01 (1).png )

これくらい纏めて
ガッと投稿して+nとかで省略するような
UIには出来ないだろうか…無茶か?!

 No.446

あれ
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/*/
の最新投稿順でこのスレが上がらなくなってる…
これage100上限とかに設定されてる箇所があるとかなのかな

 No.447

てすてす

 No.448


 No.450

>>445
https://jsbin.com/gukezenulo/6/edit?html,css,output
雑だけどCSSで作るなら原理はこんな感じ
兄チェックボックスを見て弟divが表示されたり消えたりする

/templates/post/fileinfo.html
テンプレートにチェックボックスを配置してN数をCSS側で指定したらいけるかしら

途中書き

 No.451

+99とかもいけるんかな…

 No.452

>>451
省略数を表示する話
99個の添付ファイルを許可する話
どちらですか

後者はそもそもvichanがそういうの向けシステムじゃないから辞めておいた方がいいんでないか
サムネイル生成処理している間にphpがタイムアウトしてしまいそう

 No.453

>>452
>vichanがそういうの向けシステムじゃない
99添付やっぱりダメか…
jsで隠す方法だと実際には読み込まれているのもあるのでダメそうと思っていたけど
そもそもそれ以前に投稿時にタイムアウトして無理というのもあったのね…残念
今ここの許可は8だった気がするけど8くらいなら全部並べた方がよさそうな気もする!
(というか許容範囲が4の2段と思ってそうしていた)

 No.454

>>453
サムネイル生成処理を非同期にするという方法あります(データベースにはgeneratingという情報を書き込んでおいて、通信応答とは別のプロセスでgeneratingを探してサムネイルを生成する)
コードの書き換えが必要
vichanの複数添付ファイル周りはそもそも実装コードが違法建築っぽいので何か下手踏みそうではあります

>jsで隠す方法だと実際には読み込まれているのもあるのでダメそうと思っていたけど

圧縮率によるのと、lazyloadでも設定しておけばそこは問題無いと思います
(js使わなくても強いlazyloadは使える)

 No.455

大量に画像投げる用途には微妙に向かないか
コツコツ分けて投稿するしかないのだろうけど
それはそれで悩ましい(連投ポストだらけになるので)
まあ過去の掲示板の投稿を移設する間の一時的なものとして諦める手もあるか
実際それが終わったら自前のaiとか上げるだけの過疎画像掲示板が残るだけという気もするので
ただ大量投稿可能で+n省略開けるタイプだとaiの適当な奴投げとくには向いている気はする…
連投ポストで埋まる代表格だしねai

 No.456

大量の画像を投げてそれを良さげに見るならdanbooruかな…
しかしfreebsdで動かせるのかどうか知らない

画像を貼る場所と会話をする場所を別にしてしまうのが操作性良さそうに思うけれど
システムを組まなきゃいけないということに変わりがない

まーまずはvichanのサムネイル生成動作を抑制出来るかどうかを見るか
(投稿を受けたらサムネイル未生成状態の投稿を生成してクライアントに返答して、サーバー側はサムネイル生成用の別プロセスを立ち上げて順次処理。クライアント側は更新ボタンを押すかJSで新規サムネイルがあるかどうかを問い合わせる)

乱暴にとりあえず制限を100にしてしまうという方法もアリです
サーバーがどれぐらい耐えられるかが今はまず分からないし
サムネイルがpng形式で容量が大きいからjpgかwebpかavifにしたいところ
でもwebpとavifは圧縮時間がかかるからjpg一択

開閉機能はそれから

 No.457

https://libfans.com/
ivFfRJH4
SNSとしての使い勝手はアレだけれども
ポスト時に大量に絵を投げても平気なのが
使いやすくて同じようにvichanに投げれたらな
と思ったりしたのでした
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/b/src/1701415652802-1.png

 No.458

>>457
>https://libfans.com/
1000x1000に収まるように縮小したサムネイルと原寸サイズの2構成

+Nを押すと画像カルーセル(◀画像▶)が出てきて厳密に1枚ずつ表示される
横ボタンを押すまでは次の画像は読み込まれなくて読み込みに引っかかりがある(既に読み込まれた画像に移動する時もひっかかりがある)
読み込まれるのは1000x1000以内の縮小版
左下に原寸リンク
カタログのような一覧性はない(使いにくくない?)

こちらが想定していたのは
>>450
>https://jsbin.com/gukezenulo/6/edit?html,css,output
こういうクリックでサムネイル表示が開閉するやつ

カルーセルUIを再現するならN枚目以降のサムネイル生成をしないことにして、投稿に原寸リンク情報がある状態にしてなおかつN以降は非表示にして、JSでソース画像一覧を拾ってカルーセル表示すればいいのではないか

 No.459

>LiBfans' liability shall be limited to one hundred (100) yen.
おもしれ・・・

 No.460

File: 1701588959672.mp4 ( 157.95 KB , 776x672 , 1.mp4 )

>こういうクリックでサムネイル表示が開閉するやつ

 No.461

>>458
>カタログのような一覧性はない(使いにくくない?)
使いにくい!
なので大量投稿と省略UI(+nで隠す)だけ真似したかった…
ただまあ
見た目の話をすると割とlibfansの
大大大小
大大大小
大大大+n
の格納時の4枚並びは嫌いじゃないので
+n押したら普通にズラッと一覧化するのが欲しかったりはしました
その辺はUIの設計の方になるので
欲しい機能としては大量投稿と
>>460
>1701588959672.mp4
開いたらこんな風に一度に見える方が大事…出来たらありがたい…

 No.462

>>459
hundred (100) yen.
libfansで課金コンテンツ配布していてlibfanへの手数料が発生していた場合はその限りではないらしいし…
それはそれとして通るんだろうかこの主張

 No.463

>>461
>大大大小
>大大大小
>大大大+n
>の格納時の並びは嫌いじゃないので
グリッドデザインと呼ばれるもの
https://developer.mozilla.org/ja/docs/Web/CSS/CSS_grid_layout/Basic_concepts_of_grid_layout#positioning_items_against_lines
CSSでレイアウトして、HTML上ではベタに要素を並べるだけ

https://github.com/vichan-devel/vichan/blob/master/templates/post/fileinfo.html
画像の並びに関するテンプレートはこのファイルで、ここにチェックボックス(display:noneで良い)とそれをトグルするためのlabel(上の例で言うと白い縦線)を配置する予定
これとCSSを配置すれば上の動画と同じものは作れます(まだ渡せるほどテストしてないので後で)
サムネ展開ボタンを画像にしたいとなるともう一手間必要です(全部の画像をグリッド配置で結合した1枚画像がベストだけどそれは後で)
それまでのボタンを格好良くしたいとかはCSSの仕事

vichanは添付画像情報を表示する部分に display:float を使っていて、グリッドデザインを使おうと思うとこれをやめる必要あります
…たぶんテンプレートは変更せずにCSSだけでイケるはず

だからこの範囲はHTMLとCSSで済む話です

大量にファイルを添付した時にPHPがタイムアウトを起こすとなると、サムネイル生成コードをいじる必要が出てきます
あるいはタイムアウトしない程度に添付ファイル数上限を減らすか

>>462
オランダ法に則るそうです(表現規制が非常に緩いことで有名な国)
GDPR警告出してないし本当にオランダに会社を置いているかはあやしいところ

 No.464

>>463
>大量にファイルを添付した時にPHPがタイムアウトを起こす
先にこれを実験するべき?+99前に100投稿で
実際に100投げてみるか…?今のUIのままだと
投げれても表示がやばい気はするけど…
>オランダ法
hebechan!

 No.465

>>464
>>オランダ法
>hebechan!
左様

>実際に100投げてみるか…?今のUIのままだと

/b/の設定を変えて投げて消して設定を戻せば良いのでは
ここは実質開発用だし

 No.466

>>465
$config['max_images'] = 99;

変えてみた
/b/だけって無理みたい?方法あるのかな

 No.467

File: 1701706853740-0.png ( 2 MB , 1280x1280 , 1694957982505-3409471803-SakuraGroovy_imafuu-M….png )

File: 1701706853740-1.png ( 1.74 MB , 960x1280 , 1694957983310-2958642149-SakuraGroovy_imafuu-M….png )

File: 1701706853740-2.png ( 1.69 MB , 960x1280 , 1694957983309-2958642148-SakuraGroovy_imafuu-M….png )

File: 1701706853740-3.png ( 1.72 MB , 960x1280 , 1694957983306-2958642145-SakuraGroovy_imafuu-M….png )

File: 1701706853740-4.png ( 1.75 MB , 960x1280 , 1694957983303-2958642142-SakuraGroovy_imafuu-M….png )

File: 1701706853740-5.png ( 1.74 MB , 960x1280 , 1694957983301-2958642140-SakuraGroovy_imafuu-M….png )

File: 1701706853740-6.png ( 1.59 MB , 960x1280 , 1694957983300-2958642139-SakuraGroovy_imafuu-M….png )

File: 1701706853740-7.png ( 1.69 MB , 960x1280 , 1694957983290-2958642129-SakuraGroovy_imafuu-M….png )

File: 1701706853740-8.png ( 1.81 MB , 960x1280 , 1694957983286-2958642125-SakuraGroovy_imafuu-M….png )

File: 1701706853740-9.png ( 1.74 MB , 960x1280 , 1694957983279-2958642118-SakuraGroovy_imafuu-M….png )

File: 1701706853740-10.png ( 1.7 MB , 960x1280 , 1694957983277-2958642116-SakuraGroovy_imafuu-M….png )

File: 1701706853740-11.png ( 1.73 MB , 960x1280 , 1694957983275-2958642115-SakuraGroovy_imafuu-M….png )

File: 1701706853740-12.png ( 1.73 MB , 960x1280 , 1694957983274-1990907916-SakuraGroovy_imafuu-M….png )

File: 1701706853740-13.png ( 2.49 MB , 1280x1536 , 1694957983217-1990907929-SakuraGroovy_imafuu-M….png )

File: 1701706853740-14.png ( 2.47 MB , 1280x1536 , 1694957983215-1990907927-SakuraGroovy_imafuu-M….png )

File: 1701706853740-15.png ( 2.57 MB , 1280x1536 , 1694957983206-1990907918-SakuraGroovy_imafuu-M….png )

File: 1701706853740-16.png ( 2.49 MB , 1280x1536 , 1694957983204-1990907916-SakuraGroovy_imafuu-M….png )

File: 1701706853740-17.png ( 2.61 MB , 1280x1536 , 1694957983184-3713637972-SakuraGroovy_imafuu-M….png )

File: 1701706853740-18.png ( 2.63 MB , 1280x1536 , 1694957983178-3713637966-SakuraGroovy_imafuu-M….png )

File: 1701706853740-19.png ( 2.35 MB , 1280x1536 , 1694957983177-3713637965-SakuraGroovy_imafuu-M….png )


 No.468

あれー
99個投げたのに20になった
どこか別の設定場所で上限がある…?

$config['max_images'] = 99;
//$config['additional_javascript'][] = 'js/jquery.min.js';
$config['additional_javascript'][] = 'js/multi-image.js';


//* file-selector.js - Add support for drag and drop file selection, and paste from clipboard on supported browsers.
//$config['additional_javascript'][] = 'js/jquery.min.js';
//$config['additional_javascript'][] = 'js/ajax.js';
$config['additional_javascript'][] = 'js/file-selector.js';

file-selector.js
が怪しい気がする…D&Dの時点でなんか20個くらいしか認識してなかったような…

 No.469

>>468
こっちでも再現した
そもそも送信フォームの時点で20ファイルまでしか入らない
max_images を見てるはずなんだけどまだ不詳

 No.470

送信ボディに20ファイル以上入ってても20に切り詰められる
ということはサーバーサイド

 No.471

PHP設定値の max_file_uploads だった
よし離脱

 No.474

>>472
デフォ値が20なのでした

>>473

recent_media/theme.php の114行目の array_reverse に null が渡されているというエラー
そもそもここには null が来ないはずなので実際の処理異常はもっと上流なはず
後で null チェック追加します

あ。データベースのpostテーブルのfilesカラムの文字列サイズ上限に引っかかってるかも

 No.475

>>474
あれ
別板に1枚だけポストと思ったら
The server took too long to submit your post. Your post was probably still submitted. If it wasn't, we might be experiencing issues right now -- please try your post again later. Error information:
{"readyState":4,"responseText":"{\"redirect\":\"\\/hinabita\\/cgi-bin\\/vichan\\/neoranga\\/index.html\",\"noko\":false,\"id\":\"74\"}{\"error\":\"Caught fatal error: Uncaught TypeError: array_reverse(): Argument #1 ($array) must be of type array, null given in \\/home\\/yu-hi\\/www\\/hinabita_mt\\/cgi-bin\\/vichan\\/templates\\/themes\\/recent_media\\/theme.php:114\\nStack trace:\\n#0 \\/home\\/yu-hi\\/www\\/hinabita_mt\\/cgi-bin\\/vichan\\/templates\\/themes\\/recent_media\\/theme.php(114): array_reverse()\\n#1 \\/home\\/yu-hi\\/www\\/hinabita_mt\\/cgi-bin\\/vichan\\/templates\\/themes\\/recent_media\\/theme.php(88): RecentMedia->pick_media()\\n#2 \\/home\\/yu-hi\\/www\\/hinabita_mt\\/cgi-bin\\/vichan\\/templates\\/themes\\/recent_media\\/theme.php(53): RecentMedia->generate_html()\\n#3 \\/home\\/yu-hi\\/www\\/hinabita_mt\\/cgi-bin\\/vichan\\/templates\\/themes\\/recent_media\\/theme.php(20): RecentMedia->build_main()\\n#4 \\/home\\/yu-hi\\/www\\/hinabita_mt\\/cgi-bin\\/vichan\\/inc\\/functions.php(480): RecentMedia::build()\\n#5 \\/home\\/yu-hi\\/www\\/hinabita_mt\\/cgi-bin\\/vichan\\/inc\\/functions.php(440): rebuildTheme()\\n#6 \\/home\\/yu-hi\\/www\\/hinabita_mt\\/cgi-bin\\/vichan\\/post.php(1275): rebuildThemes()\\n#7 {main}\\n thrown in <strong>\\/home\\/yu-hi\\/www\\/hinabita_mt\\/cgi-bin\\/vichan\\/templates\\/themes\\/recent_media\\/theme.php<\\/strong> on line 114\"}","status":500,"statusText":"error"}
と出た…ポスト自体は出来てるっぽい?

 No.476

recent-mediaアプデ
https://github.com/tesheke/vichan-theme-recent-media/tree/master

if (is_null($files)) {
continue;
};

 No.477

File: 1701771661179.png ( 123.41 KB , 204x375 , fu2809826.png )

>>476
エラーテスト

 No.478

>>476
>>477
エラー出なくなった

 No.479

>>478
はい
>>473
>100個投げたら
多分この時のデータラインが中に残ってて投稿がある度に recent_media がエラーを吐いていたのだと思う
後で問題になりそうだし不正な状態になっているラインを探さねば
/b/ のナンバーは連続してますが他の板だったりしますか

 No.480

>>479
100ファイル投げたのはここの
>>472
だったかと思う
エラー出てテキストだけ貼られたけど
内部的には見えない画像ファイルが?
imagesにも出てこないから存在はしないのか
データベース上だけに中途半端に残ったのかな

 No.481

>>480
files カラムは json 形式の配列か空文字列
recent_media は files カラムに type:image か type:video という文字列が含まれている行を検索して処理の対象にするのだけれど、なぜだかパース結果として null が来ていてそれが array_reverse に渡ってエラーしていた
files が空の場合も弾いているから、jsonとしてパース出来ない値が格納されていると予想しています(あるいは null という表現そのもの)

b/src か b/thumb ディレクトリ下に 1701751503 から始まる名前のファイルがたくさんありませんか
その場合は No.472 を消せば解決

あるいは

mysql -u "設定したユーザー名" -p
設定したパスワードを入力
use vichanDB名;
select id,length(files) from posts_b where id=472;

としてみて、length(files) のところに NULL以外が来たら 472 が犯人です
(添付ファイルが無い投稿はNULLになるはず)

 No.482

>>481
>b/src か b/thumb ディレクトリ下に 1701751503 から始まる名前のファイルがたくさんありませんか
両方にありました!
しかし投稿を消しても
>b/src か b/thumb ディレクトリ下に 1701751503 から始まる名前のファイルがたくさん
は消えないのですねえ…
1701751485900-0.png~1701751485900-61.png
1701751485901-62.png~1701751485901-98.png
番号が違う!別の投稿の下だったかも!
投稿が重くて処理中61~62に時間番号が変わった…?

 No.483

そういえばこっちのローカル環境では100ファイル貼れました
(ということはmysqlの仕様の問題ではなさそう)

 No.484

テステス

 No.485

>>482
>番号が違う!別の投稿の下だったかも!
1701751503xxx-y.jpg 形式
xxxが3桁, yが1桁から2桁

length(files) が一番大きいラインが原因だから mysql コマンドを直接操作するのが早いかと

(導入まであと何回かはテストしなきゃいけないから不正なラインを検出するためのphpコードを送りつけた方がいいか)

 No.486

>>485
> 不正なラインを検出するためのphp
こっちのが繰り返し使うのは楽そう?

 No.487

File: 1701825204493.txt ( 1.58 KB , detect_invalid_files_json.php.txt )

>>486
>こっちのが繰り返し使うのは楽そう?
コマンドラインの mysql でやればいいじゃんと私が思いそれが精神的負荷になるはずだったのだけれど、 json の検証は php じゃないと出来ないので負荷は消えました

このファイルを
detect_invalid_files_json.php
という名前でvichanルートディレクトリに配置して

そうしたら
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/detect_invalid_files_json.php
にアクセスすると、最新100行分のfilesカラムのチェックが動きます

正常行は

[valid] board/id: b/157: strlen(files)=50715
[valid] board/id: b/146: strlen(files)=4581
[valid] board/id: b/143: strlen(files)=2291
[valid] board/id: b/142: strlen(files)=449

こうなります
異常なjsonがあった場合はそれを文字列として出力します
(この例の 157 は100ファイル貼った時の文字列サイズ)

 No.488


 No.490

>>488
それでok
なぜだかここに100ファイル貼るのも成功しました

 No.491

>>490
もしかして重すぎた…?
軽めならいけるのかな

 No.493

>>492
イケてねええええ99枚の画像投げただけの投稿が
キタ━━━━(゚∀゚)━━━━!!
になってしまった
エラーも出なかったよ!
もしかしてサムネ生成が重いとアウトなのかな
(画像が結構大きいAI絵99枚)

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/detect_invalid_files_json.php
[invalid] board/id: b/492: strlen(files)=65535 table(posts_b)/column(files)

65535…?あやしい…

 No.494

phpのエラーログって見れないんだっけ
そこに何か書いてあると思うのだけど
>>493
無事にjsonが中途半端なところで切れている
なんでこんなことになるのか全然分からない

もしかしてファイル名が長いからデータが長くなって65535制限に引っかかっているんだろうか
そうだよな
jsonの構築は処理の流れの中じゃ後の工程なんだからサムネ生成までは成功してるはずなんだ

ということはmysqlの仕様を見なければ
と書いて離脱

 No.495

>https://sakue.com/archives/757
エラーログ見れないと思っていたけど
保存する設定すれば良いらしい…?
aiの保存ファイル名滅茶長いから100もあると65535超えるんだろうな…
>"filename":"1694957983441-1118069339-SakuraGroovy_imafuu-Mist75Adel25-nord LL MeiKiz-025-mist75adel25-hasHv13-asynv3-0-0-half.ad.nord038-8-3090.png",

 No.496

File: 1701931826952.txt ( 981 B , vichan_db_change_files_column_type.php.txt )

filesカラムをtext形式からmediumtext形式に型変換するスクリプト
vichanのルートディレクトリに配置してからログイン状態でアクセスすると実行されます

新しく板を作った場合はその時にまた実行する必要があります

乱暴ではあるけれどこっちの簡単な動作チェック上は問題起きてない
全リビルドも問題なく通った

 No.497

>>496
これを通した後なら今後は長いファイル名多量に投げても平気になる…?

ALTER TABLE `posts_b` MODIFY `files` MEDIUMTEXT ;;
ALTER TABLE `posts_navy` MODIFY `files` MEDIUMTEXT ;;
ALTER TABLE `posts_neoranga` MODIFY `files` MEDIUMTEXT ;;

テストするか

 No.498

File: 1701934667733-0.png ( 2.32 MB , 1280x1536 , 1694957983402-30649762-SakuraGroovy_imafuu-Mis….png )

File: 1701934667733-1.png ( 2.25 MB , 1280x1536 , 1694957983401-30649761-SakuraGroovy_imafuu-Mis….png )

File: 1701934667733-2.png ( 2.42 MB , 1280x1536 , 1694957983398-30649758-SakuraGroovy_imafuu-Mis….png )

File: 1701934667733-3.png ( 1.39 MB , 960x1280 , 1694957983361-860662041-SakuraGroovy_imafuu-Mi….png )

File: 1701934667733-4.png ( 1.74 MB , 960x1280 , 1694957983310-2958642149-SakuraGroovy_imafuu-M….png )

File: 1701934667733-5.png ( 1.69 MB , 960x1280 , 1694957983309-2958642148-SakuraGroovy_imafuu-M….png )

File: 1701934667733-6.png ( 1.72 MB , 960x1280 , 1694957983306-2958642145-SakuraGroovy_imafuu-M….png )

File: 1701934667733-7.png ( 1.75 MB , 960x1280 , 1694957983303-2958642142-SakuraGroovy_imafuu-M….png )

File: 1701934667733-8.png ( 1.74 MB , 960x1280 , 1694957983301-2958642140-SakuraGroovy_imafuu-M….png )

File: 1701934667733-9.png ( 1.59 MB , 960x1280 , 1694957983300-2958642139-SakuraGroovy_imafuu-M….png )

File: 1701934667733-10.png ( 1.69 MB , 960x1280 , 1694957983290-2958642129-SakuraGroovy_imafuu-M….png )

File: 1701934667733-11.png ( 1.81 MB , 960x1280 , 1694957983286-2958642125-SakuraGroovy_imafuu-M….png )

File: 1701934667733-12.png ( 1.74 MB , 960x1280 , 1694957983279-2958642118-SakuraGroovy_imafuu-M….png )

File: 1701934667733-13.png ( 1.7 MB , 960x1280 , 1694957983277-2958642116-SakuraGroovy_imafuu-M….png )

File: 1701934667733-14.png ( 1.73 MB , 960x1280 , 1694957983275-2958642115-SakuraGroovy_imafuu-M….png )

File: 1701934667733-15.png ( 1.73 MB , 960x1280 , 1694957983274-1990907916-SakuraGroovy_imafuu-M….png )

File: 1701934667733-16.png ( 2.49 MB , 1280x1536 , 1694957983217-1990907929-SakuraGroovy_imafuu-M….png )

File: 1701934667733-17.png ( 2.47 MB , 1280x1536 , 1694957983215-1990907927-SakuraGroovy_imafuu-M….png )

File: 1701934667733-18.png ( 2.57 MB , 1280x1536 , 1694957983206-1990907918-SakuraGroovy_imafuu-M….png )

File: 1701934667733-19.png ( 2.49 MB , 1280x1536 , 1694957983204-1990907916-SakuraGroovy_imafuu-M….png )

File: 1701934667733-20.png ( 2.61 MB , 1280x1536 , 1694957983184-3713637972-SakuraGroovy_imafuu-M….png )

File: 1701934667733-21.png ( 2.63 MB , 1280x1536 , 1694957983178-3713637966-SakuraGroovy_imafuu-M….png )

File: 1701934667733-22.png ( 2.35 MB , 1280x1536 , 1694957983177-3713637965-SakuraGroovy_imafuu-M….png )

File: 1701934667733-23.png ( 2.6 MB , 1280x1536 , 1694957983175-3713637963-SakuraGroovy_imafuu-M….png )

File: 1701934667733-24.png ( 1004.77 KB , 832x1216 , fu2867155.png )

File: 1701934667733-25.png ( 2.72 MB , 1280x1536 , 1694957983171-3713637959-SakuraGroovy_imafuu-M….png )

File: 1701934667733-26.png ( 2.58 MB , 1280x1536 , 1694957983168-3713637956-SakuraGroovy_imafuu-M….png )

File: 1701934667733-27.png ( 1.79 MB , 960x1280 , 1694957983162-2684248044-SakuraGroovy_imafuu-M….png )

File: 1701934667733-28.png ( 1.73 MB , 960x1280 , 1694957983157-2684248039-SakuraGroovy_imafuu-M….png )

File: 1701934667733-29.png ( 1.73 MB , 960x1280 , 1694957983140-2684248022-SakuraGroovy_imafuu-M….png )

File: 1701934667733-30.png ( 1.73 MB , 960x1280 , 1694957983133-2684248015-SakuraGroovy_imafuu-M….png )

File: 1701934667733-31.png ( 1.77 MB , 960x1280 , 1694957983131-2684248048-SakuraGroovy_imafuu-M….png )

File: 1701934667733-32.png ( 1.83 MB , 960x1280 , 1694957983127-2684248044-SakuraGroovy_imafuu-M….png )

File: 1701934667733-33.png ( 1.75 MB , 960x1280 , 1694957983119-2684248036-SakuraGroovy_imafuu-M….png )

File: 1701934667733-34.png ( 1.65 MB , 960x1280 , 1694957983111-2684248028-SakuraGroovy_imafuu-M….png )

File: 1701934667733-35.png ( 1.76 MB , 960x1280 , 1694957983110-2684248027-SakuraGroovy_imafuu-M….png )

File: 1701934667733-36.png ( 1.67 MB , 960x1280 , 1694957983103-2684248020-SakuraGroovy_imafuu-M….png )

File: 1701934667733-37.png ( 1.5 MB , 960x1280 , 1694957983097-2684248049-SakuraGroovy_imafuu-M….png )

File: 1701934667733-38.png ( 1.63 MB , 960x1280 , 1694957983090-2684248042-SakuraGroovy_imafuu-M….png )

File: 1701934667733-39.png ( 1.52 MB , 960x1280 , 1694957983089-2684248041-SakuraGroovy_imafuu-M….png )

File: 1701934667733-40.png ( 1.44 MB , 960x1280 , 1694957983088-2684248040-SakuraGroovy_imafuu-M….png )

File: 1701934667733-41.png ( 1.39 MB , 960x1280 , 1694957983084-2684248036-SakuraGroovy_imafuu-M….png )

File: 1701934667733-42.png ( 1.55 MB , 960x1280 , 1694957983083-2684248035-SakuraGroovy_imafuu-M….png )

File: 1701934667733-43.png ( 1.63 MB , 960x1280 , 1694957983070-2684248022-SakuraGroovy_imafuu-M….png )

File: 1701934667733-44.png ( 1.56 MB , 960x1280 , 1694957983066-2684248018-SakuraGroovy_imafuu-M….png )

File: 1701934667733-45.png ( 1.45 MB , 960x1280 , 1694957983062-2684248049-SakuraGroovy_imafuu-M….png )

File: 1701934667733-46.png ( 1.57 MB , 960x1280 , 1694957983061-2684248048-SakuraGroovy_imafuu-M….png )

File: 1701934667733-47.png ( 1.64 MB , 960x1280 , 1694957983060-2684248047-SakuraGroovy_imafuu-M….png )

File: 1701934667733-48.png ( 1.59 MB , 960x1280 , 1694957983056-2684248043-SakuraGroovy_imafuu-M….png )

File: 1701934667733-49.png ( 1.44 MB , 960x1280 , 1694957983048-2684248035-SakuraGroovy_imafuu-M….png )

File: 1701934667733-50.png ( 1.59 MB , 960x1280 , 1694957983043-2684248030-SakuraGroovy_imafuu-M….png )

File: 1701934667733-51.png ( 1.54 MB , 960x1280 , 1694957983042-2684248029-SakuraGroovy_imafuu-M….png )

File: 1701934667733-52.png ( 1.57 MB , 960x1280 , 1694957983036-2684248023-SakuraGroovy_imafuu-M….png )

File: 1701934667733-53.png ( 1.62 MB , 960x1280 , 1694957983034-2684248021-SakuraGroovy_imafuu-M….png )

File: 1701934667733-54.png ( 1.38 MB , 960x1280 , 1694957983033-2684248020-SakuraGroovy_imafuu-M….png )

File: 1701934667733-55.png ( 1.48 MB , 960x1280 , 1694957983029-2684248016-SakuraGroovy_imafuu-M….png )

File: 1701934667733-56.png ( 1.43 MB , 960x1280 , 1694957983028-2684248015-SakuraGroovy_imafuu-M….png )

File: 1701934667733-57.png ( 1.69 MB , 1024x1280 , 1694957983020-1154319172-SakuraGroovy_imafuu-M….png )

File: 1701934667733-58.png ( 1.79 MB , 1024x1280 , 1694957983018-1154319170-SakuraGroovy_imafuu-M….png )

File: 1701934667733-59.png ( 1.72 MB , 1024x1280 , 1694957983011-1154319163-SakuraGroovy_imafuu-M….png )

File: 1701934667733-60.png ( 1.71 MB , 1024x1280 , 1694957983009-1154319161-SakuraGroovy_imafuu-M….png )

File: 1701934667733-61.png ( 1.71 MB , 1024x1280 , 1694957983008-1154319160-SakuraGroovy_imafuu-M….png )

File: 1701934667733-62.png ( 1.73 MB , 1024x1280 , 1694957983006-1154319158-SakuraGroovy_imafuu-M….png )

File: 1701934667733-63.png ( 1.72 MB , 1024x1280 , 1694957983003-1154319155-SakuraGroovy_imafuu-M….png )

File: 1701934667733-64.png ( 1.75 MB , 1024x1280 , 1694957982996-1154319148-SakuraGroovy_imafuu-M….png )

File: 1701934667733-65.png ( 1.69 MB , 1024x1280 , 1694957982994-1154319146-SakuraGroovy_imafuu-M….png )

File: 1701934667733-66.png ( 1.73 MB , 1024x1280 , 1694957982988-1154319175-SakuraGroovy_imafuu-M….png )

File: 1701934667733-67.png ( 1.67 MB , 1024x1280 , 1694957982985-1154319172-SakuraGroovy_imafuu-M….png )

File: 1701934667733-68.png ( 1.78 MB , 1024x1280 , 1694957982983-1154319170-SakuraGroovy_imafuu-M….png )

File: 1701934667733-69.png ( 1.74 MB , 1024x1280 , 1694957982972-1154319159-SakuraGroovy_imafuu-M….png )

File: 1701934667733-70.png ( 1.77 MB , 1024x1280 , 1694957982969-1154319156-SakuraGroovy_imafuu-M….png )

File: 1701934667733-71.png ( 1.65 MB , 1024x1280 , 1694957982968-1154319155-SakuraGroovy_imafuu-M….png )

File: 1701934667733-72.png ( 1.6 MB , 1024x1280 , 1694957982965-1154319152-SakuraGroovy_imafuu-M….png )

File: 1701934667733-73.png ( 1.82 MB , 1024x1280 , 1694957982962-1154319149-SakuraGroovy_imafuu-M….png )

File: 1701934667733-74.png ( 1.39 MB , 832x1216 , libfans_b28f2e7200a040e88b4ed76865b93f9f_P_Ori….png )

File: 1701934667733-75.png ( 1.79 MB , 1024x1280 , 1694957982957-1154319144-SakuraGroovy_imafuu-M….png )

File: 1701934667733-76.png ( 1.7 MB , 1024x1280 , 1694957982952-1154319174-SakuraGroovy_imafuu-M….png )

File: 1701934667733-77.png ( 1.69 MB , 1024x1280 , 1694957982950-1154319172-SakuraGroovy_imafuu-M….png )

File: 1701934667733-78.png ( 1.73 MB , 1024x1280 , 1694957982949-1154319171-SakuraGroovy_imafuu-M….png )

File: 1701934667733-79.png ( 1.69 MB , 1024x1280 , 1694957982939-1154319161-SakuraGroovy_imafuu-M….png )

File: 1701934667733-80.png ( 1.71 MB , 1024x1280 , 1694957982930-1154319152-SakuraGroovy_imafuu-M….png )

File: 1701934667733-81.png ( 1.7 MB , 1024x1280 , 1694957982929-1154319151-SakuraGroovy_imafuu-M….png )

File: 1701934667733-82.png ( 857.98 KB , 864x1280 , 1701345311864.png )

File: 1701934667733-83.png ( 1.3 MB , 1232x1024 , 1701356965174.png )

File: 1701934667733-84.jpg ( 336.75 KB , 1024x1536 , 1701177218951.jpg )

File: 1701934667733-85.jpg ( 301.06 KB , 1176x1760 , 1701173905878.jpg )

File: 1701934667733-86.png ( 2.32 MB , 1600x1280 , 1701309603321796.png )

File: 1701934667733-87.png ( 1.53 MB , 960x1280 , 1694957982566-3736371835-SakuraGroovy_imafuu-M….png )

File: 1701934667733-88.png ( 1.53 MB , 960x1280 , 1694957982564-3736371833-SakuraGroovy_imafuu-M….png )

File: 1701934667733-89.jpeg ( 81.14 KB , 512x1000 , Ruri Hoshino Samples (5).jpeg )

File: 1701934667733-90.png ( 2.35 MB , 1280x1536 , 1694957983441-1118069339-SakuraGroovy_imafuu-M….png )

File: 1701934667733-91.png ( 1.14 MB , 1024x1232 , 1701528058635.png )

File: 1701934667733-92.png ( 2.2 MB , 1280x1536 , 1694957983421-30649781-SakuraGroovy_imafuu-Mis….png )

File: 1701934667733-93.png ( 2.48 MB , 1280x1536 , 1694957983415-30649775-SakuraGroovy_imafuu-Mis….png )

File: 1701934667733-94.png ( 2.31 MB , 1280x1536 , 1694957983414-30649774-SakuraGroovy_imafuu-Mis….png )

File: 1701934667733-95.png ( 2.35 MB , 1280x1536 , 1694957983413-30649773-SakuraGroovy_imafuu-Mis….png )

File: 1701934667734-96.png ( 2.21 MB , 1280x1536 , 1694957983412-30649772-SakuraGroovy_imafuu-Mis….png )

File: 1701934667734-97.png ( 2.19 MB , 1280x1536 , 1694957983411-30649771-SakuraGroovy_imafuu-Mis….png )

File: 1701934667734-98.png ( 2.35 MB , 1280x1536 , 1694957983406-30649766-SakuraGroovy_imafuu-Mis….png )

File: 1701934667734-99.png ( 2.16 MB , 1280x1536 , 1694957983403-30649763-SakuraGroovy_imafuu-Mis….png )


 No.499

>>498
行けた行けた
これ投稿消したら画像のファイルもサムネのファイルも一緒に消えるんです?

 No.500

>>499
あと何となくそんな気はしていたが
やっぱり投稿投げたら処理終わった順に並んで
投げた順にはならないんだね…
libfanでも投げた時に順番変わっちゃうのが面倒だったけど
httpの(というかtcpか)逐次処理の関係上仕方ないとはいえ
なんかで順番維持したい…選択の所には正しく並んでるので
しかしアイディアは思いつかない…可能なの?

 No.501

File: 1701935371725.zip ( 5.62 KB , vichan-omit-thumbs.zip )

省略展開ボタンシステム
zip展開して、その中にある vichan フォルダ下のファイルをvichanルートディクトリに上書き
省略展開ボタンがイケてないのは仕様です

instance-config.php に設定追記して
$config['thumb_ext'] = 'jpg'; // 必須ではない
// 省略を開始する位置(この数のサムネイルは常に表示される)
$config['omit_thumbs_start'] = 3;

それからrebuild

>>497
扱えるテキスト長が2^16から2^24に増えるので

>>499
vichanはそういう仕様です
親なしファイルを消すユーティリティースクリプトも用意されてる

>やっぱり投稿投げたら処理終わった順に並んで

>投げた順にはならないんだね…
うーn
投げた順というのは1投稿内の複数ファイルの並び?
順序情報も一緒に送られてvichanはそれに従っているだけのはずなのだが
ファイル名順にしたいとかなら postHandler でソート

 No.502

>>501
>>順序情報も一緒に送られてvichanはそれに従っているだけ
mjk?!何故か
Select/drop/paste files here
のエリアには投げた時の順番で並んでいるのに
投稿後の順番がバラバラになっていたので
てっきり投げた後処理が始まった順に並ぶのかと…
サムネの生成速度で順番が変わっているのかと思い込んでいました
何が原因で順番変わるんだろうか
一応エリアに順番に並んでいるのを確認したつもりだけど
window側で投げるの失敗してる可能性は否定できない…

>親なしファイルを消すユーティリティースクリプト

これ知りたいですね…
偶にこれで掃除しないとダメか

 No.503

>>502
Quick Replyと上の本物のフォームとでファイルの食い違い状態が起きることがあるからそれかな

>>親なしファイルを消すユーティリティースクリプト

>これ知りたいですね…
vichan/tools/delete-stray-images.php
ただ使ったことがないので正常に期待通り動くのかどうか知らない

filesカラムが異常値になったりしない限りは投稿と一緒にファイルもちゃんと消えるはずです
今回の実験数回分は手動かツールかで消さないと消えない


そういえばlazyloadを設定してない

 No.504

>>503
あと隠れてる投稿数を+のとこに出して欲しいですね…
欲を言えば+nは4つ目の画像に重ねた状態で欲しかった

 No.505

(もう自分で出来る領分だとお思います)
>>504
ある程度はCSSで見た目が変えられます
(この省略展開システムはJSを全く使って無い)

labelとinputタグ
input:checkedかどうかでを兄弟隣接条件で取って表示非表示を決めている

でですね
上でも書きましたがvichanはファイル情報をfloatに包んで配置しているのでレイアウトがちょっと困難です
つまりやる気が必要

https://github.com/vichan-devel/vichan/blob/master/templates/post/fileinfo.html#L5

画像をカウントするのは簡単
表示と配置がちょっとめどい

4枚目を画像にするもの簡単
そのままだと何のボタンか分からなくなるからちょっと白っぽくカバーする必要あり

個人的にはグリッド的に2x2や3x3で残りの画像をボタンにしたいなと思ってます

 No.506

>>505
>(もう自分で出来る領分だとお思います)
マジですか
チャレンジしてみます…分かるんかな…
+nの数字だけでも何とかしたいですね
今だといくつ投稿されてるのか不明すぎる…

 No.507

>>504
展開省略ボタンアプデ
導入は >>501 と同じで上書き
反映には rebuild 必要

展開短縮ボタン内に最大で4つ画像を配置します
短縮された画像が8未満だった場合は第2短縮ボタンを非表示に(8固定. あとで設定可能にするかも)

ボタンサイズを 200px + 2px にしてますがCSSで変更可能

 No.508

あ。ボタン内に表示する画像が1つずれてる。直します

 No.509

File: 1702220277702-0.zip ( 6.24 KB , vichan-omit-thumbs.zip )

File: 1702220277702-1.png ( 285.75 KB , 1004x934 , ClipboardImage.png )

直し

なんとなく短縮された画像が5未満だった場合は第2短縮ボタンを非表示に変更

ところでこちらの環境だと rebuild の時に flush cache 単体とその後に Rebuild index pages,Rebuild thread pages,Rebuild replies をやらないとヘッダーの変更がすり抜ける

 No.510

>>509
ワーオ
いけてるうう
ありがとうございます!!!
めちゃめちゃ完璧
あとなんか失敗した
>>492
がボタンだけ出てるんだね…

 No.511

File: 1702301163716.png ( 2.58 MB , 2448x1836 , b - log mitai_dtp_231211222450_008741.png )

>>510
CSSの勉強しなくては…!

 No.512

File: 1702304242888.png ( 102.34 KB , 1067x535 , ClipboardImage.png )

>>510
( >>492 ) num_files というファイル数情報に多分反応してる
No.492 のファイル名は 1701865836 から始まってるはずです
(ちなみにsrcディレクトリに行って ls 1701865836* とするとそれでファイル一覧が見れます。thumbフォルダでも一緒)

>>511
うぇい
今回やった改造のほとんどはテンプレート周りだったりします( fileinfo.html )
だので html と twig もやりませう

ボタンの中身は最大4つと決め打ってあります
fileinfo.html の値を変えて縮小プレビュー数を増やすと縦行が増えます
横は2列のまま
出来れば1x1, 2x2, 3x3まで自動的に切り替わるCSSが組みたかったけど多分そもそも不可能みたい

>1702301163716.png

うーnやっぱりfloatの配置は気になる
ファイルが1つの時以外は inline-block にしたい

 No.513

>>512
>twig
知らないエンジンだ…こういうのもあるのか
>1702301163716.png
てっきりCSSで変な段組み直す必要があるのかと
PHPがメインのtwigモジュールなんです?

 No.514

>>513
>>twig
>知らないエンジンだ…こういうのもあるのか
recent_media の時に普通にいじってたからてっきりそこは理解しているかと思ってました
vichanが使ってるHTML用のテンプレートエンジンです(そもそも PHP言語自体がHTMLみたいなテキストファイルを作るための言語だけど)

>>1702301163716.png

>てっきりCSSで変な段組み直す必要があるのかと
そこはCSSで合ってます
要素のfloat属性を解除するだけだとレイアウトが崩れるのでちょっと作業必要です

 No.515

>>514
>recent_media の時に普通にいじってた
分からない…雰囲気でhtmlをいじっている…
htmlは分かるので適当に弄っていました…

 No.516

.postの中にもう1段レスの中身だけの区分を作って
そこにinline-blockするのが良い?のだろうか
自分みたいな適当だと4つ画像が並ぶたびに改行挟む実装しようとしてしまうが
可変幅にしてcssでちゃんとやった方が良さそうではあるんだよな…
あとボタンも画像扱いで上に余白(画像なら入るはずのファイル名とかの部分)つけるのは大事そうだ

 No.517

>>516
<div class="files" style="display: inline-block;">
そんな簡単ではなかった

 No.518

http://www.akiyan.com/cc1linebbsv2
ぐおお
気付いてなかったけどこれが新しいperlに対応してなかった
https://atariya.dojin.com/cgi-bin/kobato_osirase/bbs.cgi

[Sun Dec 24 16:07:26.632288 2023] [cgi:error] [pid 10456] [client 2405:6581:4760:1c00:aba:369b:8962:446c:0] AH01215: Can't locate conf.cgi in @INC (@INC contains: /usr/local/perl/5.32/lib/perl5/site_perl/5.32/mach /usr/local/perl/5.32/lib/perl5/site_perl/5.32 /usr/local/perl/5.32/lib/perl5/5.32/mach /usr/local/perl/5.32/lib/perl5/5.32) at bbs.cgi line 38, <DATA> line 855.: /home/yu-hi/www/atariya/cgi-bin/kobato_osirase/bbs.cgi
[Sun Dec 24 16:07:26.632364 2023] [cgi:error] [pid 10456] [client 2405:6581:4760:1c00:aba:369b:8962:446c:0] End of script output before headers: bbs.cgi
[Sun Dec 24 16:07:35.519321 2023] [cgi:error] [pid 10078] [client 2405:6581:4760:1c00:aba:369b:8962:446c:0] AH01215: Can't locate conf.cgi in @INC (@INC contains: /usr/local/perl/5.32/lib/perl5/site_perl/5.32/mach /usr/local/perl/5.32/lib/perl5/site_perl/5.32 /usr/local/perl/5.32/lib/perl5/5.32/mach /usr/local/perl/5.32/lib/perl5/5.32) at bbs.cgi line 38, <DATA> line 855.: /home/yu-hi/www/atariya/cgi-bin/kobato_osirase/bbs.cgi
[Sun Dec 24 16:07:35.519415 2023] [cgi:error] [pid 10078] [client 2405:6581:4760:1c00:aba:369b:8962:446c:0] End of script output before headers: bbs.cgi
[Sun Dec 24 16:09:19.562413 2023] [cgi:error] [pid 10456] [client 52.112.74.60:0] AH01215: Can't locate conf.cgi in @INC (@INC contains: /usr/local/perl/5.32/lib/perl5/site_perl/5.32/mach /usr/local/perl/5.32/lib/perl5/site_perl/5.32 /usr/local/perl/5.32/lib/perl5/5.32/mach /usr/local/perl/5.32/lib/perl5/5.32) at bbs.cgi line 38, <DATA> line 855.: /home/yu-hi/www/atariya/cgi-bin/kobato_osirase/bbs.cgi
[Sun Dec 24 16:09:19.562523 2023] [cgi:error] [pid 10456] [client 52.112.74.60:0] End of script output before headers: bbs.cgi

 No.519

>>518
なんてことはなく
require 'conf.cgi';を'./conf.cgi'にしたら治る奴か…と思ったら
use Jcode;
これもかー?めんどくさい奴だ

[Sun Dec 24 17:59:58.667899 2023] [cgi:error] [pid 34998] [client 2405:6581:4760:1c00:aba:369b:8962:446c:0] AH01215: suexec policy violation: see suexec log for more details: /home/yu-hi/www/atariya/cgi-bin/kobato_osirase/bbs.cgi, referer: https://yu-hi.sakura.ne.jp/
[Sun Dec 24 17:59:58.667937 2023] [cgi:error] [pid 34998] [client 2405:6581:4760:1c00:aba:369b:8962:446c:0] End of script output before headers: bbs.cgi, referer: https://yu-hi.sakura.ne.jp/
[Sun Dec 24 18:00:00.594338 2023] [cgi:error] [pid 35630] [client 2405:6581:4760:1c00:aba:369b:8962:446c:0] AH01215: suexec policy violation: see suexec log for more details: /home/yu-hi/www/atariya/cgi-bin/kobato_osirase/bbs.cgi, referer: https://yu-hi.sakura.ne.jp/
[Sun Dec 24 18:00:00.594373 2023] [cgi:error] [pid 35630] [client 2405:6581:4760:1c00:aba:369b:8962:446c:0] End of script output before headers: bbs.cgi, referer: https://yu-hi.sakura.ne.jp/

 No.520

File: 1703410220167.zip ( 158.56 KB , kobato_osirase - コピー.zip )

Jcode.pm
の新しい奴とかと差し替えられるか探してみている…

 No.521

>>520
AH01215: suexec policy violation: see suexec log for more details:
End of script output before headers:
のエラーって中身が分からないから意味ないよな…
何らかの理由で出力がなかったぞみたいな話だよね…
suexec log見る手段があればまた変わってくるんだろうけれども

 No.522

(最近ずっとよそ事やってました)
>>516
filesクラス関連からfloatを一掃しないといけないのです

>>518 >>519 >>520 >>521
JCode.pl は patipati と同じように今風に書き直して廃止してしまえばいいと思います( >>307 )

続きあとで

 No.523

>>522
https://atariya.dojin.com/cgi-bin/kobato_osirase/bbs.cgi
utf-8で改行をLFにしたら微妙に動くようになった!
use Jcode;をuse Encode;に変えて
Jcode::もEncode::に変えた
いつの間にかCRLFからLFじゃないと動かない仕様になった?

 No.524

自分も取っかかれなかったから…急に再開した
>>522
>filesクラス関連からfloatを一掃しないといけない
filesのあるcss全とっかえ…?
cssって打ち消し指定ってありましたっけ

 No.525

>>523
>utf-8で改行をLFにしたら微妙に動くようになった!
>いつの間にかCRLFからLFじゃないと動かない仕様になった?
新しい perl のコードは utf-8 推奨だから文字コードの可能性高い
patipati は CR LF で書きました

>use Jcode;をuse Encode;に変えて

>Jcode::もEncode::に変えた
すすんでおられる
>微妙に動く
何か壊れてますか

>>524
>filesのあるcss全とっかえ…?
というほどでもないです(たぶん)
>cssって打ち消し指定ってありましたっけ
優先順位システムがあります(その中に !important 指定もある)

 No.526

>>微妙に動く
>何か壊れてますか
大丈夫みたいです
ログはs-jisにする必要がありました
s-jis utf-8 utf-8(BOM) LF CRLF
色々あって分かりづらい

 No.527

File: 1703501790177.txt ( 210 B , de-float.css.txt )

float消すCSS
11行で済んだ
これを配置するか
これを参考にメインスタイルを変更するか(!important消してから)
のどちらか

 No.528

>>527
滅茶滅茶泥臭い実装(各板のglobal_messageに
<link rel="stylesheet" media="screen" href="/hinabita/cgi-bin/vichan/stylesheets/styleadd.css">
を足してstyleadd.cssとして上のファイルを保存)してみたー!どうだろうか

 No.529

>>528
いけてるぽいいうううう!!!
ありがとうございますううううう
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/stylesheets/styleadd.css
何かあったらここに足せばいいのか…
というか泥臭実装じゃなくそういうCSS追加機能実はあるんだろうか
basic themeのとこにあるかと思ったけど見当たらなかった

 No.530

>>use Jcode;をuse Encode;に変えて
>>Jcode::もEncode::に変えた
>すすんでおられる
Jcode.pmによる実装で助かった…
Encode.pmがさくら実装済でJcodeと後方互換ある実装らしく
丸々Encode::置き換えでpmファイル無しで実行可能だった…
ありがとう作っていた人…

 No.531

サイトサイドCSSで !important を使ってるの格好悪いからけしてくだち!
優先順位高いから消しても期待通りに動くはず

>>529
>というか泥臭実装じゃなくそういうCSS追加機能実はあるんだろうか
ないはず

まず正当にやるならomit thumbsの時と同じく vichan/templates/header.html に

<link rel="stylesheet" href="{{ config.uri_stylesheets }}styleadd.css">

みたいに追記
(instance-config.php でjsファイルは配列で与えられるけど、CSSはそんなふうには指定できない。HTMLテンプレートを書き換えて配列を読むようにすればいいだけではあるのだけれど)

それと4画像ごとに改行するのはCSSだけでは難しそうです
fileinfo.html を改造して1画像の後に display:none な br を配置して、CSSで表示非表示を切り替えようか

 No.532

>>531
>4画像ごとに改行
今みたいに崩れなくなったなら必要なさそう…
現状崩れるのはむしろ4入らないくらい
横幅詰めた時なので…むずかしいね

 No.533

そういえばめちゃめちゃ今さらな要望というか願望なのですが
動画のサムネで投稿ファイルが動画なのか画像なのか分からない…
右下に▶とかつけるの可能だったりしますか…
recent_mediaでもvichan本体でもクリックするまでわからない過ぎる…と思ったのですが
1:動画のサムネ生成時に書き込んじゃう方法はある?
2:リンク先が動画だった場合にサムネ画像の右下とかに重ねてテキストで▶を置く?そういう判断(リンク先が動画か否か)はcssなりjavascriptなりで可能なの…?
現状でも充分便利なので充分充分なのですが、気になったりしました…

 No.534

>>533
スレページの方だと
>[一度再生する] [ループする]
これが表示されているかどうかでわかるのでは

インラインプレーヤーを設置しているのはJSで、そのJSは拡張子を見て判断してます
インラインプレイヤーの設置ついでに動画用のHTMLクラスを追加して、それで見た目を変えるCSSを組む、という方法が1つ

fileinfo.htmlテンプレートを変更するというのがもう1つ

JSの方法の方が簡単だと思います

recent_mediaは拡張子で動画かどうか見て、HTMLクラスを追加してCSSを組むという方法がよいかと

 No.535

File: 1704961636567.png ( 640.72 KB , 906x822 , ClipboardImage.png )

>>533
recent_media アプデ
https://github.com/tesheke/vichan-theme-recent-media
post.isvideo 追加
post.thumb を post.thumbimg に変更
post.srcimg 追加

それとデフォのテンプレート利用時だとサムネをクリックした時にその画像・動画に飛ぶようになってます
下のpostを押すとスレ・レスに飛ぶ


そんでvichan本体側は、例によってfloatで難しい

 No.536

>>535
ありがたい…git pull origin!
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media.html
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media_cat.html
あれ…うまく動かない…

>>534
>>[一度再生する] [ループする]
>これが表示されているかどうかでわかるのでは
movのとこで出てなくて気づかなかった…
それはそれとしてぱっと見じゃないなら
File:の所の拡張子をちゃんと確認するという手もありましたね…

 No.537

>>536
サムネ抜けのHTMLが生成されてる
今回のメインの改造部分はテンプレートhtmlだから、そっちでカスタムしたテンプレートも直さないといけないです
とりあえずは post.src って書いてあったところを post.thumbimg に書き直さないとサムネが表示されないです

>post.thumb を post.thumbimg に変更

アナウンスが間違ってるや

重ねて▶を表示するためのCSSもテンプレートhtmlに入れてあるから同梱テンプレートhtmlをベースに改造しなおしたほうが早い

>movのとこで出てなくて気づかなかった…

movはインライン再生出来ない(環境が多い)からね
スレページの方はどうするか
floatの仕様を把握するかfloatをなくしてしまうか
画像の横に文字を配置するっていう目的ならfloatは最適ではあるんだよね

 No.538

>>537
完全にやらなくちゃいけない事(加工した別テンプレートがあった)が頭から抜けていた…申し訳ない…
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media.html
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media_cat.html
…!これで行けている…?!postに飛ぶか否かも選べるようになったのねん

 No.539

File: 1704991674041.png ( 105.03 KB , 561x767 , ClipboardImage.png )

見たらわかると思いますが画像の部分で▶の見た目がいじれます

>>538
>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media.html
こっちの 「>post」 となっている部分
テンプレート側には 「&gt;post」 と書いたほうがいいです

<a href="{{ post.link }}">&gt;post</a>

みたいに。タグクローズとかぶるので

>postに飛ぶか否かも選べるようになったのねん

画像一覧を見ている時は直接画像(or動画)に飛びたいかなって思いました

もうちょっと整った見た目に(画像にマウスオーバーしてる時だけpostリンクが表示されるみたいに)しようかと思ったけど
CSSが複雑になるのでやめました
この機能がいらない時はテンプレート側で削ってください

a ~ a {
opacity: 0%;
}

a:hover ~ a, a:hover {
opacity: 100%;
}

これで出来るけどスマホフレンドリーではないな・・・

 No.540

>>539
&gt;post、コピペミスだった!
あったほうが便利かもと思ったけれども
<iframe loading="lazy"
id="vichan"
title="vichan"
width="244"
height="244"
src="https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media.html"
scrolling="no"
frameborder="0"
>
</iframe>
の小窓をhpに貼って使っている関係上
post部分まで表示されない事がよくあるので
(上から240pxしか見えない)
小窓側は旧運用のpost強制に戻しました
カタログは両方あったほうがいいね…

 No.541

>>540
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/sam_r.htm
そういえばこっちも▶ないんだな…
でもファイル名出てるし見ればいいか…
上の
https://github.com/tesheke/vichan-theme-recent-media
参考に弄ったらそれっぽくなるか
あとで見てみるか…

 No.542

>>541
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/sam_r.htm
こっちはファイル名欄が広いからそっちに[動画]とか出すといいのでは

 No.543

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/sam_r.htm
>>542
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/sam2.2/sam_r.htm
他の運用で長々しい時があるけどファイル名の頭部分なら良いか…?
https://github.com/tesheke/vichan-theme-recent-media
でのpost.isvideoみたいな関数はどこで実装しているのでしょうか…
そこから分かってなかった…

 No.544

(送信失敗したの気づかなかった)
>>543
isvideo値はここ
https://github.com/tesheke/vichan-theme-recent-media/blob/master/theme.php#L130
$postfile->type にはmimeが入ってます
このmimeがどこで算出されてるかは未確認

sam index.php なら拡張子判定するのが軽くていいと思います
$config_ext が 2 である拡張子を列挙して、頭に"."をくっつけて
ファイル名を小文字化して str_ends_with で判定して true だったものが動画

 No.545

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/sam_r.htm
何故か
define('TARGET_FRAME', '_blank'); // <a target=TARGET_FRAME>
にしているのに
target="_self">
になっている…何故だろう…
ほかに設置したのもそうみたい…?
あと
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/samne.php
の起動が新ファイル無いのに結構重い?気がしないでもない…何故だろうか…

 No.546

>>545
なんてことは無かった
instance-config
に分かれていることを忘れてしまっていた…

 No.547

>>543
>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/samne.php
>の起動が新ファイル無いのに結構重い?気がしないでもない…何故だろうか…
数が多いからでは?と思ったが画像総数2774枚か
処理時間計測しないと分からなさそう

 No.548

File: 1705746735737.txt ( 29.46 KB , index.php.txt )

>>545
sam_oo_php アプデ
>処理(ファイル列挙[0.02], サムネ確認・生成[7.33], ファイルソート[0.00], HTML生成[0.00])
みたいな処理時間集計を追加
動画拡張子である場合に枠表示と[動画]の表示を追加(tdタグにvideoクラスが付与されます)

設定値は変わってません

処理時間集計はログと一番最後に生成されたページ(正順と逆順の両方)の一番下に出ます

 No.549

>>548
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/samne.php
置き換えてみた…!動画が分かりやすい!
けれども一番最後に生成されたページってどこだ…あとは
// ロギングを有効にするかどうか
$config_log = true;
// ロギング有効時のログ出力先。空文字列('')ならば標準出力へ。
// ファイルへの出力を放置するとログファイルが膨れ続けるので注意
$config_log_path = 'log_oosamuneiru.txt';
のlog_oosamuneiru.txtってどこに保存されているんだろうか…

 No.550

>>549
>けれども一番最後に生成されたページってどこだ

処理(ファイル列挙[0.04], サムネ確認・生成[7.77], ファイルソート[0.00], HTML生成[0.03])
これかー
$config_ffmpeg_path = 'bash -- /home/yu-hi/bin/ffmpeg_neighbor.sh';
これが悪いんかな…

 No.551

>サムネ確認・生成[7.77]
圧倒的ボトルネック
解決しなければ次の方法へという繰り返しが1ファイルにつき4段階ぐらいあるからたぶんそのせい
もうちょっと詳しい計測を入れるか
あるいはサムネ生成失敗をファイルに記録するようにするか

>>545
ログファイルはphpと同フォルダに出るはずだけれども外部からアクセスする限りじゃ存在してないね
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/log_oosamuneiru.txt

 No.552

>>551
>外部からアクセスする限りじゃ存在してない
権限の問題なんだろうか、パスがルートから書かないとダメとかなんだろうか…?
後でもうちょっとちゃんと試してみます
先ずは空っぽのlog_oosamuneiru.txt置いて書き込み許可からだな…

 No.553

>>552
$config_log_path = '/home/yu-hi/www/hinabita_mt/cgi-bin/navyfield_old/log_oosamuneiru.txt';
にしてもパーミッション666の空ファイル置いても変わらない!何か設定ミスかな…

 No.554

とても億劫そうな要望なので話半分(よりさらに少ない)で聞いて欲しいのですが
スレ毎に投稿ファイルのRecent Imagesを取り出す方法ってありますか?
このスレに上がってるファイル一覧が見たいって飛べるリンクか何かが欲しい…
Recent Images自体の実装方法とは全く別にしないとダメそうなので
(多分掲示板のreplies表示自体の機能にする必要がある)難しいだろうなと思いますが…
板表示を弄る方ではなく特定のスレからアップされたものだけ抽出して並べる的な方法で解決可能?
割とどこの掲示板でも欲しいだろうに実装されてないからにはなんか難しいのだろうとは思いますが

 No.555

>>554
A. 1番簡単な方法はcssかjavascriptで画像が無いレスを非表示にする方法

B. 同じくJSで画像を抽出してスレの一番下とか一番上とかに表示する方法(Quick Replyみたいにフロートウィンドウも可能だけど具体的実装は頭の中にないです)

C. vichan-theme-recent-media と同じように静的に画像一覧HTMLページを作る方法
  recent-mediaはそもそもvichanに投稿があった時にvichanから呼び出されるようになってます
  だから投稿に応じてスレの画像一覧htmlを生成すれば同じ要領で可能
  当然に、スレが消えた時に一緒に画像一覧htmlも消さないといけないのだけど、この方法が私の頭の中にはないです
  (たまに巡回チェックするだけでもいいかも. htmlは小さいから)

 No.556

>>555
>JSで画像を抽出してスレの一番下とか一番上とかに表示する
これが可能なのですか…?
というかスレが長生きする掲示板でそれなりに投稿数がある所だと
必要な気がするのに無いのが不思議な感じです
正直本家にもついてて欲しいですね…
(普段imgつかいなので画像スレで画像を探すことをしたことがなかったので驚きました)

 No.557

File: 1706171293847-0.png ( 818.74 KB , 910x1366 , Screenshot 2024-01-25 at 16-50-31 log mitai.png )

File: 1706171293847-1.txt ( 1.79 KB , threadfilelist.js.txt )

>>556
実装するのが面倒くさいからでは?
技術的な意味ではなく心理的な意味で
500レスぐらいまでならスクロールで流しても探せるし


まずはイメージを掴むための100行未満の雑実装
[Update]による新レスには対応してない(数行のイベントフックを追加するだけです)
ページ内の入れ子スクロール要素は操作感と操作アフォーダンスを作り込まないと認知負荷が高くなっちゃう

 No.558

>>557
jsフォルダに置いて
$config['additional_javascript'][] = 'js/threadfilelist.js';
してみたけれども変わらず…?実装の仕方間違ってますか

想像した感じ多分
>1706171293847-0.png
の枠の中身は
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media_cat.html
風に縦200固定で画像踏んだらpostに飛ぶのが使いやすいような気がしました
(画像からどういう話題になってるか知りたいので)
でも画像の表示部分がthreadfilelist.js読んでもどこでやってるのやらさっぱりわからなかったです…

 No.559

File: 1706196459477.txt ( 3.3 KB , threadfilelist.js.txt )

[Update]で読み込まれたレスも読むように追加

>>558
合ってる
userscriptで動く前提で組んだからbodyタグが見つからねぇエラーで止まってしまってます
>風に縦200固定で画像踏んだらpostに飛ぶのが使いやすいような気がしました
この2件はあとで
見た目はCSSでいじれるようにするつもりです(今は埋め込みのCSSが見た目を与えてる)

>でも画像の表示部分がthreadfilelist.js読んでもどこでやってるのやらさっぱりわからなかったです…

追加用の要素を作ってるのは document.createElement って書いてある部分周辺です

 No.560

とりあえず更新…
>>559
>合ってる
>jsフォルダに置いて
>$config['additional_javascript'][] = 'js/threadfilelist.js';
新しい方法もこれだと動かない!実装はadditional_javascriptじゃなくてグリースモンキーで動くのですね
それとも合ってるけどとりあえずその方式は後でって事なのだろうか…?
document.createElementについて後で読んでみます

 No.561

>>560
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/js/threadfilelist.js
ハード更新してもファイルが古いまんまです

 No.562

>>559
このファイルは普通の(その方法の)配置で動くはず

 No.563

>>561
>ハード更新してもファイルが古いまんまです
キタ━━━━(゚∀゚)━━━━!!
更新したつもりで更新できてなかった

 No.564

>>559
>document.createElement
javascriptの知らないhtml生成の使い方…!
動的に如何こうしたりするのに使うのね
今までdocument.writeしか使って来なかった
にわかjs使いだったのだな…自分

 No.565

File: 1706457358807.txt ( 5.42 KB , threadfilelist.js.txt )

アプデ
・画像クリックで投稿に飛ぶように(100ファイルだとクリックした画像がどこにあるのか分からないから、画像の下にでも画像への直リンクがあったほうが良いのでは?)
・動画に点線
・縦長画像である場合と横長画像である場合を区別するためのhtmlクラス追加

もうCSSは分離していいかも知れぬ

>>564
>動的に如何こうしたりするのに使うのね
動的という点では document.write も同じ(HTML直書きのものだけが静的要素)
createElement は html要素を構造として扱います
文字列として扱うよりも属性の設定と入れ子構造の設定が簡単であるという優位性があります

まずはブラウザの「検証」とか「開発ツール」の使い方を覚えましょう
実験しやすいし結果もすぐに見れる

そう言えばjsを読む気があるのであればコード中のコメント増やそうか

 No.566

>>565
ありがとうございます…更新!
うおおお使いやすい…本家にも欲しい!
>(100ファイルだとクリックした画像がどこにあるのか分からないから、画像の下にでも画像への直リンクがあったほうが良いのでは?)
た、確かに…
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media_cat.html
仕様は結局これがベストなのかな(実際はpostではなく仰る通りにimageで逆の実装が良さそう、カタログも実はimageが文字リンクの方が良いのだろうか…)

謎の余白が開いてたので勝手に
.thread_file_list {
--padding_y: 5px;
にしてしまいましたが何かを底に入れる予定があったのかもしれない…あとは
.thread_file_list img {
height: 125px;
位の方が見やすそうだ…

 No.567

いつの間にか金曜日だ・・・

今気づいたんですが threadfilelist がmodderページとかでも動いている
後でページ判定入れます

>>566
>謎の余白が開いてたので勝手に
> --padding_y: 5px;
これはスクロールエンドを示すための余白でした(初期状態で表示されることがあるのは格好が悪い)
0でも良いです

>位の方が見やすそうだ…

CSS部分は分離する予定だからそっちでいじれる

>実際はpostではなく仰る通りにimageで逆の実装が良さそう、カタログも実はimageが文字リンクの方が良いのだろうか…

リンク文字が並んでる見た目が格好悪いのでなんとかしたいところ
マウスだけを想定するなら画像にマウスオーバーした時にだけリンク文字が可視になるデザインで良いけれどそうじゃないデバイスを前提とするとこれはイケない
と思っていたが、文字リンクを全表示するか不可視にするかのトグルを置くのが丁度いい折衷案かも(なおかつマウスオーバーの挙動)

 No.568

File: 1706884249215-0.txt ( 7.35 KB , threadfilelist.js.txt )

File: 1706884249215-1.png ( 304.84 KB , 709x427 , Screenshot 2024-02-02 at 23-28-45 log mitai.png )

>>566
アプデ
・ページ判定追加
・テキストリンクを半透明に
・テキストリンクの透明度を制御するためのトグルボタン
・画像を開く時に常に新規タブで開くように

(レス番号っぽく表示するなら引用ポップアップも欲しいな・・・)

>本家にも欲しい!

ユーザースクリプトとして実装すれば同じようにできる
画像を探すための部分とか細かいところを変えねばならんけれども

 No.569

>>568
新しくなってる?!ありがとうございます
threadfilelist.jsアップロードするだけで変わるのアップデートが楽でいいですね…
>スクロールエンドを示すための余白
エンドだけじゃなくトップも空いてたので気になっていました
末尾だけならあっても良かったかも…?

 No.570

>>551
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/samne.php
やばい…時間帯によって
さくらインターネットのsamne.phpが
凄い重い…対策が必要な気がします…
サムネ確認・生成[13.38]
もっと重い時間帯もある…

 No.571

>>570
頻繁にそのページに要求が来たりしていますか
前の生成から10分以上経っているならhtmlを生成して、経ってないなら変更なしでhtmlに飛ばすというような対策しかないです
あるいは要求とか関係なしに1時間に1回htmlを更新するようにするとか
時間帯によって重いというのは単にその時間帯はサーバー内住人(他の契約者)が活発だということじゃないでしょうか
それで自分に回ってくるリソースが少ないという

 No.572

>>571
お返事ありがとう!!!まだ見ててくれているとは
突然すみません!!
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/samne.php
新規設置の方は軽いのですが旧設置のファイル数と
重さを鑑みるに将来ファイルが増えていくと重くなりそう?
そもそもさくらはそんなに軽くないとかもありますね…
(割とblogの更新時にてんぽったりする)
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/sam_r.htm
ファイル変更時以外は直接こっちに飛ばすのが
正解なのでしょうけれどもどのように判断させたものか…
(今はファイル一覧選んだ際に毎回phpに飛んでしまっている)旧設置は今後更新しない!と決めてhtm決め打ち
仮に何かあったら更新リンクで自力更新する的な解決で引き延ばせば
新設置が重くなるのは遠い未来の話とも思いますが気になっていました

 No.573

狭間時間ゆえ長文失礼しますモード
>>572
>重さを鑑みるに将来ファイルが増えていくと重くなりそう?
なります

・自由なディレクトリ構造に配置してあるファイルを対象に処理をする
ということを要件にしたままに、なおかつ一番格好いい方法は
・fswatchなどでディレクトリ下を監視して、変更があればhtmlを生成しなおす
 ・これは常駐プログラム
 ・この場合は逐次生成用にhtmlファイルの順序付けを設計しなおす必要がある
 ・今の設計だと1個ファイルを挿入すると、全ページの書き直しが必要になるから
  ・でもHTML生成負荷はほとんどないんだった
>   処理(ファイル列挙[0.04], サムネ確認・生成[7.71], ファイルソート[0.00], HTML生成[0.03])
そうだったサムネイル確認が一番重たい
サムネイル生成失敗を何らかの方法でキャッシュすするのとサムネイルパスをもっと綺麗な方法で確認するとか
旧仕様のサムネイルパスを順次変換していくとかか・・・

まあでも今のところ1分掛かったりするわけじゃないからユーザー要求とは関係なしに動作させるようにするのが一番簡単だと思います
12時間に1回定期実行とかね

>ファイル変更時以外は直接こっちに飛ばすのが

>正解なのでしょうけれどもどのように判断させたものか…
・fswatchが更新するファイルが追加されたかどうかフラグ
・アクセスがあった時に上記フラグが経っていれば更新処理に突入
という設計でいけます

しかしそもそも「ユーザーには必ず最新のリストを見せたい」ということですか
多少のラグ(今なら20秒未満程度)を許容出来るなら
・ユーザーアクセス時は常にhtmlに飛ばす
・それとは別にバックで更新処理を走らせる
というのがインターフェイス上良さげだと思います


fswatchとか常駐プログラムの導入は、実際にサーバーにsshで入らせてくれないとセットアップが難しいので非同期更新がまずは現実的かと思います

 No.574

>>573
・ユーザーアクセス時は常にhtmlに飛ばす
・それとは別にバックで更新処理を走らせる
先頭の1ページ分だけサムネ生成したら
取りあえずはhtmlに飛ばしてしまう
とかは可能なのでしょうか?

 No.575

ちょっと試したらcgi modeで動くphpはnohupやforkやbackground化という処理を分離させてマルチスレッドだのマルチプロセスだのを実現する機能がどれも使えなかった
想定していたユーザーの要求で起動したphpから派生したプロセスが処理をするという方法は使えない

ということは常駐プログラムを作る方法しか取れませぬ

>>395
労力次第でどれも可能
一番簡単な方法は上記の通り使えなかったが……

さくらサーバーに仮想ターミナルで入って
fswatch
というコマンドが起動するかどうかと
crontab -e
というコマンドが起動するかどうか確認してください
echo 10 > 0.txt ; nohup sh -c '(sleep 1; echo 20 > 0.txt) & '; cat 0.txt; sleep 1.1; cat 0.txt ; rm 0.txt
それとこのコマンドを実行して[10改行20]と出るか確認してください

fswatchはファイルの変更を監視するプログラムです
これでcgi modeのphpからCLI modeのphpにメッセージを送れます

cronは定期実行用のプログラムです
乱暴に12時間に1回や1時間に一回サムネ更新を起こすのに使えます

最後の長い呪文は常駐プログラムを作る機能があるかどうかの確認です
一番大事なのはこの長い呪文です

 No.576

>>575
% echo 10 > 0.txt ; nohup sh -c '(sleep 1; echo 20 > 0.txt) & '; cat 0.txt; sleep 1.1; cat 0.txt ; rm 0.txt
10
20
% fswatch
fswatch: Command not found.

crontab -e
したら
~
~
~
だらけになってしまった…
/tmp/crontab.QPTGRUkDch: unmodified: line 1

fswatchはパスが通ってないだけかもしれない

https://help.sakura.ad.jp/rs/2242/
プラン的には使えるらしいけれども
定期実行よりはアップロードや削除した時だけしか変化がないのだから
その時に実行したいところだよね…
アップローダ側で何かした方が良いんだろうか

 No.577

https://www.mediafire.com/file/45z2gsrqlcqv6oi/local.tar.xz/file
これをサーバーのホームに配置してから

# 展開
cd ~ ; xzcat local.tar.xz | tar -xf -

# sh切り替え
bash

# 環境設定
. set_env.sh

# 起動テスト
fswatch

>>576
>だらけになってしまった…
それは宗教戦争ごっこに使われるvim vs emacsのvimの祖先のviというエディタです
起動するということは使えるということ
cronはファイル監視が出来なかったときのための格好悪い方法だからまだ使わなくてよさそうです
fswatchの導入が上手くいかなかったらcronを使います

>fswatchはパスが通ってないだけかもしれない

普通そういうことはないのです
一応
find / -name fswatch
として結果が出るならある

 No.578

>>577
% cd ~ ; xzcat local.tar.xz | tar -xf -
% bash
[yu-hi@www3006 ~]$ . set_env.sh
[yu-hi@www3006 ~]$ fswatch
Invalid number of arguments.

駄目みたい?

/home/yu-hi/usr/local/bin/fswatch

 No.579

>>578
成功してます
監視対象や監視条件を渡してないから文句言ってる
じゃあ後はフォルダを監視して変更があったらサムネ更新を動作させる常駐シェルスクリプトを書けばよいということ

samne.phpが具体的にはどこに置いてあるかは把握してますか(/home/yu-hi/から始まるようなパスだとどこにありますか)
それをコマンドラインから直接phpバイナリで実行するような処理が挟まります

 No.580

>>579
https://help.sakura.ad.jp/rs/2252/
daemonとしてサーバーに常駐するプログラムの実行
発見した場合、予告無くプロセスを強制終了する場合があります。
監視プロセスが動き続けていると怒られる…?

samne.phpめっちゃ一杯置いてある!
/home/yu-hi/www/hinabita/cgi-bin/以下略
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/gazou/samne.php
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/gazou_old/samne.php
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/samne.php
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/samne.php
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/kkk_imgsl/samne.php
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/kkk_imgsl_old/samne.php
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/sam2.2/index.php
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/oekaki/samne.php
以下続刊他にもあった気がする…
phpをブラウザ代わりにコマンドから読み込む処理してるだけで
要は「最新のカタログは「更新」をクリックしてください」的な
更新はphp、普段のリンクはhtmにしているのと変わらないのか

 No.581

>>580
えー怒られるのか
ほとんど全部が待機時間だから負荷が増えるようなものではないのだけれども

じゃあ例えば、アクセスがあったら内部的に自分宛てにメールを送って、メールの受信をトリガーにサムネ更新するとかならユーザーが実行したdaemon化常駐プログラムではないから合法かな・・・?

samne.phpめっちゃたくさん出てきておる

>更新はphp、普段のリンクはhtmにしているのと変わらないのか

とりあえずはこうしちゃうのもあり
html内にphpのリンクを[更新]として張っておくとか

 No.582

>>581
>html内にphpのリンクを[更新]として張っておく
現状でも右上に「更新」そのものがある…
のでリンクをhtmlにする事で大丈夫にはなる…
しかし「古い状態の場合は更新を押して」と明記した場合でも
結局ファイル一覧何が変わったかは押さないと分からないので
見る=更新が必要という状況判断から
今はphpに直リンクしていたのでした

>>   処理(ファイル列挙[0.04], サムネ確認・生成[7.71], ファイルソート[0.00], HTML生成[0.03])

>そうだったサムネイル確認が一番重たい
やはりサムネ確認を何らかの方法で軽くするしかない…?

 No.583

>>582
改善出来るところはあるし
サムネ確認のところの負荷集計を組み込んでないからまずはそれをやってみようか

 No.584

File: 1710616129065.txt ( 30.84 KB , samne.php.txt )

>>582
こっちでのデータだけれども
>サムネ確認・生成[54.11], 旧仕様サムネ確認[50.24/763], 現仕様サムネ確認[6.80/761], GD生成[0.00/0回], FFMPEG生成[0.00/0回],
全件数がそこを通過するから当然なのだけれども、旧仕様サムネ確認が一番食ってる

 No.585

>>584
>旧仕様サムネ確認[50.24/763]
バイパスしちゃった方が良い?
何が駄目なんでしたっけ新仕様だけだと

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/43s_r.htm
処理(ファイル列挙[37.22], サムネ確認・生成[7752.93], 旧仕様サムネ確認[7689.09/2814], 現仕様サムネ確認[14.07/327], GD生成[9.25/2回], FFMPEG生成[40.78/2回], ファイルソート[0.16], HTML生成[33.20])

旧仕様サムネ確認[7689.09/2814]
う、うむ!

 No.586

>>585
旧仕様サムネ確認を飛ばしてなおかつ新仕様のサムネが見つからないなら、新仕様サムネを生成するからバイパスしてもいいです
ちなみに今回の出力はミリ秒です

カウント計算を信用するなら新仕様だけにすれば50倍ぐらいの速度にはなるか

 No.587

>>586
バイパスして何か問題はなかったのか…50倍ならそれで済みそう?

 No.588

https://github.com/tesheke/sam_oo_php/blob/master/index.php
アプデ

アプデ適用後にinstance-config.php に以下のように書くと挙動を変えられます
// falseで旧サムネ確認を無効にする
define('ENABLE_P_VER_THUMB', false);

それと旧サムネ確認をしなくなるので更新後最初の1回はサムネ生成が大量に実行されるから時間がかかると思います

 No.589

>>588
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield_old/43s_r.htm
処理(ファイル列挙[26.50], サムネ確認・生成[59.92], 旧仕様サムネ確認[0.00/0回], 現仕様サムネ確認[30.47/2814回], GD生成[10.88/582回], FFMPEG生成[27.50/582回], ファイルソート[0.13], HTML生成[30.57])
これでいいのだろうか…!軽くて不安になるのですが

$config_log = true;
これミスってtrue false2回指定してた
ログ出なかったのこのせいか…

 No.590

>>589

ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe)
configuration: --disable-x86asm --enable-openssl --enable-version3 --cc=clang --prefix=/home/yu-hi --disable-ffplay --disable-doc --disable-htmlpages --disable-podpages --disable-txtpages --enable-manpages --enable-small --enable-openssl --enable-static --progs-suffix=60
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'img/up000487.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
creation_time : 2012-10-08T17:54:30.000000Z
Duration: 00:02:14.17, start: 0.021333, bitrate: 116 kb/s
Stream #0:0[0x1](und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 115 kb/s (default)
Metadata:
creation_time : 2012-10-08T17:54:30.000000Z
vendor_id : [0][0][0][0]
Output #0, image2, to 'imgs/t1_up000487.mp4.jpg':
[out#0/image2 @ 0x801c183c0] Output file does not contain any stream
return code: 1

ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe)
configuration: --disable-x86asm --enable-openssl --enable-version3 --cc=clang --prefix=/home/yu-hi --disable-ffplay --disable-doc --disable-htmlpages --disable-podpages --disable-txtpages --enable-manpages --enable-small --enable-openssl --enable-static --progs-suffix=60
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'img/up000488.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
creation_time : 2012-10-08T17:45:49.000000Z
Duration: 00:02:43.20, start: 0.021333, bitrate: 233 kb/s
Stream #0:0[0x1](und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 232 kb/s (default)
Metadata:
creation_time : 2012-10-08T17:45:49.000000Z
vendor_id : [0][0][0][0]
Output #0, image2, to 'imgs/t1_up000488.mp4.jpg':
[out#0/image2 @ 0x801c183c0] Output file does not contain any stream
return code: 1

処理(ファイル列挙[27.82], サムネ確認・生成[61.95], 旧仕様サムネ確認[0.00/0回], 現仕様サムネ確認[31.51/2814回], GD生成[11.32/582回], FFMPEG生成[28.49/582回], ファイルソート[0.16], HTML生成[32.22])

 No.591

>>589
>>590
約2800ファイルで約0.1秒
問題の先延ばしとしては大成功

旧サムネ仕様はファイルの中身を見てるから、その処理がかなり重たかった
新仕様はファイル名だけ見てるから軽いです

>$config_log = true;

>これミスってtrue false2回指定してた
>ログ出なかったのこのせいか…
検索したときにハイライトが出るようなエディタ使いませう

 No.592

>>591
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/sam2.2/11s_r.htm

PHP-GD could not interpret image file: ./../../media/neoranga_pegging02l.png
ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe)
configuration: --disable-x86asm --enable-openssl --enable-version3 --cc=clang --prefix=/home/yu-hi --disable-ffplay --disable-doc --disable-htmlpages --disable-podpages --disable-txtpages --enable-manpages --enable-small --enable-openssl --enable-static --progs-suffix=60
libavutil 58. 2.100 / 58. 2.100
libavcodec 60. 3.100 / 60. 3.100
libavformat 60. 3.100 / 60. 3.100
libavdevice 60. 1.100 / 60. 1.100
libavfilter 9. 3.100 / 9. 3.100
libswscale 7. 1.100 / 7. 1.100
libswresample 4. 10.100 / 4. 10.100
[png @ 0x801c31000] chunk too big
Input #0, png_pipe, from './../../media/neoranga_pegging02l.png':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: png, rgb24(pc), 1330x1200, 25 fps, 25 tbr, 25 tbn
Stream mapping:
Stream #0:0 -> #0:0 (png (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[png @ 0x801c32000] chunk too big
Error while decoding stream #0:0: Invalid data found when processing input
[swscaler @ 0x801d50000] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to 'imgs/t1_neoranga_pegging02l.png.jpg':
Metadata:
encoder : Lavf60.3.100
Stream #0:0: Video: mjpeg, yuvj444p(pc), 172x156, q=2-31, 200 kb/s, 25 fps, 25 tbn
Metadata:
encoder : Lavc60.3.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A
frame= 0 fps=0.0 q=0.0 Lsize=N/A time=-577014:32:22.77 bitrate=N/A speed=N/A
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
Conversion failed!
return code: 69

処理(ファイル列挙[14.50], サムネ確認・生成[86.72], 旧仕様サムネ確認[0.00/0回], 現仕様サムネ確認[9.44/742回], GD生成[24.08/3回], FFMPEG生成[56.67/3回], ファイルソート[0.08], HTML生成[8.98])

例のサムネが出ない画像エラー
https://yu-hi.sakura.ne.jp/hinabita/media/neoranga_pegging02l.png
このファイルだけ再保存したら良さそう?

 No.593

ファイル名と一緒にファイルの更新日時も表示したいなと思いました。

 No.594

>>592
あー
https://yu-hi.sakura.ne.jp/hinabita/media/neoranga_pegging02l.png
前と同じでこの画像が処理出来ていない
php-gdもffmpegも失敗している
うーn・・・
格好悪いけど手動でサムネ作って配置しようか

 No.595


 No.596

>>595
ソース画像の更新日時がアップデートされた?

このソース画像のある場所に cd してから
2000年12月31日13時15分59秒なら
touch neoranga_pegging02l.png -t 200012311315.59
みたいにタイムスタンプの改ざん出来ます

 No.597

>>596
touch neoranga_pegging02l.png -t 200911190457.00
したもののサムネの出来た順っぽいのでダメそう…?
サムネを一旦全部消して古い順に再処理させればOKかもだ

 No.598

>>597
うーn?
if (SORT_BY_DATE) {
// http://www.php.net/manual/ja/class.splfileinfo.php
$key1[] = $info->getMTime();
} else {
$key1[] = $info->getFilename();
};
この$infoはサムネ側は見ていないんだけどな

サーバーのレスポンスは
last-modified: Wed, 20 Mar 2024 05:17:26 GMT
だからタイムスタンプの変更失敗してるんじゃないかな

関係ないディレクトリでtouchしていたりしていませんか

 No.599

レスポンスの last-modified が正しいなら、他のファイルのタイムスタンプもオリジナル状態ではないのが結構ありそう
2022 は合ってるけど 2009 は全然違うし
ということは neoranga_pegging02l.png 自体が原因なんじゃなくて周りのファイルの問題であるかも

 No.600

File: 1711780214487.png ( 62.31 KB , 1288x965 , yu-hi.sakura.ne_dtp_240330152909_009085.png )

>>598
なんか変なファイルが出来てた!
これは…コマンド間違って実行してますね…

 No.601

>>600
確認したら
touch neoranga_pegging02l.png -t 200911190457.00
じゃなくて
touch -t 200911190457.00 neoranga_pegging02l.png
じゃないといけないそうです…

manだけ確認してGNU系と一緒じゃんと思ったが間違いだった
BSDは異世界

ゼロサイズのファイルは消しちゃってください

 No.602


 No.603

…そういえば板別の最後の画像投稿って取る方法あるのですか?
Recent Imagesだとvichan全体ですけれども
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media_cat.html
に対して
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/neoranga/recent_media_cat.html
とか作れる…?

 No.604

>>603
あ。見落としてた
私の反応なかったらろしあ経由で呼んでください

recent_media自体はフォルダを複製すれば別インスタンスが作れます
でもって。あー。
exclude boardsっていう項目はあるけどinclude boardsっていう項目がない。
これを追加したバージョン作ります。
それでinclude boardsに対象としたいboardを列挙。

htmlの出力先はHTML file設定で変更出来ます。

 No.605

File: 1713110932134.png ( 151.38 KB , 1368x750 , ClipboardImage.png )

アプデ
https://github.com/tesheke/vichan-theme-recent-media

ちなみに、recent mediaテーマが、テーマフォルダに複数配置されている場合は、最初に読み込まれたコードだけが実行されるから、どのフォルダのrecent mediaもアップデートしてください(最低限info.phpとtheme.phpがアップデートされればいいです)

 No.606

>>605
おおおありがたい…
それはそれとして手元のファイルが
倉庫サーバファイル飛ばしてしまって消えてる!
これsakuraからダウンロードし直しても
git pull使えなくなってるだろうな…
→RecentMedia
あとでサーバの実ファイル落としておいて
手元に新規でインストールして統合しないと
駄目そうだ…

 No.607

>>605
めっちゃ今さらなのですが
各板のglobal_messageの所ごとに

<link rel="stylesheet" media="screen" href="/hinabita/cgi-bin/vichan/stylesheets/styleadd.css"> <center><a href="https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/gazou/">旧Neoranga 南海奇皇ネオランガ画像掲示板 neo</a>へ<br /><h3>><a href="https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/oekaki/">お絵かき掲示板はこちらへ</a><</br > <a href="https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/oekaki/"><img src="https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/oekaki/newimage.php" width="244" height="244" scrolling="no" frameborder="0" border="0" framespacing="0" name="oekaki bbs" ></a></h3> <h3>投稿しても反映されない時はキャッシュを消すと反映されてる場合も<br />(firefoxならshift+リロード chromeならctrl+リロード)</h3> ゆうぴーちゃんねるは、生まれたばかりの掲示板です。<br /> 藤原さんにはここを教えないであげて下さいね。<br /></center> <br><center><a href="https://px.a8.net/svt/ejp?a8mat=OJI3J+CIP5PU+348+674EP" target="_blank"><img border="0" width="88" height="31" alt="" src="https://www21.a8.net/svt/bgt?aid=041220703757&wid=001&eno=01&mid=s00000000404001041000&mc=1"></a><img border="0" width="1" height="1" src="https://www13.a8.net/0.gif?a8mat=OJI3J+CIP5PU+348+674EP" alt=""> <a href="https://px.a8.net/svt/ejp?a8mat=109QLF+56CP4I+D8Y+6E71D" target="_blank"><img border="0" width="88" height="31" alt="" src="https://www25.a8.net/svt/bgt?aid=060920547313&wid=001&eno=01&mid=s00000001717001074000&mc=1"></a><img border="0" width="1" height="1" src="https://www12.a8.net/0.gif?a8mat=109QLF+56CP4I+D8Y+6E71D" alt=""> <a href="https://rpx.a8.net/svt/ejp?a8mat=1U7G7Z+6SP6EQ+2HOM+5ZMCH&rakuten=y&a8ejpredirect=http%3A%2F%2Fhb.afl.rakuten.co.jp%2Fhgc%2F0ea62065.34400275.0ea62066.204f04c0%2Fa04121657691_1U7G7Z_6SP6EQ_2HOM_5ZMCH%3Fpc%3Dhttp%253A%252F%252Fwww.rakuten.co.jp%252F%26m%3Dhttp%253A%252F%252Fm.rakuten.co.jp%252F" target="_blank" rel="nofollow"> <img src="https://hbb.afl.rakuten.co.jp/hsb/0eb4bbb0.174cb205.0eb4bbaa.95151395/" border="0" width="88" height="31" alt=""></a> <img border="0" width="1" height="1" src="https://www11.a8.net/0.gif?a8mat=1U7G7Z+6SP6EQ+2HOM+5ZMCH" alt=""> <iframe src="https://rcm-fe.amazon-adsystem.com/e/cm?t=a8-affi-126491-22&o=9&p=41&l=ur1&category=amazonrotate&f=ifr" width=88 height=31 scrolling="no" border="0" marginwidth="0" style="border:none;" frameborder="0"></iframe><img border="0" width="1" height="1" src="https://www12.a8.net/0.gif?a8mat=1NWEUN+893BN6+249K+BWGDT" alt=""><br /><a href="https://rpx.a8.net/svt/ejp?a8mat=1U7G7Z+6SP6EQ+2HOM+6GC77&rakuten=y&a8ejpredirect=http%3A%2F%2Fhb.afl.rakuten.co.jp%2Fhgc%2F0ea62065.34400275.0ea62066.204f04c0%2Fa04121657691_1U7G7Z_6SP6EQ_2HOM_6GC77%3Fpc%3Dhttp%253A%252F%252Fwww.rakuten.co.jp%252F%26m%3Dhttp%253A%252F%252Fm.rakuten.co.jp%252F" target="_blank"><font color="red">&gt;</font>rktn</a><img border="0" width="1" height="1" src="https://www12.a8.net/0.gif?a8mat=1U7G7Z+6SP6EQ+2HOM+6AJV5" alt=""> , <a href="https://www.amazon.co.jp/ref=as_li_ss_tl?&ref=pd_sl_7ibq2d37on_e&adgrpid=56100363354&hvpone=&hvptwo=&hvadid=289260145877&hvpos=1t1&hvnetw=g&hvrand=2318872550343302136&hvqmt=e&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009326&hvtargid=kwd-10573980&hydadcr=27922_11415158&gclid=Cj0KCQjw2IrmBRCJARIsAJZDdxBFOZxFa7JiRbRsDYX6HZ8k4EqGvhU9ptkWig5Rb0YfUqTxOQFWEuQaAtNLEALw_wcB&linkCode=ll2&tag=atariya-22&linkId=8a013cb17d7c9a5eb0f00b9897af7f42&language=ja_JP" target="_blank"><font color="red">&gt;</font>amzn</a><h3>><a href="https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media_cat.html">Recent Images ALL boards</a><</h3><h3>><a href="https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/neoranga/recent_media_cat.html">Recent Images neoranga</a><</h3></center>

って突っ込んでるのスマートじゃない気がするのですけれども
何か改善方法ないですかね…
そもそも先ずは各板catalogと思ったら
./recent_media_cat.html
../recent_media_cat.html
とかにするべき?

 No.608

>>606
どうして…
gitは管理ファイルの.gitフォルダとその下のファイルが残っていれば使えます

>>607
相対リンクにした方がいいのはそのとおりだけど
良い代案は特にない
htmlファイルに書いてそれを読むようにするぐらいかな
その場合はvichanの改造がまた必要になります

 No.609

うっかりマルウェア踏んで
70TくらいのHDD消し飛ばしてしまった

とりあえず新規で取ってきて設置し直した

../recent_media_cat.html
./recent_media_cat.html
でうまく行くかと思ったらレスから開いたら
neoranga/res/recent_media_cat.html
になってしまった…板rootのラベルとかあるのかな…

各板catalogは個別に一個一個
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media.html
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media_cat.html
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/b/recent_media.html
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/b/recent_media_cat.html
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/navy/recent_media.html
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/navy/recent_media_cat.html
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/neoranga/recent_media.html
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/neoranga/recent_media_cat.html
っておいていくしかないのかな…

 No.610

>>609
ボードメッセージ
最大限に要求したとして何がしたいですか
板一覧を取ってきてそれでリンクを自動生成する とか
各板共通メッセージ + 板固有メッセージ とか

 No.611

>>610
下にあるCatalogの一種として
上下に
「Previous [1] [2] [3] Next | Catalog | Images」
「[Return][Go to bottom] Catalog | Images」
「[Return][Go to top] Catalog | Images」
的に統合しちゃった方が良いのかなと思いました
気付いたのですが* でCatalog押したら
Imagesとこと同じようなバギーだった…
割とindexの各板最新imagesは気に入っています

 No.612

mod.php?/
状態だと
./recent_media_cat.html
失敗するのでやっぱり絶対アドレスか…

>>611
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/thumbs.html
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/
更新押すまで更新されないのやっぱり困る気がする!!
(サムネであぷろだに何か新規あるかチェック兼ねたかった)
しかし無理なのか…?もしかしてあぷろだの出力結果に
一覧phpへiframeとか入れて処理飛ばしたら行ける…?

 No.613

>>611
このあたりに新たにリンクを並べる場合は templates/thread.html の Go to bottom(47行目)と Go to top(64行目) あたりです
>Posting mode: Reply [Return] [Go to bottom]
>[Return][Go to top] Catalog

>mod.php?/

>状態だと
>./recent_media_cat.html
>失敗するのでやっぱり絶対アドレスか…
これはmod.phpの仕様です(既知URLしかハンドルしない)
mod.php自体をちょっとイジって静的ファイルへのリダイレクトを追加しちゃう手があります


アップローダー( https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/ )の新ファイルをどこかで検出したい、どこかに反映したいという話ですか

 No.614

>>613
言葉が足らす申し訳ない
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/
このあぷろだの新規ファイルのサムネが
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/thumbs.html
なのですがアップした時点では更新されない仕様で
「一覧見るという行為がphp更新になるからそれでいいか!」と
この間は済ましたものの
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/
今回ここに板ごとの最新のサムネを配置するにあたって
折角ならそこ見ればあぷに何か新規アップあっても気づけて便利?
と思っていたら更新されてなかったという

iframeでやればいいかと思ったのですが非対応環境対策というか
<img src="https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/navyfield/samne.php">
とかでエラーっても実行だけはされるんですかね…?試せばいいか

 No.615

>>613
>[Return] [Go to bottom]
>[Return][Go to top] Catalog
>このあたりに新たにリンクを並べる場合は
>templates/thread.html の Go to bottom(47行目)とGo to top(64行目) あたりです
情報ありがたい…
位置的に本来Boards Recent Imagesが収まってて欲しい場所は
ここじゃないかなと思っていました…
まあ今はボトムにしかないですがtopにも欲しい

>Previous [1] [2] [3] Next | Catalog | Images

板ルートのこっちはどのファイルだ…テンプレのどれかだろうけど
探すか

 No.616

>>613
<div class="banner">{% trans %}Posting mode: Reply{% endtrans %} <a class="unimportant" href="{{ return }}">[{% trans %}Return{% endtrans %}]</a> <a class="unimportant" href="#bottom">[{% trans %}Go to bottom {% endtrans %}</a> | <a href="./recent_media_cat.html">Images</a>]</div>

<a id="thread-top" href="#top">[{% trans %}Go to top{% endtrans %}</a> | <a href="./recent_media_cat.html">Images</a>]

これで行けるんだろうか…新たな相対アドレス問題…
{{ return }}とかのラベルで板ラベルがないのかな
{{ board.url }}か?
{{ config.domain }}/{{ board.uri }}/recent_media_cat.html
でいけるんだろうか…?

 No.617

>>616
<div class="banner">{% trans %}Posting mode: Reply{% endtrans %} <a class="unimportant" href="{{ return }}">[{% trans %}Return{% endtrans %}]</a> <a class="unimportant" href="#bottom">[{% trans %}Go to bottom {% endtrans %}]</a>| <a id="thread-images" href="{{ config.root }}{% if mod %}{{ config.file_mod }}?/{% endif %}{{ board.dir }}recent_media_cat.html">Images</a></div>

<a id="thread-top" href="#top">[{% trans %}Go to top{% endtrans %}]</a>| <a id="thread-images" href="{{ config.root }}{% if mod %}{{ config.file_mod }}?/{% endif %}{{ board.dir }}recent_media_cat.html">Images</a>

横にあったCatalogを参考にしたらこれで行けるっぽい!
catalogは/mod.php?/からいけるのに
Imagesはいけないけど!

 No.618

>>617
catalog は mod.php のコードに書かれているから読めます
それ以外の静的htmlや画像を読ませるには mod.php の改造が必要です
というかmodモード維持したい?

>>615
>板ルートのこっちはどのファイルだ…テンプレのどれかだろうけど
たぶん templates/index.html の <div class="pages"> の中

>>616
スレページからの相対アクセスなら ../recent_media_cat.html だと思います
ボードトップからなら ./recent_media_cat.html だけど


>>614
>なのですがアップした時点では更新されない仕様で
そのアップローダーのコードは見たことないがどういう仕様・・・
それを直してしまえばいいのでは

recent_mediaは飽くまで投稿に反応して(フックして)htmlを更新しているので、vichan以外からファイルを配置しただけじゃ何も反応しません
sam_oo_phpは毎回ファイル一覧を読みます

 No.619

>>618
>たぶん templates/index.html の <div class="pages"> の中
{{ btn.next }}
| <a href="{{ config.root }}{% if mod %}{{ config.file_mod }}?/{% endif %}{{ board.dir }}recent_media_cat.html">{% trans %}Images{% endtrans %}</a>

{% endfor %} {{ btn.next }}
{% if config.catalog_link %}
| <a href="{{ config.root }}{% if mod %}{{ config.file_mod }}?/{% endif %}{{ board.dir }}{{ config.catalog_link }}">{% trans %}Catalog{% endtrans %}</a>
{% endif %}
| <a href="{{ config.root }}{% if mod %}{{ config.file_mod }}?/{% endif %}{{ board.dir }}recent_media_cat.html">{% trans %}Images{% endtrans %}</a>

いけました、しかしページボトムのナビは出るのにトップに出ない…
// Show page navigation links at the top as well.
$config['page_nav_top'] = true;
をinstance-config.phpに設定したら出るんじゃないのだろうか?
…と思ったら出てた!そこなの?!

>というかmodモード維持したい?

自分は投稿編集時くらいしかmodに居ないから維持しなくていいかも…?

>それを直してしまえばいいのでは

その通りなのですが面倒だったので投稿後に生成されるページに
<img src=とかでsamne.php呼んでごまかせないかなと思ったのでした
https://github.com/mgmn/snupmod
使っているのはこのアップローダです

<section id="content">
<a href="$set{'http_html_path'}$set{'base_html'}?$in{'time'}" style="font-size: 20px;">click here!</a>
<img src="samne.php">
</section><!-- /#content -->

行けた行けた…これはありなのでしょうか

 No.620

>>619
modモード維持が不要なら一般ページへのリンクを生成するように書けばいいと思います

><img src=とかでsamne.php呼んでごまかせないかなと思ったのでした

>行けた行けた…これはありなのでしょうか
動いてるからいいと思います

https://github.com/mgmn/snupmod/blob/uploader-kai/uploader/upload.pl#L1377
ここに samne.php を実行するコード挟む回避策を想定していました

 No.621

>>620
>modモード維持が不要なら一般ページへのリンクを生成するように書けばいいと思います

templates/thread.html
<div class="banner">{% trans %}Posting mode: Reply{% endtrans %} <a class="unimportant" href="{{ return }}">[{% trans %}Return{% endtrans %}]</a> <a class="unimportant" href="#bottom">[{% trans %}Go to bottom {% endtrans %}]</a> | <a id="thread-images" href="{{ config.root }}{{ board.dir }}recent_media_cat.html">{% trans %}Images{% endtrans %}</a></div>

<a id="thread-images" href="{{ config.root }}{{ board.dir }}recent_media_cat.html">{% trans %}Images{% endtrans %}</a>

templates/index.html
{{ btn.next }}
| <a href="{{ config.root }}{{ board.dir }}recent_media_cat.html">{% trans %}Images{% endtrans %}</a>

{% if config.catalog_link %}
| <a href="{{ config.root }}{% if mod %}{{ config.file_mod }}?/{% endif %}{{ board.dir }}{{ config.catalog_link }}">{% trans %}Catalog{% endtrans %}</a>
{% endif %}
| <a href="{{ config.root }}{{ board.dir }}recent_media_cat.html">{% trans %}Images{% endtrans %}</a>

よく分からずにコピペしていたのが駄目だったのを理解したので
今度は大丈夫…?modモード維持は出来なくなる…

<img src="samne.php" width=1 height=1>
焼け石に水…?

 No.622

https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/sam2.2/sam_r.htm
今回更新して気づいたのですが
blogが自動生成するサムネの除外
(ファイル名末が-数字x数字)って
どうやって指定したらいいでしょうかね…?

 No.623

File: 1714908968047.txt ( 654 B , a.php.txt )

>>622
sam_oo_php
設定の$ignore_file値が正規表現だからそれで除外出来ます
添付ファイルみたいにしてください(他の部分は動作テストだからコピーしなくてよいです)

| : 論理和(or)の意味
- : ハイフンそのもの
[0-9]+ : 数字文字1回以上の繰り返し
x : エックスそのもの
[0-9]+ : 数字文字1回以上の繰り返し
\. : ドットそのもの
[^.]+ : ドット以外の文字の1回以上の繰り返し
$ : ここで文字列末尾であることという指定子

 No.624

>>623
正規表現について勉強している間に回答が!!!
ありがとうございます!!!
$|-[0-9]+x[0-9]+\.[^.]+$/i
しっかり勉強すればたったこれだけで行けるんですね…

 No.625

>>624
"|"はor演算子だから今回のファイル名にマッチするのはそれ以降です
"$"は"|"の左側表現に所属してます

/^(THM_|LOG_|img_|tm_).+\.(png|jpe?g|gif)$|_thumb\.(png|jpe?g|gif)$|-[0-9]+x[0-9]+.[^.]*$/i

これは3つに分解できて

^(THM_|LOG_|img_|tm_).+\.(png|jpe?g|gif)$
_thumb\.(png|jpe?g|gif)$
-[0-9]+x[0-9]+.[^.]*$

3つのうち1つ以上に一致させることを表現します
(iオプションが書いてあって大文字小文字は無視されるのにTHMとLOGが大文字なのは読みにくいね)

正規表現の配列にして1つ以上に一致した場合に無視するってコードにした方が設定しやすいかも
次回変える時はそうしましょう

ところで正規表現は実装によって方言があるので調べる時は「phpの正規表現」を調べるとよいです
preg_matchだと"\d"が使えるから "-\d+x\d+\.[^.]+$" でもよかったかも



[Return][Go to top] Catalog Images[Post a Reply]
Delete Post [ ]
[ index / * / b / navy / neoranga ] [ mod ] [ home ]