tomblooハックス - share on WordPressのためのMetaWeblog API poster « ku
MetaWeblog APIはWordPressだけでなくMovableTypeでもサポートされているのでMovableTypeでも使うことができる。ただユーザ名とAPI用パスワードの設定を簡単にはできないので、ファイルに直接書くことになる。
--- 90_MetaWeblog.js.orig Fri Jun 13 10:45:53 2008
+++ 90_MetaWeblog.js Fri Jun 13 10:48:48 2008
@@ -427,11 +427,23 @@
var endpointUri = createURI(this.endpoint);
var hostname = endpointUri.prePath;
var formSubmitURL = endpointUri.prePath;
- var httprealm = null;
- var logins = lm.findLogins({}, hostname, formSubmitURL, httprealm);
+ var logins = lm.findLogins({}, hostname, formSubmitURL, null);
var loginInfo = logins.shift();
if ( ! loginInfo ) {
- throw "No login infomation found. Please make Firefox remeber your login information at " + this.endpointUri.replace(/\bxmlrpc\b/, 'wp-login');
+ var ps = Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Ci.nsIPromptService);
+ var [user, pass] = [{ value : null }, { value : null }];
+ var ret = ps.promptUsernameAndPassword(
+ window, formSubmitURL, "tombloo metaWeblog poster", user, pass, null, {});
+ if(ret){
+ var nsLoginInfo = new Components.Constructor(
+ "@mozilla.org/login-manager/loginInfo;1", Ci.nsILoginInfo, "init");
+ loginInfo = new nsLoginInfo(
+ formSubmitURL, formSubmitURL, null, user.value, pass.value, '', '');
+ passwordManager.addLogin(loginInfo);
+ }
+ if ( ! loginInfo ) {
+ throw "No login infomation found. Please make Firefox remeber your login information at " + this.endpointUri.replace(/\bxmlrpc\b/, 'wp-login');
+ }
}
var mw = new MetaWeblogAPI(loginInfo.username, loginInfo.password, this.endpoint);
これで外部ファイルにパスワード保存しなくても良くなったりするかなぁ...時間があまり無いので今度検証する。