新しいblogに移行しました

新ブログ "All Yout Bugs Are Belong To Ass" に移行しました!

2010-07-28

[JavaScript]ただ単純にTwitterのTLを自動リロードするだけのブックマークレット

タイトルのまんまです。
とりあえずJimbezameという仮の名前をつけておきます。
javascript:(
  function(e){
    setInterval(
      function(){
        if(parseInt($('#new_results_notification').css('height'))>0){
          $('#results_update').trigger('click');
        }
      },3000
    );
    alert('Jimbezame, ready ok.');
  }
)(document)

2012/6/16 追記
新しいTwitter webに対応したバージョンです。
javascript:(
  function(e){
    setInterval(
      function(){
        if($('div.new-tweets-bar')){
          $('div.new-tweets-bar').click();
        }
      },3000
    );
    alert('Jimbezame, ready ok.');
  }
)(document)

2010-07-27

[JavaScript]今見てるページをTwitterにPOSTするブックマークレット

ChromeやFirefoxなんか使ってWebを色々見てるときに、ふと
「このページ、TwitterにPOSTしとこ!」
とか思い立ったりするんですけど、これ、まともにやると意外と手間なんですよねえ。
ページのタイトルコピーして、新しいタブ開いて、Twitterにアクセスして、タイトルをペースト。
まだまだ!さらにもいっちょ新規タブ開けてbit.lyにアクセス!でもって元ページのURLコピってbit.lyにペーストしてshortenボタンクリックして、出てきたURLコピって、Twitterのタブ開けてペーストして、ようやくつぶやける。非常に面倒です。

あ、それHootなんたらでとかいう野暮はナシでお願いします。

さて、こんな面倒なもんやってられっけー!という向きには、ブックマークレットを用意しましたので、使ってやってください。
但し!使う前に、若干手間をかけてもらいます。

bit.lyにアカウントを作る

bit.lyにアクセスして、アカウントを作って下さい。

bit.ly API Keyを取得する

bit.lyのアカウントを作ったら、your bit.ly API Keyにアクセスして、loginとAPI Keyをコピーします。

ブックマークレットのソースを書き換える

以下、ブックマークレットのソースです。適当にコピーしてエディタとかに貼り付けて下さい。
javascript:(
  function(e){
    var login="your_account";
    var apiKey="********";
    var bitlyURL='http://api.bit.ly/shorten?version=2.0.1&format=json&callback=cb&login='+login+'&apiKey='+apiKey+'&longUrl=';
    var cbfunc = e.createElement('script');
    cbfunc.type = 'text/javascript';
    cbfunc.innerText = 'function cb (res){var jumpURL="http://twitter.com/home?status="+encodeURIComponent(document.title+" "+res.results[location.href]["shortUrl"]);location.href=jumpURL;};';
    e.body.appendChild(cbfunc);
    var script = e.createElement('script');
    script.type = 'text/javascript';
    script.src = bitlyURL+encodeURIComponent(location.href);
    e.body.appendChild(script);
  }
)(document)

このソースコードのうち、この部分の値
var login="your_account";
    var apiKey="********";
を、先ほど取得したbit.lyのアカウント(login)とAPI Keyに置き換えて下さい。

書き換えたソースをブックマークレットとして登録する

あとは、ブラウザのブックマークの管理等を開き、新しいブックマーク(名前はご自由にどうぞ)として、出来上がったソースをアドレス部分にペーストして登録します。これがブックマークレットとなります。

使い方

・まず、TwitterにPOSTしたいと思ってるページにアクセス。
・次に、先ほど作成したブックマークレットをクリック。
・Twitterにアカウントがあってログイン状態なら、そのままtweetできる状態となっています。

注意!!

絶対に自分や他人のAPIKeyやloginが含まれた状態でこのブックマークレットを公開したり配布しないように!
最悪の場合、bit.ly APIにアクセス出来なくなって、結果的にTwitterへのPOSTが上手くいかなくなる恐れがあります。

2010-07-08

[Perl]Catalystのフィルタプラグインを書く

フィルタプラグイン

ここで云う「フィルタプラグイン」ってのは、従来の出力結果を書き換えるプラグインのことです。まんまですね。
で、肝となるのは以下3点。

1. Pluginなのでuse Moose::Role
2. フィルタなのでfinalizeで色々するけど、基本はoverride finalize
3. finalizeは$c->next::method( @_ )をreturnする

例えば、水を汁に置き換える

但し、body内のデータはUTF-8であることが前提です。
package WaterToJuice;
use Moose::Role;

override finalize => sub {
    my $c = shift;
    $c->res->{ body } =~ s/水/汁/g;
    return $c->next::method( @_ );
};

1;
__END__