asimov_apify_module/api/
twitter.rs1#![allow(unused)]
4
5use asimov_module::prelude::{FromStr, String, Vec};
6use serde::Serialize;
7
8#[derive(Clone, Debug, Default, Serialize)]
10pub struct TwitterFollowingScrapeRequest {
11 #[serde(rename = "getFollowers")]
12 pub get_followers: bool,
13
14 #[serde(rename = "getFollowing")]
15 pub get_following: bool,
16
17 #[serde(rename = "maxFollowers")]
18 pub max_followers: u32,
19
20 #[serde(rename = "maxFollowings")]
21 pub max_followings: u32,
22
23 pub user_names: Vec<String>,
24}
25
26impl FromStr for TwitterFollowingScrapeRequest {
27 type Err = url::ParseError;
28
29 fn from_str(input: &str) -> Result<Self, Self::Err> {
30 url::Url::parse(input).map(|url| match url.path_segments().and_then(|mut s| s.next()) {
31 None => Self::default(),
32 Some(path) => Self {
33 user_names: Vec::from([path.into()]),
34 get_followers: true,
35 get_following: true,
36 max_followers: 200,
37 max_followings: 200,
38 ..Default::default()
39 },
40 })
41 }
42}