public static void Send(IPublishable item, Uri itemUrl) { foreach (var url in GetUrlsFromContent(item.Content)) { var trackbackSent = false; if (BlogSettings.Instance.EnableTrackBackSend) { var remoteFile = new RemoteFile(url, true); var pageContent = remoteFile.GetFileAsString(); var trackbackUrl = GetTrackBackUrlFromPage(pageContent); if (trackbackUrl != null) { var message = new TrackbackMessage(item, trackbackUrl, itemUrl); trackbackSent = Trackback.Send(message); } } if (!trackbackSent && BlogSettings.Instance.EnablePingBackSend) { Pingback.Send(itemUrl, url); } } }
/// <summary> /// Sends the trackback or pingback message. /// <remarks> /// It will try to send a trackback message first, and if the refered web page /// doesn't support trackbacks, a pingback is sent. /// </remarks> /// </summary> /// <param name="item"> /// The publishable item. /// </param> /// <param name="itemUrl"> /// The item Url. /// </param> public static void Send(IPublishable item, Uri itemUrl) { foreach (var url in GetUrlsFromContent(item.Content)) { var trackbackSent = false; if (BlogSettings.Instance.EnableTrackBackSend) { // ignoreRemoteDownloadSettings should be set to true // for backwards compatibilty with Utils.DownloadWebPage. var remoteFile = new RemoteFile(url, true); var pageContent = remoteFile.GetFileAsString(); // ReadFromWeb(url); var trackbackUrl = GetTrackBackUrlFromPage(pageContent); if (trackbackUrl != null) { var message = new TrackbackMessage(item, trackbackUrl, itemUrl); trackbackSent = Trackback.Send(message); } } if (!trackbackSent && BlogSettings.Instance.EnablePingBackSend) { Pingback.Send(itemUrl, url); } } }
/// <summary> /// The send. /// </summary> /// <param name="message"> /// </param> /// <returns> /// The send. /// </returns> public static bool Send(TrackbackMessage message) { if (!BlogSettings.Instance.EnableTrackBackSend) { return(false); } if (message == null) { throw new ArgumentNullException("message"); } OnSending(message.UrlToNotifyTrackback); // Warning:next line if for local debugging porpuse please donot remove it until you need to // tMessage.PostURL = new Uri("http://www.artinsoft.com/webmaster/trackback.html"); var request = (HttpWebRequest)WebRequest.Create(message.UrlToNotifyTrackback); // HttpHelper.CreateRequest(trackBackItem); request.Credentials = CredentialCache.DefaultNetworkCredentials; request.Method = "POST"; request.ContentLength = message.ToString().Length; request.ContentType = "application/x-www-form-urlencoded"; request.KeepAlive = false; request.Timeout = 10000; using (var writer = new StreamWriter(request.GetRequestStream())) { writer.Write(message.ToString()); } bool result; HttpWebResponse response; try { response = (HttpWebResponse)request.GetResponse(); OnSent(message.UrlToNotifyTrackback); string answer; using (var sr = new StreamReader(response.GetResponseStream())) { answer = sr.ReadToEnd(); } // TODO: This could be a strict XML parsing if necesary/maybe logging activity here too result = response.StatusCode == HttpStatusCode.OK && answer.Contains("<error>0</error>"); } catch { // (WebException wex) result = false; } return(result); }
/// <summary> /// The send. /// </summary> /// <param name="message"> /// </param> /// <returns> /// The send. /// </returns> public static bool Send(TrackbackMessage message) { if (!BlogSettings.Instance.EnableTrackBackSend) { return false; } if (message == null) { throw new ArgumentNullException("message"); } OnSending(message.UrlToNotifyTrackback); // Warning:next line if for local debugging porpuse please donot remove it until you need to // tMessage.PostURL = new Uri("http://www.artinsoft.com/webmaster/trackback.html"); var request = (HttpWebRequest)WebRequest.Create(message.UrlToNotifyTrackback); // HttpHelper.CreateRequest(trackBackItem); request.Credentials = CredentialCache.DefaultNetworkCredentials; request.Method = "POST"; request.ContentLength = message.ToString().Length; request.ContentType = "application/x-www-form-urlencoded"; request.KeepAlive = false; request.Timeout = 10000; using (var writer = new StreamWriter(request.GetRequestStream())) { writer.Write(message.ToString()); } bool result; HttpWebResponse response; try { response = (HttpWebResponse)request.GetResponse(); OnSent(message.UrlToNotifyTrackback); string answer; using (var sr = new StreamReader(response.GetResponseStream())) { answer = sr.ReadToEnd(); } // TODO: This could be a strict XML parsing if necesary/maybe logging activity here too result = response.StatusCode == HttpStatusCode.OK && answer.Contains("<error>0</error>"); } catch { // (WebException wex) result = false; } return result; }
/// <summary> /// Sends the trackback or pingback message. /// <remarks> /// It will try to send a trackback message first, and if the refered web page /// doesn't support trackbacks, a pingback is sent. /// </remarks> /// </summary> public static void Send(IPublishable item, Uri itemUrl) { foreach (Uri url in GetUrlsFromContent(item.Content)) { string pageContent = ReadFromWeb(url); Uri trackbackUrl = GetTrackBackUrlFromPage(pageContent); bool isTrackbackSent = false; if (trackbackUrl != null) { TrackbackMessage message = new TrackbackMessage(item, trackbackUrl, itemUrl); isTrackbackSent = Trackback.Send(message); } if (!isTrackbackSent) { Pingback.Send(itemUrl, url); } } }
/// <summary> /// Sends the trackback or pingback message. /// <remarks> /// It will try to send a trackback message first, and if the refered web page /// doesn't support trackbacks, a pingback is sent. /// </remarks> /// </summary> public static void Send(IPublishable item, Uri itemUrl) { foreach (Uri url in GetUrlsFromContent(item.Content)) { bool isTrackbackSent = false; if (BlogSettings.Instance.EnableTrackBackSend) { string pageContent = Utils.DownloadWebPage(url);// ReadFromWeb(url); Uri trackbackUrl = GetTrackBackUrlFromPage(pageContent); if (trackbackUrl != null) { TrackbackMessage message = new TrackbackMessage(item, trackbackUrl, itemUrl); isTrackbackSent = Trackback.Send(message); } } if (!isTrackbackSent && BlogSettings.Instance.EnablePingBackSend) { Pingback.Send(itemUrl, url); } } }
protected virtual bool GetTrackbackSent(TrackbackMessage message) { return Trackback.Send(message); }
protected virtual bool GetTrackbackSent(TrackbackMessage message) { return(Trackback.Send(message)); }
protected override bool GetTrackbackSent(TrackbackMessage message) { Message.Add(message.ToString()); return true; }