DailyMotion/dump_keyword_title.py

56 lines
1.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import json, time
import argparse
from DB import DBVidcon
def parse_args():
parser = argparse.ArgumentParser(
description="Dump keyword/title rows into Redis list."
)
parser.add_argument("-l", "--level", type=int, default=99,
help="value for t.level (default: 99)")
return parser.parse_args()
def main():
args = parse_args()
batch = int(time.time())
db = DBVidcon()
push = None
empty = None
if args.level == 0:
push = db.push_l0
empty = db.l0_empty
elif args.level == 1:
push = db.push_l1
empty = db.l1_empty
elif args.level == 9:
push = db.push_l2
empty = db.l2_empty
else:
return
if empty():
rows = db.fetch_keyword_title(level=args.level)
payload_list = []
for row in rows:
payload_list.append(json.dumps({**row, "batch": batch}, ensure_ascii=False))
if len(payload_list) >= 10000:
push(payload_list)
payload_list.clear()
if payload_list: # 收尾
push(payload_list)
data = {
"level": args.level,
"batch": batch,
"count": len(rows),
}
db.log_batch_start(data)
print(f"✔ 推送 {len(rows)}batch={batch})到 {push.__name__}队列完毕")
db.close()
if __name__ == "__main__":
main()