| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | # -*- coding:utf-8 -*- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import json | 
					
						
							|  |  |  | import logging | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import requests | 
					
						
							|  |  |  | from flask import current_app | 
					
						
							| 
									
										
										
										
											2024-01-12 12:34:01 +08:00
										 |  |  | from flask_restful import Resource, reqparse | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | from werkzeug.exceptions import InternalServerError | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from . import api | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class VersionApi(Resource): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def get(self): | 
					
						
							|  |  |  |         parser = reqparse.RequestParser() | 
					
						
							|  |  |  |         parser.add_argument('current_version', type=str, required=True, location='args') | 
					
						
							|  |  |  |         args = parser.parse_args() | 
					
						
							|  |  |  |         check_update_url = current_app.config['CHECK_UPDATE_URL'] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 17:34:48 +08:00
										 |  |  |         if not check_update_url: | 
					
						
							|  |  |  |             return { | 
					
						
							|  |  |  |                 'version': '0.0.0', | 
					
						
							|  |  |  |                 'release_date': '', | 
					
						
							|  |  |  |                 'release_notes': '', | 
					
						
							|  |  |  |                 'can_auto_update': False | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  |         try: | 
					
						
							|  |  |  |             response = requests.get(check_update_url, { | 
					
						
							|  |  |  |                 'current_version': args.get('current_version') | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |         except Exception as error: | 
					
						
							| 
									
										
										
										
											2023-06-25 16:49:14 +08:00
										 |  |  |             logging.warning("Check update version error: {}.".format(str(error))) | 
					
						
							|  |  |  |             return { | 
					
						
							|  |  |  |                 'version': args.get('current_version'), | 
					
						
							|  |  |  |                 'release_date': '', | 
					
						
							|  |  |  |                 'release_notes': '', | 
					
						
							|  |  |  |                 'can_auto_update': False | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         content = json.loads(response.content) | 
					
						
							|  |  |  |         return { | 
					
						
							|  |  |  |             'version': content['version'], | 
					
						
							|  |  |  |             'release_date': content['releaseDate'], | 
					
						
							|  |  |  |             'release_notes': content['releaseNotes'], | 
					
						
							|  |  |  |             'can_auto_update': content['canAutoUpdate'] | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | api.add_resource(VersionApi, '/version') |