def process(self): route_id = self.parameters.get('route_id') route_data = RouteService.get_route(route_id) if route_data: RouteService.push_route(route_id) return "Push to route success" else: return "route not exist", 400
def process(self): route_body = self.parameters.get('body') # if RouteService.get_route(route_body.get('usergroup_id')): # return "This usergroup_id already used",400 RouteService.add_route(route_body) db.session.commit() return {"code": 200, "message": "Add new route success"}
def process(self): route_id = self.parameters.get('route_id') route_data = RouteService.get_route(route_id) if route_data: RouteService.delete_route(route_id) db.session.commit() return "delete success" else: return "group id not exist!", 404
def process(self): route_body = self.parameters.get('body') route_ip = route_body.get('ipaddress') route_current_data = RouteService.get_route_by_ip(route_ip) if route_current_data: RouteService.update_route_dynamic_data(route_body) db.session.commit() return {"code": 200, "message": "Update dymanic data success"} else: return {"code": 4017, "message": returncode['4017']}, 400
def process(self): route_body = self.parameters.get('body') route_id = self.parameters.get('route_id') route_current_data = RouteService.get_route(route_id) if route_current_data: if route_body.get('id'): return {"code": 4012, "message": returncode['4012']}, 400 RouteService.modify_route_by_id(route_id, route_body) db.session.commit() return {"code": 200, "message": "Modify route success"} else: return {"code": 4017, "message": returncode['4017']}, 400
def process(self): route_id = self.parameters.get('route_id') route_data = RouteService.get_route(route_id) if route_data: route_dynamic_data = RouteService.get_route_dynamic_data( route_data['ipaddress']) return { "code": 200, "message": "Get dynamic route data success", "results": route_dynamic_data } else: return {"code": 4017, "message": returncode['4017']}, 400
def process(self): pageNum = request.args.get('pageNum', 1, type=int) pageSize = request.args.get('pageSize', 10, type=int) usergroup_ids_str = request.args.get('usergroup', "", type=str) logging.info( "GetRoutesView. pageNum:{},pageSize:{},usergroup_ids:{}".format( pageNum, pageSize, usergroup_ids_str)) temp1 = usergroup_ids_str.split(',') usergroup_ids_list = [] for temp in temp1: if temp >= '0' and temp <= '9999999': usergroup_ids_list.append(int(temp)) totals = RouteService.get_route_amount(usergroup_ids_list) totalPages = (totals + pageSize - 1) // pageSize self.other_function() routes = RouteService.get_routes(usergroup_ids_list, pageNum, pageSize) routes_info = [] for route in routes: routes_info.append({ 'id': route.RouteModel.id, 'usergroup_id': route.RouteModel.usergroup_id, 'group_name': route.UserGroupModel.group_name, 'servernameCN': route.RouteModel.servernameCN, 'domain': route.RouteModel.domain, 'certificateExpTime': route.RouteModel.certificateExpTime, 'ipaddress': route.RouteModel.ipaddress, 'ipv6': route.RouteModel.ipv6, 'trojanVersion': route.RouteModel.trojanVersion, 'current_used': route.UserGroupModel.current_used, 'maxUserCapacity': route.UserGroupModel.maxUserCapacity, 'maxPwdCapacity': route.UserGroupModel.maxPwdCapacity, 'trafficUsed': route.RouteModel.trafficUsed, 'trafficLimit': route.RouteModel.trafficLimit, 'trafficResetDay': route.RouteModel.trafficResetDay, 'sequence': route.RouteModel.sequence, 'online': route.RouteModel.online, 'lastCheckTime': route.RouteModel.lastCheckTime, }) return { "code": 200, "message": "get routes success", "results": { "total": totals, "totalPages": totalPages, "list": routes_info } }
def process(self): self.other_function() route_id = self.parameters.get('route_id') route_info = RouteService.get_route(route_id) if (route_info): return { "code": 200, "message": "Get route success", "results": { 'id': route_info.get('id'), 'usergroup_id': route_info.get('usergroup_id'), 'domain': route_info.get('domain'), 'ipaddress': route_info.get('ipaddress'), 'ipv6': route_info.get('ipv6'), 'port': route_info.get('port'), 'online': route_info.get('online'), 'servernameCN': route_info.get('servernameCN'), 'servernameEN': route_info.get('servernameEN'), 'sequence': route_info.get('sequence'), 'trafficLimit': route_info.get('trafficLimit'), 'routeExpTime': route_info.get('routeExpTime'), 'trafficResetDay': route_info.get('trafficResetDay'), 'trojanVersion': route_info.get('trojanVersion'), 'certificateExpTime': route_info.get('certificateExpTime'), 'availablePwd': route_info.get('availablePwd'), } } else: return "None", 400
def process(self): cmd_body = self.parameters.get('body') route_class = RouteService.get_route_class(cmd_body.get('route_id')) if not route_class: return {"code": 4017, "message": returncode['4017']}, 400 if cmd_body.get('command') not in commandList: return {"code": 4018, "message": returncode['4018']}, 400 re = self.remotecontrol(route_class.ipaddress, cmd_body.get('command')) if re: if re == 'verifyerror': return {"code": 4020, "message": returncode['4020']}, 400 else: if cmd_body.get('command') == 'getTrojanVer': route_class.trojanVersion = re db.session.commit() if cmd_body.get('command') == 'getCertExpDate': route_class.certificateExpTime = re db.session.commit() return { "code": 200, "message": "Remote command sent success", "data": re } else: return {"code": 4019, "message": returncode['4019']}, 400
def process(self): self.other_function() user_id = self.parameters.get('user_id') user_info = UserService.get_user(user_id) thunderservice_password = UserService.get_user_service_password( user_id) route_info = RouteService.get_routes_by_group_ID( user_info.usergroup_id) logging.info("route_info:{}".format(route_info)) if (user_info): routes = list() for route in route_info: routes.append({ "id": route.id, "usergroup_id": route.usergroup_id, "sequence": route.sequence, "online": route.online, "domain": route.domain, "port": route.port, "servernameEN": route.servernameEN, "servernameCN": route.servernameCN, "password": thunderservice_password.oripassword }) user_service_info = { 'user_id': user_info.id, 'thunderservice_id': user_info.thunderservice_id, 'thunderservice_name': thunder_service_name[str(user_info.thunderservice_id)], 'thunderservice_starttime': user_info.thunderservice_starttime, 'thunderservice_endtime': user_info.thunderservice_endtime, 'usergroup_id': user_info.usergroup_id, 'thunderservice_oripassword': thunderservice_password.oripassword, 'thunderservice_client_amount': user_info.thunderservice_client_amount, 'thunderservice_traffic_amount': user_info.thunderservice_traffic_amount, 'thunderservice_up_traffic_used': user_info.thunderservice_up_traffic_used, 'thunderservice_down_traffic_used': user_info.thunderservice_down_traffic_used, "routes": routes } return { "code": 200, "message": "get user service success", "userServiceInfo": user_service_info } return 'None', 400
def process(self): trackinginput = self.parameters.get('body') user_body = self.parameters.get('body') deviceType = user_body.get('deviceType') if user_body.get( 'deviceType') else 'Unknown' deviceID = user_body.get('deviceID') if user_body.get( 'deviceID') else 'Unknown' logging.info( f"AppUserFreeTrialView Comming, deviceType:{deviceType},deviceID:{deviceID}" ) routes_info = RouteService.get_free_route() # trackingoutput = "成功" # TrackingService.tracking(trackinginput,trackingoutput, user.id) # thunderservice = user.thunderservice_id # KService_action = '102' # if thunderservice and str(thunderservice) in thunder_service_ID['FUFEI']: # KService_action = '103' # KService.add_record(action=KService_action,parameter1=user.id,parameter2=device,timestamp=int(time.time())) user_info = { "user_id": 0, "name": "free", "period": "2099-12-30", "invitationcode": None, "client_group_id": 1, "vip": thunder_service_name["1"], "vip_en": thunder_service_nameEN["1"], "vip_level": 1, "validtime": 2 } resp = { "code": 200, "message": "get free routes success", "results": { "user_info": user_info, "ips": routes_info, "credential": { "token": "", "refreshToken": "" } } } logging.info(f"AppUserFreeTrialView , response:{resp}") return resp
def process(self): self.other_function() group_id = self.parameters.get('group_id') routes = RouteService.get_routes_by_group_ID(group_id) return routes
def process(self): trackinginput = self.parameters.get('body') print("1", time.time() * 1000) user_body = self.parameters.get('body') user = UserService.get_user_by_email(user_body['email']) print("2", time.time() * 1000) logging.info("UserLoginView,email:{}".format(user_body['email'])) if not user: return { "code": 4001, "message": returncode['4001'], }, 401 if (user_body['password'] == user.password): # if user.check_password(user_body['password']): print("3", time.time() * 1000) token = jwt.encode( {'user_id': user.id, 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=300)}, flask_app.config['SECRET_KEY']) refreshToken = jwt.encode({'user_id': user.id, 'type': 'refresh', 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=14400)}, flask_app.config['SECRET_KEY']) UserService.save_token(user.id, token, refreshToken) db.session.commit() print("4", time.time() * 1000) pwresource = UserService.get_user_service_password(user.id) if pwresource: thunderservice_password = pwresource.oripassword else: thunderservice_password = '******' # 万一没有,就拿这个顶 logging.info( "UserLoginView. This user :{} do not have thunderservice password, use reserved insteed".format( user_body['email'])) print("5", time.time() * 1000) routes = RouteService.get_routes_by_group_ID(user.usergroup_id) print("6", time.time() * 1000) routes_info = list() for route in routes: routes_info.append({ 'id': route.id, 'usergroup_id': route.usergroup_id, 'sequence': route.sequence, 'online': route.online, 'domain': route.domain, 'port': route.port, # 'ipaddress': route.ipaddress, 'servernameEN': route.servernameEN, 'servernameCN': route.servernameCN, # 'routeStarttime': route.routeStarttime, # 'trafficLimit': route.trafficLimit, # 'trafficUsed': route.trafficUsed, # 'trafficResetDay': route.trafficResetDay, 'password': thunderservice_password }) print("7", time.time() * 1000) trackingoutput = "成功" TrackingService.tracking(trackinginput,trackingoutput, user.id) print("8", time.time() * 1000) return { "code": 200, "message": "login success", "results": { "user": { "user_id": user.id, "thunderservice_id": user.thunderservice_id, "thunderservice_endtime": user.thunderservice_endtime, "usergroup_id": user.usergroup_id }, "routes": routes_info, "credential": { "token": token.decode('UTF-8'), "refreshToken": refreshToken.decode('UTF-8') } } } return { "code": 4002, "message": returncode['4002'], }, 401
def process(self): trackinginput = self.parameters.get('body') user_body = self.parameters.get('body') user = UserService.get_user_by_email(user_body['email']) logging.info(f"AppUserLoginView,request:{user_body}") if not user: logging.error("ERROR: AppUserLoginView: 4001") return { "code": 4001, "message": returncode['4001'], }, 200 if (user_body['password'] == user.password): # if user.check_password(user_body['password']): token = jwt.encode( { 'user_id': user.id, 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=300) }, flask_app.config['SECRET_KEY']) refreshToken = jwt.encode( { 'user_id': user.id, 'type': 'refresh', 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=14400) }, flask_app.config['SECRET_KEY']) UserService.save_token(user.id, token, refreshToken) db.session.commit() pwresource = UserService.get_user_service_password(user.id) if pwresource: thunderservice_password = pwresource.oripassword else: thunderservice_password = '******' # 万一没有,就拿这个顶 logging.info( "AppUserLoginView. This user :{} do not have thunderservice password, use reserved insteed" .format(user_body['email'])) if str(user.thunderservice_id) not in thunder_service_ID['FUFEI']: thunderservice_password = '******' routes = RouteService.get_routes_by_group_ID(user.usergroup_id) routes_info = list() for route in routes: routes_info.append({ 'id': route.id, 'servernameEN': route.servernameEN, 'servernameCN': route.servernameCN, 'remoteAddr': route.domain, 'remotePort': route.port, 'password': thunderservice_password, "ipv6": route.ipv6, "statusCN": "正常", "statusEN": "Available", "isValid": route.online }) trackingoutput = "成功" TrackingService.tracking(trackinginput, trackingoutput, user.id) device = user_body.get('deviceType') if user_body.get( 'deviceType') else 'Unknown' thunderservice = user.thunderservice_id # if thunderservice in (thunder_service_ID['LOW_SPEED'] or thunder_service_ID['TRIAL']): KService_action = '102' # thunderservice exits and is a VIP if thunderservice and str( thunderservice) in thunder_service_ID['FUFEI']: KService_action = '103' KService.add_record(action=KService_action, parameter1=user.id, parameter2=device, timestamp=int(time.time())) thunderservice_name = thunder_service_name[str(thunderservice)] user_info = { "user_id": user.id, "name": user.email, "period": time.strftime("%Y-%m-%d", time.localtime(user.thunderservice_endtime)), "invitationcode": user.individual_coupon, "client_group_id": user.thunderservice_id, "vip": thunderservice_name, "vip_en": thunder_service_nameEN[str(thunderservice)], "vip_level": user.usergroup_id, "validtime": 2 } user_mqtt = UserService.gen_user_mqtt(user_id=user.id) resp = { "code": 200, "message": "login success", "results": { "user_info": user_info, "mqtt": user_mqtt, "ips": routes_info, "credential": { "token": token.decode('UTF-8'), "refreshToken": refreshToken.decode('UTF-8') } } } logging.info(f"AppUserLoginView success. response:{resp}") return resp logging.error("ERROR: AppUserLoginView: 4002") return { "code": 4002, "message": returncode['4002'], }, 200
def process(self): # user_body = self.parameters.get('body') user_id = request.args.get('user_id') user = UserService.get_user(user_id) logging.info( f"AppGetUserView,(baseURL/app/getUserInfo?user_id=userid),user_id:{user_id}" ) if not user: return { "code": 4001, "message": returncode['4001'], }, 200 pwresource = UserService.get_user_service_password(user.id) if pwresource: thunderservice_password = pwresource.oripassword else: thunderservice_password = '******' # 万一没有,就拿这个顶 logging.info( "AppUserLoginView. This user :{} do not have thunderservice password, use reserved insteed" .format(user_id)) if str(user.thunderservice_id) not in thunder_service_ID['FUFEI']: thunderservice_password = '******' routes = RouteService.get_routes_by_group_ID(user.usergroup_id) routes_info = list() for route in routes: routes_info.append({ 'id': route.id, 'servernameEN': route.servernameEN, 'servernameCN': route.servernameCN, 'remoteAddr': route.domain, 'remotePort': route.port, 'password': thunderservice_password, "ipv6": route.ipv6, "statusCN": "正常", "statusEN": "Available", "isValid": route.online }) thunderservice_name = thunder_service_name[str(user.thunderservice_id)] thunderservice_nameEN = thunder_service_nameEN[str( user.thunderservice_id)] user_info = { "user_id": user.id, "name": user.email, "period": time.strftime("%Y-%m-%d", time.localtime(user.thunderservice_endtime)), "invitationcode": user.individual_coupon, "client_group_id": user.thunderservice_id, "vip": thunderservice_name, "vip_en": thunderservice_nameEN, "vip_level": user.usergroup_id, "validtime": 2 } resp = { "code": 200, "message": "get user info success", "results": { "user_info": user_info, "ips": routes_info } } logging.info(f"AppGetUserView success,response:{resp}") return resp
def process(self): trackinginput = self.parameters.get('body') user_body = self.parameters.get('body') user = UserService.get_user_by_email(user_body['email']) logging.info("UserLoginView,email:{}".format(user_body['email'])) if not user: return { "code": 4001, "message": returncode['4001'], }, 401 if (user_body['password'] == user.password): # if user.check_password(user_body['password']): token = jwt.encode( { 'user_id': user.id, 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=300) }, flask_app.config['SECRET_KEY']) refreshToken = jwt.encode( { 'user_id': user.id, 'type': 'refresh', 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=14400) }, flask_app.config['SECRET_KEY']) UserService.save_token(user.id, token, refreshToken) db.session.commit() pwresource = UserService.get_user_service_password(user.id) if pwresource: thunderservice_password = pwresource.oripassword else: thunderservice_password = '******' # 万一没有,就拿这个顶 logging.info( "UserLoginView. This user :{} do not have thunderservice password, use reserved insteed" .format(user_body['email'])) routes = RouteService.get_routes_by_group_ID(user.usergroup_id) routes_info = list() for route in routes: routes_info.append({ 'id': route.id, # 'usergroup_id': route.usergroup_id, 'sequence': route.sequence, # 'online': route.online, 'domain': route.domain, 'port': route.port, # 'ipaddress': route.ipaddress, 'servernameEN': route.servernameEN, 'servernameCN': route.servernameCN, # 'routeStarttime': route.routeStarttime, # 'trafficLimit': route.trafficLimit, # 'trafficUsed': route.trafficUsed, # 'trafficResetDay': route.trafficResetDay, 'password': thunderservice_password }) trackingoutput = "成功" TrackingService.tracking(trackinginput, trackingoutput, user.id) device = user_body.get('device') if user_body.get( 'device') else 'Unknown' thunderservice = user.thunderservice_id # if thunderservice in (thunder_service_ID['LOW_SPEED'] or thunder_service_ID['TRIAL']): KService_action = '102' # thunderservice exits and is a VIP if thunderservice and str( thunderservice) in thunder_service_ID['FUFEI']: KService_action = '103' KService.add_record(action=KService_action, parameter1=user.id, parameter2=device, timestamp=int(time.time())) thunderservice_name = thunder_service_name[str(thunderservice)] return { "code": 200, "message": "login success", "results": { "user_info": { "user_id": user.id, "thunderservice_id": user.thunderservice_id, "thunderservice_name": thunderservice_name, "thunderservice_endtime": user.thunderservice_endtime, "usergroup_id": user.usergroup_id }, "routes": routes_info, "credential": { "token": token.decode('UTF-8'), "refreshToken": refreshToken.decode('UTF-8') } } } return { "code": 4002, "message": returncode['4002'], }, 401