<% '/////////////////////////////////////////////////////////////////////////////// '// 插件应用: Z-Blog 1.8 '// 插件制作: '// 备 注: '// 最后修改: '// 最后版本: '/////////////////////////////////////////////////////////////////////////////// Dim Totoro_DebugData Dim Totoro_Debug Dim TOTORO_INTERVAL_VALUE Dim TOTORO_BADWORD_VALUE Dim TOTORO_HYPERLINK_VALUE Dim TOTORO_NAME_VALUE Dim TOTORO_LEVEL_VALUE Dim TOTORO_SV_THRESHOLD Dim TOTORO_SV_THRESHOLD2 Dim TOTORO_DEL_DIRECTLY Dim TOTORO_CONHUOXINGWEN Dim TOTORO_BADWORD_LIST Dim TOTORO_NUMBER_VALUE Dim TOTORO_REPLACE_KEYWORD Dim TOTORO_REPLACE_LIST Dim TOTORO_CHINESESV Dim TOTORO_KILLIP Dim TOTORO_TRANTOSIMP Dim TOTORO_FILTERIP Dim TOTORO_PM Dim TOTORO_THROWCOUNT Dim TOTORO_CHECKCOUNT Dim TOTORO_CHECKSTR Dim TOTORO_THROWSTR Dim TOTORO_KILLIPSTR Dim Totoro_Config Dim Totoro_SV Totoro_SV=0 Dim Totoro_SpamCount_Comment '注册插件 Call RegisterPlugin("Totoro","ActivePlugin_Totoro") Sub Totoro_AddDebug(data) If Totoro_Debug Then Totoro_DebugData=Totoro_DebugData & vbCrlf & "【" & Now & "】" & data End Sub '具体的接口挂接 Function ActivePlugin_Totoro() '挂上接口 'Filter_Plugin_PostComment_Core Call Add_Filter_Plugin("Filter_Plugin_PostComment_Core","Totoro_chkComment") 'Action_Plugin_Admin_Begin Call Add_Filter_Plugin("Filter_Plugin_CommentAduit_Core","Totoro_WriteConfig") 'Call Add_Action_Plugin("Action_Plugin_Admin_Begin","If Request.QueryString(""act"")=""CommentMng"" Then Call Totoro_GetSpamCount_Comment() End If") '网站管理加上二级菜单项 Call Add_Response_Plugin("Response_Plugin_SettingMng_SubMenu",MakeSubMenu("TotoroⅢ设置",GetCurrentHost() & "zb_users/plugin/totoro/setting.asp","m-left",False)) If BlogUser.Level=1 Then Call Add_Response_Plugin("Response_Plugin_CommentMng_SubMenu",MakeSubMenu("TotoroⅢ设置",GetCurrentHost() & "zb_users/plugin/totoro/setting.asp","m-right",False)&"") 'Call Add_Response_Plugin("Response_Plugin_Admin_Left",MakeLeftMenu(1,"TotoroⅢ",GetCurrentHost&"zb_users/plugin/totoro/main.asp","nav_totoro","aTotoro",GetCurrentHost&"zb_users/plugin/totoro/antivirus-alt.png")) End Function Function Totoro_WriteConfig(oTop,isA) Dim strTmp2,strTmp If isA=False And oTop.isCheck=True Then Totoro_Initialize strTmp2=Totoro_Config.Read("TOTORO_BADWORD_LIST") strTmp=oTop.HomePage & "|" & oTop.Content Dim objReg,objMatches,Match Set objReg = New RegExp objReg.IgnoreCase = True objReg.Global = True objReg.Pattern = "(([\w\d]+\.)+\w{2,})" Set objMatches = objReg.Execute(strTmp) For Each Match In objMatches If CheckRegExp(Match.SubMatches(0),strTmp2)=False Then strTmp2=strTmp2 & "|" & Replace(Match.SubMatches(0),".","\.") SetBlogHint_Custom "Totoro新增黑词"& Replace(Match.SubMatches(0),".","\.") End if Next Set objReg = Nothing Set objMatches = Nothing Set Match = Nothing If left(strTmp2,1)="|" then strTmp2=Right(strTmp2, Len(strTmp2) - 1) Totoro_Config.Write "TOTORO_BADWORD_LIST",strTmp2 Totoro_Config.Save End If End Function Function InstallPlugin_Totoro() Set Totoro_Config = New TConfig Totoro_Config.Load("Totoro") If Totoro_Config.Exists("TOTORO_VERSION")=False Then Totoro_Config.Write "TOTORO_VERSION","3.0.4" Totoro_Config.Write "TOTORO_INTERVAL_VALUE",25 Totoro_Config.Write "TOTORO_BADWORD_VALUE",50 Totoro_Config.Write "TOTORO_HYPERLINK_VALUE",10 Totoro_Config.Write "TOTORO_NAME_VALUE",45 Totoro_Config.Write "TOTORO_LEVEL_VALUE",100 Totoro_Config.Write "TOTORO_SV_THRESHOLD",50 Totoro_Config.Write "TOTORO_SV_THRESHOLD2",150 Totoro_Config.Write "TOTORO_DEL_DIRECTLY","False" Totoro_Config.Write "TOTORO_ConHuoxingwen","True" Totoro_Config.Write "TOTORO_BADWORD_LIST","(推广|群发|广告|解密|赌博|包青天|广告|阿凡提|发贴|顶贴|(针孔|隐形|隐蔽式)摄像|干扰|顶帖|发帖|消声|遥控|解码|窃听|身份证生成|拦截|复制|监听|定位|消声|作弊|扩散|侦探|追杀)(机|器|软件|设备|系统)|(求|换|有偿|买|卖|出售)(肾|器官|眼角膜|血)|肾源|(假|毕业)(证|文凭|发票|币)|(手榴|人|麻醉|霰)弹|治疗(肿瘤|乙肝|性病|红斑狼疮)|重亚硒酸钠|(粘氯|原砷)酸|麻醉乙醚|原藜芦碱A|永伏虫|蝇毒|罂粟|银氰化钾|氯胺酮|因毒(硫磷|磷)|异氰酸(甲酯|苯酯)|异硫氰酸烯丙酯|乙酰(亚砷酸铜|替硫脲)|乙烯甲醇|乙酸(亚铊|铊|三乙基锡|三甲基锡|甲氧基乙基汞|汞)|乙硼烷|乙醇腈|乙撑亚胺|乙撑氯醇|伊皮恩|海洛因|一氧(化汞|化二氟)|一氯(乙醛|丙酮)|氧氯化磷|氧化(亚铊|铊|汞|二丁基锡)|烟碱|亚硝酰乙氧|亚硝酸乙酯|亚硒酸氢钠|亚硒酸钠|亚硒酸镁|亚硒酸二钠|亚硒酸|亚砷酸(钠|钾|酐)|冰毒|预测答案|考前预测|押题|代写论文|(提供|司考|级|传送|考中|短信)答案|(待|代|带|替|助)考|(包|顺利|保)过|考后付款|无线耳机|考试作弊|考前密卷|漏题|中特|一肖|报码|(合|香港)彩|彩宝|3D轮盘|liuhecai|一码|(皇家|俄罗斯)轮盘|赌具|特码|盗(号|qq|密码)|盗取(密码|qq)|嗑药|帮招人|社会混|拜大哥|电警棒|帮人怀孕|征兵计划|切腹|VE视觉|电鸡|仿真手枪|做炸弹|ONS|走私|陪聊|h(图|漫|网)|开苞|找(男|女)|口淫|卖身|元一夜|(男|女)奴|双(筒|桶)|看JJ|做台|厕奴|骚女|嫩逼|一夜激情|乱伦|泡友|富(姐|婆)|(足|群|茹)交|阴户|性(服务|伴侣|伙伴|交)|有偿(捐献|服务)|(有|无)码|包养|(犬|兽|幼)交|根浴|援交|小口径|性(虐|爱|息)|刻章|摇头丸|监听王|昏药|侦探设备|性奴|透视眼(睛|镜)|拍肩神|(失忆|催情|迷(幻|昏|奸)?|安定)(药|片|香)|游戏机破解|隐形耳机|银行卡复制设备|一卡多号|信用卡套现|消防[灭火]?枪|香港生子|土炮|胎盘|手机魔卡|容弹量|枪模|铅弹|汽(枪|狗|走表器)|气枪|气狗|伟哥|纽扣摄像机|免电灯|卖QQ号码|麻醉药|康生丹|警徽|记号扑克|激光(汽|气)|红床|狗友|反雷达测速|短信投票业务|电子狗导航手机|弹(种|夹)|(追|讨)债|车用电子狗|避孕|办理(证件|文凭)|斑蝥|暗访包|SIM卡复制器|BB(枪|弹)|雷管|弓弩|(电|长)狗|导爆索|爆炸物|爆破|左棍|婊子|换妻|成人片|淫(靡|水|兽)|阴(毛|蒂|道|唇)|小穴|缩阴|少妇自拍|(三级|色情|激情|黄色|小)(片|电影|视频|交友|电话)|肉棒|(情|奸)杀|裸照|乱伦|口交|禁(网|片)|春宫图|SM用品|自动群发|私家侦探服务|生意宝|商务(快车|短信)|慧聪|供应发票|发票代开|短信群发|短信猫|点金商务|士的宁|士的年|六合采|乐透码|彩票|百乐二呓|百家乐|黄页|出租|求购|留学咨询|外挂|淘宝|群发|货到付款|汽车配件|推广联盟|劳务派遣|网络(兼职|赚钱)|(证件|婚庆|翻译|搬家|追债|债务)公司|手机(游戏|窃听|监听|铃声|图片)|三唑仑|奇迹世界|工作服|wow|论文|铃声|彩(信|铃|票)|显示屏|投影仪|虚拟主机|(域名|专业)注册|营销|服务器托管|网站建设|(google|百度)排名|数据恢复|医院|性病|不孕不育|乳腺病|尖锐湿疣|皮肤病|减肥|瘦|3P|人兽|sex|代孕|打炮|找小姐|刻章|乱伦|中出|楼凤|卖淫|荡妇|群交|幼女|18禁|伦理电影|(催情|蒙汗|蒙汉|春)药|情趣用品|成人.+?(电影|用品)|激情(视频|电影|影院)|爽片|性感美女|交友|怀孕|裸聊|制服诱惑|丝袜|长腿|寂寞女子|免费电影|双色球|福彩|体彩|6合彩|时时彩|双色球|咨询热线|股票|荐股|开股|私服|SF|枪|警棒|警服|麻醉|诚招加盟|诚信经营|杀手|(游戏|金)币|群发|注册.+?公司|公司注册|发票|代开|淘宝|返利|团购|培训|折扣|(打包|试验|打标|破碎|灌装|升降)机|条码|标签纸|升降平台|二手(车|电脑)" Totoro_Config.Write "TOTORO_NUMBER_VALUE",10 Totoro_Config.Write "TOTORO_REPLACE_KEYWORD","**" Totoro_Config.Write "TOTORO_REPLACE_LIST","" Totoro_Config.Write "TOTORO_CHINESESV",50 Totoro_Config.Write "TOTORO_KILLIP",3 Totoro_Config.Write "TOTORO_FILTERIP","" Totoro_Config.Write "TOTORO_TRANTOSIMP",True Totoro_Config.Write "TOTORO_CHECKSTR","Totoro大显神威!你的评论被怀疑是垃圾评论已经被提交审核。" Totoro_Config.Write "TOTORO_THROWSTR","Totoro大显神威!你的评论被怀疑是垃圾评论已经被删除。" Totoro_Config.Write "TOTORO_KILLIPSTR","Totoro大显神威!你的IP不合法不允许评论。" Totoro_Config.Write "TOTORO_PM",False Totoro_Config.Write "TOTORO_THROWCOUNT",0 Totoro_Config.Write "TOTORO_CHECKCOUNT",0 Totoro_Config.Save 'Call SetBlogHint_Custom("您是第一次安装Totoro,已经为您导入初始配置。") ElseIf Totoro_Config.Read("TOTORO_VERSION")="0.0" Then Totoro_Config.Write "TOTORO_VERSION","3.0.3" Totoro_Config.Write "TOTORO_KILLIP",3 Totoro_Config.Write "TOTORO_FILTERIP","" Totoro_Config.Write "TOTORO_TRANTOSIMP",False Totoro_Config.Write "TOTORO_CHECKSTR","Totoro大显神威!你的评论被怀疑是垃圾评论已经被提交审核。" Totoro_Config.Write "TOTORO_THROWSTR","Totoro大显神威!你的评论被怀疑是垃圾评论已经被删除。" Totoro_Config.Write "TOTORO_KILLIPSTR","Totoro大显神威!你的IP不合法不允许评论。" Totoro_Config.Write "TOTORO_THROWCOUNT",0 Totoro_Config.Write "TOTORO_CHECKCOUNT",0 Totoro_Config.Save ElseIf Totoro_Config.Read("TOTORO_VERSION")="3.0.3" Then Totoro_Config.Write "TOTORO_VERSION","3.0.4" Totoro_Config.Write "TOTORO_PM",False Totoro_Config.Write "TOTORO_THROWCOUNT",0 Totoro_Config.Write "TOTORO_CHECKCOUNT",0 Totoro_Config.Save ElseIf Totoro_Config.Read("TOTORO_VERSION")="3.0.4" Then Totoro_Config.Write "TOTORO_VERSION","3.0.5" Totoro_Config.Write "TOTORO_CHECKCOUNT",0 Totoro_Config.Save End If End Function Function Totoro_Initialize() 'On Error Resume Next InstallPlugin_Totoro TOTORO_INTERVAL_VALUE=CLng(Totoro_Config.Read ("TOTORO_INTERVAL_VALUE")) If Err.Number<>0 Then Totoro_Config.Remove("TOTORO_VERSION"):Totoro_Config.Save:Call InstallPlugin_Totoro:TOTORO_INTERVAL_VALUE=CLng(Totoro_Config.Read ("TOTORO_INTERVAL_VALUE")):Call SetBlogHint_Custom("Totoro配置出错,已经重新初始化!") TOTORO_BADWORD_VALUE=CLng(Totoro_Config.Read ("TOTORO_BADWORD_VALUE")) TOTORO_HYPERLINK_VALUE=CLng(Totoro_Config.Read ("TOTORO_HYPERLINK_VALUE")) TOTORO_NAME_VALUE=CLng(Totoro_Config.Read ("TOTORO_NAME_VALUE")) TOTORO_LEVEL_VALUE=CLng(Totoro_Config.Read ("TOTORO_LEVEL_VALUE")) TOTORO_SV_THRESHOLD=CLng(Totoro_Config.Read ("TOTORO_SV_THRESHOLD")) TOTORO_SV_THRESHOLD2=CLng(Totoro_Config.Read ("TOTORO_SV_THRESHOLD2")) TOTORO_DEL_DIRECTLY=CBool(Totoro_Config.Read ("TOTORO_DEL_DIRECTLY")) TOTORO_CONHUOXINGWEN=CBool(Totoro_Config.Read ("TOTORO_ConHuoxingwen")) TOTORO_BADWORD_LIST=Totoro_Config.Read ("TOTORO_BADWORD_LIST") TOTORO_NUMBER_VALUE=CLng(Totoro_Config.Read ("TOTORO_NUMBER_VALUE")) TOTORO_REPLACE_KEYWORD=Totoro_Config.Read ("TOTORO_REPLACE_KEYWORD") TOTORO_REPLACE_LIST=Totoro_Config.Read ("TOTORO_REPLACE_LIST") TOTORO_CHINESESV=Totoro_Config.Read("TOTORO_CHINESESV") TOTORO_KILLIP=CLng(Totoro_Config.Read("TOTORO_KILLIP")) TOTORO_FILTERIP=Totoro_Config.Read("TOTORO_FILTERIP") TOTORO_TRANTOSIMP=CBool(Totoro_Config.Read("TOTORO_TRANTOSIMP")) TOTORO_CHECKSTR=Totoro_Config.Read ("TOTORO_CHECKSTR") TOTORO_THROWSTR=Totoro_Config.Read ("TOTORO_THROWSTR") TOTORO_KILLIPSTR=Totoro_Config.Read ("TOTORO_KILLIPSTR") TOTORO_PM=CBool(Totoro_Config.Read("TOTORO_PM")) TOTORO_THROWCOUNT=CLng(Totoro_Config.Read("TOTORO_THROWCOUNT")) TOTORO_CHECKCOUNT=CLng(Totoro_Config.Read("TOTORO_CHECKCOUNT")) End Function Function Totoro_Xiou(strContent) Dim a,b,c,d,text text=strContent Set a=New RegExp a.Pattern="&#(\d+?);" a.Global=True Set b=a.Execute(text) For Each c In b d = CLng(c.Submatches(0)) If d - 65536 > 0 Then d = d - 65536 End If text = Replace(text, c.value, ChrW(d)) Next Totoro_Xiou=text End Function '********************************************************* ' 目的: 检查评论 '********************************************************* Function Totoro_chkComment(ByRef objComment) Call Totoro_Initialize objComment.IP=GetReallyIP() objComment.Agent=Request.ServerVariables("HTTP_USER_AGENT") Call Totoro_cComment(objComment,BlogUser,False) Totoro_chkComment=True End Function '********************************************************* Sub Totoro_cComment(objComment,objUser,isDebug) Totoro_Debug=isDebug If objComment.IsCheck=True Then Exit Sub If objComment.IsThrow=True Then Exit Sub If Totoro_FunctionFilterIP(objComment.IP) Then ZVA_ErrorMsg(14)=TOTORO_KILLIPSTR Totoro_AddDebug ZVA_ErrorMsg(14) objComment.IsThrow=True Exit Sub End iF Totoro_AddDebug "IP("&objcomment.ip&")不在范围内,进入下一步测试" Dim strTemp strTemp=objComment.Content If Totoro_PM Then strTemp=Totoro_FilterPMPlusHtmlTag(strTemp) End If If TOTORO_TRANTOSIMP Then strTemp=Totoro_FunctionTranToSimp(strTemp) End If If TOTORO_ConHuoxingwen Then strTemp=Totoro_Xiou(strTemp) strTemp=Totoro_FxxxHuoxingwen(strTemp) strTemp=Totoro_FromSBCCode(strTemp) strTemp=Totoro_GetNum(strTemp) End If Totoro_AddDebug "待处理评论:" & vbcrlf & strTemp Call Totoro_checkLevel(objUser.Level) Totoro_AddDebug "用户级别测试完毕。SV为:" & Totoro_SV Call Totoro_checkName(objComment.IP) Totoro_AddDebug "访客熟悉度测试完毕。SV为:" & Totoro_SV Call Totoro_checkHyperLink(strTemp) Totoro_AddDebug "超链接测试完毕。SV为:" & Totoro_SV Call Totoro_checkBadWord(strTemp & "&" & objComment.Author & "&" & objComment.HomePage & "&" & objComment.IP & "&" & objComment.Email) Totoro_AddDebug "黑词测试完毕。SV为:" & Totoro_SV Call Totoro_checkInterval(GetReallyIP()) Totoro_AddDebug "发表频率测试完毕。SV为:" & Totoro_SV Call Totoro_checkNumLong(strTemp) Totoro_AddDebug "数字长度测试完毕。SV为:" & Totoro_SV Call Totoro_checkChinese(strTemp) Totoro_AddDebug "中文测试完毕。SV为:" & Totoro_SV objComment.Content=Totoro_replaceWord(objComment.Content) objComment.Author=Totoro_replaceWord(objComment.Author) 'Response.AddHeader "Totoro_SV",Totoro_SV 'Response.AddHeader "Content",strTemp Totoro_AddDebug "敏感词替换完毕" Dim o If Totoro_SV>=TOTORO_SV_THRESHOLD Then ZVA_ErrorMsg(14)=TOTORO_THROWSTR ZVA_ErrorMsg(53)=TOTORO_CHECKSTR If Totoro_SV?/.,!#¥…()—、【】{};:‘’“”《》,。、?"&Chr(9) Dim i For i=1 To Len(a) strT=Replace(strT,Mid(a,i,1),"") Next Totoro_FilterPMPlusHtmlTag=strT End Function Function Totoro_checkName(ByVal ip) If TOTORO_NAME_VALUE=0 Then Exit Function Dim i,s s=FilterSQL(ip) i=0 Dim objRS Set objRS=objConn.Execute("SELECT COUNT([comm_ID]) FROM [blog_Comment] WHERE [log_ID]>=0 and [comm_IP] ='" & ip & "' and [comm_isCheck]=0") If (Not objRS.bof) And (Not objRS.eof) Then i=objRS(0) End If Set objRS=Nothing If i=0 Then Totoro_SV=Totoro_SV If i>0 And i<=10 Then Totoro_SV=Totoro_SV-10-TOTORO_NAME_VALUE*(0) If i>10 And i<=20 Then Totoro_SV=Totoro_SV-10-TOTORO_NAME_VALUE*(1) If i>20 And i<=50 Then Totoro_SV=Totoro_SV-10-TOTORO_NAME_VALUE*(2) If i>50 Then Totoro_SV=Totoro_SV-10-TOTORO_NAME_VALUE*(3) End Function Function Totoro_checkBadWord(ByVal content) On Error Resume Next If Totoro_SV+TOTORO_BADWORD_VALUE=0 Then Exit Function Dim o Set o=New RegExp o.Pattern=vbsunescape(TOTORO_BADWORD_LIST) o.Global=True o.IgnoreCase=True dim matches set matches=o.execute(content) If Err.Number=0 Then Totoro_SV=Totoro_SV+TOTORO_BADWORD_VALUE*matches.count Else Totoro_AddDebug "黑词列表错误" End If Set o=Nothing End Function Function Totoro_replaceWord(content) On Error Resume Next Dim o If TOTORO_REPLACE_LIST="" Then Totoro_replaceWord=content:Exit Function Set o=New RegExp o.Pattern=TOTORO_REPLACE_LIST o.Global=True o.IgnoreCase=True If Err.Number=0 Then Totoro_replaceWord=o.replace(content,TOTORO_REPLACE_KEYWORD) Else Totoro_AddDebug "敏感词列表错误" End If Set o=Nothing End Function Function Totoro_checkHyperLink(ByVal content) If TOTORO_HYPERLINK_VALUE=0 Then Exit Function Dim SRegExp,Matches Set SRegExp=New RegExp SRegExp.IgnoreCase =True SRegExp.Global=True SRegExp.Pattern="https?://(?!www|ftp)|ftp|www." Set Matches = SRegExp.Execute(content) Totoro_SV=Totoro_SV+TOTORO_HYPERLINK_VALUE*(2^matches.count-1) Set SRegExp=Nothing End Function Function Totoro_checkInterval(ByVal ip) On Error Resume Next If TOTORO_INTERVAL_VALUE=0 Then Exit Function Dim i,j,t,s,m,n Dim objRS i=0 m="SELECT COUNT([comm_ID]) FROM [blog_Comment] WHERE [comm_IP] ='" & ip & "'" m=m&" AND [comm_PostTime]>"&ZC_SQL_POUND_KEY& FormatDateTime( DateAdd("h", -1, now) ) &ZC_SQL_POUND_KEY Set objRS=objConn.Execute(m) If Err.Number=0 Then If (Not objRS.bof) And (Not objRS.eof) Then i=objRS(0) End If Else i=0 Totoro_AddDebug "时间格式可能有误" End If Set objRS=Nothing If i>0 Then If i<=10 Then s=TOTORO_INTERVAL_VALUE*1/5 ElseIf i>10 And i<=20 Then s=TOTORO_INTERVAL_VALUE*2/5 Elseif i>20 And i<=30 Then s=TOTORO_INTERVAL_VALUE*3/5 ElseIf i>30 And i<=40 Then s=TOTORO_INTERVAL_VALUE*4/5 ElseIf i>40 And i<=50 Then s=TOTORO_INTERVAL_VALUE*5/5 Else s=TOTORO_INTERVAL_VALUE*6/5 End If End If Totoro_SV=Totoro_SV+s End Function '********************************************************* ' 目的: '********************************************************* Function Totoro_GetSpamCount_Comment() If IsEmpty(objConn)=True Then Exit Function Dim objRS1 Set objRS1=objConn.Execute("SELECT COUNT([comm_ID]) FROM [blog_Comment] WHERE [comm_isCheck]=-1 Or [comm_isCheck]=1") If (Not objRS1.bof) And (Not objRS1.eof) Then Totoro_SpamCount_Comment="("&objRS1(0)&"条未审核)" End If '评论管理加上二级菜单项 Call Add_Response_Plugin("Response_Plugin_CommentMng_SubMenu",MakeSubMenu("审核评论" & Totoro_SpamCount_Comment,GetCurrentHost() & "zb_users/plugin/totoro/setting1.asp","m-left",False)& "") End Function '********************************************************* Function Totoro_FxxxHuoxingwen(str) Dim a,b,d d=str a=Array("҉|","蕶","ニ|貳","弎","陸","ハ|仈","艽","ā|á|ǎ|à|а|А|α","в|в|В|ъ|Ъ|ы|Ы|ь|Ь|β","с|с|С","Ё|е|Е|ё|Ё|ê|ē|é|ě|è","℉|f","ɡ","н|Н","ī|í|ǐ|ì","j","κ","ι","м|М","ń|п|П|Й|π","ō|ó|ǒ|ǒ|о|О|ο|σ|⊙|○|◎","р|Р|ρ","я|Я","\$","т|Т|τ","ū|ú|ǔ|ù|∪|μ|υ","∨|ν","ω","×|х|Х|χ","у|У|γ","э|Э","θ","ф|Ф") b=Array("",0,2,3,6,8,9,"a","b","c","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","u","v","w","x","y",3,8,"中") Dim c,i set c=new regexp c.Global=True c.IgnoreCase=True For i=0 To ubound(a) c.Pattern=a(i) d=c.replace(d,b(i)) Next Totoro_FxxxHuoxingwen=d set c=nothing End Function Function Totoro_FromSBCCode(str) Dim a,b,c a="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz[];'/.,<>?":{}|+_\=-)(*&^%$#@! ̄" b="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz[];'/.,<>?"":{}|+_\=-)(*&^%$#@!~" For c=1 To Len(a) str=Replace(str,Mid(a,c,1),Mid(b,c,1)) Next Totoro_FromSBCCode=str End Function Function Totoro_GetNum(str) Dim a,b,d d=str a=Array("零|〇"," 一|壹|Ⅰ|⒈|㈠|①|⑴","二|贰|Ⅱ|⒉|㈡|②|⑵","三|叁|Ⅲ|⒊|㈢|③|⑶","四|肆|Ⅳ|⒋|㈣|④|⑷","五|伍|Ⅴ|⒌|⑤|㈤|⑸","六|陆|Ⅵ|⒍|㈥|⑥|⑹","七|柒|Ⅶ|⒎|⑦|㈦|⑺","八|捌|Ⅷ|⒏|㈧|⑧|⑻","九|玖|Ⅸ|⒐|⑨|㈨|⑼","十|拾|㈩|⑩|⒑|Ⅺ|⑽") b=Array(0,1,2,3,4,5,6,7,8,9,10) Dim c,i set c=new regexp c.Global=True c.IgnoreCase=True For i=0 To 10 c.Pattern=a(i) d=c.replace(d,b(i)) Next Totoro_GetNum=d set c=nothing End Function Function Totoro_CheckNumLong(str) Dim a,b,c set c=new regexp c.global=true c.pattern="\d" b=str b=c.replace(b,"") a=len(str)-len(b) if a>10 then Totoro_SV=Totoro_SV+TOTORO_NUMBER_VALUE*(a-10) end if Totoro_CheckNumLong=True set c=nothing End Function Function Totoro_FunctionFilterIP(userip) 'COPY FROM ANTISPAM (HTTP://WWW.WILLIAMLONG.INFO) Dim IPlock Dim locklist Dim i, StrUserIP, StrKillIP IPlock = False locklist = Trim(TOTORO_FILTERIP) If locklist = "" Then Exit Function StrUserIP = userip locklist = Split(locklist, "|") If StrUserIP = "" Then Exit Function StrUserIP = Split(userip, ".") If UBound(StrUserIP) <> 3 Then Exit Function For i = 0 To UBound(locklist) locklist(i) = Trim(locklist(i)) If locklist(i) <> "" Then StrKillIP = Split(locklist(i), ".") If UBound(StrKillIP) <> 3 Then Exit For IPlock = True If (StrUserIP(0) <> StrKillIP(0)) And InStr(StrKillIP(0), "*") = 0 Then IPlock = False If (StrUserIP(1) <> StrKillIP(1)) And InStr(StrKillIP(1), "*") = 0 Then IPlock = False If (StrUserIP(2) <> StrKillIP(2)) And InStr(StrKillIP(2), "*") = 0 Then IPlock = False If (StrUserIP(3) <> StrKillIP(3)) And InStr(StrKillIP(3), "*") = 0 Then IPlock = False If IPlock Then Exit For End If Next Totoro_FunctionFilterIP = IPlock End Function Function Totoro_FunctionKillIP(obj,ist) If TOTORO_KILLIP=0 Then Exit Function Dim objRs,strSQL,strSQL2 If ZC_MSSQL_ENABLE Then strSQL2=" [comm_PostTime]>'"&DateAdd("d",-1,now)&"'" Else strSQL2=" [comm_PostTime]>#"&DateAdd("d",-1,now)&"#" End If strSQL="SELECT COUNT ([comm_ID]) FROM [blog_Comment] WHERE [comm_IP]='"&obj.IP&"' AND"&strSQL2 Set objRs=objConn.Execute(strSQL) Dim j If Not objRs.Eof Then j=objRs(0) End If If j>TOTORO_KILLIP Or ist=True Then If ist=False Then TOTORO_FILTERIP=IIf(TOTORO_FILTERIP="",obj.ip,TOTORO_FILTERIP&"|"&obj.ip) Totoro_Config.Write "TOTORO_FILTERIP",TOTORO_FILTERIP Totoro_Config.Save End If Call Totoro_DelSpam(obj.IP,ist) End If Totoro_FunctionKillIP=j End Function Function Totoro_DelSpam(IP,isTh) Dim objRs,strSQL,strSQL2 If isTh=False Then If ZC_MSSQL_ENABLE Then strSQL2=" AND [comm_PostTime]>'"&DateAdd("d",-1,now)&"'" Else strSQL2=" AND [comm_PostTime]>#"&DateAdd("d",-1,now)&"#" End If End If strSQL="UPDATE [blog_Comment] SET [comm_isCheck]=1 WHERE [comm_IP]='"&IP&"'"&strSQL2 Set objRs=objConn.Execute(strSQL) strSQL="SELECT [log_ID] FROM [blog_Comment] WHERE [comm_IP]='"&IP&"'"&strSQL2 Set objRs=objConn.Execute(strSQL) Do Until objRs.Eof Call BuildArticle(objRs("log_ID"),False,True) objRs.MoveNext Loop BlogReBuild_Comments Call ClearGlobeCache Call LoadGlobeCache End Function %>