fix: update to new lodestone world format

This commit is contained in:
Kyle Clemens 2019-04-24 19:26:38 -04:00
parent abb9ff0375
commit de921985b9
Signed by: anna
GPG Key ID: 0B391D8F06FCD9E0
17 changed files with 8472 additions and 5818 deletions

1266
html/Characters/A.html vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1045
html/FCs/Cobra.html vendored

File diff suppressed because one or more lines are too long

1081
html/FCs/Rose.html vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -96,8 +96,11 @@ pub fn parse(id: u64, html: &str) -> Result<Character> {
}
fn parse_world(html: &Html) -> Result<World> {
let world_str = plain_parse(&html, &*PROFILE_WORLD)?;
World::from_str(&world_str)
let parts_str = plain_parse(html, &*PROFILE_WORLD)?;
let mut parts = parts_str.split("\u{00a0}(");
let world_str = parts.next()
.ok_or_else(|| Error::invalid_content("world with data centre in parens", Some(&parts_str)))?;
World::from_str(world_str)
.map_err(|_| Error::invalid_content("valid world", Some(&world_str)))
}

View File

@ -77,10 +77,12 @@ pub fn parse(id: u64, html: &str) -> Result<FreeCompany> {
}
fn parse_world(html: &Html) -> Result<World> {
let world_str = plain_parse(html, &*FC_WORLD)?;
let trimmed = world_str.trim();
World::from_str(trimmed)
.map_err(|_| Error::invalid_content("a world", Some(trimmed)))
let parts_str = plain_parse(html, &*FC_WORLD)?;
let mut parts = parts_str.split("\u{00a0}(");
let world_str = parts.next()
.ok_or_else(|| Error::invalid_content("world with data centre in parens", Some(&parts_str)))?;
World::from_str(world_str.trim())
.map_err(|_| Error::invalid_content("valid world", Some(&world_str)))
}
fn parse_active_members(html: &Html) -> Result<u16> {

View File

@ -40,10 +40,12 @@ pub fn parse(id: u64, html_str: &str) -> Result<Linkshell> {
}
fn parse_world(html: &Html) -> Result<World> {
let world_str = plain_parse(html, &*LS_WORLD)?;
let trimmed = world_str.trim();
World::from_str(trimmed)
.map_err(|_| Error::invalid_content("a world", Some(trimmed)))
let parts_str = plain_parse(html, &*LS_WORLD)?;
let mut parts = parts_str.split("\u{00a0}(");
let world_str = parts.next()
.ok_or_else(|| Error::invalid_content("world with data centre in parens", Some(&parts_str)))?;
World::from_str(world_str)
.map_err(|_| Error::invalid_content("valid world", Some(&world_str)))
}
fn parse_active_members(html: &Html) -> Result<u8> {
@ -124,11 +126,11 @@ mod test {
assert_eq!(20547673299957974, ls.id);
assert_eq!("lala world", ls.name);
assert_eq!(World::Adamantoise, ls.world);
assert_eq!(110, ls.active_members);
assert_eq!(104, ls.active_members);
assert_eq!(50, ls.members.results.len());
assert_eq!(1, ls.members.pagination.current_page);
assert_eq!(3, ls.members.pagination.total_pages);
assert_eq!(110, ls.members.pagination.total_results);
assert_eq!(104, ls.members.pagination.total_results);
}
#[test]
@ -146,7 +148,7 @@ mod test {
);
assert_eq!(Some(9233645873504743773), prinny.free_company_id);
assert_eq!(
"https://img2.finalfantasyxiv.com/f/8089bddc032754e155ff2f75925c8c26_1f5fd239b885860b7c2bfc72ad1d97effc0_96x96.jpg?1539579307",
"https://img2.finalfantasyxiv.com/f/8089bddc032754e155ff2f75925c8c26_1f5fd239b885860b7c2bfc72ad1d97effc0_96x96.jpg?1556144778",
prinny.face.as_str(),
);
assert_eq!(Some(Role::Master), prinny.role);

View File

@ -81,8 +81,11 @@ fn parse_id(html: ElementRef) -> Result<u64> {
}
fn parse_world(html: ElementRef) -> Result<World> {
let world_str = plain_parse(html, &*ITEM_WORLD)?;
World::from_str(&world_str)
let parts_str = plain_parse(html, &*ITEM_WORLD)?;
let mut parts = parts_str.split("\u{00a0}(");
let world_str = parts.next()
.ok_or_else(|| Error::invalid_content("world with data centre in parens", Some(&parts_str)))?;
World::from_str(world_str)
.map_err(|_| Error::invalid_content("valid world", Some(&world_str)))
}

View File

@ -97,8 +97,11 @@ fn parse_grand_company(html: ElementRef) -> Result<GrandCompany> {
}
fn parse_world(html: ElementRef) -> Result<World> {
let world_str = plain_parse(html, &*ITEM_WORLD)?;
World::from_str(&world_str)
let parts_str = plain_parse(html, &*ITEM_WORLD)?;
let mut parts = parts_str.split("\u{00a0}(");
let world_str = parts.next()
.ok_or_else(|| Error::invalid_content("world with data centre in parens", Some(&parts_str)))?;
World::from_str(world_str)
.map_err(|_| Error::invalid_content("valid world", Some(&world_str)))
}

View File

@ -68,8 +68,11 @@ fn parse_id(html: ElementRef) -> Result<u64> {
}
fn parse_world(html: ElementRef) -> Result<World> {
let world_str = plain_parse(html, &*ITEM_WORLD)?;
World::from_str(&world_str)
let parts_str = plain_parse(html, &*ITEM_WORLD)?;
let mut parts = parts_str.split("\u{00a0}(");
let world_str = parts.next()
.ok_or_else(|| Error::invalid_content("world with data centre in parens", Some(&parts_str)))?;
World::from_str(world_str)
.map_err(|_| Error::invalid_content("valid world", Some(&world_str)))
}