Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
migrations
src
.gitignore
Cargo.lock
Cargo.toml
LICENSE
README.md
arxiv_bot.nix
arxiv_bot.toml.example

README.md

arxiv_bot

arxiv_bot可以自动抓取arXiv上最新发表的文章信息,并将其发布到指定的社交媒体(目前只支持知乎想法)上。

特点

arxiv_bot同arXiv一样,主要基于学科(Subject)对文章进行划分。一个运行在服务器上的bot实例往往负责推送有关一个学科或其下的特定子学科 (Subject Area)的文章。而一篇文章可能会涉及多个领域,arxiv_bot允许一个实例通过某些方式与其他实例协调通信,并由负责该文章的主领域 (Primary Subject)的实例发布文章信息,其他实例进行转发操作(暂未实现)。

依赖

arxiv_bot现阶段只在Linux上进行完整功能测试,暂不考虑支持除*nix外的系统。

低于以下版本的依赖未经测试,但可能也可以顺利运行。

编译依赖

  • Cargo ( >= 1.33.0 Nightly )
  • make
  • binutils
  • pkg-config

运行依赖

  • SQLite ( >= 3.24.0 )
  • OpenSSL ( >= 1.1.0 )

部署

请确保SQLite和OpenSSL的安装路径都在LD_LIBRARY_PATH中,如果使用Nix包管理器,可以直接运行nix-shell arxiv_bot.nix来安装库依赖 并启动一个包含该依赖的全新shell环境。

首先安装Rust ORM Diesel的数据库部署/迁移工具diesel_cli, 用户也可以选择不使用diesel_cli并手动将migrations目录中的sql文件导入到指定数据库中。

PATH="$PATH:~/.cargo/bin"
cargo install diesel_cli --no-default-features --features "sqlite"

然后克隆代码库,指定一个SQLite数据库文件(如果不存在则创建一个)并初始化它。

git clone https://github.com/YuumuKonpaku/arxiv_bot.git
cd arxiv_bot
diesel setup --database-url='/path/to/db'

最后,编译代码库并将最终二进制文件放到合适位置即可。

cargo +nightly build --release
mv target/release/arxiv_bot /path/to/bin

如果选择将其放入~/.cargo/bin则可以直接运行cargo +nightly install --path .而无须手动复制编译结果。

配置

除动态链接库之外,arxiv_bot只需一个配置文件及SQLite数据库文件即可正常运行,不对存储路径有任何要求。任何可配置项均需通过配置文件 进行配置,所有的命令行参数都会被忽略。用户可以选择参考项目根目录下的arxiv_bot.toml.example进行配置。

命令格式

arxiv_bot # 在当前目录下寻找arxiv_bot.toml
arxiv_bot /path/to/conf # 或显式指定一个配置文件

配置文件格式

arxiv_bot使用TOML作为配置文件格式

You can’t perform that action at this time.