From 608854dad7654fffe32addbf40b4a01dfe182b3a Mon Sep 17 00:00:00 2001 From: Evgeniy Alekseev Date: Fri, 6 Sep 2019 01:43:21 +0300 Subject: [PATCH] ariyala settings --- README.md | 19 ++++++++++++++----- package/ini/ffxivbis.ini.d/ariyala.ini | 4 ++++ src/service/core/ariyala_parser.py | 10 +++++++--- 3 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 package/ini/ffxivbis.ini.d/ariyala.ini diff --git a/README.md b/README.md index b0e242a..0193f6c 100644 --- a/README.md +++ b/README.md @@ -84,16 +84,25 @@ Service which allows to manage savage loot distribution easy. * `database`: database provide name, string, required. Allowed values: `sqlite`. * `priority`: methods of `Player` class which will be called to sort players for loot priority, space separated list of strings, required. -* `web` section +* `ariyala` section - Web server related settings. + Settings related to ariyala parser. - * `host`: address to bind, string, required. - * `port`: port to bind, int, required. + * `ariyala_url`: ariyala base url, string, required. + * `request_timeout`: xivapi request timeout, float, optional, default 30. + * `xivapi_key`: xivapi developer key, string, optional. + * `xivapi_url`: xivapi base url, string, required. * `sqlite` section Database settings for `sqlite` provider. * `database_path`: path to sqlite database, string, required. - * `migrations_path`: path to database migrations, string, required. \ No newline at end of file + * `migrations_path`: path to database migrations, string, required. + +* `web` section + + Web server related settings. + + * `host`: address to bind, string, required. + * `port`: port to bind, int, required. \ No newline at end of file diff --git a/package/ini/ffxivbis.ini.d/ariyala.ini b/package/ini/ffxivbis.ini.d/ariyala.ini new file mode 100644 index 0000000..dc74c24 --- /dev/null +++ b/package/ini/ffxivbis.ini.d/ariyala.ini @@ -0,0 +1,4 @@ +[ariyala] +ariyala_url = https://ffxiv.ariyala.com +request_timeout = 1 +xivapi_url = https://xivapi.com diff --git a/src/service/core/ariyala_parser.py b/src/service/core/ariyala_parser.py index 86ca080..dda3220 100644 --- a/src/service/core/ariyala_parser.py +++ b/src/service/core/ariyala_parser.py @@ -20,8 +20,9 @@ class AriyalaParser: def __init__(self, config: Configuration) -> None: self.ariyala_url = config.get('ariyala', 'ariyala_url') + self.xivapi_key = config.get('ariyala', 'xivapi_key', fallback=None) self.xivapi_url = config.get('ariyala', 'xivapi_url') - self.request_timeout = config.getfloat('ariyala', 'request_timeout') + self.request_timeout = config.getfloat('ariyala', 'request_timeout', fallback=30) def __remap_key(self, key: str) -> Optional[str]: if key == 'mainhand': @@ -62,9 +63,12 @@ class AriyalaParser: return result def get_is_tome(self, item_id: int) -> bool: + params = {'columns': 'IsEquippable'} + if self.xivapi_key is not None: + params['private_key'] = self.xivapi_key + response = requests.get('{}/item/{}'.format(self.xivapi_url, item_id), - params={'columns': 'IsEquippable'}, - timeout=self.request_timeout) + params=params, timeout=self.request_timeout) response.raise_for_status() data = response.json()