﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Keep it silent</title><link>http://www.cppblog.com/fanxes/</link><description>yugi@fanxes</description><language>zh-cn</language><lastBuildDate>Sat, 04 Apr 2026 07:43:30 GMT</lastBuildDate><pubDate>Sat, 04 Apr 2026 07:43:30 GMT</pubDate><ttl>60</ttl><item><title>一段提交文章到cppblog的代码</title><link>http://www.cppblog.com/fanxes/archive/2010/09/15/126689.html</link><dc:creator>yugi</dc:creator><author>yugi</author><pubDate>Wed, 15 Sep 2010 12:37:00 GMT</pubDate><guid>http://www.cppblog.com/fanxes/archive/2010/09/15/126689.html</guid><wfw:comment>http://www.cppblog.com/fanxes/comments/126689.html</wfw:comment><comments>http://www.cppblog.com/fanxes/archive/2010/09/15/126689.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/fanxes/comments/commentRss/126689.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/fanxes/services/trackbacks/126689.html</trackback:ping><description><![CDATA[
<h1>一段提交文章到cppblog的代码</h1>

<h2>实现:</h2>

<div class="codehilite"><pre><code><span style="color: #408080; font-style: italic"># -*- coding: utf-8 -*-</span>

<span style="color: #008000; font-weight: bold">import</span> <span style="color: #0000FF; font-weight: bold">xmlrpclib</span> <span style="color: #008000; font-weight: bold">as</span> <span style="color: #0000FF; font-weight: bold">rpc</span>


<span style="color: #008000; font-weight: bold">class</span> <span style="color: #0000FF; font-weight: bold">Poster</span>(<span style="color: #008000">object</span>):

    service_url_tpl <span style="color: #666666">=</span> <span style="color: #BA2121">'http://www.cppblog.com/</span><span style="color: #BB6688; font-weight: bold">%s</span><span style="color: #BA2121">/services/metaweblog.aspx'</span>

    <span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">__init__</span>(<span style="color: #008000">self</span>, usr_name<span style="color: #666666">=</span><span style="color: #BA2121">'your_name'</span>, usr_pwd<span style="color: #666666">=</span><span style="color: #BA2121">'your_pwd'</span>):
        <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_name <span style="color: #666666">=</span> usr_name
        <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_pwd <span style="color: #666666">=</span> usr_pwd
        <span style="color: #008000">self</span><span style="color: #666666">.</span>service_url <span style="color: #666666">=</span> <span style="color: #008000">self</span><span style="color: #666666">.</span>service_url_tpl <span style="color: #666666">%</span> usr_name
        <span style="color: #008000">self</span><span style="color: #666666">.</span>_s <span style="color: #666666">=</span> rpc<span style="color: #666666">.</span>ServerProxy(<span style="color: #008000">self</span><span style="color: #666666">.</span>service_url)

    <span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">login</span>(<span style="color: #008000">self</span>):
        <span style="color: #008000; font-weight: bold">try</span>:
            rv <span style="color: #666666">=</span> <span style="color: #008000">self</span><span style="color: #666666">.</span>_s<span style="color: #666666">.</span>blogger<span style="color: #666666">.</span>getUsersBlogs(<span style="color: #BA2121">''</span>, <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_name, <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_pwd)
            <span style="color: #008000; font-weight: bold">if</span> rv:
                <span style="color: #008000">self</span><span style="color: #666666">.</span>blog_id <span style="color: #666666">=</span> rv[<span style="color: #666666">0</span>][<span style="color: #BA2121">'blogid'</span>]
                <span style="color: #008000; font-weight: bold">return</span> <span style="color: #008000">True</span>
        <span style="color: #008000; font-weight: bold">except</span> rpc<span style="color: #666666">.</span>Error, e:
            <span style="color: #008000; font-weight: bold">print</span> <span style="color: #BA2121">'RPC_ERROR'</span>, e
        <span style="color: #008000; font-weight: bold">except</span> <span style="color: #D2413A; font-weight: bold">Exception</span>, e:
            <span style="color: #008000; font-weight: bold">print</span> <span style="color: #BA2121">'ERROR'</span>, e
        <span style="color: #008000; font-weight: bold">return</span> <span style="color: #008000">False</span>

    <span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">add_post</span>(<span style="color: #008000">self</span>, title, content, category<span style="color: #666666">=</span><span style="color: #008000">None</span>, is_publish<span style="color: #666666">=</span><span style="color: #008000">False</span>):
        <span style="color: #008000; font-weight: bold">import</span> <span style="color: #0000FF; font-weight: bold">datetime</span> <span style="color: #008000; font-weight: bold">as</span> <span style="color: #0000FF; font-weight: bold">dt</span>
        post <span style="color: #666666">=</span> {
            <span style="color: #BA2121">'dateTime'</span>:         dt<span style="color: #666666">.</span>datetime<span style="color: #666666">.</span>now(),
            <span style="color: #BA2121">'description'</span>:      content,
            <span style="color: #BA2121">'title'</span>:            title,
        }
        <span style="color: #008000; font-weight: bold">if</span> category:
            post[<span style="color: #BA2121">'categories'</span>] <span style="color: #666666">=</span> [category]

        rv <span style="color: #666666">=</span> <span style="color: #008000">self</span><span style="color: #666666">.</span>_s<span style="color: #666666">.</span>metaWeblog<span style="color: #666666">.</span>newPost(<span style="color: #008000">self</span><span style="color: #666666">.</span>blog_id, <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_name,
                <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_pwd, post, is_publish)
        <span style="color: #008000; font-weight: bold">return</span> rv

    <span style="color: #AA22FF">@property</span>
    <span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">categories</span>(<span style="color: #008000">self</span>):
        rv <span style="color: #666666">=</span> <span style="color: #008000">self</span><span style="color: #666666">.</span>_s<span style="color: #666666">.</span>metaWeblog<span style="color: #666666">.</span>getCategories(<span style="color: #008000">self</span><span style="color: #666666">.</span>blog_id,
                <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_name, <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_pwd)
        <span style="color: #008000; font-weight: bold">return</span> [(e[<span style="color: #BA2121">'categoryid'</span>], e[<span style="color: #BA2121">'title'</span>]) <span style="color: #008000; font-weight: bold">for</span> e <span style="color: #AA22FF; font-weight: bold">in</span> rv]

    <span style="color: #AA22FF">@property</span>
    <span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">recent_posts</span>(<span style="color: #008000">self</span>):
        <span style="color: #008000; font-weight: bold">return</span> <span style="color: #008000">self</span><span style="color: #666666">.</span>_s<span style="color: #666666">.</span>metaWeblog<span style="color: #666666">.</span>getRecentPosts(<span style="color: #008000">self</span><span style="color: #666666">.</span>blog_id, <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_name,
                <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_pwd, <span style="color: #666666">7</span>)

    <span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">del_post</span>(<span style="color: #008000">self</span>, post_id, re_publish<span style="color: #666666">=</span><span style="color: #008000">True</span>):
        rv <span style="color: #666666">=</span> <span style="color: #008000">self</span><span style="color: #666666">.</span>_s<span style="color: #666666">.</span>blogger<span style="color: #666666">.</span>deletePost(<span style="color: #BA2121">''</span>, post_id, <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_name,
                <span style="color: #008000">self</span><span style="color: #666666">.</span>usr_pwd, re_publish)
        <span style="color: #008000; font-weight: bold">return</span> rv
</code></pre></div>

<h2>使用:</h2>

<div class="codehilite"><pre><code>s <span style="color: #666666">=</span> Poster()
<span style="color: #008000; font-weight: bold">if</span> s<span style="color: #666666">.</span>login():
    s<span style="color: #666666">.</span>add_post(<span style="color: #BA2121">u'标题'</span>, <span style="color: #BA2121">u'内容'</span>, <span style="color: #BA2121">'分类名称'</span>, <span style="color: #008000">True</span>)
</code></pre></div>

<h2>参见:</h2>

<ul>
<li><a href="http://www.cppblog.com/services/metaweblog.aspx">cppblog metaweblog API</a></li>
</ul><img src ="http://www.cppblog.com/fanxes/aggbug/126689.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/fanxes/" target="_blank">yugi</a> 2010-09-15 20:37 <a href="http://www.cppblog.com/fanxes/archive/2010/09/15/126689.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>