feat: add pages to searches
This commit is contained in:
parent
118910f69d
commit
5347438a4e
|
@ -31,6 +31,8 @@ pub struct CharacterSearchBuilder<'a> {
|
||||||
race: Option<Either<Race, Clan>>,
|
race: Option<Either<Race, Clan>>,
|
||||||
// gcid
|
// gcid
|
||||||
grand_company: Option<Vec<GrandCompany>>,
|
grand_company: Option<Vec<GrandCompany>>,
|
||||||
|
// page
|
||||||
|
page: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> CharacterSearchBuilder<'a> {
|
impl<'a> CharacterSearchBuilder<'a> {
|
||||||
|
@ -42,6 +44,7 @@ impl<'a> CharacterSearchBuilder<'a> {
|
||||||
job: None,
|
job: None,
|
||||||
race: None,
|
race: None,
|
||||||
grand_company: None,
|
grand_company: None,
|
||||||
|
page: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,6 +88,11 @@ impl<'a> CharacterSearchBuilder<'a> {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn page(&mut self, p: u64) -> &mut Self {
|
||||||
|
self.page = Some(p);
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
pub fn send(&self) -> Result<Paginated<CharacterSearchItem>> {
|
pub fn send(&self) -> Result<Paginated<CharacterSearchItem>> {
|
||||||
let text = self.scraper.text(self.as_url())?;
|
let text = self.scraper.text(self.as_url())?;
|
||||||
lodestone_parser::parse_character_search(&text).map_err(Error::Parse)
|
lodestone_parser::parse_character_search(&text).map_err(Error::Parse)
|
||||||
|
@ -96,6 +104,10 @@ impl<'a> CharacterSearchBuilder<'a> {
|
||||||
{
|
{
|
||||||
let mut pairs = url.query_pairs_mut();
|
let mut pairs = url.query_pairs_mut();
|
||||||
|
|
||||||
|
if let Some(page) = self.page {
|
||||||
|
pairs.append_pair("page", &page.to_string());
|
||||||
|
}
|
||||||
|
|
||||||
if let Some(ref name) = self.name {
|
if let Some(ref name) = self.name {
|
||||||
pairs.append_pair("q", name);
|
pairs.append_pair("q", name);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,8 @@ pub struct FreeCompanySearchBuilder<'a> {
|
||||||
world: Option<Either<World, DataCenter>>,
|
world: Option<Either<World, DataCenter>>,
|
||||||
// gcid
|
// gcid
|
||||||
grand_company: Option<Vec<GrandCompany>>,
|
grand_company: Option<Vec<GrandCompany>>,
|
||||||
|
// page
|
||||||
|
page: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> FreeCompanySearchBuilder<'a> {
|
impl<'a> FreeCompanySearchBuilder<'a> {
|
||||||
|
@ -34,6 +36,7 @@ impl<'a> FreeCompanySearchBuilder<'a> {
|
||||||
name: None,
|
name: None,
|
||||||
world: None,
|
world: None,
|
||||||
grand_company: None,
|
grand_company: None,
|
||||||
|
page: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,6 +60,11 @@ impl<'a> FreeCompanySearchBuilder<'a> {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn page(&mut self, p: u64) -> &mut Self {
|
||||||
|
self.page = Some(p);
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
pub fn send(&self) -> Result<Paginated<FreeCompanySearchItem>> {
|
pub fn send(&self) -> Result<Paginated<FreeCompanySearchItem>> {
|
||||||
let text = self.scraper.text(self.as_url())?;
|
let text = self.scraper.text(self.as_url())?;
|
||||||
lodestone_parser::parse_free_company_search(&text).map_err(Error::Parse)
|
lodestone_parser::parse_free_company_search(&text).map_err(Error::Parse)
|
||||||
|
@ -68,6 +76,10 @@ impl<'a> FreeCompanySearchBuilder<'a> {
|
||||||
{
|
{
|
||||||
let mut pairs = url.query_pairs_mut();
|
let mut pairs = url.query_pairs_mut();
|
||||||
|
|
||||||
|
if let Some(page) = self.page {
|
||||||
|
pairs.append_pair("page", &page.to_string());
|
||||||
|
}
|
||||||
|
|
||||||
if let Some(ref name) = self.name {
|
if let Some(ref name) = self.name {
|
||||||
pairs.append_pair("q", name);
|
pairs.append_pair("q", name);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue