diff --git a/taptap/collect_mongodb.py b/taptap/collect_mongodb.py index e7d0126..d9697cb 100644 --- a/taptap/collect_mongodb.py +++ b/taptap/collect_mongodb.py @@ -79,7 +79,9 @@ from ops.mtga import FromTga from ops.plog import define_logger import logging import datetime - +import sys +from bson.objectid import ObjectId +import json define_logger("/data/logs/ops/reptile2ss.log") log = logging.getLogger(__name__) MONGOINFO = {'host': '10.10.5.6', 'port': 27017} @@ -91,6 +93,7 @@ class CollectMongo(): self.api_secret = "GsFnzuKcNOFXsRJbDjV3avy67wTl8tyRD0t0b0VOFbQ285StWmkvT32gtQBVycXp" self.tga = FromTga(url=self.url, token=self.api_secret) self.item = item + self.gameid = self.item.get('gameid') self.tgaid = self.item.get('tgaid') # 初始化tga写方法初始化 self.tga.init_tga_write(self.tgaid) @@ -107,12 +110,26 @@ class CollectMongo(): return data def write2ss(self, data): - pass + event_name = self.item.get('event_name') + run_false = False + for line in data: + if line: + for key in line.keys(): + if isinstance(line[key], ObjectId): + line[key] = str(line[key]) # line[key]=ObjectId(base64.b64decode(key)) + elif isinstance(line[key], (list, tuple, dict)): + line[key] = json.dumps(line[key]) + line['gameid'] = self.gameid + pdb.set_trace() + if not self.tga.put_event_data(line, event_name): + log.error("write {}_{} event error! {}\n".format(event_name, self.tgaid, line)) + run_false = True + if not run_false: + log.info("write {}_{} event success!\n".format(event_name, self.tgaid)) def run(self): data = self.get_data_from_mongo() - print(data) self.write2ss(data) @@ -137,7 +154,14 @@ def read_mongo(start_date, end_date): if __name__ == "__main__": - d = datetime.datetime.now() - datetime.timedelta(days=1) + if sys.argv == 2: + try: + d = datetime.datetime.strptime(sys.argv[1], "%Y-%m-%d") + except Exception: + log.error(f"split args with start time failed ,args={d}", exc_info=True) + raise Exception(f"split args with start time failed ,args={d}") + else: + d = datetime.datetime.now() - datetime.timedelta(days=1) start_date = datetime.datetime(d.year, d.month, d.day) end_date = datetime.datetime(d.year, d.month, d.day, 23, 59, 59) read_mongo(start_date, end_date)