/// <summary> /// Parse member from internet based on given member id, mode, and page number. /// </summary> /// <param name="memberId"></param> /// <param name="mode"></param> /// <param name="page"></param> /// <returns></returns> public NijieMember ParseMember(int memberId, MemberMode mode, int page) { HtmlDocument doc = null; try { canOperate(); NijieMember member = new NijieMember(memberId, mode, page); var result = getPage(member.MemberUrl); var res = result.Item2; if (Util.IsRedirected(res.ResponseUri.ToString(), member.MemberUrl, ignoreProtocol: true)) { throw new NijieException(string.Format("Redirected to another page: {0} ==> {1}", member.MemberUrl, res.ResponseUri.ToString()), NijieException.MEMBER_REDIR); } doc = result.Item1; return ParseMember(doc, member, mode); } catch (NijieException) { throw; } catch (Exception ex) { if (doc != null) { var filename = String.Format("Dump for Member {0} Mode {1}.html", memberId, mode.ToString()); Log.Debug("Dumping member page to: " + filename); doc.Save(filename); } throw new NijieException(String.Format("Error when processing member: {0} ==> {1}", memberId, ex.Message), ex, NijieException.MEMBER_UNKNOWN_ERROR); } }
/// <summary> /// Parse member from internet based on given member id, mode, and page number. /// </summary> /// <param name="memberId"></param> /// <param name="mode"></param> /// <param name="page"></param> /// <returns></returns> public NijieMember ParseMember(int memberId, MemberMode mode, int page) { HtmlDocument doc = null; try { canOperate(); NijieMember member = new NijieMember(memberId, mode, page); var result = getPage(member.MemberUrl); var res = result.Item2; if (Util.IsRedirected(res.ResponseUri.ToString(), member.MemberUrl, ignoreProtocol: true)) { throw new NijieException(string.Format("Redirected to another page: {0} ==> {1}", member.MemberUrl, res.ResponseUri.ToString()), NijieException.MEMBER_REDIR); } doc = result.Item1; return(ParseMember(doc, member, mode)); } catch (NijieException) { throw; } catch (Exception ex) { if (doc != null) { var filename = String.Format("Dump for Member {0} Mode {1}.html", memberId, mode.ToString()); Log.Debug("Dumping member page to: " + filename); doc.Save(filename); } throw new NijieException(String.Format("Error when processing member: {0} ==> {1}", memberId, ex.Message), ex, NijieException.MEMBER_UNKNOWN_ERROR); } }