BotZ/README.md
2019-09-04 15:04:29 +02:00

96 lines
2.1 KiB
Markdown

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](https://github.com/mozilla/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](https://github.com/mozilla/geckodriver/releases/))
* 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
----
- [x] Check in/out
- [ ] systemd {unit, timer}
- [x] APIs
- [ ] Mailer