# mygpoclient-rs
[](https://travis-ci.org/FeuRenard/mygpoclient-rs)
[](https://codecov.io/gh/FeuRenard/mygpoclient-rs)
[](https://coveralls.io/github/FeuRenard/mygpoclient-rs?branch=master)
[](https://libraries.io/github/FeuRenard/mygpoclient-rs)
[](https://gitmoji.carloscuesta.me)
[](https://crates.io/crates/mygpoclient)
[](https://docs.rs/mygpoclient)
Rust client library for [gpodder.net](https://gpodder.net/)
## Supported features
- [ ] [Authentication](https://gpoddernet.readthedocs.io/en/latest/api/reference/auth.html)
- [x] [Directory](https://gpoddernet.readthedocs.io/en/latest/api/reference/directory.html)
- [x] [Suggestions](https://gpoddernet.readthedocs.io/en/latest/api/reference/suggestions.html)
- [x] [Device](https://gpoddernet.readthedocs.io/en/latest/api/reference/devices.html)
- [x] [Subscriptions](https://gpoddernet.readthedocs.io/en/latest/api/reference/subscriptions.html)
- [x] [Episode Actions](https://gpoddernet.readthedocs.io/en/latest/api/reference/events.html)
- [ ] [Podcast Lists](https://gpoddernet.readthedocs.io/en/latest/api/reference/podcastlists.html)
- [x] [Settings](https://gpoddernet.readthedocs.io/en/latest/api/reference/settings.html)
- [ ] [Favorites](https://gpoddernet.readthedocs.io/en/latest/api/reference/favorites.html)
- [ ] [Device Synchronization](https://gpoddernet.readthedocs.io/en/latest/api/reference/sync.html)
- [ ] [Client Parametrization](https://gpoddernet.readthedocs.io/en/latest/api/reference/clientconfig.html)
## Building
1. Clone this repository
2. Run `cargo build`
## Testing
1. Run `cp set-credentials.sh _set-credentials.sh`
2. Enter valid gpodder.net credentials in `_set-credentials.sh`
3. Run `source ./_set-credentials.sh`
4. Run `cargo test -- --test-threads=1`
The tests have to run consecutively because they share state on the gpodder.net server.
## Install git hooks
* commit-msg: Run `ln -s ../../commit-msg.sh .git/hooks/commit-msg && chmod +x commit-msg.sh`
* pre-commit: Run `ln -s ../../pre-commit.sh .git/hooks/pre-commit && chmod +x pre-commit.sh`