gotin blog

Whatever gotin wanna write

GreasemonkeyでGoogle Gearsをちょっとだけいじってみた

んですが、私の意図した使い方はできないようで、まぁそりゃそうだよなということでした。
私の意図した使い方ってのは、Greasemonkeyで何かアプリケーション的なものをつくったときに、それが扱うデータのストレージとしてGoogle GearsのDBを使う、ってことだったんです。が、Google GearsのDBはドメイン毎(もしかしてURLのパス毎?)に切られるようで(ってそりゃそうだよそうじゃなきゃ使えないわなぁ)どのページでGreasemonkeyアプリが動作しても共通のデータを扱えるようにしたいという私の馬鹿な野望は一瞬で崩れ去りました。残念でした自分。。。。

ちなみに↓こんなコードをgmacsで書いてexecして動作確認してみました。簡単に使えて便利そうです。gmacs的にはあんまり使えませんが。

(function() {
  var factory = null;
  if (typeof GearsFactory != 'undefined') {
    factory = new GearsFactory();
    if(!factory) return;
  }
  try {
    var db = factory.create('beta.database', '1.0');
    db.open('gotin-test');
    db.execute('create table if not exists Test' +
               ' (Phrase varchar(255), Timestamp int)');
    var currTime = new Date().getTime();
    db.execute('insert into Test values (?, ?)', ["test", currTime]);
    var rs = db.execute('select * from Test order by Timestamp desc');
    var index = 0;
    while (rs.isValidRow()) {
      if (index < 3) {
        debug(rs.field(0)+":"+rs.field(1));
      } else {
        db.execute('delete from Test where Timestamp=?', [rs.field(1)]);
      }
      ++index;
      rs.next();
    }
    rs.close();
  } catch (e) {
    debug(e);
  }
})();