示例#1
0
        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);
                }
            }
        }
示例#3
0
        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);
                }
            }
        }
示例#4
0
        /// <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);
                }
            }
        }
示例#5
0
        /// <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);
        }
示例#6
0
        /// <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;
        }
示例#7
0
        /// <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);
                }
            }
        }
示例#8
0
        /// <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);
                }
            }
        }
示例#9
0
 protected virtual bool GetTrackbackSent(TrackbackMessage message)
 {
     return Trackback.Send(message);
 }
示例#10
0
 protected virtual bool GetTrackbackSent(TrackbackMessage message)
 {
     return(Trackback.Send(message));
 }
示例#11
0
 protected override bool GetTrackbackSent(TrackbackMessage message)
 {
     Message.Add(message.ToString());
     return true;
 }