a blogengine extension
能将发表的文章标题和链接推送到饭否|叽歪
1
using System;
2
using System.Data;
3
using System.Net;
4
using System.IO;
5
using System.Web;
6
using System.Text.RegularExpressions;
7
using BlogEngine.Core;
8
using 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>")]
14
public 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
using System;2
using System.Data;3
using System.Net;4
using System.IO;5
using System.Web;6
using System.Text.RegularExpressions;7
using BlogEngine.Core;8
using BlogEngine.Core.Web.Controls;9

10
/// <summary>11
/// Summary description for BCpost12
/// </summary>13
[Extension("当发表新日志时,通知fanfou/jiwai/twitter", "1.0", "<a href=\"http://icyflash.blog.sohu.com\">Icyflash</a>")]14
public class BCpost15
{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.xml35
//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




浙公网安备 33010602011771号