diff --git a/README.md b/README.md index 4330b1f..d5ae966 100644 --- a/README.md +++ b/README.md @@ -10,25 +10,25 @@ Each integration in GOG Galaxy 2.0 comes as a separate Python script, and is lau The provided features are: -- multistep authorisation using a browser built into GOG Galaxy 2.0 +- multistep authorization using a browser built into GOG Galaxy 2.0 - support for GOG Galaxy 2.0 features: - - importing owned and detecting installed games - - installing and launching games - - importing achievements and game time - - importing friends lists and statuses - - importing friends recomendations list - - receiving and sending chat messages + - importing owned and detecting installed games + - installing and launching games + - importing achievements and game time + - importing friends lists and statuses + - importing friends recommendations list + - receiving and sending chat messages - cache storage ## Platform Id's Each integration can implement only one platform. Each integration must declare which platform it's integrating. -[List of possible Platofrm IDs](PLATFORM_IDs.md) +[List of possible Platform IDs](PLATFORM_IDs.md) ## Basic usage -Eeach integration should inherit from the :class:`~galaxy.api.plugin.Plugin` class. Supported methods like :meth:`~galaxy.api.plugin.Plugin.get_owned_games` should be overwritten - they are called from the GOG Galaxy client in the appropriate times. +Each integration should inherit from the :class:`~galaxy.api.plugin.Plugin` class. Supported methods like :meth:`~galaxy.api.plugin.Plugin.get_owned_games` should be overwritten - they are called from the GOG Galaxy client in the appropriate times. Each of those method can raise exceptions inherited from the :exc:`~galaxy.api.jsonrpc.ApplicationError`. Communication between an integration and the client is also possible with the use of notifications, for example: :meth:`~galaxy.api.plugin.Plugin.update_local_game_status`. @@ -62,10 +62,12 @@ if __name__ == "__main__": ## Deployment The client has a built-in Python 3.7 interpreter, so the integrations are delivered as python modules. -In order to be found by GOG Galaxy 2.0 an integration folder should be placed in [lookup directory](#deploy-location). Beside all the python files, the integration folder has to contain [manifest.json](#deploy-manifest) and all third-party dependencies. See an [examplary structure](#deploy-structure-example). +In order to be found by GOG Galaxy 2.0 an integration folder should be placed in [lookup directory](#deploy-location). Beside all the python files, the integration folder has to contain [manifest.json](#deploy-manifest) and all third-party dependencies. See an [exemplary structure](#deploy-structure-example). ### Lookup directory + + - Windows: `%localappdata%\GOG.com\Galaxy\plugins\installed` @@ -75,7 +77,8 @@ In order to be found by GOG Galaxy 2.0 an integration folder should be placed in `~/Library/Application Support/GOG.com/Galaxy/plugins/installed` ### Manifest - + + Obligatory JSON file to be placed in a integration folder. ```json @@ -91,6 +94,7 @@ Obligatory JSON file to be placed in a integration folder. "script": "plugin.py" } ``` + | property | description | |---------------|---| | `guid` | | @@ -99,13 +103,15 @@ Obligatory JSON file to be placed in a integration folder. | `script` | path of the entry point module, relative to the integration folder | ### Dependencies -All third-party packages (packages not included in Python 3.7 standard library) should be deployed along with plugin files. Use the folowing command structure: + +All third-party packages (packages not included in Python 3.7 standard library) should be deployed along with plugin files. Use the following command structure: ```pip install DEP --target DIR --implementation cp --python-version 37``` For example plugin that uses *requests* has structure as follows: + ```bash installed └── my_integration