📄 collect.cs
字号:
}
private string[] GetNewsList(PageList pagelist)
{
if (!pagelist.Fetch())
{
HProgressBar.Roll(pagelist.LastError, 0);
}
pagelist.FigureList();
pagelist.FigureNewsUrls();
return pagelist.NewsUrl;
}
#endregion
/// <summary>
/// 获取目录信息和采集站点分页
/// </summary>
/// <param name="FolderID">目录ID,如果小于1则为根目录,否则只获取该目录下的站点</param>
/// <param name="PageIndex">当前页码</param>
/// <param name="PageSize">每页记录数</param>
/// <param name="RecordCount">返回记录总条数</param>
/// <param name="PageCount">返回总页数</param>
/// <returns>返回当前页的数据集</returns>
public DataTable GetFolderSitePage(int FolderID, int PageIndex, int PageSize, out int RecordCount, out int PageCount)
{
return dal.GetFolderSitePage(FolderID, PageIndex, PageSize, out RecordCount, out PageCount);
}
/// <summary>
/// 复制目录
/// </summary>
/// <param name="id">要复制的目录ID</param>
public void FolderCopy(int id)
{
dal.FolderCopy(id);
}
/// <summary>
/// 复制采集站点
/// </summary>
/// <param name="id">要复制的站点的ID</param>
public void SiteCopy(int id)
{
dal.SiteCopy(id);
}
/// <summary>
/// 删除采集目录
/// </summary>
/// <param name="id">要删除的目录ID</param>
public void FolderDelete(int id)
{
dal.FolderDelete(id);
}
/// <summary>
/// 删除采集站点
/// </summary>
/// <param name="id">要删除的站点ID</param>
public void SiteDelete(int id)
{
dal.SiteDelete(id);
}
/// <summary>
/// 获取指定的目录信息(用于目录修改)
/// </summary>
/// <param name="id">要获取的目录ID</param>
/// <returns>指定的数据</returns>
public DataTable GetFolder(int id)
{
return dal.GetFolder(id, false);
}
/// <summary>
/// 获取所有的目录的信息
/// </summary>
/// <returns>返回所有的目录信息</returns>
public DataTable GetFolder()
{
return dal.GetFolder(0, true);
}
/// <summary>
/// 获取指定的采集站点信息(主要用于站点信息修改和设置)
/// </summary>
/// <param name="id">站点的ID</param>
/// <returns>数据集</returns>
public DataTable GetSite(int id)
{
return dal.GetSite(id);
}
/// <summary>
/// 新增一个采集站点
/// </summary>
/// <param name="st">新增的采集站点信息</param>
/// <returns>返回新增的站点的自动编号</returns>
public int SiteAdd(CollectSiteInfo st)
{
Encoding end = Encoding.GetEncoding(st.Encode);
if (!this.ValidateUrl(st.objURL))
throw new Exception(ErrorMsg);
return dal.SiteAdd(st);
}
public void SiteUpdate(CollectSiteInfo st, int step)
{
if (step.Equals(1))
{
Encoding end = Encoding.GetEncoding(st.Encode);
if (!this.ValidateUrl(st.objURL))
throw new Exception(ErrorMsg);
}
else if (step.Equals(2))
{
switch (st.OtherType)
{
case 0:
st.OtherPageSetting = "";
st.StartPageNum = -1;
st.EndPageNum = -1;
break;
case 1:
case 2:
st.StartPageNum = -1;
st.EndPageNum = -1;
break;
}
}
dal.SiteUpdate(st, step);
}
public int FolderAdd(string Name, string Description)
{
return dal.FolderAdd(Name, Description);
}
public void FolderUpdate(int id, string Name, string Description)
{
dal.FolderUpdate(id, Name, Description);
}
private bool ValidateUrl(string sUrl)
{
bool flag = false;
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl);
req.KeepAlive = false;
HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
rsp.Close();
flag = true;
}
catch (WebException e)
{
HttpWebResponse response = (HttpWebResponse)e.Response;
if (response != null)
{
if (response.StatusCode == HttpStatusCode.Unauthorized)
{
string challenge = null;
challenge = response.GetResponseHeader("WWW-Authenticate");
if (challenge != null)
ErrorMsg = challenge;
}
else
ErrorMsg = e.Message;
}
else
ErrorMsg = "请检查采集对象页地址,不能从服务器取得任何信息!";
}
catch (Exception e)
{
ErrorMsg = e.Message;
}
return flag;
}
public DataTable GetRulePage(int PageIndex, int PageSize, out int RecordCount, out int PageCount)
{
return dal.GetRulePage(PageIndex, PageSize, out RecordCount, out PageCount);
}
public void RuleDelete(int id)
{
dal.RuleDelete(id);
}
public int RuleAdd(string Name, string OldStr, string NewStr, int[] AppSites, bool IgnoreCase)
{
return dal.RuleAdd(Name, OldStr, NewStr, AppSites, IgnoreCase);
}
public void RuleUpdate(int RuleID, string Name, string OldStr, string NewStr, int[] AppSites, bool IgnoreCase)
{
dal.RuleUpdate(RuleID, Name, OldStr, NewStr, AppSites, IgnoreCase);
}
public DataTable GetRule(int id)
{
return dal.GetRule(id);
}
public DataTable SiteList()
{
return dal.SiteList();
}
public void NewsAdd(CollectNewsInfo newsinfo)
{
dal.NewsAdd(newsinfo);
}
public DataTable GetNewsPage(int PageIndex, int PageSize, out int RecordCount, out int PageCount)
{
return dal.GetNewsPage(PageIndex, PageSize, out RecordCount, out PageCount);
}
public void NewsDelete(string id)
{
dal.NewsDelete(id);
}
public CollectNewsInfo GetNews(int id)
{
return dal.GetNews(id);
}
public void NewsUpdate(int id, CollectNewsInfo info)
{
dal.NewsUpdate(id, info);
}
#region 新闻入库
/// <summary>
/// 新闻入库
/// </summary>
/// <param name="id">如果为0表示入库所有未入库的新闻,否则为要入库的新闻的编号,以,分隔</param>
public void StorageNews(string id)
{
string s = "请点击<a href=\"Collect_News.aspx\">这里返回</a>";
try
{
HTextProgressBar.Start("正在统计数据");
int[] nid = null;
bool bUnAll = false;
if (id == "0")
{
bUnAll = true;
}
else
{
if (id.IndexOf(",") > 0)
{
string[] _id = id.Split(',');
int num = _id.Length;
nid = new int[num];
for (int i = 0; i < num; i++)
nid[i] = int.Parse(_id[i]);
}
else
{
nid = new int[] { int.Parse(id) };
}
if (nid.Length < 1)
HTextProgressBar.EndProgress("没有选择要入库的采集新闻!" + s);
}
int ns = 0;
int nf = 0;
HTextProgressBar.ShowText("开始入库采集新闻,请稍候。要终止," + s);
dal.StoreNews(bUnAll, nid, out ns, out nf);
HTextProgressBar.EndProgress("采集新闻入库已完成。共成功:" + ns + "条,失败:" + nf + "条新闻。" + s);
}
catch (Exception ex)
{
HTextProgressBar.EndProgress("采集新闻入库异常终止。异常信息:" + ex.Message + "<br/>" + s);
}
}
#endregion 新闻入库
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -