用戶: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