예제 #1
0
    def update(self, account, logininfo):
        """
            更新用户等登录信息
        """
        sql = "SELECT LoginAccount FROM TBL_PR_APP_AUTHINFO WHERE AppName == '{}'" .format(self.app_name)

        account_list = []
        login_account = ''
        oSmt = pyMyDatabase.SQLiteStatement(self._conn, sql)
        while oSmt.executeStep():
            login_account = oSmt.getColumn(0)

            if not login_account.isNull():
                login = login_account.getText("").strip()
                account_list.append(login)

        if not account_list:
            sql = '''
                INSERT INTO "TBL_PR_APP_AUTHINFO" (AppName, LoginAccount, AuthLogin) VALUES ('{}', '{}', '{}')
            '''.format(self.app_name, account, logininfo)
            self._conn.execute(sql)

        update_sql = '''
                    UPDATE "TBL_PR_APP_AUTHINFO" SET AuthLogin = '******' WHERE AppName = '{}' AND LoginAccount = '{}'
                '''.format(logininfo, self.app_name, account)
        self._conn.execute(update_sql)
예제 #2
0
 def update(self, uid, subappname, status, other_param='', remarks=''):
     """
     更新某个子应用的进度状态和备注
     :param uid: 账户唯一ID
     :param subappname: 子应用名
     :param status: 状态(0 该项目未开始, 1 该项目正常完成, 2 该项目取证异常)
     :param other_param: 其他参数
     :param remarks: 备注
     :return: 无
     """
     sql_select = """
         select Status from TBL_PRCD_APP_CATCHSTATUS_INFO where Uid = '{}' and SubAppName = '{}' LIMIT 1 
         """.format(uid, subappname)
     o_smt = pyMyDatabase.SQLiteStatement(self._conn, sql_select)
     if not o_smt.executeStep():
         sql = """
             insert into "TBL_PRCD_APP_CATCHSTATUS_INFO" 
             ("Uid", "SubAppName", "Status", "OtherParam", "Remarks") 
             values ('{}', '{}', '{}', '{}', '{}')
             """.format(uid, subappname, status, other_param, remarks)
     else:
         sql = """
             UPDATE TBL_PRCD_APP_CATCHSTATUS_INFO SET Status = '{}', OtherParam = '{}', Remarks = '{}' 
             WHERE SubAppName = '{}' and Uid = '{}'
             """.format(status, other_param, remarks, subappname, uid)
     self._sql_execute_try(sql)
예제 #3
0
 def get_downloadinfo(self, uid, subappname):
     """
     获取某取证项的others_param
     :param uid: 唯一ID
     :param subappname: 子取证项
     :return: type:list
     """
     sql_select = """
                select Gid, DownloadPath, OtherParam 
                from TBL_PRCD_APP_DOWNLOADINFO where Uid = '{}' and SubAppName = '{}'
                """.format(uid, subappname)
     o_smt = pyMyDatabase.SQLiteStatement(self._conn, sql_select)
     result = []
     while o_smt.executeStep():
         gid, download_path, other_param = o_smt.getColumn(
             0), o_smt.getColumn(1), o_smt.getColumn(2)
         gid = gid.getText("") if not gid.isNull() else None
         download_path = download_path.getText(
             "") if not download_path.isNull() else None
         other_param = other_param.getText(
             "") if not other_param.isNull() else None
         result.append({
             'gid': gid,
             'download_path': download_path,
             'other_param': other_param
         })
     return result
예제 #4
0
 def init_progress(self, uid):
     """
     初始化进度,开始之前,初始化之前已经进行的进度
     :param uid: 用户唯一ID
     :return: 无
     """
     sql = """select SubAppName, Status, OtherParam, Remarks 
         from TBL_PRCD_APP_CATCHSTATUS_INFO where Uid = '{}'
         """.format(uid)
     o_smt = pyMyDatabase.SQLiteStatement(self._conn, sql)
     task_progress = []
     while o_smt.executeStep():
         subappname, status = o_smt.getColumn(0), o_smt.getColumn(1)
         other_param, remarks = o_smt.getColumn(2), o_smt.getColumn(3)
         subappname = subappname.getText(
             "") if not subappname.isNull() else None
         status = status.getText("") if not status.isNull() else None
         other_param = other_param.getText(
             "") if not other_param.isNull() else None
         remarks = remarks.getText("") if not remarks.isNull() else None
         if subappname:
             task_progress.append({
                 'subappname':
                 subappname,
                 'status':
                 status,
                 'remarks':
                 remarks,
                 'other_param':
                 json.loads(other_param) if other_param else []
             })
     self.pending = {uid: task_progress}
예제 #5
0
 def get(self):
     if not self._conn.tableExists('TBL_PRCD_APP_SELECTION_INFO'):
         return None
     sql = '''
         SELECT ParamList FROM TBL_PRCD_APP_SELECTION_INFO WHERE AppName = '{}' and LoginAccount = '{}' LIMIT 1
         '''.format(self.app_name, self.account)
     oSmt = pyMyDatabase.SQLiteStatement(self._conn, sql)
     if oSmt.executeStep():
         paramlist = oSmt.getColumn(0)
         return paramlist.getText("") if not paramlist.isNull() else None
     return None
예제 #6
0
 def get_param_list(self, uid, subappname):
     sql_select = """select OtherParam 
                     from TBL_PRCD_APP_DOWNLOADINFO where Uid = '{}' and SubAppName = '{}'
                     """.format(uid, subappname)
     o_smt = pyMyDatabase.SQLiteStatement(self._conn, sql_select)
     result = []
     while o_smt.executeStep():
         other_param = o_smt.getColumn(0)
         other_param = other_param.getText(
             "") if not other_param.isNull() else None
         result.append(other_param)
     return result
예제 #7
0
 def select(self):
     info_list = []
     if not self._conn.tableExists(self.table_name):
         self.log.info('table {} is not exist'.format(self.table_name))
         return info_list
     sql = '''
     SELECT LoginAccount,AuthToken,AuthLogin FROM {} WHERE AppName == '{}' and Other == '1'
     '''.format(self.table_name, self.app_name)
     oSmt = pyMyDatabase.SQLiteStatement(self._conn, sql)
     while oSmt.executeStep():
         login_account = self._get_column_value(oSmt.getColumn(0))
         auth_token = self._get_column_value(oSmt.getColumn(1))
         auth_login = self._get_column_value(oSmt.getColumn(2))
         info_list.append((login_account, auth_token, auth_login))
     return info_list
예제 #8
0
    def select_hb_id(self):
        if not self.sqlconn.tableExists('TBL_PRCD_WECHAT_BILL_RECORDS'):
            log.error('table "TBL_PRCD_WECHAT_BILL_RECORDS" not exist')
            return

        sql = "select out_trade_no from TBL_PRCD_WECHAT_BILL_RECORDS where classify_type = '2' and (bill_type = '6' or '1')"
        smt = pyMyDatabase.SQLiteStatement(self.sqlconn, sql)

        result = []
        while smt.executeStep():
            out_trade_no = smt.getColumn(0)
            out_trade_no = out_trade_no.getText(
                "") if not out_trade_no.isNull() else None
            result.append(out_trade_no)
        return result
예제 #9
0
 def sql_select(self, sql):
     try:
         oSmt = pyMyDatabase.SQLiteStatement(self._conn, sql)
         if oSmt.executeStep():
             paramlist = oSmt.getColumn(0)
             if not paramlist.isNull():
                 paramlist = paramlist.getText("")
             else:
                 paramlist = None
             return paramlist
         return None
     except Exception as e:
         self.log.exception('sql select error. sql:{}'.format(sql),
                            exc_info=e)
         return None
예제 #10
0
 def update(self, percent, desc=""):
     sql = '''
             SELECT Percent FROM TBL_PRCD_APP_CATCHEPROGRESS_INFO WHERE AppName = '{}' AND LoginAccount = '{}' 
             '''.format(self.app_name, self.login_account)
     oSmt = pyMyDatabase.SQLiteStatement(self._conn, sql)
     if oSmt.executeStep():
         # 避免进度回退
         percent_old = oSmt.getColumn(0)
         percent_old = int(percent_old.getText("")) if not percent_old.isNull() else 0
         if percent < percent_old:
             percent = percent_old
         sql = '''
                 UPDATE TBL_PRCD_APP_CATCHEPROGRESS_INFO SET Percent = {}, Description = '{}'
                 WHERE AppName = '{}' AND LoginAccount = '{}'
                 '''.format(percent, desc, self.app_name, self.login_account)
         self.excute_sql(sql)
예제 #11
0
    def get(self):
        if not self._conn.tableExists('TBL_PRCD_APP_SELECTION_INFO'):
            return '', ''

        sql = '''
            SELECT ParamList, Remarks FROM TBL_PRCD_APP_SELECTION_INFO WHERE AppName = '{}' and LoginAccount = '{}' LIMIT 1
            '''.format(self.app_name, self.account)

        paramliststr = ''
        interval = ''

        oSmt = pyMyDatabase.SQLiteStatement(self._conn, sql)
        if oSmt.executeStep():
            paramliststr = oSmt.getColumn(0)
            paramliststr = paramliststr.getText("") if not paramliststr.isNull() else None
            interval = oSmt.getColumn(1)
            interval = interval.getText("") if not interval.isNull() else None
        return paramliststr, interval
예제 #12
0
 def __init__(self, sqlite_path, app_name, login_account):
     """
     初始化函数
     :param sqlite_path: sqlite数据库路径
     :param app_name: 应用名称
     """
     self.app_name = app_name
     self.login_account = login_account
     self._conn = pyMyDatabase.SQLiteDatabase(sqlite_path, True)
     if not self._conn.tableExists('TBL_PRCD_APP_CATCHEPROGRESS_INFO'):
         self.excute_sql(TBCREATE_SQL)
     sql = '''
             SELECT * FROM TBL_PRCD_APP_CATCHEPROGRESS_INFO WHERE AppName == '{}' AND LoginAccount='{}'
             '''.format(self.app_name, self.login_account)
     oSmt = pyMyDatabase.SQLiteStatement(self._conn, sql)
     if not oSmt.executeStep():
         sql = TBINSERT_SQL.format(self.app_name, self.login_account)
         self.excute_sql(sql)
예제 #13
0
    def select_appnames(self):
        """
        获取TBL_APPURL_MANAGER中需要进行取证的APP集合
        :return:
        """
        app_list = []

        if not self._conn_cmf.tableExists("TBL_PRCD_APP_SELECTION_INFO"):
            self.log.info('table TBL_PRCD_APP_SELECTION_INFO is not exist')
            return app_list

        sql = "select DISTINCT LoginAccount from TBL_PRCD_APP_SELECTION_INFO WHERE AppName == 'AppURLs' ORDER BY Id"

        oSmt = pyMyDatabase.SQLiteStatement(self._conn_cmf, sql)
        while oSmt.executeStep():
            appname = self._get_column_value(oSmt.getColumn(0))
            app_list.append(appname)
        return app_list
예제 #14
0
    def select_exception_urls(self, appname):
        """
        筛选出异常的URL
        :return:
        """
        url_set = set()

        if not self._conn_amf.tableExists("TBL_PRCD_URL_EXCEPTIONS_INFO"):
            self.log.info('table TBL_PRCD_URL_EXCEPTIONS_INFO is not exist.')
            return url_set

        sql = "select AppName,URL from TBL_PRCD_URL_EXCEPTIONS_INFO WHERE AppName=='{}'".format(appname)

        oSmt = pyMyDatabase.SQLiteStatement(self._conn_amf, sql)
        while oSmt.executeStep():
            appname = self._get_column_value(oSmt.getColumn(0))
            url = self._get_column_value(oSmt.getColumn(1))
            url_set.add((appname, url))
        return url_set
예제 #15
0
    def select_all_urls(self, appname):
        """
        获取特定app下需要进行取证的URL
        :return:
        """
        # url_list = []
        url_set = set()
        if not self._conn_apps.tableExists("TBL_APPURL_MANAGER"):
            self.log.info('table TBL_APPURL_MANAGER is not exist.')
            return url_set

        sql = "select sAppName,sUrls from TBL_APPURL_MANAGER WHERE sAppName=='{}'".format(appname)

        oSmt = pyMyDatabase.SQLiteStatement(self._conn_apps, sql)
        while oSmt.executeStep():
            appname = self._get_column_value(oSmt.getColumn(0))
            url = self._get_column_value(oSmt.getColumn(1))
            # url_list.append((appname, url))
            url_set.add((appname, url))
        return url_set
예제 #16
0
    def select_done_urls(self, appname):
        """
        筛选出已经正常下载的资源集合
        :return:
        """
        # url_list = []
        url_set = set()

        if not self._conn_amf.tableExists("TBL_PRCD_URL_FILE_INFO"):
            self.log.info('table TBL_PRCD_URL_FILE_INFO is not exist.')
            return url_set

        sql = "select AppName,URL from TBL_PRCD_URL_FILE_INFO WHERE AppName=='{}'".format(appname)

        oSmt = pyMyDatabase.SQLiteStatement(self._conn_amf, sql)
        while oSmt.executeStep():
            appname = self._get_column_value(oSmt.getColumn(0))
            url = self._get_column_value(oSmt.getColumn(1))
            # url_list.append((appname, url))
            url_set.add((appname, url))
        return url_set