审判者
究竟怎样的人生才能让人喜欢上命运这个词
- 精华
- 5
- 帖子
- 11208
- 威望
- 10 点
- 积分
- 12714 点
- 种子
- 8 点
- 注册时间
- 2005-2-14
- 最后登录
- 2024-11-22
|
最近在追的动画N多……
所以经常会忘了下新的或者干脆下了忘记看……
于是作了个统计表……
(其实主要是想试试新学的XML……)
以下是源码~只要复制到记事本里~保存为相应的文件名(后缀名也要一样)~然后放在一个目录下就可以了~
这次~运行就运行refresh.vbs那个文件就可以了~
一下是news.xml文件~(就相当于数据库~把动画的相关信息放这里~)(格式说明~
<info>
<name>动漫名称</name>
<downs>已经下载的集数</downs>
<watchs>已经看完的集数</watchs>
<ref_day>最后一次更新日期</ref_day>
<weekday>发表的星期数(周日是1~其他顺着~……)</weekday>
<keywords>
<key>文件名的关键字1</key>
<key>文件名的关键字2</key>
<key>文件名的关键字3</key>
……(至少有1个关键字(词)就可以了)……
</keywords>
</info>
~~星期数有点怪……不要弄错……)
一下是carton.xsl文件~这个文件名不能改的……
(我晕……命名空间居然被论坛自动加了url标记……复制粘贴的时候得去掉啊……
命名空间这玩意直接关系到解析过程啊……)- <?xml version="1.0" encoding="gb2312"?>
- <xsl:stylesheet xmlns="[url]http://www.w3.org/TR/xhtml1/strict[/url]" xmlns:xsl="[url]http://www.w3.org/1999/XSL/Transform[/url]" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:m="urn:my-scripts" version="1.0">
- <msxsl:script language="vbscript" implements-prefix="m">
- <![CDATA[
- function mnow()
- mnow=cstr(now())
- end function
- function cmpdate(date1,date2)
- cmpdate=datediff("d",date1,date2)
- end function
- function pubdate(date,weekd)
- num=weekd-weekday(date)
- if num<=0 then num=num+7
- pubdate=cstr(dateadd("d",num,date))
- end function
- function wdname(wd)
- wdname=weekdayname(wd)
- end function
- ]]>
- </msxsl:script>
- <xsl:template match="carton_list">
- <center>
- <p>共追看<xsl:value-of select="count(info)"/>部动画</p>
- <table border="1">
- <thead>
- <th>名字</th>
- <th>已看</th>
- <th>已下</th>
- <th>更新日期</th>
- <th>发布日期</th>
- <th>还须等待</th>
- </thead>
- <tr><td colspan='6'><center>可下载的动画(已看完)
- </center></td></tr>
- <xsl:for-each select="info">
- <xsl:variable name="pubday" select="m:pubdate(string(ref_day),number(weekday))"/>
- <xsl:if test="m:cmpdate($pubday,m:mnow())>=0">
- <xsl:if test="downs=watchs">
- <tr>
- <td><xsl:value-of select="name"/></td>
- <td><xsl:value-of select="watchs"/></td>
- <td><xsl:value-of select="downs"/></td>
- <td><xsl:value-of select="ref_day"/></td>
- <td><xsl:value-of select="$pubday"/>(<xsl:value-of select="m:wdname(string(weekday))"/>)</td>
- <td><center>\</center></td>
- </tr>
- </xsl:if>
- </xsl:if>
- </xsl:for-each>
- <tr><td colspan='6'><center>可下载的动画(未看完)
- </center></td></tr>
- <xsl:for-each select="info">
- <xsl:variable name="pubday" select="m:pubdate(string(ref_day),number(weekday))"/>
- <xsl:if test="m:cmpdate($pubday,m:mnow())>=0">
- <xsl:if test="downs>watchs">
- <tr>
- <td><xsl:value-of select="name"/></td>
- <td><xsl:value-of select="watchs"/></td>
- <td><xsl:value-of select="downs"/></td>
- <td><xsl:value-of select="ref_day"/></td>
- <td><xsl:value-of select="$pubday"/>(<xsl:value-of select="m:wdname(string(weekday))"/>)</td>
- <td><center>\</center></td>
- </tr>
- </xsl:if>
- </xsl:if>
- </xsl:for-each>
- <tr><td colspan='6'><center>未更新的动画(已看完)
- </center></td></tr>
- <xsl:for-each select="info">
- <xsl:variable name="pubday" select="m:pubdate(string(ref_day),number(weekday))"/>
- <xsl:if test="m:cmpdate($pubday,m:mnow())<0">
- <xsl:if test="downs=watchs">
- <tr>
- <td><xsl:value-of select="name"/></td>
- <td><xsl:value-of select="watchs"/></td>
- <td><xsl:value-of select="downs"/></td>
- <td><xsl:value-of select="ref_day"/></td>
- <td><xsl:value-of select="$pubday"/>(<xsl:value-of select="m:wdname(string(weekday))"/>)</td>
- <td><center><xsl:value-of select="m:cmpdate(m:mnow(),$pubday)"/>天</center></td>
- </tr>
- </xsl:if>
- </xsl:if>
- </xsl:for-each>
- <tr><td colspan='6'><center>未更新的动画(未看完)
- </center></td></tr>
- <xsl:for-each select="info">
- <xsl:variable name="pubday" select="m:pubdate(string(ref_day),number(weekday))"/>
- <xsl:if test="m:cmpdate($pubday,m:mnow())<0">
- <xsl:if test="downs>watchs">
- <tr>
- <td><xsl:value-of select="name"/></td>
- <td><xsl:value-of select="watchs"/></td>
- <td><xsl:value-of select="downs"/></td>
- <td><xsl:value-of select="ref_day"/></td>
- <td><xsl:value-of select="$pubday"/>(<xsl:value-of select="m:wdname(string(weekday))"/>)</td>
- <td><center><xsl:value-of select="m:cmpdate(m:mnow(),$pubday)"/>天</center></td>
- </tr>
- </xsl:if>
- </xsl:if>
- </xsl:for-each>
- </table>
- </center>
- </xsl:template>
- </xsl:stylesheet>
复制代码
一下是~新加入的refresh.vbs~- set fs=createobject("scripting.filesystemobject")
- set dom=CreateObject("microsoft.xmldom")
- set troot=fs.getfolder("D:\bitcomet\downloads")
- dom.load "news.xml"
- set infos=dom.documentElement.SelectNodes("info")
- for each info in infos
- refdate=info.selectsinglenode("ref_day").text
- set keywords=info.selectsinglenode("keywords").SelectNodes("key")
- findnew troot,keywords,mname,mdate
- if mdate<>0 then
- mdate=datevalue(mdate)
- if datediff("d",refdate,mdate)>0 then
- info.selectsinglenode("ref_day").text=mdate
- info.selectsinglenode("downs").text=getnum(mname)
- if getnum(mname)=0 then
- msgtext=msgtext & "(解析不能)"
- end if
- msgtext=msgtext & info.selectsinglenode("name").text &":"& getnum(mname) &":"& mdate &chr(13)&chr(10)
- end if
- end if
- next
- dom.save "news.xml"
- if msgtext="" then
- msgtext="无更新"
- end if
- if msgbox(msgtext,4,"更新")=6 then
- set ies=createobject("internetexplorer.application")
- ies.visible=true
- paths=fs.getfile("news.xml").path
- ies.navigate paths
- end if
- function findnew(root,kws,namen,daten)
- namen=""
- daten=0
- for each kwo in kws
- kw=cstr(kwo.text)
- set fls=root.files
- set fds=root.subfolders
- newestf fls,kw,namel,datel
- newestf fds,kw,named,dated
- if datediff("d",daten,datel)>0 then
- namen=namel
- daten=datel
- end if
- if datediff("d",daten,dated)>0 then
- namen=named
- daten=dated
- end if
- next
- end function
- function newest(fs,kw)
- for each f in fs
- if instr(1,lcase(f.name),kw) then
- if datediff("d",f.datelastmodified,newt)<0 then
- newt=f.datelastmodified
- newest=f.name
- end if
- end if
- next
- end function
- function newestf(fs,kw,name,date)
- name=newest(fs,kw)
- if name<>"" then
- date=fs.item(cstr(name)).datelastmodified
- else
- date=0
- end if
- end function
- function getnum(fn)
- for i=1 to len(fn)
- if mid(fn,i,1)="[" then
- if mid(fn,i+3,1)="]" then
- num=mid(fn,i+1,2)
- if isnumeric(num) then
- getnum=cint(num)
- exit for
- end if
- end if
- end if
- next
- if getnum="" then
- getnum=0
- end if
- end function
复制代码
注意了~
这个文件的第三行有一个地址~
那个地址就是动画的保存目录了~
自动更新都会在那个目录下寻找~
所以可以根据自己的情况修改那个地址~
另外~这个更新程序因为完全是针对自己的情况(完全用BT下~下载的文件名都很规范~)做的~
所以完全没设计对错误的处理……所以可能会很多BUG……
不过只要文件夹中都是文件名规范的动画~问题就不大~……
最后还有一点……
这个更新程序不能更新已看的集数……所以那个还要自己更新……
还有就是要添加或者删除动画项目的话~就可以按我第一个文件底下附的介绍格式来~. |
|