User:Antigng-bot/错误

维基百科,自由的百科全书

这个机器人没有使用任何现成的http库,如果不是用了ssl反向代理,我可能还要考虑把openssl弄进去。所以想谈有多少功能是不现实的,保证不出错就足够了。

这里列出的只是影响维基百科页面的错误,实际上Antigng-bot犯的错误比所列的十倍还要多,造成死机的也不少。

大量删除釣魚臺列嶼主權問題的内容

原因是页面太长了,原先采用定长数组存储页面源码的方法行不通了。

解决方法:使用新的结构存储页面。

2015/9/29

大量增删内容,产生错误的原因是:

        while(sst=recv(s,g,BUFFERMAX,0))
	{
		
	   if(sst>0)	hputs(g,BUFFERMAX,result);
	}

recv函数不会加入\0,因而多次循环之后可能会重复写入数据。(想象一下第一次循环写入xxxxxxxx,第二次循环写入aaaaa,则result不是xxxxxxxxaaaaa,而是xxxxxxxxaaaaaxxx)。

解决方法:if(sst>0) hputs(g,BUFFERMAX,result);替换为if(sst>0){g[sst]=0;hputs(g,BUFFERMAX,result);}

2015/9/25

大量增删内容

线程安全问题,子线程处理某个标题下的问题条目的同时,主线程在从搜索结果中获取、修改标题,导致往某一个条目中提交的新内容是另一个条目的内容。

解决方法:显而易见

2015/9/23

给条目添加重复分类

忽略了fprintf与fputs的差异,见WP:VPO

解决方法:自行补上\n。

2015/9/20

把所有链接都拿走了

由于程序只有检出内链的部分,而缺少比较的部分。本来只想移除向某个条目的链接,结果把条目中所有的内链都拿走了。

解决方法:加上比较的代码。

2015/9/12

给条目加重复模板

由于太过相信搜索结果,没有检查条目内容直接prependtext={{subst:veil}}。

解决方法:检查一下再决定是否编辑。

2015/9/10

把"&"换成&nbsp

api以format=xml形式返回的页面源码,&都被换成&nbsp,没有转回来就提交了。

解决方法:

  1. 自行转换&、<、>、"之类的符号
  2. 用index.php?action=raw代替api