version.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # -*- coding:utf-8 -*-
  2. import json
  3. import logging
  4. import requests
  5. from flask import current_app
  6. from flask_restful import Resource, reqparse
  7. from werkzeug.exceptions import InternalServerError
  8. from . import api
  9. class VersionApi(Resource):
  10. def get(self):
  11. parser = reqparse.RequestParser()
  12. parser.add_argument('current_version', type=str, required=True, location='args')
  13. args = parser.parse_args()
  14. check_update_url = current_app.config['CHECK_UPDATE_URL']
  15. if not check_update_url:
  16. return {
  17. 'version': '0.0.0',
  18. 'release_date': '',
  19. 'release_notes': '',
  20. 'can_auto_update': False
  21. }
  22. try:
  23. response = requests.get(check_update_url, {
  24. 'current_version': args.get('current_version')
  25. })
  26. except Exception as error:
  27. logging.warning("Check update version error: {}.".format(str(error)))
  28. return {
  29. 'version': args.get('current_version'),
  30. 'release_date': '',
  31. 'release_notes': '',
  32. 'can_auto_update': False
  33. }
  34. content = json.loads(response.content)
  35. return {
  36. 'version': content['version'],
  37. 'release_date': content['releaseDate'],
  38. 'release_notes': content['releaseNotes'],
  39. 'can_auto_update': content['canAutoUpdate']
  40. }
  41. api.add_resource(VersionApi, '/version')