| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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 . 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'] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-06-05 00:13:04 +08:00
										 |  |  |         result = { | 
					
						
							|  |  |  |             'version': current_app.config['CURRENT_VERSION'], | 
					
						
							|  |  |  |             'release_date': '', | 
					
						
							|  |  |  |             'release_notes': '', | 
					
						
							|  |  |  |             'can_auto_update': False, | 
					
						
							|  |  |  |             'features': { | 
					
						
							|  |  |  |                 'can_replace_logo': current_app.config['CAN_REPLACE_LOGO'], | 
					
						
							|  |  |  |                 'model_load_balancing_enabled': current_app.config['MODEL_LB_ENABLED'] | 
					
						
							| 
									
										
										
										
											2023-05-23 17:34:48 +08:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2024-06-05 00:13:04 +08:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if not check_update_url: | 
					
						
							|  |  |  |             return result | 
					
						
							| 
									
										
										
										
											2023-05-23 17:34:48 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											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))) | 
					
						
							| 
									
										
										
										
											2024-06-05 00:13:04 +08:00
										 |  |  |             result['version'] = args.get('current_version') | 
					
						
							|  |  |  |             return result | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         content = json.loads(response.content) | 
					
						
							| 
									
										
										
										
											2024-06-05 00:13:04 +08:00
										 |  |  |         result['version'] = content['version'] | 
					
						
							|  |  |  |         result['release_date'] = content['releaseDate'] | 
					
						
							|  |  |  |         result['release_notes'] = content['releaseNotes'] | 
					
						
							|  |  |  |         result['can_auto_update'] = content['canAutoUpdate'] | 
					
						
							|  |  |  |         return result | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | api.add_resource(VersionApi, '/version') |