BlogEngine - MultiPost v0.1.4

Обновил расширение для 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
  1. public interface IBlogHosting
  2.     {
  3.         /// <summary>
  4.         /// NameOf
  5.         /// </summary>
  6.         String Name
  7.         {
  8.             get;
  9.         }
  10.  
  11.         /// <summary>
  12.         /// Settings
  13.         /// </summary>
  14.         SettingsCollection Defaults();
  15.  
  16.  
  17.         /// <summary>
  18.         /// Logging action
  19.         /// </summary>
  20.         /// <returns>isSuccess</returns>
  21.         Boolean PublishItem(IPublishable post);
  22.  
  23.     }

В моем случае реализация для Лиру выглядит достаточно просто:
Copy Source | Copy HTML
  1. namespace MultiPostExtension.Blogs
  2. {
  3.  
  4.     #region using
  5.  
  6.     using System;
  7.     using System.IO;
  8.     using System.Web;
  9.     using System.Net;
  10.     using System.Text;
  11.     using BlogEngine.Core;
  12.     using BlogEngine.Core.Web.Controls;
  13.     using System.Threading;
  14.     using BlogsAPI;
  15.  
  16.     #endregion
  17.  
  18. /// <summary>
  19. /// Design a post to somewhere
  20. /// </summary>
  21.     public class LiveInternet : BlogHosting, IBlogHosting
  22.     {
  23.         /// <summary>
  24.         /// NameOf
  25.         /// </summary>
  26.         public String Name
  27.         {
  28.             get
  29.             {
  30.                 return "LiveInternet";
  31.             }
  32.         }
  33.  
  34.         /// <summary>
  35.         /// Defs
  36.         /// </summary>
  37.         /// <returns></returns>
  38.         public SettingsCollection Defaults()
  39.         {
  40.             SettingsCollection sc = new SettingsCollection();
  41.             sc.Add("true");
  42.             sc.Add(" ");
  43.             sc.Add(this.Name);
  44.             sc.Add("flashr");
  45.             sc.Add("");
  46.             sc.Add("noneed");
  47.             sc.Add("1");
  48.             sc.Add(PostType.Public.ToString());
  49.             return sc;
  50.         }
  51.  
  52.         /// <summary>
  53.         /// Constructor with params
  54.         /// </summary>
  55.         /// <param name="sets"></param>
  56.         public LiveInternet(SettingsCollection settings)
  57.         {
  58.             this.Hostname = "liveinternet.ru";
  59.             this.blogSettings = settings;
  60.         }
  61.  
  62.         /// <summary>
  63.         /// Making it published
  64.         /// </summary>
  65.         /// <param name="post">Object of Post</param>
  66.         public Boolean PublishItem(IPublishable post)
  67.         {
  68.             Boolean bRet = false;
  69.             if (this.AttemptsCount++ < this.blogSettings.Attempts)
  70.             {
  71.                 if (this.MakePost(post))
  72.                 {
  73.                     bRet = true;
  74.                 }
  75.             }
  76.             else
  77.             {
  78.                 throw new NotSupportedException("Too many fails for " + post.Title);
  79.             }
  80.             return bRet;
  81.         }
  82.  
  83.         /// <summary>
  84.         /// Hidden actions 
  85.         /// </summary>
  86.         /// <param name="post">Published content</param>
  87.         /// <returns></returns>
  88.         private Boolean MakePost(IPublishable post)
  89.         {
  90.             BlogPost blogPost = new BlogPost(){
  91.                  Subject = post.Title,
  92.                  Body = post.Content,
  93.                  type = post.IsPublished?PostType.Public:PostType.Private
  94.             };
  95.             //adding tags
  96.             blogPost.Attributes.Add(new PostAttribute(PostParams.Tags.ToString(),GetTags(post.Categories)));
  97.  
  98.             BlogsAPI.Sites.Liveinternet liru = new BlogsAPI.Sites.Liveinternet();
  99.             return liru.MakePost(new UserAccaunt(
  100.                 this.blogSettings.Login,
  101.                 this.blogSettings.Password
  102.                 ), blogPost
  103.                 ).Success;
  104.         }
  105.     }
  106. }

Метки:   Категории:Blogs | BlogEngine | Code


blog comments powered by Disqus

Добавить комментарий

Кто я?

Программист. Я слежу за блогосферой и знаю, как будет развиваться интернет. Когда у меня есть время я даже прилагаю для этого усилия. Подробнее

Последние комментарии

Не отображать

Topbot at FeedsBurner

Облако тэгов

Мои Твиты

Twitter августа 16, 21:21
программа instagramliker обновлена 2018г еще раз http://dlvr.it/Qg7KPW

Twitter августа 15, 18:33
Разбор 2 сезона Рассказ служанки http://dlvr.it/Qg0Qxv https://twitter.com/f1ashr/status/1029798147676037121/photo/1

Twitter августа 14, 10:28
Юпитер для Америки (Юмор от НАСА) http://dlvr.it/QfqqTP https://twitter.com/f1ashr/status/1029313699054477312/photo/1

Twitter августа 14, 10:28
Мелькает число 35 в международных новостях http://dlvr.it/QfqqXV

Twitter августа 10, 23:41
Рейтинг каналов и ботов Телеграмм http://dlvr.it/QfVknB https://twitter.com/f1ashr/status/1028063721153691648/photo/1

Twitter августа 10, 23:41
Facebook потерял спутник во взрыве SpaceX http://dlvr.it/QfVklq https://twitter.com/f1ashr/status/1028063716946792448/photo/1

Twitter августа 10, 23:09
Интернет мемы победили Иисуса http://dlvr.it/QfVdXj https://twitter.com/f1ashr/status/1028055673823670272/photo/1

Twitter августа 10, 23:09
Японское аниме в российских кинотеатрах http://dlvr.it/QfVdV3 https://twitter.com/f1ashr/status/1028055668341661696/photo/1

Twitter августа 10, 23:09
Карта из 500млн. чекинов http://dlvr.it/QfVdQG https://twitter.com/f1ashr/status/1028055661697875968/photo/1

Twitter августа 10, 22:35
Медведь открывает дверь http://dlvr.it/QfVWZY https://twitter.com/f1ashr/status/1028047110791299072/photo/1

Twitter августа 10, 22:01
На батуте в космос http://dlvr.it/QfVNw3

Twitter августа 10, 21:29
Российские дирижабли покарят мир в 2035 году http://dlvr.it/QfVGwd https://twitter.com/f1ashr/status/1028030497220259840/photo/1

Twitter августа 10, 21:29
Skype and Baidu links http://dlvr.it/QfVGyS

Twitter августа 10, 21:29
7 лет аккаунту в твиттере http://dlvr.it/QfVGz9

Twitter августа 8, 09:51
Разбор сериала Экспансия (Пространство) http://dlvr.it/QfBHV6 https://twitter.com/f1ashr/status/1027130062976372736/photo/1

Twitter июля 29, 17:51
Добыча криптовалюты в браузере посетителей сайта http://dlvr.it/Qd94p4 https://twitter.com/f1ashr/status/1023626972050518016/photo/1

Twitter июля 29, 04:45
Танцы человека с роботом http://dlvr.it/Qd6Zmn

Twitter июля 29, 04:45
Казахстан переходит на 2-й этап к демократии http://dlvr.it/Qd6Zmt

Twitter июля 29, 04:45
Проблема монетизации на Ютубе http://dlvr.it/Qd6ZfV https://twitter.com/f1ashr/status/1023429180506009600/photo/1

Twitter июля 29, 04:12
Двенадцать часов на сценарной карте http://dlvr.it/Qd6VJL https://twitter.com/f1ashr/status/1023420876362895361/photo/1

Мой твиттер

Копирайт

Все мысли, высказанные в блоге, являются моим мнением и за это мнение меня никто не забанит! Кроме того, никто не имеет право копировать материалы блога без использования ctrl+C/V!

© Copyright 2008