BotZ/README.md

2.1 KiB

Bot_Z

A bot to easen the daily routine with zucchetti virtual badge.

  • Free software: GLWTS public licence.

Features

  • Login/Logout
  • Check in/Check out
  • web ui

Develop

To allow local development you either need a configuration file named .botz.yaml in the root of the project with something like this:

---
base_uri: "<your_target_uri>"
debug: true
headless: true
log:
  level: DEBUG
  syslog: false
http:
  bind_addr:
    - "127.0.0.1"
  port: 3003
  cookie_secure: false
  cors_allow: "http://localhost:3000"

Read the docstring in api/conf.py to understand the menaning of the various parameters.

Do not pip install -e .. It will miss the geckodriver download step. Take a look at the provided Dockerfile.

You can either run it:

$ docker build -t botz:latest .
$ docker run -v $PWD:/app -p "3003:3003" botz

and find a working app at http://localhost:3003. Or you can python setup.py bdist_wheel && python setup.py develop. You will need:

  • python >= 3.7
  • yarn (npm support coming soon...)

If you want to develop the ui, you can also serve it via yarn (as it supports hot reload):

$ cd bot.z_web
$ yarn start

You will find a working ui at localhost:3000 (but you need the last two lines of the previous example config file).

Install

Either clone this repo and pip install . or use one of the provided packages. Pay attention: this package needs a working binary of geckodriver. You can either proceed in one of the following ways:

  • Install the source distribution and put in your $PATH the geckodriver binary (that can be downloaded here)
  • Install the wheel for your architecture
  • pip install . or pip install -e . will download the latest geckodriver and put it in a path where the code will be able to find it.

BEWARE: the code gives precedence to the geckodriver in $PATH over that donwloaded.

TODO

  • Check in/out
  • systemd {unit, timer}
  • APIs
  • Mailer