1
0
Derivar 0
Content fetch and aggregation bot for hugo data-driven websites
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
blob42 c4ed0c48ba migrate module location há 1 ano
bitcoin migrate module location há 1 ano
config initial há 5 anos
db initial há 5 anos
encoder initial há 5 anos
export migrate module location há 1 ano
feeds migrate module location há 1 ano
filters migrate module location há 1 ano
github migrate module location há 1 ano
handlers migrate module location há 1 ano
logging initial há 5 anos
posts migrate module location há 1 ano
static migrate module location há 1 ano
types initial há 5 anos
utils migrate module location há 1 ano
.gitignore initial há 5 anos
Dockerfile initial há 5 anos
Dockerfile-sqliteweb initial há 5 anos
LICENSE add license há 5 anos
Makefile initial há 5 anos
README.md update há 1 ano
api.go migrate module location há 1 ano
commands.go migrate module location há 1 ano
config.toml initial há 5 anos
docker-compose.yml initial há 5 anos
docker-entrypoint.sh initial há 5 anos
feed_commands.go migrate module location há 1 ano
go.mod migrate module location há 1 ano
go.sum migrate module location há 1 ano
hugobot.pdf update há 1 ano
jobs.go migrate module location há 1 ano
main.go migrate module location há 1 ano
parse_test.go migrate module location há 1 ano
posts_test.go migrate module location há 1 ano
scheduler.go migrate module location há 1 ano
server.go migrate module location há 1 ano

README.md

MIRRORED FROM: https://git.blob42.xyz/blob42/hugobot

HUGOBOT

hugobot is a bot that automates the fetching and aggregation of content for Hugo data-driven websites. It has the following features:

Data fetch

  • Use the feeds table to register feeds that will be fetched periodically.
  • Currently, it can handle these types of feeds: RSS, Github Releases, Newsletters
  • To define your own feed types, implement the JobHandler interface (see handlers/handlers.go).
  • Hugobot automatically fetches new posts from the registered feeds.
  • The database uses Sqlite for storage. It has feeds and posts tables.
  • The scheduler can handle an unlimited number of tasks and uses leveldb for caching and resuming jobs.

Hugo export

  • Data is automatically exported to the configured Hugo website path.
  • It can export data as markdown files or json/toml data files.
  • You can customize all fields in the exported files.
  • You can define custom output formats by using the FormatHandler interface.
  • 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.

API

  • It uses gin-gonic as 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.

Other

  • Some commands are available through the CLI (github.com/urfave/cli), you can add your own custom commands.

Sqliteweb interface

  • 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.

Contribution

  • We welcome pull requests. Our current priority is adding tests.
  • Check the TODO section.

TODO:

  • Add tests.
  • Handle more feed formats: tweets, mailing-list emails ...
  • TLS support in the API (not a priority, can be done with a reverse proxy).