mirror of
https://github.com/redstrate/Auracite.git
synced 2025-05-01 08:27:46 +00:00
Extract currently set title
This commit is contained in:
parent
35dfd398b8
commit
2c7cea378b
2 changed files with 12 additions and 2 deletions
|
@ -55,6 +55,8 @@ pub struct CharacterData {
|
||||||
pub grand_company: GrandCompanyValue,
|
pub grand_company: GrandCompanyValue,
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub free_company: Option<String>,
|
pub free_company: Option<String>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub title: Option<String>,
|
||||||
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub currencies: Option<Currencies>,
|
pub currencies: Option<Currencies>,
|
||||||
|
|
|
@ -43,6 +43,7 @@ const PORTRAIT_IMG_SELECTOR: &str = ".character__detail__image > a > img";
|
||||||
const NAMEDAY_SELECTOR: &str = ".character-block__birth";
|
const NAMEDAY_SELECTOR: &str = ".character-block__birth";
|
||||||
const CLASSJOB_SELECTOR: &str = ".character__level__list > ul > li";
|
const CLASSJOB_SELECTOR: &str = ".character__level__list > ul > li";
|
||||||
const FREE_COMPANY_SELECTOR: &str = ".character__freecompany__name > h4 > a";
|
const FREE_COMPANY_SELECTOR: &str = ".character__freecompany__name > h4 > a";
|
||||||
|
const TITLE_SELECTOR: &str = ".frame__chara__title";
|
||||||
|
|
||||||
/// Parses the HTML from `data` and returns `CharacterData`. The data may be incomplete.
|
/// Parses the HTML from `data` and returns `CharacterData`. The data may be incomplete.
|
||||||
pub fn parse_lodestone(data: &str) -> CharacterData {
|
pub fn parse_lodestone(data: &str) -> CharacterData {
|
||||||
|
@ -54,6 +55,13 @@ pub fn parse_lodestone(data: &str) -> CharacterData {
|
||||||
char_data.name = element.inner_html();
|
char_data.name = element.inner_html();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let Some(title) = document
|
||||||
|
.select(&Selector::parse(TITLE_SELECTOR).unwrap())
|
||||||
|
.nth(0)
|
||||||
|
{
|
||||||
|
char_data.title = Some(title.inner_html().as_str().to_string());
|
||||||
|
}
|
||||||
|
|
||||||
for element in document.select(&Selector::parse(WORLD_DATA_CENTER_SELECTOR).unwrap()) {
|
for element in document.select(&Selector::parse(WORLD_DATA_CENTER_SELECTOR).unwrap()) {
|
||||||
let re = Regex::new(r"(\w+)\s\[(\w+)\]").unwrap();
|
let re = Regex::new(r"(\w+)\s\[(\w+)\]").unwrap();
|
||||||
let inner_html = element.inner_html();
|
let inner_html = element.inner_html();
|
||||||
|
@ -121,11 +129,11 @@ pub fn parse_lodestone(data: &str) -> CharacterData {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(block_name) = element
|
if let Some(free_company) = element
|
||||||
.select(&Selector::parse(FREE_COMPANY_SELECTOR).unwrap())
|
.select(&Selector::parse(FREE_COMPANY_SELECTOR).unwrap())
|
||||||
.nth(0)
|
.nth(0)
|
||||||
{
|
{
|
||||||
char_data.free_company = Some(block_name.inner_html().as_str().to_string());
|
char_data.free_company = Some(free_company.inner_html().as_str().to_string());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue