feed.asp
上传用户:saigedz
上传日期:2019-10-14
资源大小:997k
文件大小:17k
源码类别:

中间件编程

开发平台:

HTML/CSS

  1. <%@ CODEPAGE=65001 %>
  2. <%
  3. '///////////////////////////////////////////////////////////////////////////////
  4. '//              Z-Blog
  5. '// 作    者:    朱煊(zx.asd)&(sipo)
  6. '// 版权所有:    RainbowSoft Studio
  7. '// 技术支持:    rainbowsoft@163.com
  8. '// 程序名称:    
  9. '// 程序版本:    
  10. '// 单元名称:    sydication.asp
  11. '// 开始时间:    2006.07.30
  12. '// 最后修改:    
  13. '// 备    注:    改名叫feed.asp
  14. '///////////////////////////////////////////////////////////////////////////////
  15. %>
  16. <% Option Explicit %>
  17. <% On Error Resume Next %>
  18. <% Response.Charset="UTF-8" %>
  19. <% Response.Buffer=True %>
  20. <!-- #include file="c_option.asp" -->
  21. <!-- #include file="function/c_function.asp" -->
  22. <!-- #include file="function/c_function_md5.asp" -->
  23. <!-- #include file="function/c_system_lib.asp" -->
  24. <!-- #include file="function/c_system_base.asp" -->
  25. <!-- #include file="function/c_system_event.asp" -->
  26. <!-- #include file="function/rss_lib.asp" -->
  27. <!-- #include file="function/atom_lib.asp" -->
  28. <!-- #include file="function/c_system_plugin.asp" -->
  29. <!-- #include file="plugin/p_config.asp" -->
  30. <%
  31. Call System_Initialize()
  32. 'plugin node
  33. For Each sAction_Plugin_Feed_Begin in Action_Plugin_Feed_Begin
  34. If Not IsEmpty(sAction_Plugin_Feed_Begin) Then Call Execute(sAction_Plugin_Feed_Begin)
  35. Next
  36. Dim strAct
  37. strAct="rss"
  38. '如果不是"接收引用"就要检查非法链接
  39. If (strAct<>"tb") And (strAct<>"search") Then Call CheckReference("")
  40. '权限检查
  41. If Not CheckRights(strAct) Then Call ShowError(6)
  42. '/////////////////////////////////////////////////////////////////////////////////
  43. If Not IsEmpty(Request.QueryString("cate")) Then
  44. Call ExportRSSbyCate(Request.QueryString("cate"))
  45. ElseIf Not IsEmpty(Request.QueryString("tags")) Then
  46. Call ExportRSSbyTags(Request.QueryString("tags"))
  47. ElseIf Not IsEmpty(Request.QueryString("user")) Then
  48. Call ExportRSSbyUser(Request.QueryString("user"))
  49. ElseIf Not IsEmpty(Request.QueryString("date")) Then
  50. Call ExportRSSbyDate(Request.QueryString("date"))
  51. ElseIf Not IsEmpty(Request.QueryString("cmt")) Then
  52. Call ExportRSSbyCmt(Request.QueryString("cmt"))
  53. ElseIf Not IsEmpty(Request.QueryString("gb")) Then
  54. Call ExportRSSbyGuestBook()
  55. ElseIf Not IsEmpty(Request.QueryString("atom")) Then
  56. Call ExportATOM()
  57. Response.ContentType = "text/xml"
  58. Response.Write LoadFromFile(BlogPath & "rss.xml" ,"utf-8")
  59. Else
  60. Response.ContentType = "text/xml"
  61. Response.Write LoadFromFile(BlogPath & "rss.xml" ,"utf-8")
  62. End If
  63. '/////////////////////////////////////////////////////////////////////////////////
  64. Function ExportRSSbyCate(CateID)
  65. Dim Rss2Export
  66. Dim objArticle
  67. Set Rss2Export = New TRss2Export
  68. With Rss2Export
  69. Call CheckParameter(CateID,"int",0)
  70. Dim objRS,CateName,CateIntro
  71. .TimeZone=ZC_TIME_ZONE
  72. CateName=Categorys(CateID).Name
  73. .AddChannelAttribute "title",TransferHTML(ZC_BLOG_TITLE & " - " & CateName,"[html-format]")
  74. .AddChannelAttribute "link",TransferHTML(ZC_BLOG_HOST,"[html-format]")
  75. .AddChannelAttribute "description",TransferHTML(ZC_BLOG_SUBTITLE & " - " & CateIntro,"[html-format]")
  76. .AddChannelAttribute "generator","RainbowSoft Studio Z-Blog " & ZC_BLOG_VERSION
  77. .AddChannelAttribute "language",ZC_BLOG_LANGUAGE
  78. .AddChannelAttribute "copyright",TransferHTML(ZC_BLOG_COPYRIGHT,"[nohtml][html-format]")
  79. .AddChannelAttribute "pubDate",Now
  80. Dim i
  81. Set objRS=objConn.Execute("SELECT [log_ID],[log_Tag],[log_CateID],[log_Title],[log_Intro],[log_Content],[log_Level],[log_AuthorID],[log_PostTime],[log_CommNums],[log_ViewNums],[log_TrackBackNums],[log_Url],[log_Istop] FROM [blog_Article] WHERE ([log_ID]>0) AND ([log_Level]>2) AND ([log_CateID]="&CateID&") ORDER BY [log_PostTime] DESC")
  82. If (Not objRS.bof) And (Not objRS.eof) Then
  83. For i=1 to ZC_RSS2_COUNT
  84. Set objArticle=New TArticle
  85. If objArticle.LoadInfoByArray(Array(objRS("log_ID"),objRS("log_Tag"),objRS("log_CateID"),objRS("log_Title"),objRS("log_Intro"),objRS("log_Content"),objRS("log_Level"),objRS("log_AuthorID"),objRS("log_PostTime"),objRS("log_CommNums"),objRS("log_ViewNums"),objRS("log_TrackBackNums"),objRS("log_Url"),objRS("log_Istop"))) Then
  86. If ZC_RSS_EXPORT_WHOLE Then
  87. .AddItem objArticle.HtmlTitle,Users(objArticle.AuthorID).Email & " (" & Users(objArticle.AuthorID).Name & ")",objArticle.HtmlUrl,objArticle.PostTime,objArticle.HtmlUrl,objArticle.HtmlContent,Categorys(objArticle.CateID).HtmlName,objArticle.CommentUrl,objArticle.WfwComment,objArticle.WfwCommentRss,objArticle.TrackBackUrl
  88. Else
  89. .AddItem objArticle.HtmlTitle,Users(objArticle.AuthorID).Email & " (" & Users(objArticle.AuthorID).Name & ")",objArticle.HtmlUrl,objArticle.PostTime,objArticle.HtmlUrl,objArticle.HtmlIntro,Categorys(objArticle.CateID).HtmlName,objArticle.CommentUrl,objArticle.WfwComment,objArticle.WfwCommentRss,objArticle.TrackBackUrl
  90. End If
  91. End If
  92. objRS.MoveNext
  93. If objRS.eof Then Exit For
  94. Set objArticle=Nothing
  95. Next
  96. End If
  97. End With
  98. objRS.close
  99. Set objRS=Nothing
  100. Rss2Export.Execute
  101. Set Rss2Export = Nothing
  102. End Function
  103. Function ExportRSSbyUser(UserID)
  104. Dim Rss2Export
  105. Dim objArticle
  106. Set Rss2Export = New TRss2Export
  107. With Rss2Export
  108. Call CheckParameter(UserID,"int",0)
  109. Dim objRS,UserName,UserIntro
  110. .TimeZone=ZC_TIME_ZONE
  111. UserName=Users(UserID).Name
  112. .AddChannelAttribute "title",TransferHTML(ZC_BLOG_TITLE & " - " & UserName,"[html-format]")
  113. .AddChannelAttribute "link",TransferHTML(ZC_BLOG_HOST,"[html-format]")
  114. .AddChannelAttribute "description",TransferHTML(ZC_BLOG_SUBTITLE & " - " & UserIntro,"[html-format]")
  115. .AddChannelAttribute "generator","RainbowSoft Studio Z-Blog " & ZC_BLOG_VERSION
  116. .AddChannelAttribute "language",ZC_BLOG_LANGUAGE
  117. .AddChannelAttribute "copyright",TransferHTML(ZC_BLOG_COPYRIGHT,"[nohtml][html-format]")
  118. .AddChannelAttribute "pubDate",Now
  119. Dim i
  120. Set objRS=objConn.Execute("SELECT [log_ID],[log_Tag],[log_CateID],[log_Title],[log_Intro],[log_Content],[log_Level],[log_AuthorID],[log_PostTime],[log_CommNums],[log_ViewNums],[log_TrackBackNums],[log_Url],[log_Istop] FROM [blog_Article] WHERE ([log_ID]>0) AND ([log_Level]>2) AND ([log_AuthorID]="&UserID&") ORDER BY [log_PostTime] DESC")
  121. If (Not objRS.bof) And (Not objRS.eof) Then
  122. For i=1 to ZC_RSS2_COUNT
  123. Set objArticle=New TArticle
  124. If objArticle.LoadInfoByArray(Array(objRS("log_ID"),objRS("log_Tag"),objRS("log_CateID"),objRS("log_Title"),objRS("log_Intro"),objRS("log_Content"),objRS("log_Level"),objRS("log_AuthorID"),objRS("log_PostTime"),objRS("log_CommNums"),objRS("log_ViewNums"),objRS("log_TrackBackNums"),objRS("log_Url"),objRS("log_Istop"))) Then
  125. If ZC_RSS_EXPORT_WHOLE Then
  126. .AddItem objArticle.HtmlTitle,Users(objArticle.AuthorID).Email & " (" & Users(objArticle.AuthorID).Name & ")",objArticle.HtmlUrl,objArticle.PostTime,objArticle.HtmlUrl,objArticle.HtmlContent,Categorys(objArticle.CateID).HtmlName,objArticle.CommentUrl,objArticle.WfwComment,objArticle.WfwCommentRss,objArticle.TrackBackUrl
  127. Else
  128. .AddItem objArticle.HtmlTitle,Users(objArticle.AuthorID).Email & " (" & Users(objArticle.AuthorID).Name & ")",objArticle.HtmlUrl,objArticle.PostTime,objArticle.HtmlUrl,objArticle.HtmlIntro,Categorys(objArticle.CateID).HtmlName,objArticle.CommentUrl,objArticle.WfwComment,objArticle.WfwCommentRss,objArticle.TrackBackUrl
  129. End If
  130. End If
  131. objRS.MoveNext
  132. If objRS.eof Then Exit For
  133. Set objArticle=Nothing
  134. Next
  135. End If
  136. End With
  137. objRS.close
  138. Set objRS=Nothing
  139. Rss2Export.Execute
  140. Set Rss2Export = Nothing
  141. End Function
  142. Function ExportRSSbyDate(YearMonth)
  143. Dim Rss2Export
  144. Dim objArticle
  145. Set Rss2Export = New TRss2Export
  146. With Rss2Export
  147. Call CheckParameter(YearMonth,"dtm",Empty)
  148. Dim objRS,UserName,UserIntro
  149. .TimeZone=ZC_TIME_ZONE
  150. .AddChannelAttribute "title",TransferHTML(ZC_BLOG_TITLE & " - " & UserName,"[html-format]")
  151. .AddChannelAttribute "link",TransferHTML(ZC_BLOG_HOST,"[html-format]")
  152. .AddChannelAttribute "description",TransferHTML(ZC_BLOG_SUBTITLE & " - " & UserIntro,"[html-format]")
  153. .AddChannelAttribute "generator","RainbowSoft Studio Z-Blog " & ZC_BLOG_VERSION
  154. .AddChannelAttribute "language",ZC_BLOG_LANGUAGE
  155. .AddChannelAttribute "copyright",TransferHTML(ZC_BLOG_COPYRIGHT,"[nohtml][html-format]")
  156. .AddChannelAttribute "pubDate",Now
  157. Dim i
  158. Set objRS=objConn.Execute("SELECT [log_ID],[log_Tag],[log_CateID],[log_Title],[log_Intro],[log_Content],[log_Level],[log_AuthorID],[log_PostTime],[log_CommNums],[log_ViewNums],[log_TrackBackNums],[log_Url],[log_Istop] FROM [blog_Article] WHERE ([log_ID]>0) AND ([log_Level]>2) AND (Year([log_PostTime])="&Year(YearMonth)&") AND (Month([log_PostTime])="&Month(YearMonth)&") ORDER BY [log_PostTime] DESC")
  159. If (Not objRS.bof) And (Not objRS.eof) Then
  160. Do While Not objRS.eof
  161. Set objArticle=New TArticle
  162. If objArticle.LoadInfoByArray(Array(objRS("log_ID"),objRS("log_Tag"),objRS("log_CateID"),objRS("log_Title"),objRS("log_Intro"),objRS("log_Content"),objRS("log_Level"),objRS("log_AuthorID"),objRS("log_PostTime"),objRS("log_CommNums"),objRS("log_ViewNums"),objRS("log_TrackBackNums"),objRS("log_Url"),objRS("log_Istop"))) Then
  163. If ZC_RSS_EXPORT_WHOLE Then
  164. .AddItem objArticle.HtmlTitle,Users(objArticle.AuthorID).Email & " (" & Users(objArticle.AuthorID).Name & ")",objArticle.HtmlUrl,objArticle.PostTime,objArticle.HtmlUrl,objArticle.HtmlContent,Categorys(objArticle.CateID).HtmlName,objArticle.CommentUrl,objArticle.WfwComment,objArticle.WfwCommentRss,objArticle.TrackBackUrl
  165. Else
  166. .AddItem objArticle.HtmlTitle,Users(objArticle.AuthorID).Email & " (" & Users(objArticle.AuthorID).Name & ")",objArticle.HtmlUrl,objArticle.PostTime,objArticle.HtmlUrl,objArticle.HtmlIntro,Categorys(objArticle.CateID).HtmlName,objArticle.CommentUrl,objArticle.WfwComment,objArticle.WfwCommentRss,objArticle.TrackBackUrl
  167. End If
  168. End If
  169. objRS.MoveNext
  170. If objRS.eof Then Exit Do
  171. Set objArticle=Nothing
  172. Loop
  173. End If
  174. End With
  175. objRS.close
  176. Set objRS=Nothing
  177. Rss2Export.Execute
  178. Set Rss2Export = Nothing
  179. End Function
  180. Function ExportRSSbyTags(TagsID)
  181. Dim Rss2Export
  182. Dim objArticle
  183. Set Rss2Export = New TRss2Export
  184. With Rss2Export
  185. Call CheckParameter(TagsID,"int",0)
  186. Dim objRS,TagName
  187. .TimeZone=ZC_TIME_ZONE
  188. TagName=Tags(TagsID).Name
  189. .AddChannelAttribute "title",TransferHTML(ZC_BLOG_TITLE,"[html-format]") & " - " & TagName
  190. .AddChannelAttribute "link",TransferHTML(ZC_BLOG_HOST,"[html-format]")
  191. .AddChannelAttribute "description",TransferHTML(ZC_BLOG_SUBTITLE,"[html-format]") & " - " & TagName
  192. .AddChannelAttribute "generator","RainbowSoft Studio Z-Blog " & ZC_BLOG_VERSION
  193. .AddChannelAttribute "language",ZC_BLOG_LANGUAGE
  194. .AddChannelAttribute "copyright",TransferHTML(ZC_BLOG_COPYRIGHT,"[nohtml][html-format]")
  195. .AddChannelAttribute "pubDate",Now
  196. Dim i
  197. Set objRS=objConn.Execute("SELECT [log_ID],[log_Tag],[log_CateID],[log_Title],[log_Intro],[log_Content],[log_Level],[log_AuthorID],[log_PostTime],[log_CommNums],[log_ViewNums],[log_TrackBackNums],[log_Url],[log_Istop] FROM [blog_Article] WHERE ([log_ID]>0) AND ([log_Level]>2) AND ([log_Tag] LIKE '%{"&TagsID&"}%') ORDER BY [log_PostTime] DESC")
  198. If (Not objRS.bof) And (Not objRS.eof) Then
  199. For i=1 to ZC_RSS2_COUNT
  200. Set objArticle=New TArticle
  201. If objArticle.LoadInfoByArray(Array(objRS("log_ID"),objRS("log_Tag"),objRS("log_CateID"),objRS("log_Title"),objRS("log_Intro"),objRS("log_Content"),objRS("log_Level"),objRS("log_AuthorID"),objRS("log_PostTime"),objRS("log_CommNums"),objRS("log_ViewNums"),objRS("log_TrackBackNums"),objRS("log_Url"),objRS("log_Istop"))) Then
  202. If ZC_RSS_EXPORT_WHOLE Then
  203. .AddItem objArticle.HtmlTitle,Users(objArticle.AuthorID).Email & " (" & Users(objArticle.AuthorID).Name & ")",objArticle.HtmlUrl,objArticle.PostTime,objArticle.HtmlUrl,objArticle.HtmlContent,Categorys(objArticle.CateID).HtmlName,objArticle.CommentUrl,objArticle.WfwComment,objArticle.WfwCommentRss,objArticle.TrackBackUrl
  204. Else
  205. .AddItem objArticle.HtmlTitle,Users(objArticle.AuthorID).Email & " (" & Users(objArticle.AuthorID).Name & ")",objArticle.HtmlUrl,objArticle.PostTime,objArticle.HtmlUrl,objArticle.HtmlIntro,Categorys(objArticle.CateID).HtmlName,objArticle.CommentUrl,objArticle.WfwComment,objArticle.WfwCommentRss,objArticle.TrackBackUrl
  206. End If
  207. End If
  208. objRS.MoveNext
  209. If objRS.eof Then Exit For
  210. Set objArticle=Nothing
  211. Next
  212. End If
  213. End With
  214. objRS.close
  215. Set objRS=Nothing
  216. Rss2Export.Execute
  217. Set Rss2Export = Nothing
  218. End Function
  219. Function ExportRSSbyGuestBook()
  220. Dim Rss2Export
  221. Dim objArticle
  222. Set Rss2Export = New TRss2Export
  223. With Rss2Export
  224. .TimeZone=ZC_TIME_ZONE
  225. .AddChannelAttribute "title",TransferHTML(ZC_BLOG_TITLE & "-" & ZC_MSG275,"[html-format]")
  226. .AddChannelAttribute "link",ZC_BLOG_HOST & "guestbook.asp"
  227. .AddChannelAttribute "description",TransferHTML(ZC_BLOG_SUBTITLE,"[html-format]")
  228. .AddChannelAttribute "generator","Z-Blog " & ZC_BLOG_VERSION
  229. .AddChannelAttribute "language",ZC_BLOG_LANGUAGE
  230. .AddChannelAttribute "pubDate",Now
  231. Dim objRS
  232. Dim objComment
  233. Set objRS=objConn.Execute("SELECT TOP " & ZC_RSS2_COUNT & " * FROM [blog_Comment] WHERE ([comm_ID]>0) AND ([log_ID]=0) ORDER BY [comm_PostTime] DESC")
  234. Do While Not objRS.eof
  235. Set objComment=New TComment
  236. If objComment.LoadInfoByArray(Array(objRS("comm_ID"),objRS("log_ID"),objRS("comm_AuthorID"),objRS("comm_Author"),objRS("comm_Content"),objRS("comm_Email"),objRS("comm_HomePage"),objRS("comm_PostTime"),objRS("comm_IP"),objRS("comm_Agent"))) Then
  237. .AddItem objComment.Author & " Re:"&ZC_MSG275,objComment.Email & " (" & objComment.Author & ")",ZC_BLOG_HOST & "guestbook.asp" & "#cmt" & objComment.ID,objComment.PostTime,ZC_BLOG_HOST & "guestbook.asp" & "#cmt" & objComment.ID,objComment.HtmlContent,"","","","",""
  238. End If
  239. Set objComment=Nothing
  240. objRS.MoveNext
  241. Loop
  242. objRS.close
  243. Set objRS=Nothing
  244. Set objArticle=Nothing
  245. End With
  246. Rss2Export.Execute
  247. Set Rss2Export = Nothing
  248. End Function
  249. Function ExportRSSbyCmt(intID)
  250. Dim Rss2Export
  251. Dim objArticle
  252. Dim objRS
  253. Dim objComment
  254. Set Rss2Export = New TRss2Export
  255. With Rss2Export
  256. Call CheckParameter(intID,"int",0)
  257. Set objArticle=New TArticle
  258. If intID = 0 Then
  259. .TimeZone=ZC_TIME_ZONE
  260. .AddChannelAttribute "title",TransferHTML(ZC_BLOG_TITLE & "-" & ZC_MSG027,"[html-format]")
  261. .AddChannelAttribute "link",ZC_BLOG_HOST
  262. .AddChannelAttribute "description",TransferHTML(ZC_BLOG_SUBTITLE,"[html-format]")
  263. .AddChannelAttribute "generator","Z-Blog " & ZC_BLOG_VERSION
  264. .AddChannelAttribute "language",ZC_BLOG_LANGUAGE
  265. .AddChannelAttribute "pubDate",Now
  266. Set objRS=objConn.Execute("SELECT TOP " & ZC_RSS2_COUNT & " * FROM [blog_Comment] WHERE ([comm_ID]>0) AND ([log_ID]>0) ORDER BY [comm_PostTime] DESC")
  267. Do While Not objRS.eof
  268. Set objComment=New TComment
  269. If objComment.LoadInfoByArray(Array(objRS("comm_ID"),objRS("log_ID"),objRS("comm_AuthorID"),objRS("comm_Author"),objRS("comm_Content"),objRS("comm_Email"),objRS("comm_HomePage"),objRS("comm_PostTime"),objRS("comm_IP"),objRS("comm_Agent"))) And objArticle.LoadInfoByID(objRS("log_ID")) Then
  270. .AddItem objComment.Author & " Re:"&objArticle.HtmlTitle,objComment.Email & " (" & objComment.Author & ")",objArticle.HtmlUrl & "#cmt" & objComment.ID,objComment.PostTime,objArticle.HtmlUrl & "#cmt" & objComment.ID,objComment.HtmlContent,"","","","",""
  271. End If
  272. Set objComment=Nothing
  273. objRS.MoveNext
  274. Loop
  275. objRS.close
  276. Set objRS=Nothing
  277. ElseIf objArticle.LoadInfoByID(intID) Then
  278. .TimeZone=ZC_TIME_ZONE
  279. .AddChannelAttribute "title",TransferHTML(ZC_BLOG_TITLE,"[html-format]")& "-" & objArticle.HtmlTitle
  280. .AddChannelAttribute "link",objArticle.HtmlUrl
  281. .AddChannelAttribute "generator","RainbowSoft Studio Z-Blog " & ZC_BLOG_VERSION
  282. .AddChannelAttribute "language",ZC_BLOG_LANGUAGE
  283. .AddChannelAttribute "pubDate",objArticle.PostTime
  284. If objArticle.CommNums>0 Then
  285. Set objRS=objConn.Execute("SELECT * FROM [blog_Comment] WHERE ([comm_ID]>0) AND ([log_ID]="&intID&") ORDER BY [comm_PostTime] DESC")
  286. Do While Not objRS.eof
  287. Set objComment=New TComment
  288. If objComment.LoadInfoByArray(Array(objRS("comm_ID"),objRS("log_ID"),objRS("comm_AuthorID"),objRS("comm_Author"),objRS("comm_Content"),objRS("comm_Email"),objRS("comm_HomePage"),objRS("comm_PostTime"),objRS("comm_IP"),objRS("comm_Agent"))) Then
  289. .AddItem "Re:"&objArticle.HtmlTitle,objComment.Email & " (" & objComment.Author & ")",objArticle.HtmlUrl & "#cmt" & objComment.ID,objComment.PostTime,objArticle.HtmlUrl & "#cmt" & objComment.ID,objComment.HtmlContent,"","","","",""
  290. End If
  291. Set objComment=Nothing
  292. objRS.MoveNext
  293. Loop
  294. objRS.close
  295. Set objRS=Nothing
  296. End If
  297. End If
  298. Set objArticle=Nothing
  299. End With
  300. Rss2Export.Execute
  301. Set Rss2Export = Nothing
  302. End Function
  303. '/////////////////////////////////////////////////////////////////////////////////
  304. 'plugin node
  305. For Each sAction_Plugin_Feed_End in Action_Plugin_Feed_End
  306. If Not IsEmpty(sAction_Plugin_Feed_End) Then Call Execute(sAction_Plugin_Feed_End)
  307. Next
  308. Call System_Terminate()
  309. If Err.Number<>0 then
  310. Call ShowError(0)
  311. End If
  312. %>