using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using UUN;
using System.Data.SqlClient;

public partial class Admin_NeiRong_WenZhangCaiJi_LanMu_CeShi : System.Web.UI.Page
{
    private 访问 访问;
    protected void Page_Load(object sender, EventArgs e)
    {
        访问 = new 访问(this.Context);
        访问.开始处理("文章采集栏目测试", "网站后台", "文章采集栏目测试", new 访问.回调委托(ZhiXing));
        访问.关闭连接();
    }

    private void ZhiXing()
    {
        访问.验证管理员();

        int 操作 = Convert.ToInt32(Request.QueryString["Act"]);
        switch (操作)
        {
            case 1:
                Label1.Text = 测试标题和地址表达式(Convert.ToInt32(Request.QueryString["ID"]),
                    Request.QueryString["url"],
                    Convert.ToBoolean(Request.QueryString["sftpf"]),
                    Request.QueryString["bds"]);
                break;
            case 2:
                Label1.Text = 测试下页地址表达式(Convert.ToInt32(Request.QueryString["ID"]),
                    Request.QueryString["url"],
                    Convert.ToBoolean(Request.QueryString["sftpf"]),
                    Request.QueryString["bds"]);
                break;
            case 3:
                Label1.Text = 测试上页地址表达式(Convert.ToInt32(Request.QueryString["ID"]),
                    Request.QueryString["url"],
                    Convert.ToBoolean(Request.QueryString["sftpf_"]),
                    Request.QueryString["bds_"],
                    Convert.ToBoolean(Request.QueryString["sftpf"]),
                    Request.QueryString["bds"]);
                break;
            case 4:
                Label1.Text = 测试获取总页数表达式(Convert.ToInt32(Request.QueryString["ID"]),
                    Request.QueryString["url"],
                    Convert.ToBoolean(Request.QueryString["sftpf"]),
                    Request.QueryString["bds"]);
                break;
            case 5:
                Label1.Text = 测试获取文章内容(Convert.ToInt32(Request.QueryString["ID"]),
                    Request.QueryString["url"],
                    Convert.ToBoolean(Request.QueryString["wznr_tpf"]),
                    Request.QueryString["wznr_bds"],
                    Convert.ToBoolean(Request.QueryString["wzxy_tpf"]),
                    Request.QueryString["wzxy_bds"],
                    Request.QueryString["nrgl"]);
                break;
        }
    }

    private String 测试标题和地址表达式(int ID,String 列表地址,bool 是否通配符,String 表达式)
    {
        文章采集 文章采集 = new 文章采集(this.Context, 访问.连接, ID);
        Hashtable 标题和地址;
        String 网页内容 = 文章采集.获取网页内容(列表地址);
        文章采集.获取标题和地址(列表地址, 网页内容, 是否通配符, 表达式, out 标题和地址);


        String 返回值 = "<div style=\"color:#ff0000\">";
        if (标题和地址.Count < 1)
            返回值 += "没有找到匹配的文章，可能是您的表达式有误。";
        else
            返回值 += "共找到" + 标题和地址.Count + "个匹配项。";
        返回值 += "</div><br/>";

        foreach (int 键 in 标题和地址.Keys)
        {
            String[] 标题地址 = (String[])标题和地址[键];
            返回值 += Server.HtmlEncode(标题地址[1]) +
                "：<a href=\"" + Server.HtmlEncode(标题地址[0]) + "\" target=\"_blank\">"+Server.HtmlEncode(标题地址[0])+"</a><br/>";
        }

        return 返回值;
    }

    private String 测试下页地址表达式(int ID,String 列表地址,bool 是否通配符,String 表达式)
    {
        String 第2页地址 = 获取下页地址(ID, 列表地址, 是否通配符, 表达式, 2);

        String 返回值 = "第2页地址：<a href=\"" + Server.HtmlEncode(第2页地址) + "\" target=\"_blank\">" + Server.HtmlEncode(第2页地址) + "</a><br/>";

        String 第3页地址 = 获取下页地址(ID, 第2页地址, 是否通配符, 表达式, 3);

        返回值 += "第3页地址：<a href=\"" + Server.HtmlEncode(第3页地址) + "\" target=\"_blank\">" + Server.HtmlEncode(第3页地址) + "</a><br/>";

        return 返回值;
    }

    private String 获取下页地址(int ID,String 列表地址, bool 是否通配符, String 表达式,int 页码)
    {
        文章采集 文章采集 = new 文章采集(this.Context, 访问.连接, ID);
        String 网页内容 = 文章采集.获取网页内容(列表地址);
        String 下页地址 = 文章采集.获取下页地址(列表地址, 网页内容, 是否通配符, 表达式, 页码);

        return 下页地址;
    }

    private String 测试上页地址表达式(int ID,String 列表地址,bool _是否通配符,String _表达式,bool 是否通配符,String 表达式)
    {
        String 第2页地址 = 获取下页地址(ID, 列表地址, _是否通配符, _表达式, 2);
        String 第3页地址 = 获取下页地址(ID, 第2页地址, _是否通配符, _表达式, 3);

        String _第2页地址 = 获取上页地址(ID, 第3页地址, 是否通配符, 表达式, 2);
        String _第1页地址 = 获取上页地址(ID, _第2页地址, 是否通配符, 表达式, 1);

        String 返回值 = "";
        返回值 += "进入下页[2]：<a href=\"" + Server.HtmlEncode(第2页地址) + "\" target=\"_blank\">" + Server.HtmlEncode(第2页地址) + "</a><br/>";
        返回值 += "进入下页[3]：<a href=\"" + Server.HtmlEncode(第3页地址) + "\" target=\"_blank\">" + Server.HtmlEncode(第3页地址) + "</a><br/>";

        返回值 += "返回上页[2]：<a href=\"" + Server.HtmlEncode(_第2页地址) + "\" target=\"_blank\">" + Server.HtmlEncode(_第2页地址) + "</a><br/>";
        返回值 += "返回上页[1]：<a href=\"" + Server.HtmlEncode(_第1页地址) + "\" target=\"_blank\">" + Server.HtmlEncode(_第1页地址) + "</a><br/>";
        return 返回值;
    }

    private String 获取上页地址(int ID, String 列表地址, bool 是否通配符, String 表达式,int 页码)
    {
        文章采集 文章采集 = new 文章采集(this.Context, 访问.连接, ID);
        String 网页内容 = 文章采集.获取网页内容(列表地址);
        String 上页地址 = 文章采集.获取上页地址(列表地址, 网页内容, 是否通配符, 表达式, 页码);

        return 上页地址;
    }

    private String 测试获取总页数表达式(int ID,String 列表地址,bool 是否通配符,String 表达式)
    {
        文章采集 文章采集 = new 文章采集(this.Context, 访问.连接, ID);
        String 网页内容=文章采集.获取网页内容(列表地址);
        return 文章采集.获取总页数(网页内容, 是否通配符, 表达式).ToString();
    }

    private String 测试获取文章内容(int ID, String 文章地址, bool 获取文章内容_通配符, String 获取文章内容_表达式, bool 获取文章下页_通配符, String 获取文章下页_表达式, String 内容过滤)
    {
        文章采集 文章采集 = new 文章采集(this.Context, 访问.连接, ID);
        return "文章正文：<br/>" +
            常用.UBB转换(文章采集.获取文章内容(文章地址, 获取文章内容_通配符, 获取文章内容_表达式, 获取文章下页_通配符, 获取文章下页_表达式, 内容过滤),访问.用户);
    }
}
