1
using
System;
2
using
CookComputing.XmlRpc;
3
4
namespace
metaWeblogTest
5
{
6
7
#region
微软MSN网站 使用的 MetaWeblog API.
8
///
这个结构代表用户的博客基本信息
9
///
</summary>
10
[XmlRpcMissingMapping(MappingAction.Ignore)]
11
public
struct
UserBlog
12
{
13
public
string
url;
14
public
string
blogid;
15
public
string
blogName;
16
}
17
18
19
///
<summary>
20
///
这个结构代表用户信息
21
///
</summary>
22
[XmlRpcMissingMapping(MappingAction.Ignore)]
23
public
struct
UserInfo
24
{
25
public
string
url;
26
public
string
blogid;
27
public
string
blogName;
28
public
string
firstname;
29
public
string
lastname;
30
public
string
email;
31
public
string
nickname;
32
}
33
34
35
///
<summary>
36
///
这个结构代表博客分类信息
37
///
这后面的getCategories()方法会取到CATEGORY数据。
38
///
</summary>
39
[XmlRpcMissingMapping(MappingAction.Ignore)]
40
public
struct
Category
41
{
42
public
string
description;
43
public
string
title;
44
}
45
46
///
<summary>
47
///
这个结构代表博客( 文章 )信息。
48
///
这后面的 editPost()方法, getRecentPosts()方法 和 getPost()方法 会取倒POST数据 .
49
///
</summary>
50
[XmlRpcMissingMapping(MappingAction.Ignore)]
51
public
struct
Post
52
{
53
public
DateTime dateCreated;
54
public
string
description;
55
public
string
title;
56
public
string
postid;
57
public
string
[] categories;
58
}
59
#endregion
60
61
62
#region
网站:http:
//
msdn.microsoft.com/en-us/library/aa905670.aspx
63
///
//
<summary>
64
///
// 微软MSN网站 使用的 MetaWeblog API.
65
///
/ 网站:
http://msdn.microsoft.com/en-us/library/aa905670.aspx
66
///
//
</summary>
67
public
class
M_MetaWeblog : XmlRpcClientProtocol
68
{
69
70
71
///
<summary>
72
///
Returns the most recent draft and non-draft blog posts sorted in descending order by publish date.
73
///
</summary>
74
///
<param name="blogid">
This should be the string MyBlog, which indicates that the post is being created in the user’s blog.
</param>
75
///
<param name="username">
The name of the user’s space.
</param>
76
///
<param name="password">
The user’s secret word.
</param>
77
///
<param name="numberOfPosts">
The number of posts to return. The maximum value is 20.
</param>
78
///
<returns></returns>
79
///
TODO:得到最近发布的帖子
80
[XmlRpcMethod(
"
metaWeblog.getRecentPosts
"
)]
81
public
Post[] getRecentPosts(
82
string
blogid,
83
string
username,
84
string
password,
85
int
numberOfPosts)
86
{
87
88
return
(Post[])
this
.Invoke(
"
getRecentPosts
"
,
new
object
[] { blogid, username, password, numberOfPosts });
89
}
90
91
92
///
<summary>
93
///
Posts a new entry to a blog.
94
///
</summary>
95
///
<param name="blogid">
This should be the string MyBlog, which indicates that the post is being created in the user’s blog.
</param>
96
///
<param name="username">
The name of the user’s space.
</param>
97
///
<param name="password">
The user’s secret word.
</param>
98
///
<param name="post">
A struct representing the content to update.
</param>
99
///
<param name="publish">
If false, this is a draft post.
</param>
100
///
<returns>
The postid of the newly-created post.
</returns>
101
///
TODO:增加一个最新的帖子
102
[XmlRpcMethod(
"
metaWeblog.newPost
"
)]
103
public
string
newPost(
104
string
blogid,
105
string
username,
106
string
password,
107
Post content,
108
bool
publish)
109
{
110
111
return
(
string
)
this
.Invoke(
"
newPost
"
,
new
object
[] { blogid, username, password, content, publish });
112
}
113
114
///
<summary>
115
///
Edits an existing entry on a blog.
116
///
</summary>
117
///
<param name="postid">
The ID of the post to update.
</param>
118
///
<param name="username">
The name of the user’s space.
</param>
119
///
<param name="password">
The user’s secret word.
</param>
120
///
<param name="post">
A struct representing the content to update.
</param>
121
///
<param name="publish">
If false, this is a draft post.
</param>
122
///
<returns>
Always returns true.
</returns>
123
///
TODO:更新一个帖子
124
[XmlRpcMethod(
"
metaWeblog.editPost
"
)]
125
public
bool
editPost(
126
string
postid,
127
string
username,
128
string
password,
129
Post content,
130
bool
publish)
131
{
132
133
return
(
bool
)
this
.Invoke(
"
editPost
"
,
new
object
[] { postid, username, password, content, publish });
134
}
135
136
///
<summary>
137
///
Deletes a post from the blog.
138
///
</summary>
139
///
<param name="appKey">
This value is ignored.
</param>
140
///
<param name="postid">
The ID of the post to update.
</param>
141
///
<param name="username">
The name of the user’s space.
</param>
142
///
<param name="password">
The user’s secret word.
</param>
143
///
<param name="post">
A struct representing the content to update.
</param>
144
///
<param name="publish">
This value is ignored.
</param>
145
///
<returns>
Always returns true.
</returns>
146
///
TODO:删除一个帖子
147
[XmlRpcMethod(
"
blogger.deletePost
"
)]
148
public
bool
deletePost(
149
string
appKey,
150
string
postid,
151
string
username,
152
string
password,
153
bool
publish)
154
{
155
156
return
(
bool
)
this
.Invoke(
"
deletePost
"
,
new
object
[] { appKey, postid, username, password, publish });
157
}
158
159
160
///
<summary>
161
///
Returns information about the user’s space. An empty array is returned if the user does not have a space.
162
///
</summary>
163
///
<param name="appKey">
This value is ignored.
</param>
164
///
<param name="postid">
The ID of the post to update.
</param>
165
///
<param name="username">
The name of the user’s space.
</param>
166
///
<param name="password"></param>
167
///
<returns>
An array of structs that represents each of the user’s blogs. The array will contain a maximum of one struct, since a user can only have a single space with a single blog.
</returns>
168
///
TODO:得到用户的博客清单
169
[XmlRpcMethod(
"
blogger.getUsersBlogs
"
)]
170
public
UserBlog[] getUsersBlogs(
171
string
appKey,
172
string
username,
173
string
password)
174
{
175
176
return
(UserBlog[])
this
.Invoke(
"
getUsersBlogs
"
,
new
object
[] { appKey, username, password });
177
}
178
179
///
<summary>
180
///
Returns basic user info (name, e-mail, userid, and so on).
181
///
</summary>
182
///
<param name="appKey">
This value is ignored.
</param>
183
///
<param name="postid">
The ID of the post to update.
</param>
184
///
<param name="username">
The name of the user’s space.
</param>
185
///
<param name="password"></param>
186
///
<returns>
A struct containing profile information about the user.
187
///
Each struct will contain the following fields: nickname, userid, url, e-mail,
188
///
lastname, and firstname.
</returns>
189
///
TODO:得到用户信息
190
[XmlRpcMethod(
"
blogger.getUserInfo
"
)]
191
public
UserInfo getUserInfo(
192
string
appKey,
193
string
username,
194
string
password)
195
{
196
197
return
(UserInfo)
this
.Invoke(
"
getUserInfo
"
,
new
object
[] { appKey, username, password });
198
}
199
200
201
///
<summary>
202
///
Returns a specific entry from a blog.
203
///
</summary>
204
///
<param name="postid">
The ID of the post to update.
</param>
205
///
<param name="username">
The name of the user’s space.
</param>
206
///
<param name="password">
The user’s secret word.
</param>
207
///
<returns>
Always returns true.
</returns>
208
///
TODO:获取一个帖子
209
[XmlRpcMethod(
"
metaWeblog.getPost
"
)]
210
public
Post getPost(
211
string
postid,
212
string
username,
213
string
password)
214
{
215
216
return
(Post)
this
.Invoke(
"
getPost
"
,
new
object
[] { postid, username, password });
217
}
218
219
///
<summary>
220
///
Returns the list of categories that have been used in the blog.
221
///
</summary>
222
///
<param name="blogid">
This should be the string MyBlog, which indicates that the post is being created in the user’s blog.
</param>
223
///
<param name="username">
The name of the user’s space.
</param>
224
///
<param name="password">
The user’s secret word.
</param>
225
///
<returns>
An array of structs that contains one struct for each category. Each category struct will contain a description field that contains the name of the category.
</returns>
226
///
TODO:得到博客分类
227
[XmlRpcMethod(
"
metaWeblog.getCategories
"
)]
228
public
Category[] getCategories(
229
string
blogid,
230
string
username,
231
string
password)
232
{
233
234
return
(Category[])
this
.Invoke(
"
getCategories
"
,
new
object
[] { blogid, username, password });
235
}
236
}
237
#endregion
238
}
239