BlogEngine - MultiPost v0.1.4
|
|
Понедельник, 08 Июня 2009 г. 12:26
+ в цитатник
Обновил расширение для BlogEngine позволяющее постить одновременно сразу в несколько блогомест.
Качать архив файлов тут. Архив содержит 3 вещи, которые нужно поместить в корень вашего блога заменив старое - 1) папку admin с измененным файлом Settings, я там исправил ошибку с редактированием настроек 2) папку App_Code - в ней содержится код расширения, который вы сможете поправить, если нужно 3) Папку bin, которая содержит библиотеку BlogsAPI, в которой реализована работа с основными(lj,liru,yaru,blogsmail) блогохостингами.
Не забудте внести изменения в web.config,
как я писал ранее, а то не будет работать с Яндексом.
Сейчас там реализовано копирование постов на Лиру и Яру. Но если есть желание, то можно дописать свой класс для копирования постов куда угодно, который имеет интерфейс IBlogHosting и поместить его в namespace MultiPostExtension.Blogs:
Copy Source | Copy HTML- public interface IBlogHosting
- {
- /// <summary>
- /// NameOf
- /// </summary>
- String Name
- {
- get;
- }
-
- /// <summary>
- /// Settings
- /// </summary>
- SettingsCollection Defaults();
-
-
- /// <summary>
- /// Logging action
- /// </summary>
- /// <returns>isSuccess</returns>
- Boolean PublishItem(IPublishable post);
-
- }
В моем случае реализация для Лиру выглядит достаточно просто:
Copy Source | Copy HTML- namespace MultiPostExtension.Blogs
- {
-
- #region using
-
- using System;
- using System.IO;
- using System.Web;
- using System.Net;
- using System.Text;
- using BlogEngine.Core;
- using BlogEngine.Core.Web.Controls;
- using System.Threading;
- using BlogsAPI;
-
- #endregion
-
- /// <summary>
- /// Design a post to somewhere
- /// </summary>
- public class LiveInternet : BlogHosting, IBlogHosting
- {
- /// <summary>
- /// NameOf
- /// </summary>
- public String Name
- {
- get
- {
- return "LiveInternet";
- }
- }
-
- /// <summary>
- /// Defs
- /// </summary>
- /// <returns></returns>
- public SettingsCollection Defaults()
- {
- SettingsCollection sc = new SettingsCollection();
- sc.Add("true");
- sc.Add(" ");
- sc.Add(this.Name);
- sc.Add("flashr");
- sc.Add("");
- sc.Add("noneed");
- sc.Add("1");
- sc.Add(PostType.Public.ToString());
- return sc;
- }
-
- /// <summary>
- /// Constructor with params
- /// </summary>
- /// <param name="sets"></param>
- public LiveInternet(SettingsCollection settings)
- {
- this.Hostname = "liveinternet.ru";
- this.blogSettings = settings;
- }
-
- /// <summary>
- /// Making it published
- /// </summary>
- /// <param name="post">Object of Post</param>
- public Boolean PublishItem(IPublishable post)
- {
- Boolean bRet = false;
- if (this.AttemptsCount++ < this.blogSettings.Attempts)
- {
- if (this.MakePost(post))
- {
- bRet = true;
- }
- }
- else
- {
- throw new NotSupportedException("Too many fails for " + post.Title);
- }
- return bRet;
- }
-
- /// <summary>
- /// Hidden actions
- /// </summary>
- /// <param name="post">Published content</param>
- /// <returns></returns>
- private Boolean MakePost(IPublishable post)
- {
- BlogPost blogPost = new BlogPost(){
- Subject = post.Title,
- Body = post.Content,
- type = post.IsPublished?PostType.Public:PostType.Private
- };
- //adding tags
- blogPost.Attributes.Add(new PostAttribute(PostParams.Tags.ToString(),GetTags(post.Categories)));
-
- BlogsAPI.Sites.Liveinternet liru = new BlogsAPI.Sites.Liveinternet();
- return liru.MakePost(new UserAccaunt(
- this.blogSettings.Login,
- this.blogSettings.Password
- ), blogPost
- ).Success;
- }
- }
- }
Метки:
blogengine
blogs
code
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-