mirror of
https://github.com/PiBrewing/craftbeerpi4.git
synced 2024-11-23 07:28:13 +01:00
Merge pull request #140 from PiBrewing/brewfatherAPIV2Test
Brewfather apiv2 test
This commit is contained in:
commit
0f7308b745
3 changed files with 54 additions and 21 deletions
|
@ -1,3 +1,3 @@
|
||||||
__version__ = "4.4.1"
|
__version__ = "4.4.2.a3"
|
||||||
__codename__ = "Yeast Starter"
|
__codename__ = "Yeast Starter"
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,6 @@ from ..api.step import StepMove, StepResult, StepState
|
||||||
import re
|
import re
|
||||||
import base64
|
import base64
|
||||||
|
|
||||||
|
|
||||||
class UploadController:
|
class UploadController:
|
||||||
|
|
||||||
def __init__(self, cbpi):
|
def __init__(self, cbpi):
|
||||||
|
@ -70,9 +69,12 @@ class UploadController:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
async def get_brewfather_recipes(self,offset=0):
|
async def get_brewfather_recipes(self,offset=0):
|
||||||
|
limit = 50
|
||||||
|
#loop=0
|
||||||
|
repeat = True
|
||||||
brewfather = True
|
brewfather = True
|
||||||
result=[]
|
result=[]
|
||||||
self.url="https://api.brewfather.app/v1/recipes"
|
self.url="https://api.brewfather.app/v2/recipes"
|
||||||
brewfather_user_id = self.cbpi.config.get("brewfather_user_id", None)
|
brewfather_user_id = self.cbpi.config.get("brewfather_user_id", None)
|
||||||
if brewfather_user_id == "" or brewfather_user_id is None:
|
if brewfather_user_id == "" or brewfather_user_id is None:
|
||||||
brewfather = False
|
brewfather = False
|
||||||
|
@ -84,24 +86,39 @@ class UploadController:
|
||||||
if brewfather == True:
|
if brewfather == True:
|
||||||
encodedData = base64.b64encode(bytes(f"{brewfather_user_id}:{brewfather_api_key}", "ISO-8859-1")).decode("ascii")
|
encodedData = base64.b64encode(bytes(f"{brewfather_user_id}:{brewfather_api_key}", "ISO-8859-1")).decode("ascii")
|
||||||
headers={"Authorization": "Basic %s" % encodedData}
|
headers={"Authorization": "Basic %s" % encodedData}
|
||||||
parameters={"limit": 50, 'offset': offset}
|
parameters={"limit": limit}
|
||||||
|
while repeat == True:
|
||||||
|
try:
|
||||||
async with aiohttp.ClientSession(headers=headers) as bf_session:
|
async with aiohttp.ClientSession(headers=headers) as bf_session:
|
||||||
async with bf_session.get(self.url, params=parameters) as r:
|
async with bf_session.get(self.url, params=parameters) as r:
|
||||||
bf_recipe_list = await r.json()
|
bf_recipe_list = await r.json()
|
||||||
await bf_session.close()
|
await bf_session.close()
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(e)
|
||||||
|
|
||||||
if bf_recipe_list:
|
if bf_recipe_list:
|
||||||
|
#loop +=1
|
||||||
for row in bf_recipe_list:
|
for row in bf_recipe_list:
|
||||||
recipe_id = row['_id']
|
recipe_id = row['_id']
|
||||||
name = row['name']
|
name = row['name']
|
||||||
element = {'value': recipe_id, 'label': name}
|
element = {'value': recipe_id, 'label': name}
|
||||||
result.append(element)
|
result.append(element)
|
||||||
return result
|
|
||||||
else:
|
else:
|
||||||
return []
|
repeat = False
|
||||||
|
|
||||||
|
if len(bf_recipe_list) != limit:
|
||||||
|
#logging.info(loop)
|
||||||
|
repeat = False
|
||||||
else:
|
else:
|
||||||
return []
|
parameters={"limit": limit, 'start_after': recipe_id}
|
||||||
|
|
||||||
|
#logging.info(len(result))
|
||||||
|
try:
|
||||||
|
newlist = sorted(result, key=lambda d: d['label'])
|
||||||
|
#logging.info(newlist)
|
||||||
|
return newlist
|
||||||
|
except:
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def get_creation_path(self):
|
def get_creation_path(self):
|
||||||
|
@ -738,7 +755,7 @@ class UploadController:
|
||||||
|
|
||||||
brewfather = True
|
brewfather = True
|
||||||
result=[]
|
result=[]
|
||||||
self.bf_url="https://api.brewfather.app/v1/recipes/" + Recipe_ID
|
self.bf_url="https://api.brewfather.app/v2/recipes/" + Recipe_ID
|
||||||
brewfather_user_id = self.cbpi.config.get("brewfather_user_id", None)
|
brewfather_user_id = self.cbpi.config.get("brewfather_user_id", None)
|
||||||
if brewfather_user_id == "" or brewfather_user_id is None:
|
if brewfather_user_id == "" or brewfather_user_id is None:
|
||||||
brewfather = False
|
brewfather = False
|
||||||
|
|
|
@ -61,6 +61,7 @@ class ConfigUpdate(CBPiExtension):
|
||||||
AddMashIn = self.cbpi.config.get("AddMashInStep", None)
|
AddMashIn = self.cbpi.config.get("AddMashInStep", None)
|
||||||
bfuserid = self.cbpi.config.get("brewfather_user_id", None)
|
bfuserid = self.cbpi.config.get("brewfather_user_id", None)
|
||||||
bfapikey = self.cbpi.config.get("brewfather_api_key", None)
|
bfapikey = self.cbpi.config.get("brewfather_api_key", None)
|
||||||
|
bflistlength = self.cbpi.config.get("brewfather_list_length", None)
|
||||||
RecipeCreationPath = self.cbpi.config.get("RECIPE_CREATION_PATH", None)
|
RecipeCreationPath = self.cbpi.config.get("RECIPE_CREATION_PATH", None)
|
||||||
BoilKettle = self.cbpi.config.get("BoilKettle", None)
|
BoilKettle = self.cbpi.config.get("BoilKettle", None)
|
||||||
CONFIG_STATUS = self.cbpi.config.get("CONFIG_STATUS", None)
|
CONFIG_STATUS = self.cbpi.config.get("CONFIG_STATUS", None)
|
||||||
|
@ -247,6 +248,21 @@ class ConfigUpdate(CBPiExtension):
|
||||||
|
|
||||||
## Check if Brewfather API Key is in config
|
## Check if Brewfather API Key is in config
|
||||||
|
|
||||||
|
if bflistlength is None:
|
||||||
|
logger.info("INIT Brewfather Recipe List Length")
|
||||||
|
try:
|
||||||
|
await self.cbpi.config.add("brewfather_list_length", 50, type=ConfigType.SELECT, description="Brewfather Recipe List length",
|
||||||
|
source="craftbeerpi",
|
||||||
|
options= [{"label": "5", "value": 5},
|
||||||
|
{"label": "10", "value": 10},
|
||||||
|
{"label": "25", "value": 25},
|
||||||
|
{"label": "50", "value": 50},
|
||||||
|
{"label": "100", "value": 100}])
|
||||||
|
except:
|
||||||
|
logger.warning('Unable to update config')
|
||||||
|
|
||||||
|
## Check if Brewfather API Key is in config
|
||||||
|
|
||||||
if RecipeCreationPath is None:
|
if RecipeCreationPath is None:
|
||||||
logger.info("INIT Recipe Creation Path")
|
logger.info("INIT Recipe Creation Path")
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue