|
@@ -0,0 +1,100 @@
|
|
|
|
|
+import logging
|
|
|
|
|
+from twisted.internet import defer, reactor
|
|
|
|
|
+from ..utils.helper import Helper
|
|
|
|
|
+from ..settings import LEAGUE_URL,MATCH_URL
|
|
|
|
|
+import pymongo,time
|
|
|
|
|
+from ..settings import M_HOST,M_USER,M_PASSWORD,M_POST,M_DB,ODDS_URL
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class RollPipeline(object):
|
|
|
|
|
+ def open_spider(self, spider):
|
|
|
|
|
+ self.mongo = pymongo.MongoClient(host=M_HOST, username=M_USER, password=M_PASSWORD, port=M_POST,
|
|
|
|
|
+ authSource=M_DB)
|
|
|
|
|
+ self.db = self.mongo[M_DB]
|
|
|
|
|
+ @defer.inlineCallbacks
|
|
|
|
|
+ def process_item(self, item, spider):
|
|
|
|
|
+ logger = logging.getLogger(__name__)
|
|
|
|
|
+ logger.info("进入管道")
|
|
|
|
|
+ out = defer.Deferred()
|
|
|
|
|
+ reactor.callInThread(self._do_calculation, item, out)
|
|
|
|
|
+ yield out
|
|
|
|
|
+
|
|
|
|
|
+ def _do_calculation(self, item, out):
|
|
|
|
|
+ # 先保存联赛
|
|
|
|
|
+ league_name = item['league']
|
|
|
|
|
+ uuid = Helper.genearte_uuid(league_name)
|
|
|
|
|
+ type = item['showtype']
|
|
|
|
|
+ is_rollball, is_today, is_morningplate = 0, 0, 0
|
|
|
|
|
+ if type == "FT":
|
|
|
|
|
+ is_today = 1
|
|
|
|
|
+ elif type == "FU":
|
|
|
|
|
+ is_morningplate = 1
|
|
|
|
|
+ elif type == "RB":
|
|
|
|
|
+ is_rollball = 1
|
|
|
|
|
+ else:
|
|
|
|
|
+ is_stringscene=1
|
|
|
|
|
+ league_key = ["name_chinese", "kind", "match_mode", "if_stop", "last_time", "lg_id", "source", "uuid","is_rollball","is_today","is_morningplate","is_stringscene"]
|
|
|
|
|
+ league_value = [league_name, "1", "1", "0", item['datetime'], item['match_id'], "hgg070", uuid,is_rollball,is_today,is_morningplate,is_stringscene]
|
|
|
|
|
+ #赛事
|
|
|
|
|
+ childer = dict(zip(league_key, league_value))
|
|
|
|
|
+ #联赛
|
|
|
|
|
+ obj = {"game_code": "lq", "title": "league", "source": "hgg070","data":[childer]}
|
|
|
|
|
+ res=Helper.async_post(LEAGUE_URL,obj)
|
|
|
|
|
+ if res:
|
|
|
|
|
+ if res.get('status')==1:
|
|
|
|
|
+ logging.warning("联赛提交成功,{}1".format(res))
|
|
|
|
|
+ #提交赛事
|
|
|
|
|
+ lres=Helper.async_post(MATCH_URL,childer)
|
|
|
|
|
+ if lres.get('status')==1:
|
|
|
|
|
+ logging.warning("赛事提交成功,{}2".format(res))
|
|
|
|
|
+ #保存赔率
|
|
|
|
|
+ # 是否串场
|
|
|
|
|
+ if item['isP'] == 'P':
|
|
|
|
|
+ ris_stringscene = 1
|
|
|
|
|
+ else:
|
|
|
|
|
+ ris_stringscene = 0
|
|
|
|
|
+ # 现在时间,时间戳
|
|
|
|
|
+ utime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
|
|
|
|
|
+ odds_key = ["game_code", "title", "match_id", "lg_id", "data", "source", "odds_only", "tag", "uuid",
|
|
|
|
|
+ "is_stringscene", "utime", "pt", 'match_identity']
|
|
|
|
|
+ odds_value = ["lq", "odds", item['match_id'], item['league_id'], item["content"], "hgg070", [],
|
|
|
|
|
+ item['more_count'], uuid,
|
|
|
|
|
+ ris_stringscene, utime, item['isP'], item["match_identity"]]
|
|
|
|
|
+ # 赛事
|
|
|
|
|
+ odderlist = dict(zip(odds_key, odds_value))
|
|
|
|
|
+ res = Helper.async_post(ODDS_URL, odderlist)
|
|
|
|
|
+ if res:
|
|
|
|
|
+ if res.get('status') == 1:
|
|
|
|
|
+ logging.warning("赔率提交成功,{}3".format(res))
|
|
|
|
|
+ else:
|
|
|
|
|
+ logging.warning("赔率提交失败,{}4".format(res))
|
|
|
|
|
+ else:
|
|
|
|
|
+ logging.warning("赔率提交失败,{}5".format(res))
|
|
|
|
|
+
|
|
|
|
|
+ is_stringscene = 1
|
|
|
|
|
+ league_key = ["name_chinese", "kind", "match_mode", "if_stop", "last_time", "lg_id", "source", "uuid",
|
|
|
|
|
+ "is_rollball", "is_today", "is_morningplate", "is_stringscene"]
|
|
|
|
|
+ league_value = [league_name, "1", "1", "0", item['datetime'], item['id'], "hgg070", uuid, is_rollball, is_today,
|
|
|
|
|
+ is_morningplate, is_stringscene]
|
|
|
|
|
+ # 赛事
|
|
|
|
|
+ childer = dict(zip(league_key, league_value))
|
|
|
|
|
+ # 联赛
|
|
|
|
|
+ obj = {"game_code": "lq", "title": "league", "source": "hgg070", "data": [childer]}
|
|
|
|
|
+ res = Helper.async_post(LEAGUE_URL, obj)
|
|
|
|
|
+
|
|
|
|
|
+ if res:
|
|
|
|
|
+ if res.get('status') == 1:
|
|
|
|
|
+ logging.warning("联赛提交成功,{}".format(res))
|
|
|
|
|
+ # 提交赛事
|
|
|
|
|
+ lres = Helper.async_post(MATCH_URL, childer)
|
|
|
|
|
+ if lres.get('status') == 1:
|
|
|
|
|
+ logging.warning("联赛提交成功,{}".format(res))
|
|
|
|
|
+
|
|
|
|
|
+ else:
|
|
|
|
|
+ logging.warning("赛事提交失败,{}".format(res))
|
|
|
|
|
+
|
|
|
|
|
+ else:
|
|
|
|
|
+ logging.warning("联赛提交失败,{}".format(res))
|
|
|
|
|
+ else:
|
|
|
|
|
+ logging.warning("联赛提交失败,{}".format(res))
|
|
|
|
|
+
|