feat: add pages to searches

This commit is contained in:
Anna 2018-09-05 01:05:44 -04:00
parent 118910f69d
commit 5347438a4e
2 changed files with 24 additions and 0 deletions

View File

@ -31,6 +31,8 @@ pub struct CharacterSearchBuilder<'a> {
race: Option<Either<Race, Clan>>,
// gcid
grand_company: Option<Vec<GrandCompany>>,
// page
page: Option<u64>,
}
impl<'a> CharacterSearchBuilder<'a> {
@ -42,6 +44,7 @@ impl<'a> CharacterSearchBuilder<'a> {
job: None,
race: None,
grand_company: None,
page: None,
}
}
@ -85,6 +88,11 @@ impl<'a> CharacterSearchBuilder<'a> {
self
}
pub fn page(&mut self, p: u64) -> &mut Self {
self.page = Some(p);
self
}
pub fn send(&self) -> Result<Paginated<CharacterSearchItem>> {
let text = self.scraper.text(self.as_url())?;
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();
if let Some(page) = self.page {
pairs.append_pair("page", &page.to_string());
}
if let Some(ref name) = self.name {
pairs.append_pair("q", name);
}

View File

@ -25,6 +25,8 @@ pub struct FreeCompanySearchBuilder<'a> {
world: Option<Either<World, DataCenter>>,
// gcid
grand_company: Option<Vec<GrandCompany>>,
// page
page: Option<u64>,
}
impl<'a> FreeCompanySearchBuilder<'a> {
@ -34,6 +36,7 @@ impl<'a> FreeCompanySearchBuilder<'a> {
name: None,
world: None,
grand_company: None,
page: None,
}
}
@ -57,6 +60,11 @@ impl<'a> FreeCompanySearchBuilder<'a> {
self
}
pub fn page(&mut self, p: u64) -> &mut Self {
self.page = Some(p);
self
}
pub fn send(&self) -> Result<Paginated<FreeCompanySearchItem>> {
let text = self.scraper.text(self.as_url())?;
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();
if let Some(page) = self.page {
pairs.append_pair("page", &page.to_string());
}
if let Some(ref name) = self.name {
pairs.append_pair("q", name);
}