コード例 #1
0
def run():  # Get reports, gather data and write it down
    result = [
        [0, 0, 0, 0],  # Events without curse, 25/50/75/100% damage done
        [0, 0, 0, 0]  # Events with curse, 25/50/75/100% damage done
    ]
    reportSet = getReportSet(encounterData.get('zone'), l)
    reportCount = len(reportSet)
    processedCount = 0
    encounterName = encounterData.get('encounterData').get('name')
    zoneNumber = encounterData.get('zone')
    for url in reportSet:
        report = Report(url)
        data = report.returnPartialsTable()
        for curseType in range(2):
            for partialType in range(4):
                result[curseType][partialType] += data[curseType][partialType]
        processedCount += 1
        print('{} out of {} reports are done for {}'.format(
            processedCount, reportCount, encounterName))
        if processedCount % 10 == 0 or processedCount == len(reportSet):
            # Rewrite crawl results sometimes to backup in case of crash or error
            fileName = '{}-{}-{}.txt'.format(zoneNumber, encounterName, s)
            f = open(fileName, 'w')
            f.write(f'# {encounterName}\n')
            f.write('### No curse: {}\n'.format(calcMitigation(result[0])))
            f.write('### With curse: {}\n\n'.format(calcMitigation(result[1])))
            f.write('##### Dataset (number of casts by % of damage done):\n')
            f.write('No curse: 25% - {} | 50% - {} | 75% - {} | 100% - {}\\\n'.
                    format(result[0][0], result[0][1], result[0][2],
                           result[0][3]))
            f.write('With curse: 25% - {} | 50% - {} | 75% - {} | 100% - {}\n'.
                    format(result[1][0], result[1][1], result[1][2],
                           result[1][3]))
            f.close()
コード例 #2
0
    },
    97: {
        'hit': 0,
        'total': 0
    },
    98: {
        'hit': 0,
        'total': 0
    },
    99: {
        'hit': 0,
        'total': 0
    }
}

reports = getReportSet(zone=1005, pages=50)

counter = 0
for report in reports:
    print(counter)
    damage = reportDamageQuerySmite(report).get('reportData', {}).get(
        'report', {}).get('events', {}).get('data', [])
    if not damage:
        continue
    response = reportGearQuerySmite(report)
    gearResponse = response.get('reportData',
                                {}).get('report', {}).get('events',
                                                          {}).get('data', [])
    playerResponse = response.get('reportData',
                                  {}).get('report',
                                          {}).get('masterData',
コード例 #3
0
    sourceID = data[0].get('sourceID')
    data = list(
        filter(
            lambda e: e.get('sourceID') == sourceID and e.get('type') ==
            'applybuff', data))

    rangeList = []
    for i in range(len(data) - 1):
        tpRange = round(
            (data[i + 1].get('timestamp') - data[i].get('timestamp')) / 1000,
            1)
        if tpRange < 25 or tpRange > 50:  # Skip obv wrong values
            continue
        rangeList.append(tpRange)
    return rangeList


if __name__ == '__main__':
    reportSet = getReportSet(1005, 2)
    dataset = []
    counter = 0
    bins_list = arange(28, 45, 0.1)
    for report in reportSet:
        dataset.extend(crawlReport(report))
        counter += 1
        print(counter, report)

        if counter % 1000 == 0:  # Return histogram after every N reports
            plt.hist(dataset, bins=bins_list)
            plt.show()
コード例 #4
0
from utils.querys import getReportSet, obsidianTable

reportSet = getReportSet(1006, 2)
counter = 1
'''
events = []
partials = {
    25: 0,
    50: 0,
    75: 0,
    100: 0
}
for report in reportSet:
    print(counter, 'out of', len(reportSet))
    startTime = 1
    while startTime:
        print(startTime)
        response = sapphDmgTaken(report, startTime).get('reportData', {}).get('report', {}).get('events', {})
        data = response.get('data')
        events.extend(data)
        startTime = response.get('nextPageTimestamp', 0)
        if len(events) > 60000:
            break
    if len(events) > 60000:
        break
    counter += 1

fullRes = 0
total = 0
for event in events:
    u = event.get('unmitigatedAmount', 0)