快手软件

天涯抽水机 源码

原文地址:http://www.ecranesoft.com/bbs/showtopic-9579.aspx


天涯


import win.ui;
import win.ole.image;
import web.form;
import inet.http;

 

 

/*****************************

* 名称:天涯抽水机

* 作者: -低 调-

* 版本: 1.01

* 日期:2010.10.14

* 备注: 程序仅用于AAuto学习研究,

 

*****************************/ 

 

/*--------------------------------变量----------------------------------*/ 

 

CONT = "";                                                                      //网页源代码

XX = {
"title";"author";"pageid"=0;"isempty"}                                    //内容信息

allmess = {};                                                                   
//全部数据

allpage = {};                                                                   
//所有页码

lzmess = {};                                                                    
//楼主信息

guolv = {
"\<.*?\>";"·";" ";"此帖发自掌中天涯:wap.tianya.cn";"\<br\>"};//过滤字符规则
tihuan = {};//过滤字符规则

lpage = 
"";                                                                     //下一页

npage = 
"";                                                                     //上一页

opage = 
"";                                                                     //当前页
 

/*--------------------------------窗体----------------------------------*/
/*DSG{{*/
var winform = win.form(parent=...; right=703;bgcolor=16777215;bottom=399;scroll=1;text="天涯抽水机 -低 调- QQ:779477940";border="dialog frame";mode="popup" )
winform.add( 
button2={ ah=1;bottom=27;text=
"开始抽水";left=632;top=8;font=LOGFONT( name="宋体";h=-12 );transparent=1;right=688;aw=1;z=3;cls="button" };
show_content={ bottom=392;right=624;left=8;multiline=1;top=32;font=LOGFONT( name=
"宋体";h=-12 );z=11;vscroll=1;text="";edge=1;cls="richedit" };
button1={ ah=1;bottom=323;text=
"帮助手册";left=632;top=304;font=LOGFONT( name="宋体";h=-12 );transparent=1;right=687;aw=1;z=2;cls="button" };
button5={ ah=1;bottom=91;text=
"只看楼主";left=632;top=72;font=LOGFONT( name="宋体";h=-12 );transparent=1;right=688;aw=1;z=6;cls="button" };
static={ right=664;bottom=200;text=
"当前:";left=632;top=184;font=LOGFONT( name="宋体";h=-12 );z=13;transparent=1;cls="static" };
input_url={ ah=1;bottom=27;text=
"";left=8;top=8;font=LOGFONT( name="宋体";h=-12 );z=1;aw=1;right=624;edge=1;cls="edit" };
show_allpage={ right=688;bottom=184;text=
"";left=664;top=168;font=LOGFONT( name="宋体";h=-12 );z=14;transparent=1;cls="static" };
show_static={ right=664;bottom=184;text=
"总数:";left=632;top=168;font=LOGFONT( name="宋体";h=-12 );z=12;transparent=1;cls="static" };
button13={ ah=1;bottom=355;text=
"程序更新";left=632;top=336;font=LOGFONT( name="宋体";h=-12 );transparent=1;right=687;aw=1;z=10;cls="button" };
button6={ ah=1;bottom=123;text=
"上一页";left=632;top=104;font=LOGFONT( name="宋体";h=-12 );transparent=1;right=688;aw=1;z=7;cls="button" };
button111={ ah=1;bottom=387;text=
"关闭程序";left=632;top=368;font=LOGFONT( name="宋体";h=-12 );transparent=1;right=687;aw=1;z=4;cls="button" };
button7={ ah=1;bottom=155;text=
"下一页";left=632;top=136;font=LOGFONT( name="宋体";h=-12 );transparent=1;right=688;aw=1;z=8;cls="button" };
button10={ ah=1;bottom=59;text=
"暴力抽水";left=632;top=40;font=LOGFONT( name="宋体";h=-12 );transparent=1;right=688;aw=1;z=9;cls="button" };
button4={ ah=1;bottom=291;text=
"导出TXT";left=632;top=272;font=LOGFONT( name="宋体";h=-12 );transparent=1;right=687;aw=1;z=5;cls="button" };
show_nowpage={ right=688;bottom=200;text=
"";left=664;top=184;font=LOGFONT( name="宋体";h=-12 );z=15;transparent=1;cls="static" }
)
/*}}*/

/*
//创建web窗体
var wb = web.form( winform.show_content 
    ,//可输入_UIFLAG_ 前缀的常量自定义外观
    ,//可输入_DLCTL_ 前缀的常量以控制下载行为
    );
        
//转到网址
winform.button.oncommand = function(id,event){
    //显示对应网页
    show_url(winform.input_url.text);
//  show_url("http://www.tianya.cn/publicforum/content/funinfo/1/2273274.shtml");   
}
*/

/*****************************

    程序更新

 

*****************************/

winform.button13.oncommand = function(id,event){
    win.msgbox( 
"请访问 http://wo94.com 查看最新更新" );    
}

/*****************************

    暴力抽水
    
*****************************/

winform.button10.oncommand = function(id,event){
    
    re = win.msgboxTest(
'暴力抽水将会把帖子所有页全部抽出!非常的暴力!\r\n配置不高,网速不快,请谨慎使用!\n继续使用请按确定!',"警告")
    
if(re = 1){
        allmess = {};       
//清空原信息        
        lzmess = {};        //清空楼主信息
        
        winform.show_content.text = 
"";
        
        urll = winform.input_url.text;  
//网页地址
        
        start(urll,1);                  
//初始化操作 获取第一页

        
for(k,v in allpage){
            
if(k>1){
                urll = 
"http://www.tianya.cn/publicforum/content/funinfo/1/"+v+".shtml";
                start(urll,0)
                win.delay(1000);
            }
        }   

        set_show_content(allmess);      //显示所有信息
        
        set_static();                   
//设置运行状态
    }
}

/*****************************

    开始抽水
    
*****************************/

    
winform.button2.oncommand = 
function(id,event){
    
    winform.show_content.text = 
"";
    urll = winform.input_url.text;  
//网页地址
    
    start(urll,1);                  
//初始化操作
    set_show_content(allmess);      //显示所有信息
    set_static();                   //设置运行状态

}

/*****************************

    只看楼主
    
*****************************/

winform.button5.oncommand = function(id,event){

    set_show_content(lzmess);       //只显示楼主

}

/*****************************
    
    上一页

*****************************/

winform.button6.oncommand = function(id,event){

    allmess = {};       //清空原信息        
    lzmess = {};        //清空楼主信息

    ln_page_id(winform.input_url.text);
//当前页地址
    
    new_url = 
"http://www.tianya.cn/publicforum/content/funinfo/1/"+lpage+".shtml"//下一页地址
    
    winform.input_url.text = new_url;
    
    start(new_url,0);                   
//初始化数据

    set_show_content(allmess);          
//显示所有信息
    
    set_static();                       
//设置运行状态

}

/*****************************
    
    下一页

*****************************/

winform.button7.oncommand = function(id,event){

    allmess = {};       //清空原信息        
    lzmess = {};        //清空楼主信息
    
    
    ln_page_id(winform.input_url.text);
//当前页地址
    
    new_url = 
"http://www.tianya.cn/publicforum/content/funinfo/1/"+npage+".shtml"//下一页地址
    
    winform.input_url.text = new_url;
    
    start(new_url,0);               
//初始化数据

    set_show_content(allmess);      
//显示所有信息

    set_static();                   
//设置运行状态
    
}

/*****************************
    
    关闭按钮

*****************************/

winform.button111.oncommand = function(id,event){
    winform.close();
    
}
/*****************************

    帮助文档
    
*****************************/

    
winform.button1.oncommand = 
function(id,event){
    mess = 
'
    开始抽水:获取地址栏对应页面的内容,仅限帖子第一页\n\n
    暴力抽水:获取地址栏对应页面以及第2页以后所有的内容(速度较慢)\n\n
    只看楼主:只看楼主发布的信息\n\n
    上一页: 查看上一页的信息(第一页时请不要点击)\n\n
    下一页: 查看下一页的信息\n\n
    导出TXT:导出以帖子标题玩为名称的txt文本文档\n\n
    程序更新:查看相关更新信息\n\n
    关闭程序:退出\n'
;
    win.msgbox( mess );
}
/*****************************

    导出TXT文档
    
*****************************/

    
winform.button4.oncommand = 
function(id,event){
    put_txt();
}

 

 

 


/*--------------------------------功能函数----------------------------------*/

/*****************************

    设置运行状态

 

*****************************/

set_static = function(){
    winform.show_allpage.text = #allpage;   
//设置总页数
    
    
for(k,v in allpage){
        
if(v = opage){
            winform.show_nowpage.text = k;  
        }
    }   
    
}


/*****************************

    获取上下页pageid

 

*****************************/

ln_page_id = function(){

    for(k,v in allpage){
    
        
if(v = XX['pageid']){
            lpage = allpage[k-1];   
//上一页pageid
            npage = allpage[k+1];   //下一页pageid
            opage = v;              //当前页id
            break;
        }   
    
    }
    
}

/*****************************

    初始化操作

 

*****************************/

start = function(url,act){          //初始化
    get_html(url);                  //获取源代码
    if(act = 1){
        get_lz_name(CONT);              
//获取作者名称
        get_page_title(CONT);           //获取标题
        get_page_all(CONT);             //获取所有页码
    }
    get_all_mess(CONT);             
//获取所有信息
    get_page_id(CONT);              //获取当前页码
    ln_page_id();                   //获取前后页id
}

/*****************************

    获取网页源代码

 

*****************************/

get_html = function(url){

    http = inet.http();     
    CONT = http.down(url);          
//下载网页
    http.close();                   //关闭

}

/*****************************

    转到链接

 

*****************************/

show_url = function(url){
    wb.go(url);
}

/*****************************

    获取楼主昵称

 

*****************************/

get_lz_name = function(str){
    relus = 
'chrAuthorName = \"(.*?)\"'
    XX[
'author'] = string.match(str,relus); 

/*****************************

    获得网页标题

 

*****************************/

get_page_title = function(str){
    relus = 
'chrTitle = \"(.*?)\"'
    XX[
'title'] = string.match(str,relus);  
}

/*****************************

    获取当前页码

 

*****************************/

get_page_id = function(str){

    relus = 'intArticleId = \"(.*?)\"'

    XX['pageid'] = string.match(str,relus); 

}

 

/*****************************

    获取所有页码

 

*****************************/

get_page_all = function(str){
    
    
    relus = 
"name=\'\s*?idArticleslist\'\s*?value='(.*?)\'";
    
    page = string.match(str,relus);
    
    allpage = string.split(page,
",");
    
}

/*****************************

    设置show_content内容

 

*****************************/

set_show_content = function(str){

    winform.show_content.text = "";
    
    
for(key,val in str){
        winform.show_content.text += 
'作者:['+val["author"] + ']\r\n' + val["mess"] + '\r\n------------------------------------------------------------------------------------------------\r\n';
    }

}

 

/*****************************

获取楼主发布的所有信息

 

*****************************/

get_lz_mess = function(){

}

 


/*****************************

获取所有人发布的信息

 

*****************************/

get_all_mess = function(str){
    i = 1;                                      
//设置计数变量i
    for(aut,mess in string.gmatch(str,"作者:\<a.*?target=\p?_blank\p?>(.*?)\</a\>.*?\<div class=""post""\>(.*?)\<div class=""post-jb""\>")){
        val = {}
        val[
"author"]=aut;                          //设置楼层作者
        val["mess"]=set_mess(mess);                 //设置楼层信息          
        if(aut = XX['author']){                     //获取楼主发布的信息
            vall ={}                                //声明楼层table
            vall["author"]=aut;                     //设置楼主名称
            vall["mess"]=set_mess(mess);            //设置楼主信息
            table.push(lzmess,vall);                //插入数组
        }
        table.push(allmess,val);                    
//插入数组
        i++;                                        //计数
    }   
}

/*****************************

    整理信息
    
*****************************/

    
set_mess = 
function(str){
    
for(k,v in guolv){
        str = string.replace(str,
"----------------",'\r\n----------------\r\n');//替换字符串
        str = string.replace(str,v,"");//替换字符串
    }
    
return str;
}

/*****************************

    导出TXT
    
*****************************/
  

put_txt = function(){
    
if( winform.show_content.text != null or winform.show_content.text != ""){
        result = string.save(XX[
'title']+".txt",winform.show_content.text);
        winform.msgbox(
"导出完毕","提示");
    }
else{
        winform.msgbox(
"没有内容你让我导什么?...","提示");
    }
}

 

 


/*--------------------------------其他----------------------------------*/

//show_url("http://www.tianya.cn/publicforum/content/funinfo/1/2273274.shtml");
winform.show_content.text = "";
winform.show() 

var str = "
┊--------------------------┊
   作者:-低 调-
   Q  Q:779477940
   Q 群:116885183
   主页:http://wo94.com
   语言:Aauto
   注意:点击【帮助手册】
         获取使用帮助
┊--------------------------┊
"

win.msgbox(str,
"提示")

//设置自动换行
winform.show_content.wrap = true;
//进入消息循环
win.loopMessage();
return winform;
 

posted on 2010-10-18 03:06  快手软件  阅读(566)  评论(0编辑  收藏  举报

导航