guanjun.py 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. # import datetime
  2. import pymongo
  3. import time
  4. import logging
  5. from ..utils.helper import Helper
  6. class Guanjunpipeline(object):
  7. def open_spider(self, spider):
  8. self.mongo = pymongo.MongoClient(host="192.168.2.200", username="kaiyou", password="kaiyou", port=27017)
  9. self.db = self.mongo['kaiyou']
  10. def process_item(self, item, spider):
  11. gj_odds = []
  12. url = 'http://admin.5gogo.com/'
  13. logger = logging.getLogger(__name__)
  14. data_game = item['data_game'].replace('年', "-").replace('月', "-").replace('日', "")
  15. time_game = item['time_game']
  16. ctime = data_game + " " + time_game + ":00"
  17. uptime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
  18. # expire_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time() + 60))
  19. league_name = item['league_name']
  20. tema_home = item['tema_home']
  21. league_id = item['league_id']
  22. match_id = item['game_id']
  23. new_league_name = item['new_league_name']
  24. # 冠军赔率
  25. champion_team = round(item['champion_team'], 2)
  26. # 冠军玩法
  27. new_champion = item['new_champion']
  28. # 构建唯一哈希索引
  29. time1 = time.mktime(time.strptime(ctime, '%Y-%m-%d %H:%M:%S')) + 43200
  30. time2 = time.localtime(time1)
  31. time3 = time.strftime('%Y-%m-%d %H:%M:%S', time2)
  32. # pt = item['pt']
  33. ball = item['ball']
  34. if ball == '足球':
  35. game_code = 'zq'
  36. league_table = 'hg3535_zq_league'
  37. odds_table = "hg3535_zq_chain_odds"
  38. elif ball == '篮球':
  39. game_code = 'lq'
  40. league_table = 'hg3535_lq_league'
  41. odds_table = "hg3535_lq_chain_odds"
  42. elif ball == '网球':
  43. game_code = 'wq'
  44. league_table = "hg3535_wq_league"
  45. odds_table = "hg3535_wq_chain_odds"
  46. elif ball == '棒球':
  47. game_code = 'bq'
  48. league_table = "hg3535_bq_league"
  49. odds_table = "hg3535_bq_chain_odds"
  50. else:
  51. print(ball, "冠军数据球类错误")
  52. return
  53. league_list = []
  54. uuid = Helper.genearte_MD5(league_name + 'hg0088')
  55. payload_key = ['game_code', 'title', 'match_id', 'lg_id', 'source']
  56. payload_value = [game_code, 'league', match_id, league_id, 'hg3535']
  57. l_payload = dict(zip(payload_key, payload_value))
  58. league_key = ['name_chinese', 'kind', 'match_mode', 'if_stop', 'identity', 'belong', 'last_time',
  59. 'lg_id', 'source', 'uuid']
  60. league_value = [new_league_name, '0', '0', '0', uuid, '0', time3, league_id, 'hg3535', uuid]
  61. league_dict = dict(zip(league_key, league_value))
  62. if self.db[league_table].find({'uuid': uuid}).count() < 1:
  63. league_list.append(league_dict)
  64. l_payload['data'] = league_list
  65. try:
  66. print("冠军联赛数据不为空,数据提交")
  67. response_data = Helper.async_post(url + '/setLeague', l_payload)
  68. print(response_data)
  69. print('请求冠军联赛成功')
  70. logger.info('请求足球冠军联赛成功')
  71. except Exception as e:
  72. logger.warning('足球冠军联赛数据数据接口异常,提交失败')
  73. logger.warning(e)
  74. self.db[league_table].insert(league_list)
  75. else:
  76. print('冠军联赛数据已存在')
  77. payload_key1 = ['game_code', 'title', 'source']
  78. payload_value1 = [game_code, 'odds_ch', 'hg3535']
  79. only_list = []
  80. chain_dict = dict(zip(payload_key1, payload_value1))
  81. sole = Helper.genearte_MD5(new_champion + str(league_id) + league_name + new_league_name + tema_home)
  82. odds_only = Helper.genearte_MD5(new_champion + str(league_id) + league_name + new_league_name + str(champion_team) + tema_home + str(match_id))
  83. only_list.append(odds_only)
  84. data_key = ['match_id', 'lg_id', 'odds_code', 'status', 'sort', 'p_code', 'odds',
  85. 'condition', 'odds_only', 'sole', 'source', 'type', 'team', 'uuid']
  86. data_value = [match_id, league_id, new_champion, '0', '0', new_league_name, champion_team, '0', odds_only, sole, 'hg3535', '1', tema_home, uuid]
  87. chain_data = dict(zip(data_key, data_value))
  88. data_list = []
  89. if self.db[odds_table].find({'odds_only': odds_only}).count() < 1:
  90. data_list.append(chain_data)
  91. chain_dict['data'] = data_list
  92. chain_dict['odds_only'] = only_list
  93. try:
  94. response_data = Helper.async_post(url + '/setOddsCH', chain_dict)
  95. # logger.warning(response_data.text)
  96. print(odds_table, response_data)
  97. print(odds_table, '请求冠军赔率成功')
  98. except Exception as e:
  99. logger.warning('冠军赔率接口异常,提交失败')
  100. logger.warning(e)
  101. self.db[odds_table].insert(chain_data)
  102. else:
  103. print('足球冠军已经提交过了')
  104. logger.info('足球冠军已经提交过了')