Documentation
# dlsite-rs

This is a library to get information about products on DLsite. Some information
is not available on the HTML page, so this library also makes requests to the
AJAX API.

NOTE: This library is still wip, and the API may change. Also, only the parts I
needed are implemented, so there are many unimplemented parts.

## Features

- [ ] Get product information by scraping html and using ajax api for web.
  - [x] Basic information
  - [ ] Additional information
- [x] Get product review
- [x] Get product information using api.
- [x] Search product
- [ ] Get circle info
  - [x] Get circle product list
  - [ ] Get circle sale list
- [ ] Login and user related feature
- [ ] Get ranking

## Example

- Get product by api

```rust
use dlsite::{DlsiteClient, product::Product};
use tokio;
#[tokio::main]
async fn main() {
    let client = DlsiteClient::default();
    let product = client.get_product_api("RJ01014447").await.unwrap();
    assert_eq!(product.creators.unwrap().voice_by.unwrap()[0].name, "佐倉綾音");
}
```

- Search products

```rust
use dlsite::{DlsiteClient, product::Product, search::options::*};
use tokio;
#[tokio::main]
async fn main() {
    let client = DlsiteClient::default();
    let product = client
        .search_product(&ProductSearchOptions {
            sex_category: Some(vec![SexCategory::Male]),
            keyword: Some("ASMR".to_string()),
            ..Default::default()
        })
        .await
        .expect("Failed to search");
    dbg!(&product);
}
```