PSPでお手軽オフラインブラウズ 解説!
ちょっと修正しました。
早い話が通勤PSPの代替物みたいな感じでもあります。
あとローカルのアーカイブを持ち歩きたいとか。
ドキュメントとか。
今回から差分のみコピーするような感じにしてあります。
面倒な方用に、ファイルを用意してあるので、ソースは飛ばしてくださってかまいません。
ソースの後に、実際の使い方を画像と共に掲載しました。
'オブジェクトの作成 Set objShell = WScript.CreateObject("WScript.Shell") Set colEnv = objShell.Environment("Process") 'コピー元のディレクトリを選ぶ rootpath = colEnv("HOMEDRIVE")&colEnv("HOMEPATH")&"\Application Data\Mozilla\Firefox\Profiles" 'プロファイルの一番上のディレクトリ使用 '※自分で修正できる方は適当に直して下さい。 dataSourceDir= GetProfilefolder(rootpath) dataSourceDir=dataSourceDir&"\ScrapBook\data" '拾って歩く作業の開始 Set fs = WScript.CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(dataSourceDir) dim out out = "" For Each subf in f.subfolders 'ファイル名を決める。 fn = subf&"\index.dat" id="" title="" icon="" buf="" 'データはUTF-8なのでとりあえずShiftJISに変換。 Set fso = CreateObject("Scripting.FileSystemObject") set str = WScript.CreateObject("adodb.stream") str.type = 2 str.charset = "utf-8" str.open str.loadFromFile(fn) txt = str.readText() str.close str.open str.position = 0 str.charset = "Shift-Jis" str.writeText(txt) str.position = 0 '改行でぶった切って一行ずつ処理。 lines=Split(txt,Chr(10)) for i=0 to ubound(lines)-1 buf=lines(i) if buf<>"" then 'key[tab]valueなので、分割 pos = instrB(buf,chr(9)) key=leftB(buf,pos-1) val=midB(buf,pos+2) if key="title" then title=val if key="id" then id=val if key="icon" then icon=val end if next '出力データを作成。 '※レイアウトとか変えたい人はここで変えてください。 out=out&"<a href='data/"&id&"/index.html'>" out=out&"<img src='data/"&id&"/"&icon&"' border=0>"&title&"</a><br>" next with nothing Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder( _ 0, "保存先フォルダを選択:", 0, "ssfDeskTop") If objFolder Is nothing Then MsgBox("インデックスを保存するフォルダを選択して下さい") Else pathFolder = objFolder.Items().Item().Path if right(pathFolder,1)="\" then pathFolder=Left(pathFolder,len(pathfolder)-1) Set objFolder = nothing End If if pathFolder<>"" then out = "<html><head><title>PSPSCRAPBOOKS</title></head><body>" & out & "</body></html>" set fs = WScript.CreateObject("Scripting.FileSystemObject") set stream = fs.CreateTextFile(pathFolder&"\i.html") stream.Write(out) stream.Close() 'データディレクトリの作成 if(not fs.FolderExists(pathFolder&"\data")) then fs.CreateFolder(pathFolder&"\data") 'まず、データディレクトリにあって、元ディレクトリにないディレクトリ(削除されたもの)を、 'データディレクトリから削除する Set fs = WScript.CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(pathFolder&"\data") '回ってー削除。 For Each subf In f.SubFolders Set objf = fs.GetFolder(subf) if(not fs.FolderExists(dataSourceDir&"\"&objf.Name)) then fs.DeleteFolder subf,true end if Next '更新されたものだけコピー Set objShell = CreateObject("Shell.Application") 'set dest = objShell.NameSpace(pathFolder) 'set from = fs.GetFolder(dataSourceDir) 'dest.CopyHere dataSourceDir, &H10 argument = "xcopy " & chr(34) & dataSourceDir & chr(34) & " " & chr(34) & pathFolder&"\data" & chr(34) & " /d /e /c /i /h /k /y" 'msgbox argument Set WshShell = CreateObject("WScript.Shell") WshShell.run argument, 1, true msgbox "完了" end if end with function GetProfilefolder(path) Dim objFS, objFolder Set fs = WScript.CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(path) 'すべてのサブフォルダを回る For Each subf In f.SubFolders if instr(subf,".default")>=1 then GetProfilefolder=subf Next end function
これをですね、使う方法を今日は丁寧に書いたりしようと思います。
とりあえず上をコピペして保存、又はPSPScrap.vbsを右クリック→保存してどこかにおいておきます。
で、最初に、FireFoxにScrapBookをインストールします。
ScrapBookはこちらから……ScrapBook
ここから
ここをクリックで
インストール。
FireFoxを再起動するように言われるので言われるがままに。
すると、FireFoxのメニューにScrapBookというのが増えるので、そのメニューからサイドバーに表示、をクリックして下さい。最初からサイドバーに出てたらそのままでいいです。
出ることを確認したら、後は好きなページを「ScrapBook」→「ページの取り込み」で取り込んでいきます。
そのページだけじゃなくて、そのページと、そのページからリンクされているページ、みたいなのは「ScrapBook」→「ページの詳細な取り込み」で出来ます。
そんなこんなで、右側にある程度溜まったら、準備完了。
PSPをPCにつなぐか、メモステをカードリーダに差し込んで、さっきのPSPScrap.vbsをダブルクリックしてください。警告は大丈夫です。
保存先を聞かれるのでリムーバブルディスク(メモステ)に適当に打ちやすそうなフォルダを作って、そこを選択。例えば1とか。
PSPはこの状態。
OKを押すと、黒い画面が出ますが、驚かずに待ちましょう。
量が多いとちょっと時間がかかります。
味気ない「完了」が出たら、OKです。PSPのUSBモードを終了するか、メモステを取り出して、次へ。
PSPでブラウザを起動し、「file://ms0:/(さっき指定したフォルダ)/i.html」にアクセスしてみると、
こんな風に出ます。
このページをお気に入りに入れておいてください。
後は好きにオフラインブラウズを楽しめます。
あと、ScrapBookは自動で更新しません。自分で、「右クリック」→「ツール」→「再取り込み」をする必要があります。
再取り込み後、再度PSPScrap.vbsを実行し、同じフォルダを指定すると、差分が転送されます。
お気に入りに入れたPSPSCRAPが更新されてますので、アクセス。
朝ニュースをまとめて再取り込みして、電車の中で読めます。
地下鉄通勤なので便利!
あとついでに。
iPhoneで、GoodReaderとか持ってる人は、適当にローカルに保存して、i.htmlのエンコードをUTF-8に変換して転送したら、iPhoneでもオフラインブラウズできます。こっちはオマケなのでいずれ……