Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

63 rindas
2.3KB

  1. from flask import json, request
  2. from flask_classy import FlaskView, route
  3. from git import Repo, Git
  4. import sqlite3
  5. from modules.app_config import cbpi
  6. from werkzeug.utils import secure_filename
  7. import pprint
  8. import time
  9. import os
  10. from modules.steps import Step,StepView
  11. import xml.etree.ElementTree
  12. class RESTImport(FlaskView):
  13. @route('/', methods=['POST'])
  14. def load(self):
  15. try:
  16. data = request.json
  17. name = data.get("name", "No Name")
  18. self.api.set_config_parameter("brew_name", name)
  19. chilstep_type = cbpi.get_config_parameter("step_chil", "ChilStep")
  20. mashstep_type = cbpi.get_config_parameter("step_mash", "MashStep")
  21. mash_kettle = cbpi.get_config_parameter("step_mash_kettle", None)
  22. boilstep_type = cbpi.get_config_parameter("step_boil", "BoilStep")
  23. boil_kettle = cbpi.get_config_parameter("step_boil_kettle", None)
  24. boil_temp = 100 if cbpi.get_config_parameter("unit", "C") == "C" else 212
  25. # READ KBH DATABASE
  26. Step.delete_all()
  27. StepView().reset()
  28. for step in data.get("steps"):
  29. if step.get("type", None) == "MASH":
  30. Step.insert(**{"name": step.get("name","Mash Step"), "type": mashstep_type, "config": {"kettle": mash_kettle, "temp": step.get("temp",0), "timer": step.get("timer",0)}})
  31. elif step.get("type", None) == "CHIL":
  32. Step.insert(**{"name": step.get("name","Chil"), "type": chilstep_type, "config": {"timer": step.get("timer")}})
  33. elif step.get("type", None) == "BOIL":
  34. Step.insert(**{"name": step.get("name", "Boil"), "type": boilstep_type, "config": {"kettle": boil_kettle, "timer": step.get("timer"), "temp": boil_temp}})
  35. else:
  36. pass
  37. self.api.emit("UPDATE_ALL_STEPS", Step.get_all())
  38. self.api.notify(headline="Recipe %s loaded successfully" % name, message="")
  39. except Exception as e:
  40. self.api.notify(headline="Failed to load recipe", type="danger", message=str(e))
  41. m = str(e.message)
  42. return (str(e), 500)
  43. return ('', 204)
  44. @cbpi.initalizer()
  45. def init(cbpi):
  46. RESTImport.api = cbpi
  47. RESTImport.register(cbpi.app, route_base='/api/recipe/import/v1')