text: #coding: utf-8
  # +-------------------------------------------------------------------
  # | 宝塔Linux面板
  # +-------------------------------------------------------------------
  # | Copyright (c) 2015-2017 宝塔软件(http://bt.cn) All rights reserved.
  # +-------------------------------------------------------------------
  # | Author: 阿良 <287962566@qq.com>
  # +-------------------------------------------------------------------
  #
  #             ┏┓      ┏┓
  #            ┏┛┻━━━━━━┛┻┓
  #            ┃                ☃             ┃
  #            ┃  ┳┛   ┗┳ ┃
  #            ┃     ┻    ┃
  #            ┗━┓      ┏━┛
  #              ┃      ┗━━━┓
  #              ┃  神兽保佑        ┣┓
  #              ┃　  永无BUG！   ┏┛
  #              ┗┓┓┏━┳┓┏━━━┛
  #               ┃┫┫ ┃┫┫
  #               ┗┻┛ ┗┻┛
  #
  #+------------------------------
  #| RESTful API控制器
  #+------------------------------
  import public,os
  from json import loads,dumps
  class panelApi:
      tokenFile = 'data/token.json'
      
      #获取Token
      def GetToken(self,get):
          if not os.path.exists(self.tokenFile): return public.returnMsg(False,'错误：当前未开启API接口服务!')
          if os.path.exists(self.tokenFile): self.CreateToken(get);
          token = loads(public.readFile(self.tokenFile))
          return token;
      
      #设置Token
      def SetToken(self,get):
          if not os.path.exists(self.tokenFile): return public.returnMsg(False,'错误：当前未开启API接口服务!')
          token = loads(public.readFile(self.tokenFile))
          
          #设置AK/SK
          if hasattr(get,'access_key'):
              token['access_key'] = get.access_key
              token['secret_key'] = get.secret_key
          
          #设置权限
          if hasattr(get,'rule'):
              token['rule'] = get.rule.split(',')
              
          #设置IP白名单
          if hasattr(get,'address'):
              token['address'] = get.address.split(',')
          
          
          public.writeFile(self.tokenFile,dumps(token))
          public.WriteLog('API','修改API配置成功!');
          return public.returnMsg(True,'设置成功!')
      
      #初始化API接口
      def CreateToken(self,get):
          token = {}
          token['access_key'] = public.GetRandomString(24)
          token['secret_key'] = public.GetRandomString(48)
          token['rule'] = []
          token['address'] = []
          token['status'] = False
          public.writeFile(self.tokenFile,dumps(token))
          public.WriteLog('API','开启API接口成功!');
          return public.returnMsg(True,'初始化API接口成功!');
      
      #设置API接口状态
      def SetTokenStatus(self,get):
          if not os.path.exists(self.tokenFile): return public.returnMsg(False,'错误：当前未开启API接口服务!')
          token = loads(public.readFile(self.tokenFile))
          if token['status']:
              token['status'] = False
              public.WriteLog('API','已关闭API服务!');
          else:
              token['status'] = True
              public.WriteLog('API','已开启API服务!');
              
          public.writeFile(self.tokenFile,dumps(token))
          return public.returnMsg(True,'设置成功!')
      
      
      
          
          