Exemple #1
0
 async def parserMergeRequest(resultJson):
     try:
         res = None
         if configPraser.getApiVersion() == StringKeyUtils.API_VERSION_RESET:
             if not AsyncApiHelper.judgeNotFind(resultJson):
                 res = MergeRequest.parser.parser(resultJson)
         elif configPraser.getApiVersion() == StringKeyUtils.API_VERSION_GRAPHQL:
             pass
             # GraphQL接口解析可能会不大一样
         if res is not None:
             res.repository = AsyncApiHelper.owner + '/' + AsyncApiHelper.repo
             return res
     except Exception as e:
         print(e)
Exemple #2
0
 async def parserCommit(resultJson):
     try:
         resList = []
         if configPraser.getApiVersion() == StringKeyUtils.API_VERSION_RESET:
             if not AsyncApiHelper.judgeNotFind(resultJson):
                 if resultJson is not None and isinstance(resultJson, list):
                     for commitData in resultJson:
                         commit = Commits.parser.parser(commitData)
                         if commit is not None:
                             resList.append(commit)
         elif configPraser.getApiVersion() == StringKeyUtils.API_VERSION_GRAPHQL:
             pass
             # GraphQL接口解析可能会不大一样
         return resList
     except Exception as e:
         print(e)
    async def preProcess(loop, limit, start, statistic):
        """准备工作"""
        semaphore = asyncio.Semaphore(configPraser.getSemaphore())  # 对速度做出限制
        """初始化数据库"""
        mysql = await getMysqlObj(loop)

        if configPraser.getPrintMode():
            print("mysql init success")

        """多协程"""
        if configPraser.getApiVersion() == StringKeyUtils.API_VERSION_RESET:
            tasks = [asyncio.ensure_future(AsyncApiHelper.downloadInformation(pull_number, semaphore, mysql, statistic))
                     for pull_number in range(start, max(start - limit, 0), -1)]
        elif configPraser.getApiVersion() == StringKeyUtils.API_VERSION_GRAPHQL:
            tasks = [
                asyncio.ensure_future(AsyncApiHelper.downloadInformationByV4(pull_number, semaphore, mysql, statistic))
                for pull_number in range(start, max(start - limit, 0), -1)]
        await asyncio.wait(tasks)