#twitter #rate-limiting #stream #async-stream #helper #user #mode

egg-mode-extras

为egg-mode提供速率限制流和其他辅助工具

12个版本

0.4.0 2023年6月25日
0.3.4 2023年1月14日
0.3.3 2022年11月11日
0.3.1 2022年8月25日
0.1.1 2022年2月12日

#1133 in 异步

Download history 7/week @ 2024-03-08 3/week @ 2024-03-15 58/week @ 2024-03-29 18/week @ 2024-04-05

63 每月下载量

MPL-2.0 许可证

48KB
1K SLoC

egg-mode-extras

Rust build status Coverage status

本项目包含一些可帮助使用egg-mode(一个用于访问Twitter API的Rust库)的工具。

特别是它包括具有速率限制感知的异步流,这使得请求例如数百万个Twitter账户的用户资料变得容易,而不必担心Twitter的速率限制。

use egg_mode_extras::{client::TokenType, Client};
use futures::stream::TryStreamExt;
use std::io::BufRead;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::from_config_file("keys.toml").await?;

    let user_ids = std::io::stdin()
        .lock()
        .lines()
        .filter_map(|line| {
            line.map_or_else(
                |error| Some(Err(error)),
                |line| line.parse::<u64>().ok().map(Ok),
            )
        })
        .collect::<Result<Vec<_>, _>>()?;

    client.lookup_users_json(user_ids, TokenType::App).try_for_each(|user| async move {
        println!("{}", user);

        Ok(())
    }).await?;

    Ok(())
}

代码一团糟,大部分未经测试,尽管其中大部分已经从✨cancel-culture✨中抽象出来,在其中它得到了相当广泛的应用。

许可证

本项目采用Mozilla公共许可证,版本2.0。请参阅LICENSE文件以获取详细信息。

请注意,我们仅使用MPL来支持✨cancel-culture✨的使用,该软件目前以MPL发布。✨cancel-culture✨和本项目未来的版本可能将采用反资本主义软件许可证

依赖

~13–29MB
~419K SLoC