a blogengine extension
能将发表的文章标题和链接推送到饭否|叽歪
1using System;
2using System.Data;
3using System.Net;
4using System.IO;
5using System.Web;
6using System.Text.RegularExpressions;
7using BlogEngine.Core;
8using BlogEngine.Core.Web.Controls;
9
10/// <summary>
11/// Summary description for BCpost
12/// </summary>
13[Extension("当发表新日志时,通知fanfou/jiwai/twitter", "1.0", "<a href=\"http://icyflash.blog.sohu.com\">Icyflash</a>")]
14public class BCpost
15{
16 static protected ExtensionSettings _settings = null;
17
18 public BCpost()
19 {
20 Post.Saved+=new EventHandler<SavedEventArgs>(Post_Saved);
21
22 ExtensionSettings settings = new ExtensionSettings("BCpost");
23 settings.AddParameter("User", "User", 20, true);
24 settings.AddParameter("Password", "Password", 20, true);
25 settings.IsScalar = true;
26 settings.Help = "Send a message to twitter/fanou/jiwai when you have a new post";
27 ExtensionManager.ImportSettings(settings);
28 _settings = ExtensionManager.GetSettings("BCpost");
29 }
30
31 private void Post_Saved(object sender, SavedEventArgs e)
32 {
33 Post post = (Post)sender;
34 //Fanfou : http://api.fanfou.com/statuses/update.xml
35 //Jiwai : http://api.jiwai.de/statuses/update.xml
36 //Twitter:因为在Jiwai里配置后可以直接发送到twitter,就不提供twitter的了
37 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://api.fanfou.com/statuses/update.xml");
38
39
40 string user = _settings.GetSingleValue("User");
41 string password = _settings.GetSingleValue("Password");
42 request.Credentials = new NetworkCredential(user, password);
43 request.Method = "POST";
44
45 request.ContentType = "application/x-www-form-urlencoded";
46 string text = post.Title + post.AbsoluteLink;
47 string param = "status=" + HttpUtility.UrlEncode(text);
48 request.ContentLength = param.Length;
49
50 StreamWriter stOut = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
51 stOut.Write(param);
52 stOut.Close();
53 //未做错误处理,需要的自己在这里try-catch吧
54 request.GetResponse();
55 }
56}
57
2using System.Data;
3using System.Net;
4using System.IO;
5using System.Web;
6using System.Text.RegularExpressions;
7using BlogEngine.Core;
8using BlogEngine.Core.Web.Controls;
9
10/// <summary>
11/// Summary description for BCpost
12/// </summary>
13[Extension("当发表新日志时,通知fanfou/jiwai/twitter", "1.0", "<a href=\"http://icyflash.blog.sohu.com\">Icyflash</a>")]
14public class BCpost
15{
16 static protected ExtensionSettings _settings = null;
17
18 public BCpost()
19 {
20 Post.Saved+=new EventHandler<SavedEventArgs>(Post_Saved);
21
22 ExtensionSettings settings = new ExtensionSettings("BCpost");
23 settings.AddParameter("User", "User", 20, true);
24 settings.AddParameter("Password", "Password", 20, true);
25 settings.IsScalar = true;
26 settings.Help = "Send a message to twitter/fanou/jiwai when you have a new post";
27 ExtensionManager.ImportSettings(settings);
28 _settings = ExtensionManager.GetSettings("BCpost");
29 }
30
31 private void Post_Saved(object sender, SavedEventArgs e)
32 {
33 Post post = (Post)sender;
34 //Fanfou : http://api.fanfou.com/statuses/update.xml
35 //Jiwai : http://api.jiwai.de/statuses/update.xml
36 //Twitter:因为在Jiwai里配置后可以直接发送到twitter,就不提供twitter的了
37 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://api.fanfou.com/statuses/update.xml");
38
39
40 string user = _settings.GetSingleValue("User");
41 string password = _settings.GetSingleValue("Password");
42 request.Credentials = new NetworkCredential(user, password);
43 request.Method = "POST";
44
45 request.ContentType = "application/x-www-form-urlencoded";
46 string text = post.Title + post.AbsoluteLink;
47 string param = "status=" + HttpUtility.UrlEncode(text);
48 request.ContentLength = param.Length;
49
50 StreamWriter stOut = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
51 stOut.Write(param);
52 stOut.Close();
53 //未做错误处理,需要的自己在这里try-catch吧
54 request.GetResponse();
55 }
56}
57