Developer Documentation - ruinernin/foxystreams GitHub Wiki

foxydebrid

This is intended to be a standalone Python package providing access to Debrid APIs. It should be compatible with both Python 2 and 3, without any tight coupling to the FoxyStreams plugin.

It should be available for install with pip.

python3 -m venv ./foxy
. ./foxy/bin/activate
pip install git+https://github.com/ruinernin/foxystreams.git#egg=foxydebrid
python -c 'from foxydebrid import debrid;help(debrid)'

plugin.video.foxysteams

addon.py

This is the main plugin code, it is messy but the goal is to keep it simple, provide the main business logic around the plugin and keep it well below 1,000 lines of code.

ui.py

This module contains some helper functions for the UI (which should be limited) so that the main addon remains as being as much business logic as possible.

player.py and jsonrpc.py

Both of these only exist as a way of saving the resume time and watched status of the .STRM files provided by OpenMeta to the Kodi Library.

If you are extending or modifying the addon for your own needs and do not require saving this state these files can be disregarded/removed.

CI/CD

This repo uses CircleCI to build and release versions of the plugin to Kodi clients. In summary all commits which are not on the master branch are built and then released in the dev repo. Any tag which is pushed is built and released in the main repo with the tag substituted in as the version.

The dev repo is available in the /devrepo branch.

The main repo is available in the /repo branch.

A completely clean Kodi addon repo is available in the /clean branch, the idea being any repo can be completely removed by updating the reference of the repo with the HEAD of the clean branch when desired. Removing old binary crap from git.