File: 1696433397814.png ( 96.94 KB , 1888x1562 , yu-hi.sakura.ne_dtp_231005002645_008494.png )
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.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.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
>>24dekiteru…
じゃあ他のオプションによって挙動がおかしくなる・・・?
>/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.31
そもそもffmpegがこういう挙動するのがわからぬ・・・
mp4にも設定行は必要です
そもそもphpからffmpegを呼ばずにimagemagickでサムネ作ってるか・・・?
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
>>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.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.47
同じファイルがあるはvichanの警告…
No.48
さくらインターネットのサーバに
何かのライブラリが足りてない…?
コンパイル時に足りてない?で
拡大縮小が使えない?
No.49
>>47再現性パーフェクトはそれはそれで安心
ffmpegのスケーラーオプションがあるのでそれを用意します
No.50
https://unixforum.org/viewtopic.php?t=52603russian dakedo atta
format = ~ de ikeru nokana
No.51
>>50それはffmpegではないです
>>45スケーラー一通り試しましょう
一応こちらではどれも期待通りだった
https://pastebin.com/68eSyQ1V 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.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.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.68
>>66こっちで確認したら最初にsws_flagsで渡しても効いてなかった
別の方法考えます
(設定ではffmpegの前半しか指定出来ない)
(ffmpegは引数位置によって意味が変わるからちょっと難しい)
No.69
キタ━━━━(゚∀゚)━━━━!!
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.74
git pullした時ffmpeg.phpに更新があると変わらなくなる奴…
No.75
>>74というかpullしたら文句言われちゃう
だからconfigに入れたいのよねー
No.76
shellスクリプト挟んでそこで引数改変するようにしようか
今日はこれで離脱します
No.77
おつつつtありがたい…
No.81
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/gazou/samne.phphttps://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>キタ━━━━(゚∀゚)━━━━!!のやつと
>>74ffmpeg を呼ぶ前に引数改変することで neighbor scaler を使わせるやつ
https://pastebin.com/frz4rd2T>>80>>81あとで動かしてみます
No.83
昨日はおかげさまで助かりました
自分一人じゃどうにもならない奴
>キタ━━━━(゚∀゚)━━━━!!
後で設定してみます
instance-config.php
で出来る事だったんですね…
中身弄るしかないかと思ってました
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>>8517行目の設定値のところを変えてください
たぶん
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.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.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.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
>>97ffmpegのバージョン情報が出るなら成功です
それとbashの次の引数は - が2つ、あるいは0です
一つだとスイッチになっちゃう
No.101
File: 1696502061200.png ( 86.41 KB , 1772x1350 , yu-hi.sakura.ne_dtp_231005193353_008498.png )
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
No.103
File: 1696502281908.mp4 ( 22.53 MB , 1280x720 , 『SPY×FAMILY』Season 2 オープニング主題歌Ado「クラクラ」アニメ映像-ノ….mp4 )
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
No.104
>>101\r を消すコマンドは失敗してるけど実行には成功してる
どういうことだ…
vichan設定の方もハイフンが一つだったりしないだろうか
そもそもbashは\rを空白文字扱いするはずだから元々なんでエラーしてたのか
環境変数IFSが違うんだろうか
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.113
>>111watasi 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
>>124post-hover は番号引用の上にカーソル置くとその投稿がカーソル横に現れるやつ
入れ子ポップアップは出来ない
>post form no popup ka hosiinaなぜ清音になっているのか
これは quick-reply.js のこと
そういえば送信ファイルプレビューが消えてる
file-selector.js
>>125modderは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.134
>>129ロケールも
$config['locale'] = 'ja_JP.UTF8';
$config['timezone'] = 'Asia/Tokyo';
>>130webm/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.zipeach関数もダメね
No.136
>>134>webm/posthandler.php に決め打ちしてあるからそれを変える必要があるのと>そもそもmovとかmkvってvideoタグでいけるか・・・?videoタグで再生は無理でも
ffmpegに投げてサムネが出たらよいなと思っていた…
正直ファイルアプロダの方とかでもffmpegに投げてサムネを出したい…→動画
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.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
>>136vichanの特殊動画のサムネイルだけならたぶんこの行に拡張子足せばいけると思う
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
>>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.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.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) の設定じゃないかな
>>162antibot(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.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.171
>>169- じゃなくて _ です
正 vichan/templates/themes/recent-media/
誤 vichan/templates/themes/recent_media/
アップデートのことを考えると README にある git clone の手順を使った方が後々良いです
>>167なんじゃろなあ・・・
中途半端な状態になっていたとかか
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
あー
$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.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.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-mediahtmlは丸々書き換えてたけど一応更新してみます
No.192
>>191ありがたい過ぎる…ありがとうございます
お手間おかけしていてなんとお礼してよいやら
それはそれとして
// これは何形式か?
$config_ext['mpo'] = THUMB_FALSE;
中身はjpeg拡張領域に2枚目のjpegがくっついた
3d表示画像!処理はjpegと同じで大丈夫な奴!
$config_ext['mpo'] = 1;
したらjpegとして処理されるんだろうか…?
No.193
>>191>1696957560963.txthttps://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
>>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.phpdefine('BACK_LINK', '../'); // 戻るリンク
行けた!ありがとうございます…
要望続いて申し訳ないですが
. ' target="_blank">' . PHP_EOL
の_blank部分も差し替えdef化お願いしたい…
$config_ffmpeg_path = '/home/yu-hi/bin/ffmpeg60';
む、これで行けるはず?なのに動いてない…
No.197
recaptchaめどいのでmod権ください
管理権ナシでいいので
>>196> . ' target="_blank">' . PHP_EOLdefine('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.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.htmlreCaptcha回避できないポイです…
一応ろっしーにuser pass伝えたので聞いてみて!
Mod?Janitor?modにしてしまったけど大丈夫だろうか…
> –enable-libwebp フラグが必要サムネ生成時の拡縮アルゴリズムもだけれども
コンパイル時に正しくライブラリリンクされてない気がする…
https://qiita.com/je3kmz/items/463a62d9817c793be57cコンパイル何もわからないでこのままコピペったので
多分色々何か足りてないのだと思われる…
もう一遍コンパイルし直した方が良いのだろうか…?
No.205
もしかしてテキスト投稿あると
空っぽになる…?
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
>>208Recent 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.214
>>213gitの分岐って使ったことないのですが
こういう場合ってとりあえず元を保存して置いて
git pullする時は元に戻す方法なんだろうか…
(Recent Imagesがそうやって誤魔化していた)
自己メンテするならフォークなんだろうけど
No.216
>>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.219
>>216キタ━━━━(゚∀゚)━━━━!!
重ね重ねありがとうございますですよ
>1697370360059.txtgit何が何だか分かってない事が分かった…
リモートサブバージョンに切り替え設定して
そっちを受け取るって感じなんですね
その後元の分岐前に戻すのとかも
(そもそもここのvichanも表示が5.1.4でgit5.1.5→データベースファイル入りアーカイブ版
上書きの失敗してる気がする…git pullしても5.1.5の状態が残ってるのか最新です言われるし…
0からgitで取ってくるとデータベースファイルがないのでアーカイブ版の新しいファイルだけ上書きした)
No.220
この改造は綺麗に書けたら 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
>>220https://github.com/vichan-devel/vichan/issues/237gitで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 statusfatal: not a git repository: js/twemoji/../../.git/modules/js/twemoji
なんかやばい…
>git logcommit 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 difffatal: 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/twemojivichan/.git/modules/js/twemoji/ にtwemojiのgitの管理ファイルが無い、と文句言ってる
これはjsだから影響があったとしてもクライアントサイド(ブラウザで処理される側)だけ
https://github.com/vichan-devel/vichan/blob/master/.gitmodulessubmoduleが上手く構築出来ていないみたい
git submodule init && git submodule update
でどうだろうか
たぶんこれは過去にその手順を行っているはずだけれど
>git restore –staged . ; git restore>すべきなんだろうかちょっと違う案件
vichanリポジトリが管理しているファイルに対しては文句言われてないから
No.224
>>223>git submodule init && git submodule updateSubmodule '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
>>224git submodule deinit js/twemoji
あるいは git submodule deinit –force js/twemoji
それから
git submodule init && git submodule update
ffmpegの件と言いハードウェアエラーを疑いたい
No.226
>>225vichanは手元のPCでgitしてftp上げしたんだ…それが悪いんだろうか…
ffmpegコンパイルはリモートのさくらサーバで実行した
>git submodule deinit js/twemojifatal: 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/twemojierror: pathspec '–force' did not match any file(s) known to git
死
No.227
>>226forceの左はハイフン2つです
入力のときに半角ハイフン2つ入れても、vichanがそれをくっつけて en dash にしちゃうのよね
$config['auto_unicode'] = false;
で文字の置き換えを抑制出来ます
>vichanは手元のPCでgitしてftp上げしたんだ…それが悪いんだろうか…あるとしたら何かファイルモードが間違っているというやつだけど
それっぽくはないです
No.228
>>227>git submodule deinit –-force js/twemojierror: pathspec '–-force' did not match any file(s) known to git
んんnーーにしてもだめだ
$config['auto_unicode'] = false;
足してみます
No.229
>>228>error: pathspec '–-force' did not match any file(s) known to git2つめはハイフンだけど1つめはen dashになってる
コピペじゃなくて手入力してくだち
No.230
>>229>git submodule deinit --force js/twemojierror: 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 updateSubmodule '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/wPainterror: 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 updateSubmodule '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
>>232G:\apache_folder\www\hinabita\cgi-bin\vichan>git submodule init && git submodule update
G:\apache_folder\www\hinabita\cgi-bin\vichan>
ヌルで帰ってきた!
No.236
>>235G:\apache_folder\www\hinabita\cgi-bin\vichan\.gitmodules
だよね?
[submodule "js/wPaint"]
path = js/wPaint
url =
https://github.com/vichan-devel/wPaint.gitbranch = master
[submodule "inc/lib/parsedown"]
path = inc/lib/parsedown
url =
https://github.com/vichan-devel/parsedown.gitbranch = master
[submodule "js/twemoji"]
path = js/twemoji
url =
https://github.com/basedgentoo/twemojiで同じに見える…
No.237
>>236
>git statusOn 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.241
$config["version"] を見に行ってるようです
これは inc/config.php には含まれていない
.installed を見に行っているっぽい
https://github.com/vichan-devel/vichan/blob/master/install.php5.1.4
配布バージョンは5.1.5と銘打ってるけどコードは更新されてない、ので気にしなくていいと思います
No.242
>>241混乱の元過ぎる…
でもお陰でjs/twemojiとjs/wPaintの何かが修正されたからいいか…
上が治って何が使えるようになったんだろう?
No.243
エラー吐いていたのは twemoji
何か絵文字機能なのだろう
IMEを使う日本人にはいらない気配
wPaintは手描き機能です
あとは謎のDBエラー
No.244
>>243>謎のDBエラーは単になんかさくらインターネットが重い?
(連続書き込みすると怒られる雰囲気?)
No.245
🍖
No.246
🍛
No.247
>>244それならタイムアウトエラーとかになるんじゃないかと
antispam関係のクエリでエラーするのはこちらでも再現するのでvichanのバグだと思います
twemojiはemoji非対応環境向けに絵文字文字を画像やsvgに置き換えてくれる機能っぽいです
たぶん instance-config.php で指定しないと動かない
No.248
そういえば
>>220>1697458437997.txtread_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
>>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.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.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.267
あ
recent_media 変数は、recent_media/theme.php から呼ばないと有効にはならないです
Recent Images のテンプレートではスコープ外
No.269
サムネイル一覧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
>>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.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
アプデ
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
>>278https://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.286
>>283>見比べたらカタログは高さ一定?なのか?https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/index.cssiframeの外側にある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-*に一致するかどうかの検証コンテンツとしてキャッシュを使ってしまっているんじゃないかと
>>297no-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
>>299AH01215: 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
>>300http://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
>>302AH01215: 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
>>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.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
>>312vichanはサムネトラップが出来ないのかな?
(開くとサムネと絵が変わるタイプのトラップ画像)
No.314
imagemagickとgraphicmagickがwarning出してる
>>313サムネトラップはガンマ値を変わった値にするものでこれはpngの仕様だから問題ないはず
これはカラープロファイルに文句を言ってるのかどうか
ちょっと分からない
まあvichan側のエラー検出を見ないと
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.322
mp4とwebm以外のビデオファイルにもサムネをつけるための設定テキスト
instance-config.php に追加すると動きます
もう設定というよりもただのコード
ファイル分けないと見通し悪くなるかも
>>321ということは騙しpngネタが使える
しかしなぜこちらと動作が違うんだろうか
No.324
>>323
コナイ━━━━(゚∀゚)━━━━!!
No.325
>>323>>32465行目あたり修正
コードは映像が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#L2595DBに登録されたハッシュ値で判定してる
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.336
>>335webp
svg
>Invalid image.ぬぬぬ…
No.343
>>339inc/image.php を部分的に流用したコードなんだが
元から必要に見えないチェックをしていてそこにひっかかっているっぽいからチェック自体を削除
(そういえばimagemagickは多レイヤーなEXRとかpsdとか扱えるんだろうか)
No.344
>>343IC-3:Invalid image.
ぬぬぬ…
No.345
>>344svgの大きさが取れておらぬ
シェルで
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.orgCopyright: (C) 1999-2021 ImageMagick Studio LLC
License:
https://imagemagick.org/script/license.phpFeatures: 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
>>344>>349出来た
imagemagick-convertコマンドではなく設定されたffmpegを使ってsvgサムネを生成
No.353
>>3521698531892972.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ここの必要ライブラリのビルドのとこが追加されるのだろうか…?
>パス指定せずにffmpegffmpegは標準で使えないのでビルドする必要があった
そしてビルドとか分からないので上のリンク先の文章丸々コピペして作ったのだった…
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 -a13.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-benchautogen.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
>>376portsが使えそうなのでその方法は諦めましょう
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 xfetch -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... noautoconf 古すぎエラー
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
動くかどうか分からないけど試しにバイナリをそのまま使ってみましょう
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
>>384poderosaのエラーは日本語を受け付けないとかではなく?
>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/filexzcat 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/filem4, 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.398
>>396Green_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
>>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.404
>>403どちらか1ヶ所でいいけど2ヶ所書いても問題ナシです
たぶん secrets.php で thumb_method がインストール時の 'convert' (imagemagickを使うという意味) に設定されてしまうので
それよりも更に下の方がいいです
ちなみに末尾の ?> はなくても問題ないです
No.405
(話が飛びますが reCAPTCHA v3 も設置してヒューマンポイントが高い通信は reCAPTCHA v2 免除にしてもいいなと思いました。)
No.407
reCAPTCHA v3
は対応してないみたいでした
→vichan
No.409
>>404たぶん secrets.php で thumb_method がインストール時の 'convert' (imagemagickを使うという意味) に設定されてしまうので
それよりも更に下の方がいいです
koredatta━━━━(゚∀゚)━━━━!!
No.410
>>406phpコードだから最後の代入がその値になるのです
inc/secrets.php にはインストール時の自動検出設定とかdb関連の設定が書かれていて、その中にthumb_methodの設定もあるから
secrets.phpを読み込んでいる行でthumb_methodが上書きされてしまっていないかということを疑っています
だので ?> 直前に $config['thumb_method'] = 'gm'; 書くか
?> を消してファイル末尾にこの設定を書いてみてください
>>407まあフォームに組み込んでpost-handlerで判定しようかなという心づもり
No.412
http://www.graphicsmagick.org/formats.html>Note that SVG is a very complex specification so support is still not complete.完全ではない、と
No.414
>>413あー…shell path設定があったのか
じゃあこっちで環境変数を設定しても良かったか
WebUIのConfigurationは基本は instance-config.php の末尾に追加されていくはず
DB関係とかが secrets.php に入るのではなかったか
No.415
>>261// どうやらこの値が小さいとエラーが起きる
$config['spam']['hidden_inputs_min'] = 4;
$config['spam']['hidden_inputs_max'] = 4;
ここの数字戻したらまたbot認定されるのが復活してしまったらしい
知人が使えないーと言っていた
11でエラーで44でbot誤認なら
いくつならいいんだろうか…
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
>>418新しいスレを建てたら返信で書き込めるものの
古いスレッドには書き込めないらしい…
どういうことなの…
No.420
>>419ボットチェックは上の説明の通り
設定を変えると設定反映前のページが残って書き込めなくなるのです
rebuildでスレページ再生成するか、あるいはmod権で書き込むとページが再生成されて書き込めるようになるはず
やはりオフにするためのコード書くか
No.422
>>421試してみた…!これで大丈夫だろうか…
ついでにリビルドもしておいた
No.423
>>422>>>/neoranga/1このスレに一般ユーザーとして書き込めたからたぶんOK
レスはもう消しました
No.425
>>424imagemagickからgraphicsmagickに変わってカラープロファイルを削ぎ落とす時の動作が変わった
これだと偽装サムネネタが使える(たぶん)
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.phpB の場合は array_multisort(サムネイル一覧でも使われていた方法)
https://www.php.net/manual/ja/function.array-multisort.php No.428
>>4277万ファイルとかあったので
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とするかは後で決めるとして、この上限値の設定で要求から返答までの時間を制御出来る
>>433vichan用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.jsonHTTP/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.jsonHTTP/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
>>441last-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.446
あれ
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/*/の最新投稿順でこのスレが上がらなくなってる…
これage100上限とかに設定されてる箇所があるとかなのかな
No.447
てすてす
No.450
>>445https://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.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.461
>>458>カタログのような一覧性はない(使いにくくない?)使いにくい!
なので大量投稿と省略UI(+nで隠す)だけ真似したかった…
ただまあ
見た目の話をすると割とlibfansの
大大大小
大大大小
大大大+n
の格納時の4枚並びは嫌いじゃないので
+n押したら普通にズラッと一覧化するのが欲しかったりはしました
その辺はUIの設計の方になるので
欲しい機能としては大量投稿と
>>460>1701588959672.mp4開いたらこんな風に一度に見える方が大事…出来たらありがたい…
No.462
>>459hundred (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_linesCSSでレイアウトして、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.479
>>478はい
>>473>100個投げたら多分この時のデータラインが中に残ってて投稿がある度に recent_media がエラーを吐いていたのだと思う
後で問題になりそうだし不正な状態になっているラインを探さねば
/b/ のナンバーは連続してますが他の板だったりしますか
No.480
>>479100ファイル投げたのはここの
>>472だったかと思う
エラー出てテキストだけ貼られたけど
内部的には見えない画像ファイルが?
imagesにも出てこないから存在はしないのか
データベース上だけに中途半端に残ったのかな
No.481
>>480files カラムは 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
>>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.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.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-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-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-90.png ( 2.35 MB , 1280x1536 , 1694957983441-1118069339-SakuraGroovy_imafuu-M….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
省略展開ボタンシステム
zip展開して、その中にある vichan フォルダ下のファイルをvichanルートディクトリに上書き
省略展開ボタンがイケてないのは仕様です
instance-config.php に設定追記して
$config['thumb_ext'] = 'jpg'; // 必須ではない
// 省略を開始する位置(この数のサムネイルは常に表示される)
$config['omit_thumbs_start'] = 3;
それからrebuild
>>497扱えるテキスト長が2^16から2^24に増えるので
>>499vichanはそういう仕様です
親なしファイルを消すユーティリティースクリプトも用意されてる
>やっぱり投稿投げたら処理終わった順に並んで>投げた順にはならないんだね…うーn
投げた順というのは1投稿内の複数ファイルの並び?
順序情報も一緒に送られてvichanはそれに従っているだけのはずなのだが
ファイル名順にしたいとかなら postHandler でソート
No.502
>>501>>順序情報も一緒に送られてvichanはそれに従っているだけmjk?!何故か
Select/drop/paste files here
のエリアには投げた時の順番で並んでいるのに
投稿後の順番がバラバラになっていたので
てっきり投げた後処理が始まった順に並ぶのかと…
サムネの生成速度で順番が変わっているのかと思い込んでいました
何が原因で順番変わるんだろうか
一応エリアに順番に並んでいるのを確認したつもりだけど
window側で投げるの失敗してる可能性は否定できない…
>親なしファイルを消すユーティリティースクリプトこれ知りたいですね…
偶にこれで掃除しないとダメか
No.503
>>502Quick 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.510
>>509ワーオ
いけてるうう
ありがとうございます!!!
めちゃめちゃ完璧
あとなんか失敗した
>>492がボタンだけ出てるんだね…
No.512
>>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.521
>>520AH01215: suexec policy violation: see suexec log for more details:
End of script output before headers:
のエラーって中身が分からないから意味ないよな…
何らかの理由で出力がなかったぞみたいな話だよね…
suexec log見る手段があればまた変わってくるんだろうけれども
No.522
(最近ずっとよそ事やってました)
>>516filesクラス関連からfloatを一掃しないといけないのです
>>518 >>519 >>520 >>521JCode.pl は patipati と同じように今風に書き直して廃止してしまえばいいと思います(
>>307 )
続きあとで
No.523
>>522https://atariya.dojin.com/cgi-bin/kobato_osirase/bbs.cgiutf-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.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
>>533recent_media アプデ
https://github.com/tesheke/vichan-theme-recent-mediapost.isvideo 追加
post.thumb を post.thumbimg に変更
post.srcimg 追加
それとデフォのテンプレート利用時だとサムネをクリックした時にその画像・動画に飛ぶようになってます
下のpostを押すとスレ・レスに飛ぶ
そんでvichan本体側は、例によってfloatで難しい
No.537
>>536サムネ抜けのHTMLが生成されてる
今回のメインの改造部分はテンプレートhtmlだから、そっちでカスタムしたテンプレートも直さないといけないです
とりあえずは post.src って書いてあったところを post.thumbimg に書き直さないとサムネが表示されないです
>post.thumb を post.thumbimg に変更アナウンスが間違ってるや
重ねて▶を表示するためのCSSもテンプレートhtmlに入れてあるから同梱テンプレートhtmlをベースに改造しなおしたほうが早い
>movのとこで出てなくて気づかなかった…movはインライン再生出来ない(環境が多い)からね
スレページの方はどうするか
floatの仕様を把握するかfloatをなくしてしまうか
画像の横に文字を配置するっていう目的ならfloatは最適ではあるんだよね
No.539
見たらわかると思いますが画像の部分で▶の見た目がいじれます
>>538>https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/recent_media.htmlこっちの 「>post」 となっている部分
テンプレート側には 「>post」 と書いたほうがいいです
<a href="{{ post.link }}">>post</a>
みたいに。タグクローズとかぶるので
>postに飛ぶか否かも選べるようになったのねん画像一覧を見ている時は直接画像(or動画)に飛びたいかなって思いました
もうちょっと整った見た目に(画像にマウスオーバーしてる時だけpostリンクが表示されるみたいに)しようかと思ったけど
CSSが複雑になるのでやめました
この機能がいらない時はテンプレート側で削ってください
a ~ a {
opacity: 0%;
}
a:hover ~ a, a:hover {
opacity: 100%;
}
これで出来るけどスマホフレンドリーではないな・・・
No.540
>>539>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.544
(送信失敗したの気づかなかった)
>>543isvideo値はここ
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
>>545sam_oo_php アプデ
>処理(ファイル列挙[0.02], サムネ確認・生成[7.33], ファイルソート[0.00], HTML生成[0.00])みたいな処理時間集計を追加
動画拡張子である場合に枠表示と[動画]の表示を追加(tdタグにvideoクラスが付与されます)
設定値は変わってません
処理時間集計はログと一番最後に生成されたページ(正順と逆順の両方)の一番下に出ます
No.549
>>548https://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
>>554A. 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 )
>>556実装するのが面倒くさいからでは?
技術的な意味ではなく心理的な意味で
500レスぐらいまでならスクロールで流しても探せるし
まずはイメージを掴むための100行未満の雑実装
[Update]による新レスには対応してない(数行のイベントフックを追加するだけです)
ページ内の入れ子スクロール要素は操作感と操作アフォーダンスを作り込まないと認知負荷が高くなっちゃう
No.558
>>557jsフォルダに置いて
$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
[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.562
>>559このファイルは普通の(その方法の)配置で動くはず
No.563
>>561>ハード更新してもファイルが古いまんまですキタ━━━━(゚∀゚)━━━━!!
更新したつもりで更新できてなかった
死
No.564
>>559>document.createElementjavascriptの知らないhtml生成の使い方…!
動的に如何こうしたりするのに使うのね
今までdocument.writeしか使って来なかった
にわかjs使いだったのだな…自分
No.565
アプデ
・画像クリックで投稿に飛ぶように(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-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
>>551https://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.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
>>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
>>588https://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
>>589ffmpeg 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
>>591https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/sam2.2/11s_r.htmPHP-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.596
>>595ソース画像の更新日時がアップデートされた?
このソース画像のある場所に cd してから
2000年12月31日13時15分59秒なら
touch neoranga_pegging02l.png -t 200012311315.59
みたいにタイムスタンプの改ざん出来ます
No.597
>>596touch 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.604
>>603あ。見落としてた
私の反応なかったらろしあ経由で呼んでください
recent_media自体はフォルダを複製すれば別インスタンスが作れます
でもって。あー。
exclude boardsっていう項目はあるけどinclude boardsっていう項目がない。
これを追加したバージョン作ります。
それでinclude boardsに対象としたいboardを列挙。
htmlの出力先はHTML file設定で変更出来ます。
No.605
アプデ
https://github.com/tesheke/vichan-theme-recent-mediaちなみに、recent mediaテーマが、テーマフォルダに複数配置されている場合は、最初に読み込まれたコードだけが実行されるから、どのフォルダのrecent mediaもアップデートしてください(最低限info.phpとtheme.phpがアップデートされればいいです)
No.606
>>605おおおありがたい…
それはそれとして手元のファイルが
倉庫サーバファイル飛ばしてしまって消えてる!
これsakuraからダウンロードし直しても
git pull使えなくなってるだろうな…
→RecentMedia
あとでサーバの実ファイル落としておいて
手元に新規でインストールして統合しないと
駄目そうだ…
No.608
>>606どうして…
gitは管理ファイルの.gitフォルダとその下のファイルが残っていれば使えます
>>607相対リンクにした方がいいのはそのとおりだけど
良い代案は特にない
htmlファイルに書いてそれを読むようにするぐらいかな
その場合はvichanの改造がまた必要になります
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.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
>>617catalog は 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
>>619modモード維持が不要なら一般ページへのリンクを生成するように書けばいいと思います
><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
>>622sam_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+\.[^.]+$" でもよかったかも
No.629
[Sticky] [Sage] [Lock] [Cycle]
Sticky Cycleってなんだろう…?
それはそれとして特定のスレを丸々
別の板に移動したりは可能なのでしょうか…?
新板作ったせいで板違いが生まれてしまった…
久々過ぎて
[ index / * / b / navy / neoranga ] [ mod ] [ home ]
がどこにしまわれているのか分からなくなってしまった…
templates¥boardlist.html
とかじゃなかったのね…じゃあこのファイルは何なんだ…
…
inc\instance-config.php
に入ってた!
$config['boards'] = array(
array('index' => '/hinabita/cgi-bin/vichan/', '*' => '/hinabita/cgi-bin/vichan/*/', 'b', 'ai', 'navy', 'neoranga'),
// array('c', 'd', 'e', 'f', 'g'),
//// array('h', 'i', 'j'),
// array('k', array('l', 'm')),
array('mod' => '/hinabita/cgi-bin/vichan/mod.php?'),
array('home' => '/hinabita/')
// array('status' => '
http://status.example.org/')
);
No.630
>>629Stickyはそのスレのカタログ順を固定する機能
Cycleはそのスレのレスがcycle_limit(デフォはreply_limit(カタログ順が上がる上限)と一緒)を超えたら、超えた分だけ古いレスが消えていく機能
>それはそれとして特定のスレを丸々>別の板に移動したりは可能なのでしょうか…?あるにはあるけどデフォでは無効化されてるしちょっと挙動が怪しい
// "Move" a thread to another board (EXPERIMENTAL; has some known bugs)
$config['mod']['move'] = DISABLED;
ナンバー引用とかリンクとかは特に修正されなかったはず
No.631
>>630あ、ありがたい…そんな機能があるんですね
板違い移動は次回発生したらチャレンジしてみます
全消し投稿し直しよりは簡単であって欲しい…
そういえば
templates¥boardlistってどう使うやつなんでしょうか
No.632
>>631>templates¥boardlistってどう使うやつなんでしょうかあれはoverboardのヘッダっぽいものです
https://yu-hi.sakura.ne.jp/hinabita/cgi-bin/vichan/*/ここの
>I'm your overboard boardlist. You can put here anything and I reside in templates/boardlist.htmlこの部分にhtmlを入れるためのもの
No.633
>>632>vichan/*/ここだけ!それは気づきませんでした…