override public DataTable 查看论坛列表( bool Is下载最新数据 )
{
if( Is下载最新数据 )
下载论坛列表() ;
return lda.取论坛列表() ;
}

override public DataTable 查看贴子列表( string 论坛编号, bool Is下载最新数据 )
{
当前论坛编号= 论坛编号 ;
if( Is下载最新数据 )
下载贴子列表( 论坛编号 ) ;
return lda.取贴子列表( 论坛编号 ) ;
} override public void 下载贴子列表( string 论坛编号 )
{
string url = string.Format( "http://" + "www.nnsky.com/bbs/list.asp?boardid={0}", 论坛编号 ) ; string html = "" ;
html = 数据传输.发送页面请求( url, "", m_SessionID ) ;

int index = 0, tmp_start, tmp_end, tmp ;
string 贴子信息标志 = "新窗口" ;
string 项目开始标志 ;
string 贴子位置 ;
string 贴子名称 ;
string 贴子作者 ;
string 贴子编号 ;
for( ;; )
{
index = html.IndexOf( 贴子信息标志, index + 1 ) ;
if( index < 0 ) 
break ;
项目开始标志 = "dispbbs.asp?" ;
tmp_start = html.IndexOf( 项目开始标志, index ) ;
tmp_start = tmp_start + 项目开始标志.Length ;
tmp_end = html.IndexOf( "'>", tmp_start ) ;
贴子位置 = html.Substring( tmp_start, tmp_end - tmp_start ) ; 贴子编号 = 贴子位置.Substring( 贴子位置.IndexOf( "RootID=" ) ) ;
tmp = 贴子编号.IndexOf( "&" ) ;
贴子编号 = 贴子编号.Substring( 贴子编号.IndexOf( "=" ) + 1 ) ;
tmp = 贴子编号.IndexOf( "&" ) ;
贴子编号 = 贴子编号.Substring( 0, tmp ) ;

项目开始标志 = "'>" ;
tmp_start = html.IndexOf( 项目开始标志, tmp_end ) ;
tmp_start = tmp_start + 项目开始标志.Length ;
tmp_end = html.IndexOf( "</a>", tmp_start ) ;
贴子名称 = html.Substring( tmp_start, tmp_end - tmp_start ) ;

项目开始标志 = "dispuser.asp?name=" ;
tmp_start = html.IndexOf( 项目开始标志, tmp_start ) ;
tmp_start = tmp_start + 项目开始标志.Length ;
tmp_end = html.IndexOf( "'", tmp_start ) ;
贴子作者 = html.Substring( tmp_start, tmp_end - tmp_start ).Trim() ;
lda.保存贴子列表( 论坛编号, 贴子编号, 贴子名称, 贴子作者 ) ;
}
} override public DataTable 查看贴子回复( string 贴子编号, bool Is下载最新数据 )
{
当前贴子编号= 贴子编号 ;
string 论坛编号 = 当前论坛编号 ;
if( Is下载最新数据 )
下载贴子回复( 贴子编号 ) ;
return lda.取回复列表( 论坛编号, 贴子编号 ) ;
}

override public void 下载贴子回复( string 贴子编号 )
{
string 论坛编号 = 当前论坛编号 ;
string url = string.Format( "http://" 
+ "www.nnsky.com/bbs/dispbbs.asp?boardID={0}&RootID={1}&ID={1}&skin=1", 论坛编号, 贴子编号 ) ; string html = "" ;
html = 数据传输.发送页面请求( url, "", m_SessionID ) ;

int index = 0, tmp_start, tmp_end ;
string 回复信息标志 = "短消息" ;
string 项目开始标志 ;
string 回复标题 ;
string 回复内容 ;
string 回复作者 ;
string 回复时间 ; bool first = true ;
int 回复楼层 = 0 ;
for( ;; )
{
index = html.IndexOf( 回复信息标志, index + 1 ) ;
if( index < 0 ) 
break ; 项目开始标志 = "dispuser.asp?name=" ;
tmp_start = html.IndexOf( 项目开始标志, index ) ;
tmp_start = tmp_start + 项目开始标志.Length ;
tmp_end = html.IndexOf( "'", tmp_start ) ;
回复作者 = html.Substring( tmp_start, tmp_end - tmp_start ).Trim() ;

项目开始标志 = "时间:" ;
tmp_start = html.IndexOf( 项目开始标志, index ) ;
tmp_start = tmp_start + 项目开始标志.Length ;
tmp_end = html.IndexOf( "<BR>", tmp_start ) ;
回复时间 = html.Substring( tmp_start, tmp_end - tmp_start ).Trim() ;
if( first )
{
项目开始标志 = "</b><br>" ;
first =false ;
}
else
项目开始标志 = "<b></b><br>" ;
tmp_start = html.IndexOf( 项目开始标志, tmp_end ) ;
tmp_start = tmp_start + 项目开始标志.Length ;
tmp_end = html.IndexOf( "<p align=\"right\">", tmp_start ) ;
回复内容 = html.Substring( tmp_start, tmp_end - tmp_start ).Trim() ;
lda.保存回复列表( 论坛编号, 贴子编号, 回复作者, 回复时间, 回复内容, 回复楼层++ ) ;
}
} override public bool 回复某贴子( string 回复内容 )
{
string url = string.Format( "http://" 
+ "www.nnsky.com/bbs/savereannounce.asp?boardID={0}&RootID={1}&ID={1}&skin=1&skins=1&Expression=face6.gif&UserName={2}&passWd={3}&followup={1}", 当前论坛编号, 当前贴子编号, m_UserName, m_PassWord ) ; 回复内容 = "body=" + 回复内容 ;
string html = 数据传输.发送页面请求( url, 回复内容, m_SessionID ) ;

if( html.IndexOf( "回复成功啦" ) > 0 )
return true ;
return false ;
} override public bool 发表新贴子( string 贴子标题, string 贴子内容 )
{
//&boardtype=程序人生
string url = string.Format( "http://" 
+ "www.nnsky.com/bbs/SaveAnnounce.asp?boardID={0}&skins=1&UserName={1}&passWd={2}&Expression=1&skin=1", 当前论坛编号, m_UserName, m_PassWord ) ; 贴子内容 = "body=" + 贴子内容 ;
贴子标题 = "subject=" + 贴子标题 ;
string 回复内容 = 贴子内容 + "&" + 贴子标题 ;
string html = 数据传输.发送页面请求( url, 回复内容, m_SessionID ) ;

if( html.IndexOf( "论坛错误信息" ) > 0 )
return false ;
return true ;
}
}
}