書庫内の画像をPPvで閲覧できるようにする。漫画ビューアでよくあるやつです。 「PPcで書庫に潜ってPPvで連動ビューしたらいいだけじゃん」と言われたらたしかにそうなのだが、PPv単体でできたら便利かもしれないと思いました(小並感)。
準備
以下をgetarchivefiles.jsという名前でスクリプトフォルダに保存。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//!*script | |
// 書庫内のファイル名をS_xxx1 S_xxx2 S_xxx3 ... と連番で保存。「書庫のパス\S_xxx1の内容」を返す | |
// PPvを単体で画像ビューアのように扱うためのスクリプト | |
// 第一引数:書庫のパス | |
// 第二引数:ファイル名を保存するS_xxx | |
// 例: *ppv %*script(%0Script\getarchivefiles.js,%FCD,S_archivepages) | |
// 引数がなければ終了 | |
if (PPx.Arguments.Length < 2){ | |
PPx.SetPopLineMessage("引数が正しくありません。"); | |
PPx.Quit(-1); | |
} | |
var source_file = PPx.Arguments(0); | |
var user_table = PPx.Arguments(1); | |
var filelist = PPx.Extract("%*run\(tar -tf \""+source_file+"\"\)").split("\r\n"); | |
PPx.Execute("*deletecust \""+user_table+"\""); // S_xxxの初期化 | |
var a = PPx.Extract("%*name\(DCN,"+source_file+"\)"); // 両端の""を取る | |
for(i = 0; i < filelist.length-1; i++) { | |
var filepath = PPx.Extract('%*name(KDC,'+a+"\\"+filelist[i]+')'); // パス区切りを「\」に統一 | |
PPx.Execute("*setcust "+user_table+":"+i+"="+filepath); | |
}; | |
PPx.Result=PPx.Extract("%*getcust\("+user_table+":0\)"); // 「書庫のパス\S_xxx1の内容」を返す |
以下を編集して取込。
K_archiveview = {
RIGHT ,*ifmatch 0,0%si"pagenum" %: *string i,pagenum=0
*string i,pagenum=%*calc("%si"pagenum"+1") %: *string o,name=%%*getcust(S_archivepages:%si"pagenum")
*ifmatch !0,0%sgo"name" %: %J%sgo"name" %: *stop
*string i,pagenum=%*calc("%si"pagenum"-1")
LEFT ,*ifmatch 0,0%si"pagenum" %: *string i,pagenum=0 %: *stop
*if %*calc(%si"pagenum") == 0 %: *stop
*string i,pagenum=%*calc("%si"pagenum"-1") %: *string o,name=%%*getcust(S_archivepages:%si"pagenum") %: %J%sgo"name"
}
%si"pagenum"は現在見ているページ番号。左右カーソルで1ずつ増減する。
やり方
PPcで書庫ファイルにカーソルをあわせ、以下のコマンドを実行。
*ppv %*script(%0Script\getarchivefiles.js,%FCD,S_archivepages) -k *mapkey use,K_archiveview
最初の画像が表示される。カーソル左右で表示ファイルを切り替える。
0 件のコメント:
コメントを投稿