pub struct ShindanClient { /* private fields */ }Expand description
A client for interacting with ShindanMaker.
Implementations§
Source§impl ShindanClient
impl ShindanClient
Sourcepub fn new(domain: ShindanDomain) -> Result<Self>
pub fn new(domain: ShindanDomain) -> Result<Self>
Create a new ShindanMaker client.
§Arguments
domain- The domain of ShindanMaker to use.
§Returns
A new ShindanMaker client.
§Examples
use anyhow::Result;
use shindan_maker::{ShindanClient, ShindanDomain};
fn main() -> Result<()> {
let client = ShindanClient::new(ShindanDomain::En)?; // Enum variant
let client = ShindanClient::new("Jp".parse()?)?; // String slice
let client = ShindanClient::new("EN".parse()?)?; // Case-insensitive
let client = ShindanClient::new(String::from("cn").parse()?)?; // String
Ok(())
}Sourcepub async fn get_title(&self, id: &str) -> Result<String>
pub async fn get_title(&self, id: &str) -> Result<String>
Fetches and extracts title from a shindan page.
§Arguments
id- The ID of the shindan
§Returns
The title of the shindan page.
§Errors
Returns error if network request fails or title cannot be extracted.
§Examples
use anyhow::Result;
use shindan_maker::{ShindanClient, ShindanDomain};
#[tokio::main]
async fn main() -> Result<()> {
let client = ShindanClient::new(ShindanDomain::En)?;
let title = client
.get_title("1222992")
.await?;
println!("Title: {}", title);
Ok(())
}Sourcepub async fn get_description(&self, id: &str) -> Result<String>
pub async fn get_description(&self, id: &str) -> Result<String>
Fetches and extracts description from a shindan page.
§Arguments
id- The ID of the shindan
§Returns
The description of the shindan page.
§Errors
Returns error if network request fails or description cannot be extracted.
§Examples
use anyhow::Result;
use shindan_maker::{ShindanClient, ShindanDomain};
#[tokio::main]
async fn main() -> Result<()> {
let client = ShindanClient::new(ShindanDomain::En)?;
let desc = client
.get_description("1222992")
.await?;
println!("Description: {}", desc);
Ok(())
}Sourcepub async fn get_title_with_description(
&self,
id: &str,
) -> Result<(String, String)>
pub async fn get_title_with_description( &self, id: &str, ) -> Result<(String, String)>
Fetches and extracts both title and description from a shindan page.
§Arguments
id- The ID of the shindan
§Returns
A tuple containing the title and description.
§Errors
Returns error if network request fails or content cannot be extracted.
§Examples
use anyhow::Result;
use shindan_maker::{ShindanClient, ShindanDomain};
#[tokio::main]
async fn main() -> Result<()> {
let client = ShindanClient::new(ShindanDomain::En)?;
let (title, desc) = client
.get_title_with_description("1222992")
.await?;
println!("Title: {}", title);
println!("Description: {}", desc);
Ok(())
}Sourcepub async fn get_segments(&self, id: &str, name: &str) -> Result<Segments>
pub async fn get_segments(&self, id: &str, name: &str) -> Result<Segments>
Get the segments of a shindan.
§Arguments
id- The ID of the shindan.name- The name to use for the shindan.
§Returns
The segments of the shindan.
§Examples
use shindan_maker::{ShindanClient, ShindanDomain};
#[tokio::main]
async fn main() {
let client = ShindanClient::new(ShindanDomain::En).unwrap();
let segments = client
.get_segments("1222992", "test_user")
.await
.unwrap();
println!("Result segments: {:#?}", segments);
}Sourcepub async fn get_segments_with_title(
&self,
id: &str,
name: &str,
) -> Result<(Segments, String)>
pub async fn get_segments_with_title( &self, id: &str, name: &str, ) -> Result<(Segments, String)>
Get the segments of a shindan and the title of the shindan.
§Arguments
id- The ID of the shindan.name- The name to use for the shindan.
§Returns
The segments of the shindan and the title of the shindan.
§Examples
use shindan_maker::{ShindanClient, ShindanDomain};
#[tokio::main]
async fn main() {
let client = ShindanClient::new(ShindanDomain::En).unwrap();
let (segments, title) = client
.get_segments_with_title("1222992", "test_user")
.await
.unwrap();
assert_eq!("Fantasy Stats", title);
println!("Result title: {}", title);
println!("Result text: {}", segments);
println!("Result segments: {:#?}", segments);
}Sourcepub async fn get_html_str(&self, id: &str, name: &str) -> Result<String>
pub async fn get_html_str(&self, id: &str, name: &str) -> Result<String>
Get the HTML string of a shindan.
§Arguments
id- The ID of the shindan.name- The name to use for the shindan.
§Returns
The HTML string of the shindan.
§Examples
use shindan_maker::{ShindanClient, ShindanDomain};
#[tokio::main]
async fn main() {
let client = ShindanClient::new(ShindanDomain::En).unwrap();
let html_str = client
.get_html_str("1222992", "test_user")
.await
.unwrap();
println!("{}", html_str);
}Sourcepub async fn get_html_str_with_title(
&self,
id: &str,
name: &str,
) -> Result<(String, String)>
pub async fn get_html_str_with_title( &self, id: &str, name: &str, ) -> Result<(String, String)>
Get the HTML string of a shindan and the title of the shindan.
§Arguments
id- The ID of the shindan.name- The name to use for the shindan.
§Returns
The HTML string of the shindan and the title of the shindan.
§Examples
use shindan_maker::{ShindanClient, ShindanDomain};
#[tokio::main]
async fn main() {
let client = ShindanClient::new(ShindanDomain::En).unwrap();
let (_html_str, title) = client
.get_html_str_with_title("1222992", "test_user")
.await
.unwrap();
assert_eq!("Fantasy Stats", title);
}Trait Implementations§
Source§impl Clone for ShindanClient
impl Clone for ShindanClient
Source§fn clone(&self) -> ShindanClient
fn clone(&self) -> ShindanClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ShindanClient
impl !RefUnwindSafe for ShindanClient
impl Send for ShindanClient
impl Sync for ShindanClient
impl Unpin for ShindanClient
impl !UnwindSafe for ShindanClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)