@@ -35,6 +35,28 @@ func GetTableSeo() string {
3535 return getTable ("seo" )
3636}
3737
38+ // 自动更新站点地图
39+ func AutoSitemap () {
40+ go func () {
41+ seo := NewSeo ()
42+ file := filepath .Join (helper .RootPath , "sitemap.xml" )
43+ for {
44+ now := time .Now ()
45+ targetTime , _ := time .ParseInLocation ("2006-01-02 15:04:05" , now .Format ("2006-01-02" )+ " 02:00:00" , time .Local )
46+ info , err := os .Stat (file )
47+ if err != nil {
48+ seo .BuildSitemap ()
49+ } else {
50+ // 当前时间大于目标时间,并且文件更新时间小于目标时间
51+ if now .Sub (targetTime ) > 0 && info .ModTime ().Sub (targetTime ) < 0 && NewSys ().GetByField ("AutoSitemap" ).AutoSitemap {
52+ seo .BuildSitemap ()
53+ }
54+ }
55+ time .Sleep (1 * time .Minute )
56+ }
57+ }()
58+ }
59+
3860//获取SEO
3961//@param page 页面
4062//@param defaultTitle 默认标题
@@ -101,7 +123,7 @@ func (this *Seo) BuildSitemap() {
101123 fileNum = fileNum + 1
102124 }
103125 //创建文件夹
104- os .MkdirAll ("sitemap" , os .ModePerm )
126+ os .MkdirAll (filepath . Join ( helper . RootPath , "sitemap" ) , os .ModePerm )
105127 for i := 0 ; i < fileNum ; i ++ {
106128 var docs []DocumentInfo
107129 o .QueryTable (GetTableDocumentInfo ()).Filter ("Status__gt" , - 1 ).Limit (limit ).Offset (i * limit ).All (& docs , "Id" , "TimeCreate" )
@@ -118,7 +140,7 @@ func (this *Seo) BuildSitemap() {
118140 Priority : 0.9 ,
119141 })
120142 }
121- if err := Sitemap .CreateSitemapContent (su , file ); err != nil {
143+ if err := Sitemap .CreateSitemapContent (su , filepath . Join ( helper . RootPath , file ) ); err != nil {
122144 helper .Logger .Error ("sitemap生成失败:" + err .Error ())
123145 }
124146 }
0 commit comments