using System;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Text;
using System.Windows.Forms;
using System.Collections;

/*注意事项
 * 1.这个命名空间不能更改.当然,你可以在其它的文件里使用其它的命名空间,在这里使用.
 * 2.必须引用采集器目录下的LeWell.dll文件.
 * 3.必须实现 IPlugin接口 里的 Run 方法
 * 4.编写过程出请对传入传出的参数进行检测
 * */

namespace LeWell.Plugins
{
    public class Demo : LeWell.Plugins.IPlugin   //使用的IPlugin接口,请引用 LeWell.Plugins.dll 文件
    {
        /// <summary>
        /// 插件运行处理预留方法
        /// </summary>
        /// <param name="str">要处理的源代码</param>
        /// <param name="pageurl">采集页面地址</param>
        /// <param name="pagetype">页面类型为一枚举 LeWell.Plugins.PageType ,其中List,Pages,Content,Save分别代表列表页,分页或多页,默认页,保存时</param>
        /// <param name="encoding">页面编码</param>
        /// <param name="cookies">网站的cookies</param>
        /// <returns></returns>
        public string Run(string str, string pageurl, LeWell.Plugins.PageType pagetype, Encoding encoding, System.Net.CookieCollection cookies)
        {
            //请在这里执行您的操作,返回string
            string result = "这个结果是单页面测试,后边的数据为程序接收到的数据:\r\n\r\n";
            result += "当前的页面网址为:" + pageurl.ToString() + "\r\n";
            result += "当前的页面类型为:" + pagetype.ToString() + "\r\n";
            result += "当前的网页编码为:" + encoding.ToString() + "\r\n";
            result += "当前网页的代码为:" + str.ToString() + "\r\n";
            return result;
        }

       
        /// <summary>
        /// 这个是用来在最后处理采集器入库前的数据的
        /// </summary>
        /// <param name="ht"></param>
        /// <param name="pageurl"></param>
        /// <param name="encoding"></param>
        /// <param name="cookies"></param>
        /// <returns></returns>
        public Hashtable Run(Hashtable ht, string pageurl, Encoding encoding, System.Net.CookieCollection cookies)
        {
            //请在这里执行您的操作,返回hashtable
            if (ht.ContainsKey("标题")) ht["标题"] = "随机数字:" + new Random().Next(10000).ToString() + ht["标题"];
            if (ht.ContainsKey("内容")) ht["内容"] = "给内容加个前缀:\r\n"+ht["内容"];
            return ht;
        }
    }

}
