Пример #1
0
    def __init__(
        self,
        stddatatype: EStandardDataType,
        platform: str,
        cmdstatus: ECommandStatus,
        cmdrcvmsg: str = None,
        currenttime: str = None,
    ):

        OutputData.__init__(self, platform, stddatatype)
        OutputDataSeg.__init__(self)

        self._cmdstatus: ECommandStatus = None
        if isinstance(cmdstatus, ECommandStatus):
            self._cmdstatus = cmdstatus
        else:
            try:
                self._cmdstatus = ECommandStatus(int(cmdstatus))
            except Exception:
                pass

        self._cmdrcvmsg: str = None
        if isinstance(cmdrcvmsg, str) and cmdrcvmsg != '':
            self._cmdrcvmsg = cmdrcvmsg
        # 当前时间, 字符串的datetime
        self._time: str = datetime.now(
            pytz.timezone('Asia/Shanghai')).strftime('%Y-%m-%d %H:%M:%S')
        if currenttime is not None and currenttime != '':
            self._time = currenttime
Пример #2
0
    def __init__(self, task: IscoutTask, level: int, parentobj: str,
                 parentobjtype: EObjectType, url: str, keyword: str):
        if not isinstance(task, IscoutTask):
            raise Exception("Invalid iscouttask")
        # if not isinstance(level, int):
        #     raise Exception("Invalid level")
        if not isinstance(parentobjtype, EObjectType):
            raise Exception("Invalid parentobjtype")
        if not isinstance(url, str) or url == '':
            raise Exception("Invalid url")
        if not isinstance(keyword, str) or keyword == '':
            raise Exception("Invalid keyword")
        OutputData.__init__(self, task.platform,
                            EStandardDataType.IScoutScreenShotSE)
        OutputDataSeg.__init__(self)

        # OutputData.__init__(self, task._platform, EStandardDataType.IScoutScreenShotUrl)

        self._task: IscoutTask = task
        self._level: int = level
        self._parentobj: str = parentobj
        self.parentobjtype: EObjectType = parentobjtype
        self.url = url
        self.keyword: str = keyword
        # self.platform = platform
        # self.datatype: EStandardDataType = datatype

        self._stream: io.RawIOBase = None
Пример #3
0
    def __init__(self, task: IscoutTask, platform: str, url: str, source: str,
                 rsctp: EResourceType):
        if not isinstance(task, IscoutTask):
            raise Exception("Invalid IscoutTask")
        if not isinstance(platform, str):
            raise Exception("Invalid platform")
        if not isinstance(url, str):
            raise Exception("Invalid url")
        if not isinstance(source, str):
            raise Exception("Invalid source")

        Resource.__init__(self, url, rsctp)
        OutputData.__init__(self, platform,
                            EStandardDataType.IScoutNetworkResource)
        OutputDataSeg.__init__(self)

        self._task: IscoutTask = task
        self._source: str = source

        self.resourceid: str = None
        self.filename: str = None
        self.extension: str = None
        self.remark: str = None

        self.stream = None
Пример #4
0
    def __init__(self,
                 suffix,
                 datatype: EStandardDataType,
                 task: Task,
                 apptype: int,
                 clientid: str,
                 is_muti_seg: bool = False):
        UniqueData.__init__(self, task, apptype)
        OutputData.__init__(self, self._task.platform, datatype)
        OutputDataSeg.__init__(self)

        if not isinstance(clientid, str) or clientid == "":
            raise Exception("Invalid param 'clientid' for FeedDataBase")
        self._clientid: str = clientid

        # 东8区时间
        self.time = datetime.datetime.now(
            pytz.timezone('Asia/Shanghai')).strftime('%Y-%m-%d %H:%M:%S')

        if not isinstance(suffix, str) or suffix == "":
            raise Exception("Suffix is invalid.")

        self._is_muti_seg: bool = False
        if isinstance(is_muti_seg, bool):
            self._is_muti_seg = is_muti_seg

        self._suffix: str = suffix  # 文件后缀

        self.__innerdatas: list = []  # 内部多段数据
        self.__innerdata_locker = threading.Lock()

        self._io_stream = None  # 从网上下载回来的数据流
        # 统一使用ha来获取head里面的length
        # resp = ha.get_response()
        # lengthn = resp.headers.get('Content-Length')
        # responseio = ResponseIO(resp)
        self.stream_length = 0  # 下载的文件流大小,用来做文件大小过滤
        self.remarks = None  # 用于将一些爬取过程中有用的东西记录下来