最優良回答者には500pt~。あるサイトにファイルの(jpegやpdfなど)アップロードがあったら、通知してくれるソフトみたいなものを探しています。たとえばhttp://www.example.com/a/という階層があり、これに1.pdfがアップロードされhttp://www.example.com/a/1.pdfになったら、即時に自分に通知されるようにしたいのです。つまり、あるサイトの【重さ】が変わったら自分に通知されるようなソフトです。すでにWWWCというソフトは試しており、あるページのテキスト内容が変更されたら、通知されるソフトは確認してますが、アップロードされたら通知されるソフトは見つかりません。このようなソフトがありましたら、日本のでも海外のものでもけっこうですし、参考になる情報などがありましたら、教えてください。私にとって有益なソフトや情報ならば、けっこうポイントは弾む予定です。

回答の条件
  • 1人2回まで
  • 登録:2006/09/22 13:41:37
  • 終了:2006/09/25 12:18:39

ベストアンサー

id:llusall No.1

llusall回答回数505ベストアンサー獲得回数612006/09/22 15:54:45

ポイント500pt

Ajaxを使用して作ってみました。


IE6で動作確認しました。(セキュリティのブロックは許可してください。)

FireFox1.5は、セキュリティ上動作しませんでした。

セキュリティの設定が可能であれば動作すると思うのですが、わかりませんでした。


「ajax.html」等、適当な名前で保存してダブルクリックしてください。

<html>

<body>

チェックするファイル<br>

<input type="text" id="txtFile" value="http://www.example.com/a/1.pdf" style="width:500px;"><br><br>

チェックする間隔[分]<br>

<input type="text" id="txtMin" value="1"><br><br>

<input type="button" name="start" value="開 始" onclick="StartChk();">

<input type="button" name="start" value="停 止" onclick="StopChk();alert('停止しました');">

<br>

<br>

<br>

現在の状況:<span id="result">まだ無い</span><br><br>

最終確認日時:<span id="chkdate"></span>

<script LANGUAGE="JavaScript">

<!--

var tmr = null;

function StartChk(){

    var chkdate = document.getElementById("chkdate");

    var result  = document.getElementById("result");

    if (navigator.userAgent.indexOf("Firefox") > -1) {

        chkdate.textContent = "";

        result.textContent  = "まだ無い";

    }else{

        chkdate.innerText   = "";

        result.innerText    = "まだ無い";

    }

    result.style.color = "black";

    SiteCheck();

    var min = document.getElementById("txtMin").value;

    tmr = setInterval("SiteCheck();", min * 60 * 1000);

}

function StopChk(){

    if (tmr) {

        clearInterval(tmr);

    }

}

function SiteCheck(){

    var result = document.getElementById("result");

    var url = document.getElementById("txtFile").value;

    var httpObj = createXMLHttpRequest();

    if (!httpObj){

        StopChk();

        alert("ERROR");

        return false;

    }

    if (navigator.userAgent.indexOf("Firefox") > -1) {

        chkdate.textContent = "確認中";

    }else{

        chkdate.innerText   = "確認中";

    }

    httpObj.open("HEAD",url,false);

    httpObj.send(null);

    var dt = new Date();

    if (navigator.userAgent.indexOf("Firefox") > -1) {

        chkdate.textContent = dt;

    }else{

        chkdate.innerText   = dt;

    }

    if (httpObj.status == "200"){

        if (navigator.userAgent.indexOf("Firefox") > -1) {

            result.textContent = "キター!";

        }else{

            result.innerText   = "キター!";

        }

        result.style.color = "red";

        StopChk();

    }

}

// HTTP通信用、共通関数

function createXMLHttpRequest()

{

    var XMLhttpObject = null;

    try{

        XMLhttpObject = new XMLHttpRequest();

    }catch(e){

        try{

            XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");

        }catch(e){

            try{

                XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");

            }catch(e){

                return null;

            }

        }

    }

    return XMLhttpObject;

}

// -->

</script>

</body>

</html>

id:kenpo43

おおっ、スゴイ。プログラムはよくわかりませんが、とにかく試してみます。

…試しました。すごいです。とりあえず、以後の回答にかかわらず500pt贈呈します。ありがとうございました。

●えっと、はてなポイント3000~6000ptぐらいで、今回のプログラムを改良したものを作ってもらえないでしょうか。

一応、現段階で欲しいと思う機能は、

1,チェックするファイルを10個ぐらいに増やし、どのファイルがアップされたが簡単にわかるようにする。

2,その他はおまかせ。あるいは、相談しながら決めるなどです。

3,またこれとは異なるプログラムだと思いますが、正規表現のような指定はできないものでしょうか。たとえば、3桁の10*.txt

でチェックなどした場合、実際に存在していた、103.txtと105.txtが一覧結果としてでてきたりとかです。




 給料?は、はてなポイントで送信するか、新たな質問ページを作り、そこで改良プログラムを見せてもらい、回答ポイントとして

3000pt~6000ptを贈呈するということでどうでしょうか。


一応9月23日の23時まで返答お待ちしております。

2006/09/23 02:03:11

その他の回答(3件)

id:llusall No.1

llusall回答回数505ベストアンサー獲得回数612006/09/22 15:54:45ここでベストアンサー

ポイント500pt

Ajaxを使用して作ってみました。


IE6で動作確認しました。(セキュリティのブロックは許可してください。)

FireFox1.5は、セキュリティ上動作しませんでした。

セキュリティの設定が可能であれば動作すると思うのですが、わかりませんでした。


「ajax.html」等、適当な名前で保存してダブルクリックしてください。

<html>

<body>

チェックするファイル<br>

<input type="text" id="txtFile" value="http://www.example.com/a/1.pdf" style="width:500px;"><br><br>

チェックする間隔[分]<br>

<input type="text" id="txtMin" value="1"><br><br>

<input type="button" name="start" value="開 始" onclick="StartChk();">

<input type="button" name="start" value="停 止" onclick="StopChk();alert('停止しました');">

<br>

<br>

<br>

現在の状況:<span id="result">まだ無い</span><br><br>

最終確認日時:<span id="chkdate"></span>

<script LANGUAGE="JavaScript">

<!--

var tmr = null;

function StartChk(){

    var chkdate = document.getElementById("chkdate");

    var result  = document.getElementById("result");

    if (navigator.userAgent.indexOf("Firefox") > -1) {

        chkdate.textContent = "";

        result.textContent  = "まだ無い";

    }else{

        chkdate.innerText   = "";

        result.innerText    = "まだ無い";

    }

    result.style.color = "black";

    SiteCheck();

    var min = document.getElementById("txtMin").value;

    tmr = setInterval("SiteCheck();", min * 60 * 1000);

}

function StopChk(){

    if (tmr) {

        clearInterval(tmr);

    }

}

function SiteCheck(){

    var result = document.getElementById("result");

    var url = document.getElementById("txtFile").value;

    var httpObj = createXMLHttpRequest();

    if (!httpObj){

        StopChk();

        alert("ERROR");

        return false;

    }

    if (navigator.userAgent.indexOf("Firefox") > -1) {

        chkdate.textContent = "確認中";

    }else{

        chkdate.innerText   = "確認中";

    }

    httpObj.open("HEAD",url,false);

    httpObj.send(null);

    var dt = new Date();

    if (navigator.userAgent.indexOf("Firefox") > -1) {

        chkdate.textContent = dt;

    }else{

        chkdate.innerText   = dt;

    }

    if (httpObj.status == "200"){

        if (navigator.userAgent.indexOf("Firefox") > -1) {

            result.textContent = "キター!";

        }else{

            result.innerText   = "キター!";

        }

        result.style.color = "red";

        StopChk();

    }

}

// HTTP通信用、共通関数

function createXMLHttpRequest()

{

    var XMLhttpObject = null;

    try{

        XMLhttpObject = new XMLHttpRequest();

    }catch(e){

        try{

            XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");

        }catch(e){

            try{

                XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");

            }catch(e){

                return null;

            }

        }

    }

    return XMLhttpObject;

}

// -->

</script>

</body>

</html>

id:kenpo43

おおっ、スゴイ。プログラムはよくわかりませんが、とにかく試してみます。

…試しました。すごいです。とりあえず、以後の回答にかかわらず500pt贈呈します。ありがとうございました。

●えっと、はてなポイント3000~6000ptぐらいで、今回のプログラムを改良したものを作ってもらえないでしょうか。

一応、現段階で欲しいと思う機能は、

1,チェックするファイルを10個ぐらいに増やし、どのファイルがアップされたが簡単にわかるようにする。

2,その他はおまかせ。あるいは、相談しながら決めるなどです。

3,またこれとは異なるプログラムだと思いますが、正規表現のような指定はできないものでしょうか。たとえば、3桁の10*.txt

でチェックなどした場合、実際に存在していた、103.txtと105.txtが一覧結果としてでてきたりとかです。




 給料?は、はてなポイントで送信するか、新たな質問ページを作り、そこで改良プログラムを見せてもらい、回答ポイントとして

3000pt~6000ptを贈呈するということでどうでしょうか。


一応9月23日の23時まで返答お待ちしております。

2006/09/23 02:03:11
id:shun262 No.2

shun262回答回数95ベストアンサー獲得回数32006/09/22 16:08:50

URLが分からなければアップロードしたことが分からないと思いますが。

自分のサイトなら、CGIなどをおいてチェックする方法がありますが、他の人のサイトでファイル名が分からないファイルをチェックする方法は少なくとも私は知りません。(無いと思います)

もしそれが可能なら、隠しページの様なものは無意味ですよね。

仮に、トップページからリンクが張られるのであれば、はてなアンテナやWWWCなどでもいいと思いますが。

ちなみに、「1.pdfとか2.jpgとかを総当たりで調べればいいじゃん」という考え方は、相手サイトのサーバに負荷をかけたり、その他いろいろ大変ですのでご遠慮ください。

id:kenpo43

了解

2006/09/22 16:34:19
id:k_gori No.3

k_gori回答回数97ベストアンサー獲得回数62006/09/22 16:09:34

DiffBrowser

http://www.vector.co.jp/soft/win95/net/se356221.html

前回チェック時との相違部分を表示してくれます。リンク部分は指定のブラウザで開くことができ、表示部分の範囲もキーワードで指定することができます。リンクが追加されれば表示できますが、どうでしょうか?

id:kenpo43

これでは、アップロードされても、リンクが貼られなければわからないので、ダメです。WWWCでもこの方法は試しました。すいません。

2006/09/22 16:25:21
id:b-wind No.4

b-wind回答回数3344ベストアンサー獲得回数4402006/09/22 23:49:15

前提条件がよく分からないんですが、

自サーバーなら、

・cron で監視。

・特定ディレクトリ以下を監視する CGI 等を設置。

・アップロード自体が CGI で行われるならその CGI で通知も行う。

・アップロードが FTP 等で行われるならログを監視。

等が考えられます。

自分でいじることが出来ないサーバーであれば予測されるファイル名を総当りでチェックするぐらいしか思い当たりません。

  • id:llusall
    kenpo43さん。

    おはようございます。
    お返事は、はてなポイント送信にて送ってみました。
    ご覧になってください。
  • id:kenpo43
    了解しました。それでは、llusallさまの要望・仕様でかまいませんので、発注します。よろしくお願いいたします。対価はプログラムをこちらで簡単にチェックした後、ポイント送信します。それでは、完了しましたら、今回の質問のコメント or ポイント送信にてお知らせください。
  • id:llusall
    kenpo43 さん。
    たくさんのポイントありがとうございました。
    不具合等ございましたら、遠慮なく申し付けてください。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません