Beispiel #1
0
        public void Insert(SeoMetaInfo info)
        {
            if (info.IsDefault)
            {
                SetAllIsDefaultToFalse(info.PublishmentSystemId);
            }

            var sqlString = "INSERT INTO siteserver_SeoMeta (PublishmentSystemID, SeoMetaName, [IsDefault], [PageTitle], [Keywords], [Description], [Copyright], [Author], [Email], [Language], [Charset], [Distribution], [Rating], [Robots], [RevisitAfter], [Expires]) VALUES (@PublishmentSystemID, @SeoMetaName, @IsDefault, @PageTitle, @Keywords, @Description, @Copyright, @Author, @Email, @Language, @Charset, @Distribution, @Rating, @Robots, @RevisitAfter, @Expires)";

            var insertParms = new IDataParameter[]
            {
                GetParameter(ParmPublishmentSystemId, EDataType.Integer, info.PublishmentSystemId),
                GetParameter(ParmSeoMetaName, EDataType.VarChar, 50, info.SeoMetaName),
                GetParameter(ParmIsDefault, EDataType.VarChar, 18, info.IsDefault.ToString()),
                GetParameter(ParmPageTitle, EDataType.NVarChar, 80, info.PageTitle),
                GetParameter(ParmKeywords, EDataType.NVarChar, 100, info.Keywords),
                GetParameter(ParmDescription, EDataType.NVarChar, 200, info.Description),
                GetParameter(ParmCopyright, EDataType.NVarChar, 255, info.Copyright),
                GetParameter(ParmAuthor, EDataType.NVarChar, 50, info.Author),
                GetParameter(ParmEmail, EDataType.NVarChar, 50, info.Email),
                GetParameter(ParmLanguage, EDataType.VarChar, 50, info.Language),
                GetParameter(ParmCharset, EDataType.VarChar, 50, info.Charset),
                GetParameter(ParmDistribution, EDataType.VarChar, 50, info.Distribution),
                GetParameter(ParmRating, EDataType.VarChar, 50, info.Rating),
                GetParameter(ParmRobots, EDataType.VarChar, 50, info.Robots),
                GetParameter(ParmRevisitAfter, EDataType.VarChar, 50, info.RevisitAfter),
                GetParameter(ParmExpires, EDataType.VarChar, 50, info.Expires)
            };

            ExecuteNonQuery(sqlString, insertParms);
        }
Beispiel #2
0
        public void Update(SeoMetaInfo info)
        {
            if (info.IsDefault)
            {
                SetAllIsDefaultToFalse(info.PublishmentSystemId);
            }

            var updateParms = new IDataParameter[]
            {
                GetParameter(ParmSeoMetaName, EDataType.VarChar, 50, info.SeoMetaName),
                GetParameter(ParmIsDefault, EDataType.VarChar, 18, info.IsDefault.ToString()),
                GetParameter(ParmPageTitle, EDataType.NVarChar, 80, info.PageTitle),
                GetParameter(ParmKeywords, EDataType.NVarChar, 100, info.Keywords),
                GetParameter(ParmDescription, EDataType.NVarChar, 200, info.Description),
                GetParameter(ParmCopyright, EDataType.NVarChar, 255, info.Copyright),
                GetParameter(ParmAuthor, EDataType.NVarChar, 50, info.Author),
                GetParameter(ParmEmail, EDataType.NVarChar, 50, info.Email),
                GetParameter(ParmLanguage, EDataType.VarChar, 50, info.Language),
                GetParameter(ParmCharset, EDataType.VarChar, 50, info.Charset),
                GetParameter(ParmDistribution, EDataType.VarChar, 50, info.Distribution),
                GetParameter(ParmRating, EDataType.VarChar, 50, info.Rating),
                GetParameter(ParmRobots, EDataType.VarChar, 50, info.Robots),
                GetParameter(ParmRevisitAfter, EDataType.VarChar, 50, info.RevisitAfter),
                GetParameter(ParmExpires, EDataType.VarChar, 50, info.Expires),
                GetParameter(ParmSeoMetaId, EDataType.Integer, info.SeoMetaId)
            };

            ExecuteNonQuery(SqlUpdateSeoMeta, updateParms);
        }
Beispiel #3
0
        public static string GetMetaContent(SeoMetaInfo seoMetaInfo)
        {
            var codeBuilder = new StringBuilder();

            if (!string.IsNullOrEmpty(seoMetaInfo.PageTitle))
            {
                codeBuilder.Append($"<TITLE>{seoMetaInfo.PageTitle}</TITLE>\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.Keywords))
            {
                codeBuilder.Append($"<META NAME=\"keywords\" CONTENT=\"{seoMetaInfo.Keywords}\">\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.Description))
            {
                codeBuilder.Append($"<META NAME=\"description\" CONTENT=\"{seoMetaInfo.Description}\">\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.Copyright))
            {
                codeBuilder.Append($"<META NAME=\"copyright\" CONTENT=\"{seoMetaInfo.Copyright}\">\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.Author))
            {
                codeBuilder.Append($"<META NAME=\"author\" CONTENT=\"{seoMetaInfo.Author}\">\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.Email))
            {
                codeBuilder.Append($"<META NAME=\"email\" CONTENT=\"{seoMetaInfo.Email}\">\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.Language))
            {
                codeBuilder.Append($"<META NAME=\"language\" CONTENT=\"{seoMetaInfo.Language}\">\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.Charset))
            {
                codeBuilder.Append($"<META NAME=\"charset\" CONTENT=\"{seoMetaInfo.Charset}\">\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.Distribution))
            {
                codeBuilder.Append($"<META NAME=\"distribution\" CONTENT=\"{seoMetaInfo.Distribution}\">\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.Rating))
            {
                codeBuilder.Append($"<META NAME=\"rating\" CONTENT=\"{seoMetaInfo.Rating}\">\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.Robots))
            {
                codeBuilder.Append($"<META NAME=\"robots\" CONTENT=\"{seoMetaInfo.Robots}\">\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.RevisitAfter))
            {
                codeBuilder.Append($"<META NAME=\"revisit-after\" CONTENT=\"{seoMetaInfo.RevisitAfter}\">\r\n");
            }
            if (!string.IsNullOrEmpty(seoMetaInfo.Expires))
            {
                codeBuilder.Append($"<META NAME=\"expires\" CONTENT=\"{seoMetaInfo.Expires}\">\r\n");
            }
            return(codeBuilder.ToString());
        }
Beispiel #4
0
        public void ImportSeo(bool overwrite)
        {
            if (!FileUtils.IsFileExists(_filePath))
            {
                return;
            }
            var feed = AtomFeed.Load(FileUtils.GetFileStreamReadOnly(_filePath));

            foreach (AtomEntry entry in feed.Entries)
            {
                var seoMetaId = ConvertHelper.GetInteger(AtomUtility.GetDcElementContent(entry.AdditionalElements, "SeoMetaID"));

                if (!string.IsNullOrEmpty(seoMetaId.ToString()))
                {
                    var seoInfo = new SeoMetaInfo();
                    seoInfo.SeoMetaId           = seoMetaId;
                    seoInfo.PublishmentSystemId = _publishmentSystemId;
                    seoInfo.SeoMetaName         = AtomUtility.GetDcElementContent(entry.AdditionalElements, "SeoMetaName");
                    seoInfo.IsDefault           = TranslateUtils.ToBool(AtomUtility.GetDcElementContent(entry.AdditionalElements, "IsDefault"));
                    seoInfo.PageTitle           = AtomUtility.GetDcElementContent(entry.AdditionalElements, "PageTitle");
                    seoInfo.Keywords            = AtomUtility.GetDcElementContent(entry.AdditionalElements, "Keywords");
                    seoInfo.Description         = AtomUtility.GetDcElementContent(entry.AdditionalElements, "Description");
                    seoInfo.Copyright           = AtomUtility.GetDcElementContent(entry.AdditionalElements, "Copyright");
                    seoInfo.Author       = AtomUtility.GetDcElementContent(entry.AdditionalElements, "Author");
                    seoInfo.Email        = AtomUtility.GetDcElementContent(entry.AdditionalElements, "Email");
                    seoInfo.Language     = AtomUtility.GetDcElementContent(entry.AdditionalElements, "Language");
                    seoInfo.Charset      = AtomUtility.GetDcElementContent(entry.AdditionalElements, "Charset");
                    seoInfo.Distribution = AtomUtility.GetDcElementContent(entry.AdditionalElements, "Distribution");
                    seoInfo.Rating       = AtomUtility.GetDcElementContent(entry.AdditionalElements, "Rating");
                    seoInfo.Robots       = AtomUtility.GetDcElementContent(entry.AdditionalElements, "Robots");
                    seoInfo.RevisitAfter = AtomUtility.GetDcElementContent(entry.AdditionalElements, "RevisitAfter");
                    seoInfo.Expires      = AtomUtility.GetDcElementContent(entry.AdditionalElements, "Expires");

                    var seoMetaInfo = DataProvider.SeoMetaDao.GetSeoMetaInfoBySeoMetaName(_publishmentSystemId, seoInfo.SeoMetaName);
                    if (seoMetaInfo != null)
                    {
                        if (overwrite)
                        {
                            DataProvider.SeoMetaDao.Update(seoInfo);
                        }
                    }
                    else
                    {
                        DataProvider.SeoMetaDao.Insert(seoInfo);
                    }
                }
            }
        }
Beispiel #5
0
 public static string GetOpenWindowStringToEdit(int publishmentSystemId, SeoMetaInfo seoMetaInfo)
 {
     return(PageUtils.GetOpenWindowString("修改页面元数据", PageUtils.GetCmsUrl(nameof(ModalSeoMetaAdd), new NameValueCollection
     {
         { "PublishmentSystemID", publishmentSystemId.ToString() },
         { "Author", seoMetaInfo.Author },
         { "Charset", seoMetaInfo.Charset },
         { "Copyright", seoMetaInfo.Copyright },
         { "Description", seoMetaInfo.Description },
         { "Distribution", seoMetaInfo.Distribution },
         { "Email", seoMetaInfo.Email },
         { "Expires", seoMetaInfo.Expires },
         { "Keywords", seoMetaInfo.Keywords },
         { "Language", seoMetaInfo.Language },
         { "PageTitle", seoMetaInfo.PageTitle },
         { "Rating", seoMetaInfo.Rating },
         { "RevisitAfter", seoMetaInfo.RevisitAfter },
         { "Robots", seoMetaInfo.Robots }
     }), 700, 560));
 }
Beispiel #6
0
        public ArrayList GetSeoMetaInfoArrayListByPublishmentSystemId(int publishmentSystemId)
        {
            var arraylist = new ArrayList();

            var parms = new IDataParameter[]
            {
                GetParameter(ParmPublishmentSystemId, EDataType.Integer, publishmentSystemId)
            };

            using (var rdr = ExecuteReader(SqlSelectAllSeoMetaByPublishmentSystemId, parms))
            {
                while (rdr.Read())
                {
                    var i    = 0;
                    var info = new SeoMetaInfo(GetInt(rdr, i++), GetInt(rdr, i++), GetString(rdr, i++), GetBool(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i));
                    arraylist.Add(info);
                }
                rdr.Close();
            }
            return(arraylist);
        }
Beispiel #7
0
        public SeoMetaInfo GetSeoMetaInfo(int seoMetaId)
        {
            SeoMetaInfo info = null;

            var parms = new IDataParameter[]
            {
                GetParameter(ParmSeoMetaId, EDataType.Integer, seoMetaId)
            };

            using (var rdr = ExecuteReader(SqlSelectSeoMeta, parms))
            {
                if (rdr.Read())
                {
                    var i = 0;
                    info = new SeoMetaInfo(GetInt(rdr, i++), GetInt(rdr, i++), GetString(rdr, i++), GetBool(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i));
                }
                rdr.Close();
            }

            return(info);
        }
Beispiel #8
0
        public SeoMetaInfo GetDefaultSeoMetaInfo(int publishmentSystemId)
        {
            SeoMetaInfo info = null;

            var parms = new IDataParameter[]
            {
                GetParameter(ParmPublishmentSystemId, EDataType.Integer, publishmentSystemId),
                GetParameter(ParmIsDefault, EDataType.VarChar, 18, true.ToString())
            };

            using (var rdr = ExecuteReader(SqlSelectDefaultSeoMeta, parms))
            {
                if (rdr.Read())
                {
                    var i = 0;
                    info = new SeoMetaInfo(GetInt(rdr, i++), GetInt(rdr, i++), GetString(rdr, i++), GetBool(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i));
                }
                rdr.Close();
            }

            return(info);
        }
Beispiel #9
0
        public SeoMetaInfo GetSeoMetaInfoBySeoMetaName(int publishmentSystemId, string seoMetaName)
        {
            SeoMetaInfo info = null;

            var parms = new IDataParameter[]
            {
                GetParameter(ParmPublishmentSystemId, EDataType.Integer, publishmentSystemId),
                GetParameter(ParmSeoMetaName, EDataType.VarChar, 50, seoMetaName)
            };

            using (var rdr = ExecuteReader(SqlSelectSeoMetaBySeoMetaName, parms))
            {
                if (rdr.Read())
                {
                    var i = 0;
                    info = new SeoMetaInfo(GetInt(rdr, i++), GetInt(rdr, i++), GetString(rdr, i++), GetBool(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i++), GetString(rdr, i));
                }
                rdr.Close();
            }

            return(info);
        }
Beispiel #10
0
        private static AtomEntry ExportSeoInfo(SeoMetaInfo seoInfo)
        {
            var entry = AtomUtility.GetEmptyEntry();

            AtomUtility.AddDcElement(entry.AdditionalElements, "SeoMetaID", seoInfo.SeoMetaId.ToString());
            AtomUtility.AddDcElement(entry.AdditionalElements, "PublishmentSystemID", seoInfo.PublishmentSystemId.ToString());
            AtomUtility.AddDcElement(entry.AdditionalElements, "SeoMetaName", seoInfo.SeoMetaName);
            AtomUtility.AddDcElement(entry.AdditionalElements, "IsDefault", seoInfo.IsDefault.ToString());
            AtomUtility.AddDcElement(entry.AdditionalElements, "PageTitle", seoInfo.PageTitle);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Keywords", seoInfo.Keywords);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Description", seoInfo.Description);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Copyright", seoInfo.Copyright);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Author", seoInfo.Author);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Email", seoInfo.Email);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Language", seoInfo.Language);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Charset", seoInfo.Charset);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Distribution", seoInfo.Distribution);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Rating", seoInfo.Rating);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Robots", seoInfo.Robots);
            AtomUtility.AddDcElement(entry.AdditionalElements, "RevisitAfter", seoInfo.RevisitAfter);
            AtomUtility.AddDcElement(entry.AdditionalElements, "Expires", seoInfo.Expires);

            return(entry);
        }
Beispiel #11
0
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            var isChanged = false;

            SeoMetaInfo seoMetaInfo;

            if (Body.IsQueryExists("SeoMetaID"))
            {
                var seoMetaId = Body.GetQueryInt("SeoMetaID");
                seoMetaInfo = DataProvider.SeoMetaDao.GetSeoMetaInfo(seoMetaId);
            }
            else
            {
                seoMetaInfo = new SeoMetaInfo {
                    IsDefault = false
                };
            }

            seoMetaInfo.PublishmentSystemId = PublishmentSystemId;
            seoMetaInfo.SeoMetaName         = SeoMetaName.Text;
            seoMetaInfo.PageTitle           = PageTitle.Text;
            seoMetaInfo.Keywords            = Keywords.Text;
            seoMetaInfo.Description         = Description.Text;
            seoMetaInfo.Copyright           = Copyright.Text;
            seoMetaInfo.Author       = Author.Text;
            seoMetaInfo.Email        = Email.Text;
            seoMetaInfo.Language     = Language.SelectedValue;
            seoMetaInfo.Charset      = Charset.SelectedValue;
            seoMetaInfo.Distribution = Distribution.SelectedValue;
            seoMetaInfo.Rating       = Rating.SelectedValue;
            seoMetaInfo.Robots       = Robots.SelectedValue;
            seoMetaInfo.RevisitAfter = RevisitAfter.SelectedValue;
            seoMetaInfo.Expires      = Expires.Text;

            if (Body.IsQueryExists("SeoMetaID"))
            {
                try
                {
                    DataProvider.SeoMetaDao.Update(seoMetaInfo);
                    Body.AddSiteLog(PublishmentSystemId, "修改页面元数据", $"元数据:{seoMetaInfo.SeoMetaName}");
                    isChanged = true;
                }
                catch (Exception ex)
                {
                    FailMessage(ex, ex.Message);
                }
            }
            else
            {
                var seoMetaNameArrayList = DataProvider.SeoMetaDao.GetSeoMetaNameArrayList(PublishmentSystemId);
                if (seoMetaNameArrayList.IndexOf(SeoMetaName.Text) != -1)
                {
                    FailMessage("页面元数据添加失败,名称已存在!");
                }
                else
                {
                    try
                    {
                        DataProvider.SeoMetaDao.Insert(seoMetaInfo);
                        Body.AddSiteLog(PublishmentSystemId, "添加页面元数据", $"元数据:{seoMetaInfo.SeoMetaName}");
                        isChanged = true;
                    }
                    catch (Exception ex)
                    {
                        FailMessage(ex, ex.Message);
                    }
                }
            }

            if (isChanged)
            {
                if (Body.GetQueryString("PageTitle") == null)
                {
                    PageUtils.CloseModalPage(Page);
                }
                else
                {
                    PageUtils.CloseModalPageAndRedirect(Page, PageSeoMetaList.GetRedirectUrl(PublishmentSystemId));
                }
            }
        }
Beispiel #12
0
        public static SeoMetaInfo GetSeoMetaInfo(string content)
        {
            var seoMetaInfo = new SeoMetaInfo();

            if (!string.IsNullOrEmpty(content))
            {
                var metaRegex   = @"<title>(?<meta>[^<]*?)</title>";
                var metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.PageTitle = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')keywords(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')keywords(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.Keywords = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')description(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')description(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.Description = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')copyright(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')copyright(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.Copyright = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')author(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')author(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.Author = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')email(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')email(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.Email = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')language(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')language(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.Language = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')charset(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')charset(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.Charset = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')distribution(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')distribution(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.Distribution = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')rating(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')rating(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.Rating = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')robots(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')robots(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.Robots = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')revisit-after(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')revisit-after(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.RevisitAfter = metaContent;
                }

                metaRegex   = @"<META\s+NAME=(?:""|')expires(?:""|')\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')(?:[^>]*)>|<META\s+CONTENT=(?:""|')(?<meta>[^<]*?)(?:""|')\s+NAME=(?:""|')expires(?:""|')(?:[^>]*)>";
                metaContent = RegexUtils.GetContent("meta", metaRegex, content);
                if (!string.IsNullOrEmpty(metaContent))
                {
                    seoMetaInfo.Expires = metaContent;
                }
            }

            return(seoMetaInfo);
        }