baidu_config.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. # -*- coding:utf-8 -*-
  2. import os, sys, time
  3. import shutil
  4. from ssat_sdk.utils import Environment
  5. from ConfigParser import *
  6. import thread
  7. try:
  8. Python_Home = sys.prefix
  9. # Server_CFG_Path = Python_Home + Environment.SDK_Relative_Path + u"config/server.cfg"
  10. Server_CFG_Path = Python_Home + Environment.SDK_Relative_Path + u"config/baidu_run.cfg"
  11. Server_CFG_Local_Path = Python_Home + Environment.SDK_Relative_Path + u"config/baidu.cfg"
  12. # Server_CFG_Path = "../config/server.cfg"
  13. Home_Init = True
  14. except KeyError, e:
  15. print "KeyError:", e.message
  16. class BaiduConfig():
  17. ServiceModel = "service"
  18. def __init__(self):
  19. if not os.path.exists(Server_CFG_Path):
  20. print 'server_run.cfg文件不存在,复制server.cfg文件'
  21. shutil.copy(Server_CFG_Local_Path, Server_CFG_Path)
  22. print u"Server配置文件:", Server_CFG_Path
  23. self.CFGParser = ConfigParser()
  24. self.CFGParser.read(Server_CFG_Path)
  25. def writeCFG(self):
  26. self.CFGParser.write(open(Server_CFG_Path, "w"))
  27. def setBaiduCount(self,count):
  28. self.CFGParser.set("CurStatus", "Cur_Count", count)
  29. self.writeCFG()
  30. def getBaiduCount(self):
  31. return self.CFGParser.get("CurStatus", "Cur_Count")
  32. def getAppID(self):
  33. section = self.getBaiduCount()
  34. return self.CFGParser.get(section, "APP_ID")
  35. def getAPIKey(self):
  36. section = self.getBaiduCount()
  37. return self.CFGParser.get(section, "API_KEY")
  38. def getSecretKey(self):
  39. section = self.getBaiduCount()
  40. return self.CFGParser.get(section, "SECRET_KEY")
  41. def getRetCount(self):
  42. retCount = self.resetTime()
  43. if retCount is not None:
  44. return retCount
  45. section = self.getBaiduCount()
  46. retCount = self.CFGParser.getint(section, "ret_count")
  47. return retCount
  48. def resetTime(self):
  49. prevTime = self.CFGParser.getfloat("CurStatus", "reset_time")
  50. if prevTime == 0:
  51. timeLong = time.time()
  52. self.CFGParser.set("CurStatus", "reset_time", timeLong)
  53. self.writeCFG()
  54. prevGMT = time.gmtime(prevTime)
  55. prevYear = prevGMT.tm_year
  56. prevMonth = prevGMT.tm_mon
  57. prevDay = prevGMT.tm_mday
  58. curTime = time.time()
  59. curGMT = time.gmtime(curTime)
  60. curYear = curGMT.tm_year
  61. curMonth = curGMT.tm_mon
  62. curDay = curGMT.tm_mday
  63. if prevYear <> curYear or prevMonth <> curMonth or prevDay <> curDay:
  64. print "resetTime,prevGMT:",prevGMT
  65. print "resetTime,curGMT:",curGMT
  66. self.CFGParser.set("CurStatus", "reset_time", curTime)
  67. self.resetRetCount()
  68. return 500
  69. def resetRetCount(self):
  70. countList = self.getBaiduList()
  71. for section in countList:
  72. self.CFGParser.set(section, "ret_count", 500)
  73. self.writeCFG()
  74. def subRetCount(self, count):
  75. section = self.getBaiduCount()
  76. retCount = self.getRetCount()
  77. retCount = retCount - count
  78. self.CFGParser.set(section, "ret_count", retCount)
  79. self.writeCFG()
  80. def getBaiduList(self):
  81. sections = self.CFGParser.sections()
  82. countList = []
  83. for section in sections:
  84. if section.__contains__("count_"):
  85. countList.append(section)
  86. return countList
  87. def testCFG():
  88. print "testCFG:"
  89. cfg = BaiduConfig()
  90. # print "getBaiduCount:", cfg.getBaiduCount()
  91. print "getRetCount:", cfg.getRetCount()
  92. # print cfg.getBaiduList()
  93. if __name__ == "__main__":
  94. thread.start_new_thread(testCFG,())
  95. # thread.start_new_thread(testCFG,())
  96. # thread.start_new_thread(testCFG,())
  97. time.sleep(3)