You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MIRRORED FROM: https://git.blob42.xyz/blob42/hugobot
hugobot is a bot that automates the fetching and aggregation of content for Hugo data-driven websites. It has the following features:
- Use the
feedstable to register feeds that will be fetched periodically.
- Currently, it can handle these types of feeds:
- To define your own feed types, implement the
- Hugobot automatically fetches new posts from the registered feeds.
- The database uses Sqlite for storage. It has
- The scheduler can handle an unlimited number of tasks and uses leveldb for caching and resuming jobs.
- Data is automatically exported to the configured Hugo website path.
- It can export data as
- You can customize all fields in the exported files.
- You can define custom output formats by using the
- You can register custom filters and post-processing for exported posts to prevent altering the raw data stored in the database.
- You can force data export using the CLI.
- It uses
gin-gonicas the web framework.
- hugobot also includes a webserver API that can be used with Hugo Data Driven Mode.
- You can insert and query data from the database. This feature is still a work in progress, but you can easily add the missing code on the API side to automate inserting and querying data from the database.
- For example, it can be used to automate the generation of Bitcoin addresses for new articles on bitcointechweekly.com.
- Some commands are available through the CLI (
github.com/urfave/cli), you can add your own custom commands.
- See the Docker files for more information.
First time usage
- The first time you run the program, it will automatically generate the database. You can add your feeds to the Sqlite database using your preferred Sqlite GUI.
- We welcome pull requests. Our current priority is adding tests.
- Check the TODO section.
- Add tests.
- Handle more feed formats:
- TLS support in the API (not a priority, can be done with a reverse proxy).