fix: update to new lodestone world format

This commit is contained in:
Anna 2019-04-24 19:26:38 -04:00
parent dd3d23459e
commit 8306125061
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)))
}