hatenadiary

time up.

 models.register( {
        name: 'HatenaDiary',
        ICON: 'http://d.hatena.ne.jp/favicon.ico',
        POST_URL : 'http://d.hatena.ne.jp',
        check : function (ps) {
                return ps.type.match(/^(regular|photo|link|quote)$/);
        },
        formatTagString: function (tags) {
        log("m");
                return tags ? tags.map( function (t) {
                        return "[" + t + "]";
                } ) : "" ;
        },
        converters: {
                'regular': {
                        regular: function (ps) {
                                return ps;
                        },
                        photo: function (ps) {

                        },
                        link: function (ps) {

                        },
                        quote: function (ps) {
                                return {
                                        title: this.formatTagString(ps.tags) + ps.page,
                                        body: <><blockquote class="tombloo_quote" cite={ps.pageUrl} title={ps.page}>{ps.body}</blockquote>{ps.description}</>.toString()
                                };
                        },
                }
        },
        post : function(params){
                var content;
                var self = this;
                models.HatenaBookmark.getToken().addCallback( function (token) {
                        content = self.converters.regular[params.type].call(self, params);
                        content.rkm = token;
                        return models.Hatena.getCurrentUser();
                }).addCallback( function (id) {
                        var endpoint = [self.POST_URL, id, "" ].join("/");
                        log(endpoint, content);
                        return doXHR( endpoint, {
                                method : 'POST',
                                mimeType: "application/x-www-form-urlencoded",
                                referrer    : endpoint,
                                sendContent : content
                        } );
                } );
        }
} );