Author Topic: Bit Che Script Documentation v.01a Chinese Version  (Read 4873 times)

laomms

  • Guest
Bit Che Script Documentation v.01a Chinese Version
« on: April 07, 2007, 06:14:18 pm »

Bit Che脚本制作说明:

备注: 最快学会写脚本的方法是仔细阅读完这篇教程、记住函数清单。 然后"调试"现存的脚本以便让你了解各个函数在脚本中的功能. 一旦你学会了写脚本的方法,去尝试自己写一些新的脚本.
在你开始编辑脚本之前,首先编辑"settings.ini"文件,在"[options]"段增加一条命令"debug=1"。该文件在软件的安装目录中。现在,选中一个菜单项, 选择"脚本调试"(也可以直接按快截键F12),然后一步步调试脚本.
写在前面:脚本的设计思路是将HTML解析为两个数组(R 和 Q).第一个数组'R'存储所有搜索结果的内容等数据,将所有搜索到结果以带'r'的分界符转成数组中的各参数。带'r'的分界符就是指典型的符号"</tr>".第二个数组'Q'是用来将每次'R'中的搜索结果转成规范的数据。带'Q'的分隔符最常见的就是 "/TD>".然后遍历数组中的信息,存储其中的种子信息为特定的变量。
注:你也可以用数组显示工具来帮助你将HTML中的数据解析成各数组:快捷数组显示。
 

变量处理:
字母a到z(小写)可以用来作变量的名称,除少数特殊的个案.
r=将结果分别分配给各数组.
q=分配一个结果到数组.
d=将HTML中的数据传送到脚本(可以随时编辑/修改脚本). 
z=分配完数组后始终设置为1(起到一直使用的功效).

数字1-7用来统计种子信息,不同于字母a-z的功能.
   1 = 名称
   2 = 大小
   3 = 引用页
   5 = 种子数
   6 = 比率
   7 = 种子网址

除了某些特殊功能,基本按照下面这一公式: 

X=F(p1,p2,p3)

x返回以字母(a-z)命名的函数。F是函数名,p1..p3是参数名


函数清单:

i( - 搜索字符串
h( - 搜索字符串如果没有发现则停止
r( - 逆向搜索字符串
c( - 插入或编辑字符串
split( - 将数据块分割成数组
array( - 从 'q' 数组中取数据
replace( - 用另一字符串代替
save( - 存储特定的种子信息到#   (看上面)
e( - 释放: 联合搜索, crop/cut, 清理.
x( - 释放: 联合搜索, crop/cut, 清理, 保存.
p( - 将字符串存储为一个变量
&( - 连接字符串或变量
+( - 增加一个变量
-( - 减少一个变量
start - 循环解析
aloop - 在结果清单中增加一个种子然后回到开始



函数基本功能:

h  --  如果没有结果则按照字符串不停的搜索下去,除非发出停止命令. 从脚本的第一行开始. 存储返回的字符串为一个整型变量.

   vRes = h ( vStart, vData, sSearch )
   z=h(x,d,</td>)   

   搜索'</td>'中'd'存储到变量'x',储存结果到变量'z'.如果没有找到'</td>'符号,脚本停止(中止).
   可扩展使用,可以多任务搜索(最多10条):   
   vRes = h ( vStart, vData, sSearch , sSearch2, sSearch3...etc ) 
   z=h(x,d,</font>,<bc><bc>,)

   注:如果最后一个''没有发现脚本将停止,以便从第一项开始搜索. 这可以使我们确认HTML数据的导出.

i  --  搜索另一个字符串. 存储字符串为整形变量.

   vRes = i ( vStart, vData, sSearch )
   x=i(x,d,</td>)

   有点类似'h'的功能,但没有停止.

r  --  逆向搜索字符串

   vRes = r ( vStart, vData, sSearch)
   x=r(-1,t,title=)

   从'title='中的最后一个 't'开始搜索存储到'x'
   注意: '-1'指总是从最后一个字符串开始搜索.数字在这里可以使用.

c  -- 从开始处和结束处插入一个字符串变量

   vRes = c ( vData, vStart, VEnd)
   d=c(d,x,z)

split -- 用来将数据块分割成数组.

   这是个特殊功能,只可以用'r & q'变量
   
   r=split(d,</tr>)  - sets up the 'r' array delimiting with </tr>
   q=split(r,</td>)  - sets up the 'q' array delimiting with </td>

   Note: the delimiter can be anything you like, the result variables and the array variables can not be changed.
   注:定界符可以用你喜欢的,变量和数组不能改变.

array -- 用于从数组'q'中获取数据存储为一个变量.

   t=array(q,2)

   存储数组'q'的第三项到变量't'.
   注意:数组的参数总是从0开始,这意味着数组各参数依次为:
   0=1st    1=2nd    2=3rd  ..etc

replace -- 从字符串中搜索一个指定的字符串,用另一个字符串代替

   vRes = replace ( vData, sSearch, sReplace)
   d=replace(d,</td>,[-bc-]</td>)
   一个有用的功能,当 Bit Che 需要解析HTML代码等.

save  -- 保存变量为一个指定的种子信息:
   
   1=save(k)

   保存变量 'k'中字符串为种子信息中的变量 '1' (即名称)

   1 = 名称
   2 = 大小
   3 = 引用页

   5 = 种子
   6 = 比率
   7 = 种子网址

x  --  特殊功能:合并搜索、剪切、释放、清除、保存.

   vRes = x ( vData, vStart, vEnd)
   2=x(t,z,<bc>,[-bc-])

   从'<bc>'到'[-bc-]'中的'z'开始搜索变量't'并提取数据 .然后存储为种子信息中的大小项.提取到的数据从不需要的HTML代码中自动清除.
 
e  --  特殊功能:合并搜索、剪切、释放、清除.

   vRes = e ( vData, vStart, vEnd)
   q=e(t,z,<bc>,[-bc-])

   从'<bc>'到'[-bc-]'中的'z'开始搜索变量't'并提取数据 .然后存储为变量q..提取到的数据从不需要的HTML代码中自动清除.
   注意:这个跟'x'功能类似除了没有保存功能. 这是个有用的功能,在你想保存种子信息之前想操作结果.

p  --  允许你存储字符串为一个变量

   vRes = p ( sString )
   t=p(hello world)
   
   存储'hello world' 到 't'
   注意:可以存储字符串和数字.

&  --  可以用来合并字符串或变量.

   vRes = & ( vFirst, vSecond, etc..)
   t=&(k,m)

   合并 'k' 和 'm' 存为变量 't'

   注: 如果你想合并文本字符串,只要放一个 ' 在字符串前. 比如:
   t = & ( 'http://www.domain.com, q, '.torrent)
   如果变量 q = "/download.php?name=file", 那么 t 就等于
   http://www.domain.com/download.php?name=file.torrent


+/-  -- 从变量中增加或减少一项
   
   vRes = + ( sNum)
   
   x=+(1)
   variable 'x' = 'x' + 1

   x=-(5)
   variable 'x' = 'x' - 5

start --  指定脚本中的行数以便Bit Che可以从结果数组 'r'中循环取下一个数组.

aloop  -- 增加种子信息到种子结果中,然后回到脚本的开始处.



其他特殊功能:
vacuum -- 从字符串中删除诸如'tab' and 'line return'等字符.

   d=vacuum(d)


一些文章中所未提到的参数、变量、修改等信息可能会出现在某些脚本中,这些将会在以后提到。



为了更清楚些,让我们用一个空白的表格作个例子(典型的HTML代码输出)..

Code:
<TABLE width="100%" border="1" cellspacing="0" cellpadding="2">
<tr>
      <td>Torrent Name 1</td>
      <td>File Size 1</td>
      <td>URL 1</td>
    </tr>
    <tr>
      <td>Torrent Name 2</td>
      <td>File Size 2</td>
      <td>URL 2</td>
    </tr>
    <tr>
      <td>Torrent Name 3</td>
      <td>File Size 3</td>
      <td>URL 3</td>
    </tr>

</TABLE>

1. 首先我们从第一个 <tr> 到最后一个 </td>中搜索关键字符串 (关键字符串存于变量'd'中).

Code:
x=h(x,d,<tr>,<td)         
z=i(x,d,</TABLE>)         
d=c(d,x,z)

2. 然后分配到数组 'r' .

Code:
r=split(d,</tr>)

3. 然后我们开始循环,因为我们要得到数组r中所有不同项.

Code:
start

4. 开始循环前, 我们要分配数组'r'到数组'q'. 我们先要做的是将结果转为标准的数组'q'.

Code:
q=split(r,/td>)

将'r'中的项目转为'q'中.

q(0): <td>Torrent Name 1<
q(1): <td>File Size 1<
q(2): <td>URL 1<


5. 将数组 'q'中的第一项存为字符串.

Code:
t=array(q,0)

6. 保存为种子名称.

Code:
1=x(t,z,>,<)

7. 将数组 'q'中的第二项存为字符串.

Code:
t=array(q,1)

8. 存为种子的大小.

Code:
2=x(t,z,>,<)

9. 将数组 'q'中的第三项(最后一项)存为字符串.

Code:
t=array(q,2)

10. 存为种子的网址.

Code:
7=x(t,z,>,<)

11. 增加种子结果,并从数组'r'重新开始解析下一个项目.

Code:
aloop


12.  完整的脚本如下:

Code:
'
Code: [Select]
x=h(x,d,<tr>,<td)
z=i(x,d,</TABLE>)
d=c(d,x,z)
r=split(d,</tr>)
start
q=split(r,/td>)
t=array(q,0)
1=x(t,z,>,<)
t=array(q,1)
2=x(t,z,>,<)
t=array(q,2)
7=x(t,z,>,<)
aloop



如制作TorrentSpy.com的脚本:

Code:
'
Code: [Select]
x=h(x,d,table class="list")
x=i(x,d,</tr>)
x=+(5)
z=i(x,d,</table>)
d=c(d,x,z)
r=split(d,</tr)
start
q=split(r,/td>,2)
t=array(q,0)
x=p(1)
z=i(x,t,href)
3=x(t,z,",",http://torrentspy.com)
x=p(1)
x=i(x,t,/,/)
x=+(1)
z=i(x,t,/)
n=c(t,x,z)
u=p(http://www.torrentspy.com/download.asp?id=)
u=&(u,n)
7=save(u)
x=r(-1,t,title=)
1=x(t,x,",")
t=array(q,2)
z=p(1)
2=x(t,z,>,<)
t=array(q,4)
z=p(1)
5=x(t,z,>,<)
t=array(q,5)
z=p(1)
6=x(t,z,>,<)
aloop




就是这样..  如果有什么不明白可以提问,我会尽量解释我所知道的. 自动我使用这种脚本'语言', 我不知道怎样才能提供更多的资料、例子等.

还有,一定要记住修改 "settings.ini"并写上一行代码"debug=1",然后重启Bit Che,如果你了解更多的脚本调试知识,也请尝试编写脚本.




Offline chip!

  • Bad Ass
  • Administrator
  • Unstoppable
  • *****
  • Posts: 2301
  • Karma: +629/-6
    • View Profile
Re: Bit Che Script Documentation v.01a Chinese Version
« Reply #1 on: April 08, 2007, 05:40:02 am »
sweet! thank you very much! :)
  -  https://convivea.com  -   And...  boom goes the dynamite.