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 июня 18, 16:03
Где искать инопланетян или как зародилась жизнь http://dlvr.it/QXjCQB https://twitter.com/f1ashr/status/1008741906925277184/photo/1

Twitter июня 18, 09:02
Выборы в Америке и будущее запада http://dlvr.it/QXfv8m

Twitter июня 18, 09:02
Памятник крестителю Владимиру http://dlvr.it/QXfttG https://twitter.com/f1ashr/status/1008635961939378177/photo/1

Twitter июня 18, 09:02
YouTube рекламирует свой ВидеоТоп http://dlvr.it/QXftqv

Twitter июня 18, 08:29
Цукенберг встретился с Папой http://dlvr.it/QXflWH https://twitter.com/f1ashr/status/1008627785961635840/photo/1

Twitter июня 18, 08:29
Российские дирижабли покарят мир в 2035 году http://dlvr.it/QXflVs https://twitter.com/f1ashr/status/1008627780785860608/photo/1

Twitter июня 17, 20:42
Азбука киносценариста http://dlvr.it/QXcZL8 https://twitter.com/f1ashr/status/1008449854152929280/photo/1

Twitter июня 14, 11:00
@red_shira @kolomnacity Да это бот какойто , нет никакого запаха

Twitter июня 13, 19:20
Проекционные шоу набирают популярность http://dlvr.it/QXBfLK https://twitter.com/f1ashr/status/1006979531750559745/photo/1

Twitter июня 8, 07:28
Сколько подписчиков должно быть у знаменитости в Твиттере http://dlvr.it/QWbHv9

Twitter мая 29, 07:54
Разбор трилогии Матрицы (The Matrix Trilogy) http://dlvr.it/QVRdCn https://twitter.com/f1ashr/status/1001371287661391873/photo/1

Twitter мая 28, 19:36
Разбор Звездные войны: Последние джедаи http://dlvr.it/QVP48q https://twitter.com/f1ashr/status/1001185546402652161/photo/1

Twitter мая 28, 15:20
По игре престолов небольшая схема http://dlvr.it/QVMyHd https://twitter.com/f1ashr/status/1001121153170096128/photo/1

Twitter мая 28, 13:13
Разбор сериала Кремниевая долина (Silicon Valley) http://dlvr.it/QVMKG9 https://twitter.com/f1ashr/status/1001089026814763008/photo/1

Twitter мая 28, 12:40
читать спутник и погром бесплатно http://dlvr.it/QVM8Wp

Twitter мая 28, 09:59
Пасха в Москве 2 сентября 2017 года http://dlvr.it/QVLNS1 https://twitter.com/f1ashr/status/1001040366471008261/photo/1

Twitter мая 28, 09:27
Канадцы готовят фильм про рептилоидов http://dlvr.it/QVLF4R https://twitter.com/f1ashr/status/1001032318558003200/photo/1

Twitter мая 28, 08:55
Обновлен робот instagram для лайков http://dlvr.it/QVL4kN

Twitter мая 28, 08:55
Инновации в Бангладеше http://dlvr.it/QVL4hr

Twitter мая 28, 08:23
Рейтинг каналов и ботов Телеграмм http://dlvr.it/QVKxrQ https://twitter.com/f1ashr/status/1001016045774159878/photo/1

Мой твиттер

Копирайт

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

© Copyright 2008