Пример #1
0
    def __init__(self, node, db_name):
        ''' boundId: 
            
            jp.naver.line    
                node: /private/var/mobile/Containers/Data/Application/5A249183-668C-4CC0-B983-C0A7EA2E657F
                Library\Preferences\jp.naver.line.plist

            group.com.linecorp.line
                Library\Preferences\group.com.linecorp.line.plist
                Library\\Application Support\\PrivateStore\\P_u423af962f1456db6cba8465cf82bb91b\\Messages\\Line.sqlite    
        '''
        super(AppleLineParser, self).__init__(node, db_name)
        self.VERSION_VALUE_DB = model_im.VERSION_VALUE_DB
        self.Generate = model_im.GenerateModel
        self.csm = model_im.IM()

        self.root = node.Parent.Parent.Parent
        self.user_plist_node = self.root.GetByPath(
            'Library/Preferences/jp.naver.line.plist')
        ################# group.com.linecorp.line ################
        # Library\Preferences\group.com.linecorp.line.plist
        self.group_plist_node = list(
            self.root.FileSystem.Search('group.com.linecorp.line.plist$'))[0]
        # Library\\Application Support\\PrivateStore
        self.group_root = self.group_plist_node.Parent.Parent.Parent
        self.group_db_root = self.group_root.GetByPath(
            'Library/Application Support/PrivateStore')
        self.friend_list = {}  # friend_pk: Friend()
Пример #2
0
 def __init__(self, node, db_name):
     super(AndroidYiXinParser, self).__init__(node, db_name)
     self.root = node.Parent.Parent
     self.csm = model_im.IM()
     self.Generate = model_im.GenerateModel
     self.user_id_list = []
     self.media_node = None
     self.user_id = ''
Пример #3
0
 def __init__(self, node, extractDeleted, extractSource):
     self.root = node
     self.extractDeleted = extractDeleted
     self.extractSource = extractSource
     self.blued = model_im.IM()
     self.cache = ds.OpenCachePath("Blued")
     self.friend_list = {}
     self.group_list = {}
Пример #4
0
 def __init__(self, node, extractDeleted, extractSource):
     self.root = node
     self.extractDeleted = extractDeleted
     self.extractSource = extractSource
     self.bulletMessage = model_im.IM()
     self.cache = ds.OpenCachePath("bulletMessage")
     self.contact_list = {}
     self.group_info = {}
Пример #5
0
 def __init__(self, node, extractDeleted, extractSource):
     self.root = node
     self.extractDeleted = extractDeleted
     self.extractSource = extractSource
     self.bulletMessage = model_im.IM()
     self.cache = ds.OpenCachePath("bulletMessage")
     self.friend_list = {}
     self.group_list = {}
     self.all_send_nick_name = {}
Пример #6
0
 def __init__(self, node, extract_deleted, extract_source):
     self.node = node
     self.extract_deleted = extract_deleted
     self.extract_source = extract_source
     self.cache = ds.OpenCachePath('xianyu')
     self.im = model_im.IM()
     self.hash = unity_c37r.md5(node.PathWithMountPoint)
     self.im.db_create(self.cache + '/{}'.format(self.hash))
     self.account = None
Пример #7
0
 def __init__(self, fs, extract_deleted, extract_source):
     self.fs = fs
     self.extract_deleted = extract_deleted
     self.extract_source = extract_source
     self.im = model_im.IM()
     cache = ds.OpenCachePath('Dingtalk')
     self.im.db_create(cache + '/C37R')
     self.cache = cache
     self.account = list()
Пример #8
0
 def __init__(self, node, extractDeleted, extractSource):
     self.root = node
     self.extractDeleted = extractDeleted
     self.extractSource = extractSource
     self.cache = ds.OpenCachePath("Facebook")
     self.account_id = None
     self.account_name = None
     self.facebook_db = model_im.IM()
     self.contacts_dict = {}
Пример #9
0
    def __init__(self, node, db_name):
        super(AppleDuoShanParser, self).__init__(node, db_name)
        self.VERSION_VALUE_DB = model_im.VERSION_VALUE_DB
        self.root = node.Parent.Parent.Parent
        self.Generate = model_im.GenerateModel
        self.csm = model_im.IM()

        self.cur_account = None
        self.cur_account_id = None
        self.cur_media_path = []
Пример #10
0
 def __init__(self, root, extract_deleted, extract_source):
     self.root = root
     self.extract_deleted = extract_deleted
     self.extract_source = extract_source
     self.account = None
     self.account_config_path = None
     self.account_db_path = None
     self.cache_db = self.__get_cache_db()
     self.model_col = model_im.IM()
     if self.root.GetByPath(r"/cache4.db"):
         self.model_col.db_create(self.cache_db)
Пример #11
0
 def __init__(self, node, extract_deleted, extract_source):
     self.extract_deleted = extract_deleted
     self.extract_source = extract_source
     self.root = node
     self.im = model_im.IM()
     self.cache_path =ds.OpenCachePath('YouXin')
     if not os.path.exists(self.cache_path):
         os.makedirs(self.cache_path)
     self.cache_db = os.path.join(self.cache_path, 'cache.db')
     
     nameValues.SafeAddValue(bcp_im.CONTACT_ACCOUNT_TYPE_IM_YOUXIN, self.cache_db)
Пример #12
0
 def __init__(self, root, extract_deleted, extract_source):
     self.root = root
     self.extract_deleted = extract_deleted
     self.extract_source = extract_source
     self.model_im_col = model_im.IM()
     self.cache_db = self.__get_cache_db()
     self.model_im_col.db_create(self.cache_db)
     self.recovering_helper = None
     self.checking_col = None
     self.using_account = None
     self.table_name = None
Пример #13
0
 def __init__(self,
              node,
              extract_deleted,
              extract_source,
              app_name='YunkanSkype'):
     super(YunkanSkypePanParser, self).__init__(node, extract_deleted,
                                                extract_source, app_name)
     self.app_version = SKYPE_VERSION
     self.account_id = self._get_owner_phone(node)
     self.model_im_col = model_im.IM()
     self.debug = DEBUG
Пример #14
0
 def __init__(self, node, extractDeleted, extractSource):
     self.root = node
     self.extractDeleted = extractDeleted
     self.extractSource = extractSource
     self.account_id = None
     self.account_pushname = None
     self.whatsapp = model_im.IM()
     self.cache = ds.OpenCachePath("whatsapp")
     self.contacts_dicts = {}
     self.groups_dicts = {}
     self.source_path = self.root.GetByPath("/databases/msgstore.db")
     self.dest_path = self.cache + "/msgstore.db"
Пример #15
0
    def __init__(self, node, extract_deleted, extract_source):
        ''' node: /data/data/com.linecorp.linelite/databases/LINE_LITE '''
        self.root = node.Parent
        self.extract_deleted = extract_deleted
        self.extract_source = extract_source
        self.im = model_im.IM()
        self.cachepath = ds.OpenCachePath('LINE_LITE')

        hash_str = hashlib.md5(
            node.AbsolutePath.encode('utf8')).hexdigest()[8:-8]
        self.cache_db = self.cachepath + '\\a_linelite_{}.db'.format(hash_str)

        self.profile_node_4_search = self.root.FileSystem
Пример #16
0
 def __init__(self, root, extract_deleted, extract_source):
     self.root = root.Parent.Parent
     self.extract_deleted = extract_deleted
     self.extract_source = extract_source
     self.model_im_col = model_im.IM()
     self.cache_db = self.__get_cache_db()
     self.account_info_path, self.cl_db_path, self.agent_db_path, self.files_db_path = self.__fetch_data_node()
     self.model_im_col.db_create(self.cache_db)
     self.cl_db_col = ColHelper(self.cl_db_path)
     self.agent_db_col = ColHelper(self.agent_db_path)
     self.files_db_col = ColHelper(self.files_db_path)
     # self.message_recover_helper = RecoverTableHelper(self.agent_db_path)
     # self.cl_recover_helper = RecoverTableHelper(self.cl_db_path)
     self.using_account = None
Пример #17
0
 def __init__(self, db_name, app_version=1):
     self.db_name = db_name
     self.need_parse = True
     self.conn = None
     self.cmd = None
     self.im = None
     if os.path.exists(self.db_name):
         self.need_parse = NetDisk.checkout(db_name, app_version)
     if self.need_parse:
         self.conn = unity_c37r.create_connection(db_name, False)
         self.cmd = sql.SQLiteCommand(self.conn)
         self.im = model_im.IM()
         self.im.db_create(db_name + '.IM')
         self.events = None
         self.create_tables()
Пример #18
0
 def __init__(self, root, extract_deleted, extract_source):
     self.root = root.Parent.Parent
     self.extract_deleted = extract_deleted
     self.extract_source = extract_source
     self.model_im_col = model_im.IM()
     self.cache_db = self.__get_cache_db()
     self.account_info_path, self.user_info_path, self.icq_data_path = self.__init_data_path(
     )
     if all((self.user_info_path, self.icq_data_path)):
         self.model_im_col.db_create(self.cache_db)
     self.icq_db_col = ColHelper(self.icq_data_path)
     self.recover_helper = RecoverTableHelper(
         self.root.GetByPath("databases/agent-dao"))
     self.using_account = None
     self.using_account_name = None
Пример #19
0
 def __init__(self, cache_db, app_v, id):
     self.cache = cache_db
     self.version = 1
     self.conn = None
     self.cmd = None
     self.need_parse = False
     self.im = model_im.IM()
     parent, tail = os.path.split(self.cache)
     self.log = unity_c37r.SimpleLogger(parent + 'C37R.log', True, id)
     self.db_check(app_v)
     if self.need_parse:
         if os.path.exists(self.cache):
             os.remove(self.cache)
         if os.path.exists(self.cache + '.im'):
             os.remove(self.cache + '.im')
Пример #20
0
 def __init__(self, node, extract_deleted, extract_source):
     global MM_PARSER_VERSION
     self.node = node
     self.extract_deleted = extract_deleted
     self.extract_source = extract_source
     self.cache = ds.OpenCachePath('momo')
     self.hash = unity_c37r.md5(node.PathWithMountPoint)
     self.cache_db = os.path.join(self.cache, self.hash)
     self.need_parse = False
     self.im = model_im.IM()
     if model_im.IM.need_parse(self.cache_db, MM_PARSER_VERSION):
         self.need_parse = True
         self.im.db_create(self.cache_db)
     self.accounts = list()
     self.f_dict = dict()
Пример #21
0
 def __init__(self, root, extract_deleted, extract_source, is_scripts=True):
     self.root = root
     self.extract_source = extract_source
     self.extract_deleted = extract_deleted
     self.result_sql = list()
     self.im = model_im.IM()
     self.is_scripts = is_scripts
     if is_scripts:
         cache = ds.OpenCachePath('Dingtalk')
     else:
         cache = "D:/cache"
     self.need_parse = False
     self.hash = md5(root.PathWithMountPoint)
     if self.im.need_parse(cache + '{}'.format(self.hash), APP_V):
         self.need_parse = True
         self.im.db_create(cache + '/{}'.format(self.hash))
     self.cache_res = cache + '/{}'.format(self.hash)
Пример #22
0
 def __init__(self, root, container_root, extract_deleted, extract_source, tp = 0):
     self.root = root
     self.extract_deleted = extract_deleted
     self.extract_source = extract_source
     self.account = None
     self.cache = ds.OpenCachePath('Tg')
     self.hash_code = unity_c37r.md5(container_root.AbsolutePath)
     self.need_parse = False
     self.im = model_im.IM()
     self.container = container_root
     self.tp = tp
     self.__find_account()
     if self.im.need_parse(self.cache + '/{}.C37R'.format(self.hash_code), 1):
         self.im.db_create(self.cache + '/{}.C37R'.format(self.hash_code))
         self.need_parse = True
     else:
         self.need_parse = False
Пример #23
0
 def __init__(self, root, extract_deleted, extract_source):
     self.root_node = root
     self.extract_deleted = extract_deleted
     self.extract_source = extract_source
     self.im = model_im.IM()
     self.cache = ds.OpenCachePath('miliao')
     self.hash = unity_c37r.md5(root.PathWithMountPoint)
     self.need_parse = False
     if not os.path.exists(self.cache):
         os.mkdir(self.cache)
     if self.im.need_parse(self.cache + "/{}".format(self.hash),
                           VERSION_APP_VALUE):
         self.im.db_create(os.path.join(self.cache, self.hash))
         self.need_parse = True
     else:
         self.need_parse = False
     self.account = list()
     self.current_login = None
Пример #24
0
 def __init__(self, node, extract_source, extract_deleted, is_scripts=True):
     self.node = node
     self.extract_source = extract_source
     self.extract_deleted = extract_deleted
     self.account_list = list()
     self.account_dbs = dict()
     self.im = model_im.IM()
     self.cache = ''
     if is_scripts:
         self.cache = ds.OpenCachePath('Twitter')
     else:
         self.cache = "D:/Cache"
     self.hash = unity_c37r.md5(self.node.AbsolutePath)
     self.cache_db = os.path.join(self.cache, self.hash)
     self.need_parse = model_im.IM.need_parse(self.cache_db,
                                              AND_TWR_VERSION)
     if self.need_parse:
         self.im.db_create(self.cache_db)
Пример #25
0
 def __init__(self, node, extract_deleted, extract_source):
     self.node = node.Parent
     self.extractDeleted = extract_deleted
     self.db = None
     self.im = model_im.IM()
     self.cachepath = ds.OpenCachePath("Tantan")
     md5_db = hashlib.md5()
     md5_rdb = hashlib.md5()
     db_name = self.node.AbsolutePath
     rdb_name = self.node.PathWithMountPoint
     md5_db.update(db_name.encode(encoding = 'utf-8'))
     md5_rdb.update(rdb_name.encode(encoding = 'utf-8'))
     self.cachedb = self.cachepath + "\\" + md5_db.hexdigest().upper() + ".db"
     self.recoverDB = self.cachepath + "\\" +md5_rdb.hexdigest().upper() + ".db"
     self.sourceDB = self.cachepath + '\\TantanSource'
     self.friend = {}
     self.sticker = {}
     self.conversation = {}
     self.comment_count = {}
Пример #26
0
 def __init__(self, node, extract_deleted, extract_source):
     self.node = node
     self.extractDeleted = extract_deleted
     self.db = None
     self.im = model_im.IM()
     self.cachepath = ds.OpenCachePath("iAround")
     md5_db = hashlib.md5()
     md5_rdb = hashlib.md5()
     db_name = self.node.AbsolutePath
     rdb_name = self.node.PathWithMountPoint
     md5_db.update(db_name.encode(encoding='utf-8'))
     md5_rdb.update(rdb_name.encode(encoding='utf-8'))
     self.cachedb = self.cachepath + "\\" + md5_db.hexdigest().upper(
     ) + ".db"
     self.recoverDB = self.cachepath + "\\" + md5_rdb.hexdigest().upper(
     ) + ".db"
     self.sourceDB = self.cachepath + '\\iAroundSourceDB'
     self.account_id = '-1'
     self.account_name = '未知用户'
Пример #27
0
 def __init__(self, node, extract_deleted, extract_source):
     self.node = node
     self.messageNode = node.Parent.GetByPath('/Message.db$')
     self.extractDeleted = extract_deleted
     self.db = None
     self.im = model_im.IM()
     self.cachepath = ds.OpenCachePath("RedBook")
     md5_db = hashlib.md5()
     md5_rdb = hashlib.md5()
     db_name = self.node.AbsolutePath
     rdb_name = self.node.PathWithMountPoint
     md5_db.update(db_name.encode(encoding='utf-8'))
     md5_rdb.update(rdb_name.encode(encoding='utf-8'))
     self.cachedb = self.cachepath + "\\" + md5_db.hexdigest().upper(
     ) + ".db"
     self.recoverDB = self.cachepath + "\\" + md5_rdb.hexdigest().upper(
     ) + ".db"
     self.sourceDB = self.cachepath + '\\RedBookSource'
     self.friend = {}
     self.image_url = {}
     self.video_url = {}
Пример #28
0
 def __init__(self, root, extract_deleted, extract_source):
     self.node = root
     self.es = extract_source
     self.ed = extract_deleted
     self.account = list()
     self.friends = list()
     self.messages = list()
     self.blogs = list()
     self.search = list()
     self.need_parse = False
     cache = ds.OpenCachePath('Twitter')
     self.cache = cache
     if not os.path.exists(cache):
         os.mkdir(cache)
     #self.mb = microblog_base.BlogBase(env)
     self.im = model_im.IM()
     self.hash = unity_c37r.md5(root.PathWithMountPoint)
     if self.im.need_parse(cache + '/{}'.format(self.hash),
                           VERSION_APP_VALUE):
         self.im.db_create(cache + '/{}'.format(self.hash))
         self.need_parse = True
     self.db_dict = dict()
Пример #29
0
 def __init__(self, node, extract_deleted, extract_source):
     self.node = node
     self.db = None
     self.im = model_im.IM()
     self.mc = model_callrecord.MC()
     self.cachepath = ds.OpenCachePath("Viber")
     md5_db = hashlib.md5()
     md5_rdb = hashlib.md5()
     db_name = self.node.AbsolutePath
     rdb_name = self.node.PathWithMountPoint
     md5_db.update(db_name.encode(encoding = 'utf-8'))
     md5_rdb.update(rdb_name.encode(encoding = 'utf-8'))
     self.cachedb = self.cachepath + "\\" + md5_db.hexdigest().upper() + ".db"
     self.recoverDB = self.cachepath + "\\" +md5_rdb.hexdigest().upper() + ".db"
     self.sourceDB = self.cachepath + '\\ViberSourceDB'
     self.account_id = '未知联系人'
     self.account_name = '未知联系人'
     fs = self.node.FileSystem
     media_folder = fs.Search('/media/0/Android/data/com.viber.voip')
     media_folder1 = list(media_folder)[0] if len(media_folder) != 0 else None
     media_folder2 = self.node.Parent.Parent
     self.media_folders = [media_folder1, media_folder2]
Пример #30
0
 def load_im_model():
     model_im_col = model_im.IM()
     return model_im_col