Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lfl-lab/lfl_paperbot
Paperboy-LFL is an automated tool for monitoring academic publications. It searches RSS feeds for specified keywords and authors, then pushes matching articles in a readable format to a designated Slack channel. This automation is fully handled via GitHub Actions.
https://github.com/lfl-lab/lfl_paperbot
academia bot rss slack
Last synced: about 9 hours ago
JSON representation
Paperboy-LFL is an automated tool for monitoring academic publications. It searches RSS feeds for specified keywords and authors, then pushes matching articles in a readable format to a designated Slack channel. This automation is fully handled via GitHub Actions.
- Host: GitHub
- URL: https://github.com/lfl-lab/lfl_paperbot
- Owner: LFL-Lab
- License: mit
- Created: 2024-01-02T20:46:00.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-25T14:18:14.000Z (3 months ago)
- Last Synced: 2024-10-25T17:50:55.425Z (3 months ago)
- Topics: academia, bot, rss, slack
- Language: Python
- Homepage:
- Size: 451 KB
- Stars: 2
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LFL PaperBot :robot:
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/LFL-Lab/LFL_PaperBot/CI)](https://github.com/LFL-Lab/LFL_PaperBot/actions)
[![License](https://img.shields.io/github/license/LFL-Lab/LFL_PaperBot)](https://github.com/LFL-Lab/LFL_PaperBot/blob/main/LICENSE)## Overview
LFL_PaperBot is an automated tool for monitoring academic publications. It searches RSS feeds for specified keywords and authors, then pushes matching articles in a readable format to a designated Slack channel. This automation is fully handled via GitHub Actions.
## Getting Started
### Prerequisites
- A GitHub account
- A Slack workspace with a bot user### Setup
#### Slack Bot User
1. Create an app in your Slack workspace by visiting [Slack API](https://api.slack.com/apps).
2. Enable the Slack bot user.
3. Install the app to your workspace and copy the bot user token from the 'OAuth & Permissions' tab.
4. Add the bot user token as a secret in your GitHub repository (named `SLACK_TOKEN`).#### GitHub Repository
1. Fork the LFL_PaperBot repository to your GitHub account.
2. Clone the forked repository to your local machine for configuration.#### Configuration Files
- `authors.txt`: List authors to track. Include variations of names with/without middle initials.
- `feeds.txt`: URLs of RSS feeds to monitor.
- `keywords.txt`: Keywords to search within the articles.
- `channel.txt`: Slack channel ID where the articles will be posted.#### Updating Configuration Files
1. Modify `authors.txt`, `feeds.txt`, `keywords.txt`, and `channel.txt` as needed in your forked repository.
2. Commit and push the changes to your GitHub repository.### GitHub Actions
- The workflow is set up in `.github/workflows/schedule.yml`.
- The action is scheduled to run at a specified time every day.
- On execution, the script `distributor.py` processes the RSS feeds and sends the relevant articles to the specified Slack channel.**Updates needed for the GitHub Actions workflow:**
- Ensure that "Read and write permissions" are enabled in Settings -> Actions -> General -> Workflow permissions
- Update the schedule in `schedule.yml` to the desired time.
- Update the `SLACK_TOKEN` secret in the repository settings if the bot user token changes.
- Create a repository secrets variable (`GH_PAT`) with value that is your `PAT_NAME` that has at least the `repo` scope enabled.
- _If you don't have a PAT_: Go to your GitHub settings, then to Developer settings > Personal access tokens > Generate new token. Make sure the token has the `repo` scope.
- Update the `GIT_HTTPS_USERNAME` to your username## Contributing
To add more keywords, feeds, or authors:
1. Fork the repository.
2. Modify `keywords.txt`, `feeds.txt`, or `authors.txt` as needed.
3. Commit and push your changes to your forked repository.
4. Create a pull request for your changes to be reviewed and merged into the main repository.## Important Notes
- Avoid overwhelming your Slack channel with repeated messages during initial setup and testing. Consider using a private channel for testing.
- Follow best practices when making contributions to the project via pull requests.