using CookComputing.XmlRpc; namespace CookComputing.Blogger { public struct Category { public string categoryid; public string title; public string description; public string htmlUrl; public string rssUrl; } public struct Post { public System.DateTime dateCreated; [XmlRpcMember( Description="Depending on server may be either string or integer. " + "Use Convert.ToInt32(userid) to treat as integer or " + "Convert.ToString(userid) to treat as string")] //Livejournal sometimes drops these [XmlRpcMissingMapping(MappingAction.Ignore)] public object userid; [XmlRpcMissingMapping(MappingAction.Ignore)] public string postid; public string content; } public struct UserInfo { public string url; public string email; public string nickname; public string lastname; public string firstname; } public struct BlogInfo { public string blogid; public string url; public string blogName; } public interface IBlogger { [XmlRpcMethod("blogger.deletePost", Description="Deletes a post.")] [return: XmlRpcReturnValue(Description="Always returns true.")] bool deletePost( string appKey, string postid, string username, string password, [XmlRpcParameter( Description="Where applicable, this specifies whether the blog " + "should be republished after the post has been deleted.")] bool publish); [XmlRpcMethod("blogger.editPost", Description="Edits a given post. Optionally, will publish the " + "blog after making the edit.")] [return: XmlRpcReturnValue(Description="Always returns true.")] object editPost( string appKey, string postid, string username, string password, string content, bool publish); [XmlRpcMethod("blogger.getCategories", Description="Returns a list of the categories that you can use " + "to log against a post.")] Category[] getCategories( string blogid, string username, string password); [XmlRpcMethod("blogger.getPost", Description="Returns a single post.")] Post getPost( string appKey, string postid, string username, string password); [XmlRpcMethod("blogger.getRecentPosts", Description="Returns a list of the most recent posts in the system.")] Post[] getRecentPosts( string appKey, string blogid, string username, string password, int numberOfPosts); [XmlRpcMethod("blogger.getTemplate", Description="Returns the main or archive index template of " + "a given blog.")] string getTemplate( string appKey, string blogid, string username, string password, string templateType); [XmlRpcMethod("blogger.getUserInfo", Description="Authenticates a user and returns basic user info " + "(name, email, userid, etc.).")] UserInfo getUserInfo( string appKey, string username, string password); [XmlRpcMethod("blogger.getUsersBlogs", Description="Returns information on all the blogs a given user " + "is a member.")] BlogInfo[] getUsersBlogs( string appKey, string username, string password); [XmlRpcMethod("blogger.newPost", Description="Makes a new post to a designated blog. Optionally, " + "will publish the blog after making the post.")] [return: XmlRpcReturnValue(Description="Id of new post")] string newPost( string appKey, string blogid, string username, string password, string content, bool publish); [XmlRpcMethod("blogger.setTemplate", Description="Edits the main or archive index template of a given blog.")] bool setTemplate( string appKey, string blogid, string username, string password, string template, string templateType); } }