| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
- import base64
- import argparse
- import hashlib
- from zipfile import ZipFile
- import dmp_message_pb2 # 由pb文件生成的python代码, 使用Protocol Buffer2
- TYPES = {
- 'IMEI': dmp_message_pb2.IdItem.IMEI_MD5,
- 'OAID': dmp_message_pb2.IdItem.OAID_MD5,
- 'IDFA': dmp_message_pb2.IdItem.IDFA
- }
- def generate_valid_file(filename, type, md5):
- dataType = TYPES[type]
- target_filename = './' + type
- target_file = open(target_filename, 'w')
- count = 0
- dmp_data = dmp_message_pb2.DmpData()
-
- with open(filename) as file:
- for line in file:
- count += 1
- reset = count % 10000 == 0
- if (reset):
- binary_string = dmp_data.SerializeToString()
- result_string = base64.b64encode(binary_string).decode()
- target_file.write(result_string)
- target_file.write('\n')
- dmp_data = dmp_message_pb2.DmpData()
- if (md5):
- line = hashlib.md5(line.strip().encode('utf-8')).hexdigest()
- item = dmp_data.idList.add()
- item.dataType = dataType
- item.id = line.lower().strip()
- if count % 10000 > 0:
- binary_string = dmp_data.SerializeToString()
- result_string = base64.b64encode(binary_string).decode()
- target_file.write(result_string)
- target_file.write('\n')
- target_file.close()
- with ZipFile('./' + type + '.zip', 'w') as zip:
- zip.write(target_filename)
- if __name__ == '__main__':
- parser = argparse.ArgumentParser()
- parser.add_argument('filename')
- parser.add_argument('-t', '--type', required=True)
- parser.add_argument('-m', '--md5', action='store_true')
- args = parser.parse_args()
- # print(args)
- generate_valid_file(args.filename, args.type, args.md5)
|