protected override bool GetGuildInfo(ref Guild guild, bool isDetailed)
{
if (LogManager != null) {
LogManager.InfoFormat("Obtaining info of {0}", guild.Name);
}
List<Tamer> tamerList = new List<Tamer>();
HtmlNode ranking = tryLoadNode(string.Format(STR_URL_GUILD_PAGE, guild.Identifier, "srv" + guild.Server.Identifier), STR_RANKING_NODE);
HtmlNodeCollection tlist = ranking.SelectNodes("//tr/td[@class='level']");
using (IDatabaseContext context = DatabaseManager.CreateContext()) {
for (int i = 0; i < tlist.Count; i++) {
Tamer tamer = new Tamer() {
Guild = guild,
Name = ClearStr(ranking.SelectNodes("//td[@class='guild']")[i].InnerText),
Level = Convert.ToByte(ClearStr(ranking.SelectNodes("//td[@class='level']")[i].InnerText)),
Rank = Convert.ToInt32(ClearStr(ranking.SelectNodes("//td[@class='ranking']")[i].InnerText))
};
OnStatusChanged(DMODownloadStatusCode.GETTING_TAMER, tamer.Name, i, tlist.Count - 1);
string tamerType = ranking.SelectNodes("//td[@class='guild']//img")[i].GetAttributeValue("src", null);
tamerType = tamerType.Substring(tamerType.LastIndexOf('/') + 1, tamerType.LastIndexOf('.') - tamerType.LastIndexOf('/') - 1);
tamer.Type = context.FindTamerTypeByCode(Convert.ToInt32(tamerType));
Regex r = new Regex(STR_TAMER_ID_REGEX, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match m = r.Match(ranking.SelectNodes("//td[@class='detail']")[i].InnerHtml);
if (m.Success) {
tamer.AccountId = Convert.ToInt32(m.Groups[2].ToString());
tamer.Digimons = GetDigimons(tamer, isDetailed);
Digimon partner = tamer.Digimons.FirstOrDefault(d => d.Type.IsStarter);
if (partner != null) {
partner.Name = ClearStr(ranking.SelectNodes("//td[@class='partner']")[i].InnerText);
}
tamerList.Add(tamer);
if (LogManager != null) {
LogManager.InfoFormat("Found tamer \"{0}\"", tamer.Name);
}
}
}
}
if (tamerList.Count == 0) {
return false;
}
guild.Tamers = tamerList;
return true;
}