過去ログ

                                Page     121
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼開いているURLが画像のものを保存  にゃ〜 05/11/15(火) 11:06
   ┣Re:開いているURLが画像のものを保存  YAma 05/11/15(火) 20:21
   ┃  ┣Re:開いているURLが画像のものを保存  にゃ〜 05/11/16(水) 8:15
   ┃  ┃  ┗Re:開いているURLが画像のものを保存  YAma 05/11/16(水) 23:03
   ┃  ┃     ┗Re:開いているURLが画像のものを保存  にゃ〜 05/11/17(木) 13:10
   ┃  ┃        ┣Re:開いているURLが画像のものを保存  EG6+ 05/11/17(木) 13:23
   ┃  ┃        ┗Re:開いているURLが画像のものを保存  YAma 05/11/18(金) 17:10
   ┃  ┃           ┗Re:開いているURLが画像のものを保存  にゃ〜 05/11/19(土) 13:34
   ┃  ┣Re:開いているURLが画像のものを保存への質問なのですが?  nukesaku 06/1/30(月) 3:12
   ┃  ┗Re:開いているURLが画像のものを保存  こころく 06/5/21(日) 14:31
   ┃     ┗Re:開いているURLが画像のものを保存  じゃで 06/5/22(月) 10:54
   ┗Re:開いているURLが画像のものを保存  あり 06/6/8(木) 9:29

 ───────────────────────────────────────
 ■題名 : 開いているURLが画像のものを保存
 ■名前 : にゃ〜
 ■日付 : 05/11/15(火) 11:06
 -------------------------------------------------------------------------
   多数のスクリプト 便利に使わせてもらっています。

希望ですが
「開いているURLが画像のものを保存」ってのは難しいのでしょうか?

開いた画像を一つ一つ保存するのも、それなりに面倒で・・・。

機能としては
・タブで開いているURLが「.jpg (.jpeg)」「.gif」「 .png」のファイルを保存する。
・ファイル名が重複している場合は、リネームして保存する。
・保存エラーはログファイルへの吐き出し or ダイアログ表示(明細付)を選択できる。

あと、あると嬉しいのは、
・タブで開いているURLが「.jpg (.jpeg)」「.gif」「 .png」のタブを閉じる。
 
 です。

「開いているURLがJpegのものをダウンロード」もありがたいのですが、

・.gifや.pngも保存したい

・一度開いたものをわざわざ、DLするのも二度手間
 流れている場合もありますし、先方鯖に負荷がかかるかと。

・開いているファイルがDLできない
 サイトによってはサムネイルをDLしてくる場合があります。

と、当方には少々扱いづらいところがありまして。

横着用スクリプトですが、なにとぞご検討をお願いします。

 ───────────────────────────────────────  ■題名 : Re:開いているURLが画像のものを保存  ■名前 : YAma  ■日付 : 05/11/15(火) 20:21  -------------------------------------------------------------------------
   >機能としては
>・タブで開いているURLが「.jpg (.jpeg)」「.gif」「 .png」のファイルを保存する。
>・ファイル名が重複している場合は、リネームして保存する。
>・保存エラーはログファイルへの吐き出し or ダイアログ表示(明細付)を選択できる。

この機能に関しては、「開いているURLがJpegのものをダウンロード Rel5」にて実装済み、もしくは少しの改造で満たせると思います。

// 拡張子でJPEG判断
if((ext==".jpg")||(ext==".jpeg")) {

この行を
// 拡張子で画像判断
if((ext==".jpg")||(ext==".jpeg")||(ext==".png")||(ext==".gif")) {

と、希望の拡張子を追加すれば問題ないと思います。


>あと、あると嬉しいのは、
>・タブで開いているURLが「.jpg (.jpeg)」「.gif」「 .png」のタブを閉じる。

これに関しては、別途スクリプトを組む必要がありますね。

>・一度開いたものをわざわざ、DLするのも二度手間
> 流れている場合もありますし、先方鯖に負荷がかかるかと。
>
>・開いているファイルがDLできない
> サイトによってはサムネイルをDLしてくる場合があります。

これに関してですが、文章から察するにリンク抽出+ダウンローダーの
組み合わせで対応可能なのではないでしょうか?

 ───────────────────────────────────────  ■題名 : Re:開いているURLが画像のものを保存  ■名前 : にゃ〜  ■日付 : 05/11/16(水) 8:15  -------------------------------------------------------------------------
   早速のご指導ありがとうございます。

>この行を
>// 拡張子で画像判断
>if((ext==".jpg")||(ext==".jpeg")||(ext==".png")||(ext==".gif")) {
>
>と、希望の拡張子を追加すれば問題ないと思います。

素人の勘でいじってみたのですが、socketエラーがでていたので、
吐き出し方法が異なるのかと思っていました。
やはり当方の記述がまちがっていた様です。ありがとうございます。
(テストでのローカルDISKからのファイルだったのかも知れませんね)


>>・一度開いたものをわざわざ、DLするのも二度手間
>> 流れている場合もありますし、先方鯖に負荷がかかるかと。
>>
>>・開いているファイルがDLできない
>> サイトによってはサムネイルをDLしてくる場合があります。
>
>これに関してですが、文章から察するにリンク抽出+ダウンローダーの
>組み合わせで対応可能なのではないでしょうか?

現在の使用状況を説明いたしますと、
BBS等で画像の閲覧→欲しい画像をクリックして、新規タブで開く を繰り返します。
   ↓
ある程度溜まったところで、「開いているURLが〜 Rel5」を実行します。
   ↓
DLができたところで、「現在より右のタブを閉じる」scpで、不要なタブを閉じます。

結果としては必要なファイルが保存できるのですが、
一度開いてタブ上にあるのに再度DLするのは、非効率的?と思ったわけでして。

状況によっては、必要なファイルが既に流れてしまっていることもあり、
結局、手元のタブから右クリックで「画像を保存する」を使用することになります。
また、ダウンローダーの使用は、ネット倫理上控えたいサイト(BBSなど)もあります。

リンク抽出+DLローダーを使用して、新しく「DLする」のではなく、
すでに複数のタブ上にある画像ファイルを「保存」できるSCP と言うことです。


>>あと、あると嬉しいのは、
>>・タブで開いているURLが「.jpg (.jpeg)」「.gif」「 .png」のタブを閉じる。
>
>これに関しては、別途スクリプトを組む必要がありますね。

上記の様な使い方をしているので、こんな希望になりました。
(職場で、いけいない閲覧をしている人にも便利かと(苦笑))


見れば見るほど、横着用SCPですね。
あいすいませんが、ご検討のほどよろしくお願いいたします。

 ───────────────────────────────────────  ■題名 : Re:開いているURLが画像のものを保存  ■名前 : YAma  ■日付 : 05/11/16(水) 23:03  -------------------------------------------------------------------------
   とりあえず、開いているURLがJPEGのものをダウンロードのスクリプトを改造し
ダウンロードではなく、キャッシュフォルダからコピーするようにしているのですが
今のところうまくいきません・・・・
下がソースなのですが、コメントどおり
var sFolder = new Enumerator(Shell.NameSpace(32).Items());    //←ここでエラー
この箇所でエラーになります。
この部分だけを、JScriptにして実行すると、動くのですが・・・・


//開いているURLが画像のものをキャッシュフォルダからコピー
// author : EG6+
// 改造  : YAma
// release 1

BUF_SIZE = 8192;

class ProgressDlg extends VCLForm
{
    var        BugWeb;
    var        SavePath;
    var        lblMsg;        // label
    var        pgsBar;        // progressbar

    function ProgressDlg()
    {
        // this
        borderstyle = 3;    // bsDialog
        caption = "ダウンロード";
        clientheight = 71;
        clientwidth = 414;
        position = 4;    // poScreenCenter
        
        // label
        lblMsg = new VCLLabel(this);
        lblMsg.left = 16;
        lblMsg.top = 16;
        lblMsg.width = 33;
        lblMsg.height = 12;
        lblMsg.caption = "";
        
        // progressbar
        pgsBar = new VCLProgressBar(this);
        pgsBar.left = 16;
        pgsBar.top = 40;
        pgsBar.width = 385;
        pgsBar.height = 17;
        pgsBar.min = 0;
        pgsBar.max = 100;
        pgsBar.smooth = true;
        
        BugWeb = new ActiveXObject("BugWeb.BugBrowserAPI");
    }
    
    function selectFolder()
    {
        // 保存先フォルダを選択
        var Dlg = new Dialog;
        SavePath = Dlg.openFolder("保存先フォルダを選択してください。",'C:\');
        if(SavePath == null) return false;
        if(SavePath == "") return false;
        
        return true;
    }
    
    function download()
    {
        var Log = new Strings;
        var LogStr;
        var idx;
        var f;
        var HttpObj;
        var DocObj;
        var UrlObj;
        var TargetFile;
        var ext;
        var len,readlen;
        var buf;

        // キャッシュフォルダ情報
        var Shell = new ActiveXObject("Shell.Application");
        var sFolder = new Enumerator(Shell.NameSpace(32).Items());    //←ここでエラー
        
        for(idx=BugWeb.DocumentCount-1;idx>=0;idx--) {
            DocObj = BugWeb.CreateDocumentViewObject(BugWeb.DocumentView[idx]);
            
            UrlObj = new URL(DocObj.URL);
            
            TargetFile = new FileEx(SavePath + '\' + UrlObj.filename);
            
            // 拡張子を取り出す&小文字に変換
            ext = TargetFile.extractExt();
            ext = ext.toLowerCase();
            
            // 拡張子で画像判断(JPEG、GIF、PNGのみ)
            if((ext==".jpg")||(ext==".jpeg")||(ext==".gif")||(ext==".png")) {
                
                pgsBar.position = 0;
                
                // ダウンロード先ファイルの存在チェック
                if(TargetFile.exists()) {
                    // 存在している場合、別ファイル名にする
                    TargetFile.filename = TargetFile.notExistsFileName();
                    lblMsg.caption =
                        UrlObj.filename + " を、" + TargetFile.extractName() + " にリネームしてダウンロード中・・・";
                    LogStr = UrlObj.filename + " -> " + TargetFile.extractName();
                }else{
                    lblMsg.caption = UrlObj.filename + " をダウンロード中・・・";
                    LogStr = UrlObj.filename;
                }
                
                repaint();


                //キャッシュから該当ファイルを見つける
                for(sFolder.moveFirst();!sFolder.atEnd;sFolder.moveNext){
                    if(sFolder.item().Path == UrlObj.filename){
                        //ファイルをコピー
                        sFolder.item().Copy(TargetFile.filename);
                    }
                }
            }
        }
        
        // ログ保存
        if(Log.count > 0) {
            Log.saveToFile(SavePath + '\DlJpeg.log');
        }
    }
}

class FileEx extends File {
    // 拡張子を除いたfilenameを返す
    function extractNoExt() {
        tmp = this.filename;
        
        for(idx=tmp.length-1;idx>=0;idx--) {
            if(tmp[idx]=='.') {
                return tmp.substring(0,idx);
            }
        }
    }
    
    // 存在していないファイルにリネーム
    function notExistsFileName()
    {
        // 小文字に変換
        fname = filename.toLowerCase();
        fext = extractExt();
        fext = fext.toLowerCase();
        
        // 拡張子削除
        fname = fname.replace(fext,"");
        
        findfile = new FileEx(fname + "_0" + fext);
        cnt = 0;
        
        while(findfile.exists()) {
            cnt++;
            findfile.filename = fname + "_" + cnt.toString() + fext;
        }
        
        return findfile.extractNoExt() + fext;
    }
}

// IEのProxyを得る
function GetInternetExplorerProxy()
{
    var reg = new RegIni('\Software\Microsoft\Windows\CurrentVersion');
    return reg.read('Internet Settings','ProxyServer','');
}


    // script main

    var Form = new ProgressDlg;
    if(Form.selectFolder()) {
        Form.show();
        Form.download();
    }

 ───────────────────────────────────────  ■題名 : Re:開いているURLが画像のものを保存  ■名前 : にゃ〜  ■日付 : 05/11/17(木) 13:10  -------------------------------------------------------------------------
   早速の作成 ありがとうございます。

>今のところ

当方の環境でも同様でした。

私はSCP(てか、開発言語は全部(恥))は全くわかりませんが、
ブラウザとファイラーの切り分けがうまくいかないために、フォルダを開けられない
と言うのは、ズレてますか?

BugBrowserにフォルダをドロップすると、開いたタブはファイラー
(エクスプローラー)として開いています。

BugBrowserがローカルのフォルダにアクセスした時点で、ブラウザからファイラーに切り替わる。
そのため、ブラウザ用のSCPが走らず、その先のSTEPに進まないのではないかと言う事です。

もしくは
function download() ですと、WEB手順(httpとかftp?)でのアクセスなので、
フォルダを開けられない とか。

素人の私ではこんな程度です。

もそっと簡単そうに思ったんですけど、甘かったですね。
VB-SCPを入れ子するなり、VB-SCPに明細ファイルを渡すなりする必要がありそうです。
「めんど〜なので、また今度」で結構です。お手数掛けてすいませんでした。Orz

PS:これからもお願いすることがあるかも知れませんが、よろしくお願いいたします。

 ───────────────────────────────────────  ■題名 : Re:開いているURLが画像のものを保存  ■名前 : EG6+  ■日付 : 05/11/17(木) 13:23  -------------------------------------------------------------------------
   ▼にゃ〜さん:
>早速の作成 ありがとうございます。
>
>>今のところ
>
>当方の環境でも同様でした。
>
>私はSCP(てか、開発言語は全部(恥))は全くわかりませんが、
>ブラウザとファイラーの切り分けがうまくいかないために、フォルダを開けられない
>と言うのは、ズレてますか?
>
>BugBrowserにフォルダをドロップすると、開いたタブはファイラー
>(エクスプローラー)として開いています。
>
>BugBrowserがローカルのフォルダにアクセスした時点で、ブラウザからファイラーに切り替わる。
>そのため、ブラウザ用のSCPが走らず、その先のSTEPに進まないのではないかと言う事です。
>
>もしくは
>function download() ですと、WEB手順(httpとかftp?)でのアクセスなので、
>フォルダを開けられない とか。
>
>素人の私ではこんな程度です。
>
>もそっと簡単そうに思ったんですけど、甘かったですね。
>VB-SCPを入れ子するなり、VB-SCPに明細ファイルを渡すなりする必要がありそうです。
>「めんど〜なので、また今度」で結構です。お手数掛けてすいませんでした。Orz
>
>PS:これからもお願いすることがあるかも知れませんが、よろしくお願いいたします。

スクリプトの限界もあるので
アドインとして直接EXE,DLLを実行できるようにすることも検討しています。

 ───────────────────────────────────────  ■題名 : Re:開いているURLが画像のものを保存  ■名前 : YAma  ■日付 : 05/11/18(金) 17:10  -------------------------------------------------------------------------
   上記のDMonky版をJScript版に変更してみましたが、今度はファイルコピーで躓きました。
VBScriptに移植すれば、機能は実現できそうですが、力尽きました・・・・

 ───────────────────────────────────────  ■題名 : Re:開いているURLが画像のものを保存  ■名前 : にゃ〜  ■日付 : 05/11/19(土) 13:34  -------------------------------------------------------------------------
   >アドインとして直接EXE,DLLを実行できるようにすることも検討しています。

>VBScriptに移植すれば、機能は実現できそうですが、力尽きました・・・・

お手数掛けまして あいすいません。(-_-;)

なにしろ使い勝手の良いブラウザなので、期待することもつい多くなってしまいます。
機能が実現することを 座してまっております。

いろいろご助力 ありがとうございました。

 ───────────────────────────────────────  ■題名 : Re:開いているURLが画像のものを保存への質問なのですが?  ■名前 : nukesaku  ■日付 : 06/1/30(月) 3:12  -------------------------------------------------------------------------
   「開いているURLがJpegのものをダウンロード Rel5」は、何処に在るのでしょうか?
ぜひ、教えてください。

 ───────────────────────────────────────  ■題名 : Re:開いているURLが画像のものを保存  ■名前 : こころく  ■日付 : 06/5/21(日) 14:31  -------------------------------------------------------------------------
   >>機能としては
>>・タブで開いているURLが「.jpg (.jpeg)」「.gif」「 .png」のファイルを保存する。
>>・ファイル名が重複している場合は、リネームして保存する。
>>・保存エラーはログファイルへの吐き出し or ダイアログ表示(明細付)を選択できる。
>
>この機能に関しては、「開いているURLがJpegのものをダウンロード Rel5」にて実装済み、もしくは少しの改造で満たせると思います。
>
>// 拡張子でJPEG判断
>if((ext==".jpg")||(ext==".jpeg")) {
>
>この行を
>// 拡張子で画像判断
>if((ext==".jpg")||(ext==".jpeg")||(ext==".png")||(ext==".gif")) {
>
>と、希望の拡張子を追加すれば問題ないと思います。
>
>

とありますが、僕もこの機能使いたいのですが、
どこでなにをどうすれば良いかわかりません。
初心者以下なので失礼ですがわかりやすく教えてください!

 ───────────────────────────────────────  ■題名 : Re:開いているURLが画像のものを保存  ■名前 : じゃで  ■日付 : 06/5/22(月) 10:54  -------------------------------------------------------------------------
   v4.11

 ───────────────────────────────────────  ■題名 : Re:開いているURLが画像のものを保存  ■名前 : あり  ■日付 : 06/6/8(木) 9:29  -------------------------------------------------------------------------
   「開いているURLがJpegのものをダウンロード Rel5」を実行すると

「Error : EScocketError
     「 OK 」    」

というエラーが出てダウンロードができません。

問題回避策はあるのでしょうか?

Windows 2000
IE 6.0 SP1
Bugweb 5.12.644

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 121