随筆・ザの人

円い月の丸い兎 - そして誰もまるくなった -

( ´▽`)所詮この世は焼肉定食
( ´▽`)強ければ食い、弱ければ焼く

兎腹ポコー
プロフィール
最近のカテゴリ
料理[18]
雑記[381]
読書[34]
科学[79]
脳内[84]
動画[104]
映画[24]
Category:JavaScript
この随筆は、新しい「ザの人」にて絶賛新連載中です。
随筆の続きはこちら

07/03/18(Sun)

Category:JavaScript

ニコニコ動画のFLVファイルを保存するブックマークレット

ctime: 07/03/18(Sun) 23:15
ニコニコ動画の動画ファイルをダウンロードするためのブックマークレットを作りました。
IE、Firefox で動作確認済みです。

javascript:(function(){var e;try{document.flvplayer.GetVariable("o").match(/[\?&]link=([^&]+)/);document.getElementsByTagName("h1")[0].parentNode.innerHTML+="<a href=\""+unescape(RegExp.$1)+"\">[DOWNLOAD]</a>";}catch(e){;}})();void(0);

■使い方

まず最初に、適当なページをお気に入り (ブックマーク) に追加してください。
このとき、「ニコニコ動画を保存」という名前でお気に入りに入れます。
お気に入りを入れるフォルダはどこでもいいですが、
「ブックマークレット」というフォルダを作っておいたほうがいいでしょう。

次に、上に示した「javascript:〜」という文字列全体をコピーし、
先に作成した「ニコニコ動画を保存」というお気に入りの上で
右クリック→「プロパティ」でお気に入りのプロパティを開き、
URL の欄をコピーした文字列に置き換えて「OK」をクリックします。
IE ならショートカットエラーというのが出るかもしれませんが、
そこでは「はい」をクリックしてください。

以上でブックマークレットの準備は完了です。

07/02/12(Mon)

Category:JavaScript

( ´▽`)connect wired...

ctime: 07/02/12(Mon) 16:09
ついさっきうちの随筆に多量のトラックバックスパムを見つけたので、
トラックバック削除用のブックマークレットを作成して全部削除してきた。

ついでなので今回作成したのも含めて、
ザ掲示板・随筆専用のブックマークレットなどを紹介。

ブックマークレットというのは
「ブックマーク」 (IE なら「お気に入り」) に
簡単なプログラムを追加するようなものです。

ブックマークレットの作成については
何度か記事に書いているので↓の「準備」あたりを参考のこと。
YouTube の動画 (FLV ファイル) を動画一覧ページから保存する方法


■トラックバックの一括削除
javascript:(function(){var m,n,o,s="",i=0,r=RegExp,d=document,t=d.getElementsByTagName("dt");if(location.href.match(/(\d+)\.hito\.thebbs\.jp\/one\/(\d{10})/)&&!confirm("トラックバックの全削除を中止しますか?")){m=r.$1;n=r.$2;while(o=t[i++]){if(o.id.match(/^t(\d{10})$/)){s+="<img src='http://"+m+".hito.thebbs.jp/pin/Deldel?pheasant="+n+"&tb="+r.$1+"&ore="+m+"'>";}}d.close(d.write(s));}})();void(0);

開いた記事のトラックバックを全部削除します。
最近一つの記事に多量のトラックバックを
付けてくるスパムが多いので作ってみたやつです。

07/01/05(Fri)

Category:JavaScript

かき喰ふ髑髏

ctime: 07/01/05(Fri) 4:22
いつも思うんだけど例えば日付のフォーマットを指定できる関数 (JavaScript) ってどうなんだろう。
「"なんとか" + date.getFullYear() + "かんとか"」みたいに文字列を繋げれば、長ったらしい関数を用意するよりもよほど無駄がないはず。
しかしその「"なんとか" + date.getFullYear() + "かんとか"」みたいに、
区切り符や演算子と文字列と変数を長々と繋げていくのってあまり好きじゃない。

下は W3CDTF の日本時間の例。
タイムゾーンも書式を指定できるようにしたいところだけど
いい表記法が思い付かないのでパス。


alert(formatDate("YYYY-MM-DDThh:mm:ss+09:00", new Date()));

function formatDate(form, date) {
    function _(str) {
        var len = str.length;
        return !str.indexOf("%") ? str.charAt(1) :
            str == "YYYY" ? date.getFullYear().toString() :
            str == "YY" ? formatNum(date.getFullYear() % 100, 2) :
            !str.indexOf("M") ? formatNum(date.getMonth() + 1, len) :
            !str.indexOf("D") ? formatNum(date.getDay(), len) :
            !str.indexOf("h") ? formatNum(date.getHours(), len) :
Category:JavaScript

テンプラは豪雨、JavaScript どこへやら

ctime: 07/01/05(Fri) 3:07
要するによく使う関数を簡単にコードに追加できれば
無駄な時間を掛けずに済むわけだね。

function insertStr(str) {
    var n = 0;
    var arg = arguments;
    return str.replace(/%./g, function (c) {
        if (c == "%s") {
            n++;
            return String(arg[n]);
        }
        return c.charAt(1);
    });
}

function formatNum(num, len, adicnum, upper) {
    var str = num.toString(adicnum || 10);
    if (upper) {
        str = str.toUpperCase();
    }
    while (str.length < len) {
Category:JavaScript

練炭で首吊って死んで頂戴

ctime: 07/01/05(Fri) 1:35
<画像略>あーあ、やっと連番の展開ができるようになった。
再帰関数って結構問題出やすいのかしら?
そういえば最近どこかのスレで似たような話題に出くわした気がするけど。
とりあえず配列に治める方式でなんとかうまくいくようになりましたね。

何度やってもエラーばかりで散々原因を探っていたのですがなかなか見つからず苦労しました。
こういうときって大抵ちょっとしたミスが原因なんですが・・・。
このときは、cnt = [] とあらかじめ配列を代入するのを忘れていたことが原因でした。
function が funtion になっているというのも気付きにくいんですよね。
最近はエラーのメッセージの意味が分かってきたのですぐに分かりますが・・・。
エディタは TeraPad 使ってます。
因みに画像は私製の猿鶴と、見知らぬ誰かが作った軍団、発掘隊と称される YouTube のサルベージツールです。


function expandNum(ary, url) {
    var num;
    var min = [], max = [], def = [], len = [], cnt = [];
    var format = []; // 0: dec; 1: hex; 2: HEX;
    var i;

    function setNum() {

07/01/04(Thu)

Category:JavaScript

スタックオーバーフロー

ctime: 07/01/04(Thu) 16:26
function expandNum(ary, url) {
    var num;
    var min, max, def, format;
    var i;

    if (num = url.match(/\[([a-f\d]+)\-([a-f\d]+)(:([1-9]\d*))?\]/i)) {
        format = num[1].length;
        def = Number(num[4]) || 1;
        if (num[0].match(/[a-f]/)) {
            min = Number("0x" + num[1]);
            max = Number("0x" + num[2]);
            for (i = min; i <= max; i += def) {
                expandNum(ary, url.replace(/\[([a-f\d]+)\-([a-f\d]+)(:([1-9]\d*))?\]/i, formatNum(i, format, 16)));
            }
        }
        else if (num[0].match(/[A-F]/)) {
            min = Number("0x" + num[1]);
            max = Number("0x" + num[2]);
            for (i = min; i <= max; i += def) {
                expandNum(ary, url.replace(/\[([a-f\d]+)\-([a-f\d]+)(:([1-9]\d*))?\]/, formatNum(i, format, 16, true)));
            }

06/12/16(Sat)

Category:JavaScript

Windows Script Encoder。解読せずとも丸わかりというネタ。

ctime: 06/12/16(Sat) 1:04
( ´▽`)よーし!今日は、Windows Script Encoder の小ネタを書いちゃうね!

Windows Script Encoder というのは、Microsoft が公開する、
JavaScript/JScript や VBScript などを暗号化するためのソフトです。

http://www.microsoft.com/downloads/details.aspx?FamilyID=2976ee94-bec5-4314-84fd-8d7ec891c1c5&DisplayLang=ja

目的は人それぞれでしょうが、コードの閲覧・盗用を難しくすることを目的としています。
暗号化されたスクリプトは、Internet Explorer 5.0 以降でなければ実行できないという欠点はありますが、
JavaScript や VBScript でよく行われるコードの難読化の方法とは違い、
暗号化されたコードを読むだけでは復号化の方法は分からないという特徴があります (ただし暗号強度は低いです)。

例として、暗号化前と暗号化後のソースを書いておきます。

■暗号化前

<HTML>
<HEAD>
<TITLE>Script Encoder Sample Page</TITLE>
<SCRIPT LANGUAGE="JScript">
<!--//

06/12/06(Wed)

Category:JavaScript

且或

ctime: 06/12/06(Wed) 2:31
いやいやちょっとした手違いですって。

三度目の正直と言うじゃないか、アッハッハ・・・(´▽`; )


if (hito_num <= hito_min && count_404 < 200) {
    setTimeout(request, 1);
}
else {
    finishRequest();
}


if (hito_num <= hito_min || count_404 < 200) {
    setTimeout(request, 1);
}
else {
    finishRequest();
}

06/11/26(Sun)

Category:JavaScript

着眼リスト→逆着眼リスト用の JavaScript

ctime: 06/11/26(Sun) 11:56
読む人いないかもしれないけど「着眼リスト→逆着眼リスト」の変換を行うために作った、
JavaScript のコードでも解説しときます。
元データ、つまり誰を着眼しているかのリストの書式はこのような感じです。

編集後記マニア>
フワフワ>
>
りりかタン>
>
黄金旅程>729,122,6554,3467,0,28,763,419,6399
>
Шион.К/黒風紫苑>
朝霧 澪>
でたらめ家【★】大佐>23172,18054,17230,25432,2218,2073,22491,……
朝霧 澪>

これを、誰から着眼されているかというリストに並べ替えるわけです。
そこで、適当に main という関数を作ります。

function main() {

06/10/27(Fri)

Category:JavaScript

私モ Ajax ニテゲーム仕上候哉

ctime: 06/10/27(Fri) 2:45
このサイトしばらく見てゐなかつたけど、
更新は完全にストップされてしまつたやうですね。

Ajax でエロゲーを作るブログ
http://d.hatena.ne.jp/AjaxEroge/

Ajax でのリクエストに對してサーバーが動的なレスポンスを返すのなら
Ajax の特徴が有效に活用できさうなんだけど、
このゲームの場合サーバーに XML のデータを置いておくだけだから、
實際のところ、データを全部 JS フアイルにぶち込む方式で十分なんですよね。
そこをあへて Ajax でやるといふところに醍醐味があるのでせう。

ただ JavaScript の變數としてデータを保存するなら、
配列やオブジエクトを使ふ必要があるので、
データの扱ひやすさでは XML を讀み込む Ajax の方がいいかもしれませんがね。

讀み込まれたことのない畫像に切り替へるとき
ロードに時間が時間が掛かつてしまふといふところは問題有り、
あらかじめプリロードさせる必要があるでせうね。

オンラインだと新しいデータを讀み込ませるのに時間が掛かるから
私の場合はローカルで使ふことを前提にした JavaScript とか HTA を作ることが多いけど、
ちよつと暇が開いたら Ajax でのブラウザゲームでも作つてみようかな、なんて・・・。

06/10/05(Thu)

Category:JavaScript

逆着眼リストを更新 ver.0.02

ctime: 06/10/05(Thu) 4:11
リストの読み込み作業などを全て .exe ファイルにやらせることにしました。
前よりはだいぶ軽くなっていると思います。

ソースは hito.c です。全然コメントを入れていないので読みにくいかも知れませんが・・・。
おかげで js ファイルは物凄くシンプルになりました (笑)。


ダウンロードはこちらからできます。
http://briefcase.yahoo.co.jp/bc/address_itadaki05/lst?&.dir=/7236/7bf3

使う前に、ZIPファイル (圧縮フォルダ) から GyakuChakugan フォルダを外に取り出すことを忘れないでくださいね、くれぐれも・・・。

06/10/04(Wed)

Category:JavaScript

逆着眼リストのエラーの原因?

ctime: 06/10/04(Wed) 1:22
どうも逆着眼リストでエラーが発生して実行できないというトラブルが多いようですが、
どうも ZIP ファイル (圧縮フォルダ) を展開せずに、そのまま GyakuChakugan.hta を開いている場合があるようです。

動かないという人は、ZIP ファイルの中の GyakuChakugan というフォルダごと別の場所に取り出してからもう一度 GyakuChakugan.hta を開いてみてください。

06/10/03(Tue)

Category:JavaScript

js を C に変える

ctime: 06/10/03(Tue) 3:14
やはり環境によっては JScript だと重すぎることがあるみたいなので、
取り合えず hito.js を参考に C 言語の方式に変えようと思います。
一応 HTA で動かすつもりですけどね。

06/10/02(Mon)

Category:JavaScript

( ´▽`)ヤター!逆着眼リスト復活祭だネ!

ctime: 06/10/02(Mon) 2:18
HTA 式の逆着眼リストが完成しました。
以前公開されていたネット上で見られるものとは違ってダウンロードして使います。
実行ファイルが怖い人は、全部テキストデータなのでソースを見てください。

http://briefcase.yahoo.co.jp/bc/address_itadaki05/lst?.dir=/7236/7bf3

なぜCGIを使わないのかって?・・それは私の実力不足だからですよ。
がんばって自分で新しい着眼リストファイルを上書きしてください。
(リストを更新したら、上と同じページに載せると思います)。

因みに現在のデータは 2006年9月28日の0:00〜3:00に更新されたものです。

06/09/29(Fri)

Category:JavaScript

トスリ眼着逆

ctime: 06/09/29(Fri) 1:02
とりあえずデータファイルは完成。
3 時間掛けて収集した着眼リストを逆着眼リストへと並べ替え。

しかしデータの解析どうしようかな。
C 言語なら高速でできるけどまだまだ不慣れ、
JScript は得意分野だし、文字列の処理も楽だけど下手するとかなり時間が掛かってしまう。

どうするかなぁ。


とりあえず「編集後記マニア」着眼数がずば抜けて大きいことは分かりました。

06/09/28(Thu)

Category:JavaScript

逆着眼リスト

ctime: 06/09/28(Thu) 2:41
0 時ぐらいからずっと逆着眼リストのデータを収集しています。
思ったより長引いていますがあと 1 時間ぐらいで終わりそうです。
総データ量はフロッピー 1 枚分近くと予想。

06/09/27(Wed)

Category:JavaScript

逆着眼リストを作ろう

ctime: 06/09/27(Wed) 3:33
逆着眼リスト作成の基礎部分。
0 番から順に名前と着眼先の番号を配列に詰めていきます。
その仮定を見やすくしたもの。

1 秒に 3 〜 4 回ぐらいロードするから計算上は 2 時間程度で全リストが完成することになるかな?

後は末端の番号を検出する仕組みとか、ログファイルへの出力機構などを付ければ一応簡易版は完成。


■以下 chakugan.hta

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>逆着眼リスト作成</title>
<script type="text/jscript" src="./main.js"></script>
</head>
<body>
<form name="fm" action="#" onsubmit="return false">

06/09/26(Tue)

Category:JavaScript

逆着眼リスト?

ctime: 06/09/26(Tue) 0:07
猿ツールで学んだ (?) 技術を応用して逆着眼リスト作成ツールを HTA で作ってみるのも面白いかも知れない。

逆着眼リスト消滅しちゃったからね。
問題は 2 万以上あるリストを全部読み取るのに何時間かかるかということと、
そのような長期動作に絶えられるのかと言うことだけど・・・

06/09/24(Sun)

Category:JavaScript

TubeMonkey ver.0.03

ctime: 06/09/24(Sun) 0:20
YouTubeの削除された動画を発見するツールです。

ver.0.02よりもいくらか高速化、効率化し、
settings.iniから設定を変更できるようにしました。
序でにダウンロードマネージャソフトのIrvineを起動し、
発見したURLを自動でダウンロードする機能も加えました。

http://briefcase.yahoo.co.jp/bc/address_itadaki05/lst?.dir=/7236/9fe9

06/09/18(Mon)

Category:JavaScript

TubeMonkey ver.0.02

ctime: 06/09/18(Mon) 23:16
YouTubeの削除された動画用の復元ツールが一応できました。

http://briefcase.yahoo.co.jp/bc/address_itadaki05/lst?.dir=/7236/9fe9

YouTubeの削除された動画のURLかIDを入れてボタンを押せば勝手に検索してくれます。

ときどき見つからない場合がありますが、その URL か ID だけを再度検索すると出てくる場合があります。

動画をどうやって再生すればいいのかは「youtube 動画 保存」とでも検索すればいくらでも出てくるはずです。

まだ試作段階なので、使用は自己責任でお願いします。
別の作業をしているときに突然エラーが発生してこれまでの作業が水の泡、なんてことになっても責任取れません。

サーバーリストファイル (youtube_serverlist.txt) はYouTubeの動画のサーバーが変化した場合は内容を更新する必要があります。
更新されたときのサーバーリストは自分で探してください。


と、一通りの説明終わり。
全部テキストデータでできているのでメモ帳で開いて内容が確認できます (パラメータはいじらない方がいいかも)。
やっとまともに動作するようになりました。
今度は正規表現も外部ファイル化しようかね。
あと自動保存の機能も付けたいところ。
recent 《   》 past
thebbs.jp