Fork me on GitHub

2008/06/13


このエントリーをはてなブックマークに追加
あんまり確認してないですが...
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);
これで外部ファイルにパスワード保存しなくても良くなったりするかなぁ...

時間があまり無いので今度検証する。
Posted at 10:47 in ソフトウェア::firefox::tombloo
Tagged as: metaWeblog, tombloo
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip

2008/03/18


このエントリーをはてなブックマークに追加
rubyのをpythonに...
ブログにXML-RPC APIで、複数のファイルをアップロードするRubyスクリプト:Goodpic
pythonは楽でいいや。I love python!

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os, glob
import base64
import mimetypes
import xmlrpclib

if len(sys.argv) < 6:
  print "usage: url blogid username password path [files ... or directory]"
  sys.exit()

metaWeblog = xmlrpclib.Server(sys.argv[1]).metaWeblog
for arg in sys.argv[6:]:
  if os.path.isdir(arg): arg = os.path.join(arg,'*')
  for f in glob.glob(arg):
    print metaWeblog.newMediaObject(
      sys.argv[2], # blogid
      sys.argv[3], # username
      sys.argv[4], # password
      {
        'name' : "%s/%s" % (sys.argv[5], os.path.basename(f)),
        'type' : mimetypes.guess_type(f)[0] or 'application/octet-stream',
        'bits' : xmlrpclib.Binary(open(f, "rb").read())
      })

使い方は
upload.py http://your.blog.server/xmlrpc your-blog-id username password upload-directory [local files or directory]


AWSWORD:python:
Posted at 13:22 in ソフトウェア::lang::python
Tagged as: metaWeblog, python
Bookmarks: add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip