def main():
    mdc = MetaController()

    collection = db["av_analysis"]
    all_analysis = collection.find({"date": None})
    count = 0
    reset = 0
    for analysis in all_analysis:
        count += 1
        reset += 1
        if reset == 1000:
            reset = 0
            print("Count: %s" % count)
        file_id = analysis.get('sha1')
        date_stored = analysis.get('date')
        if (date_stored is not None):
            # mdc.save_first_seen(file_id,date_stored) #Uncoment to copy all av
            # dates to meta dates
            continue

        # Trying to get the best date
        date_registers = [
            'first_seen', 'additional_info.first_seen_itw', 'scan_date'
        ]
        for register in date_registers:
            vt_date = read_from_dictionary(register, analysis)
            if vt_date is not None:
                break

        try:
            # The "date" value is use to speed up time queries for av
            # signatures
            new_date = process_date(vt_date)
        except ValueError:
            new_date = None
            print "fix_dates_in_av: invalid date in AV_metda:" + str(vt_date)

        command = {"$set": {"date": new_date}}
        try:
            collection.update_one({"sha1": file_id}, command, upsert=False)
        except WriteError:
            print("**** Error File: %s ****" % (file_id, ))
            print(command)
            err = str(traceback.format_exc())
            print(err)
            continue
        mdc.save_first_seen(file_id, new_date)
        print("%s fixed -> new date: %s" % (file_id, new_date))
def main():
    mdc = MetaController()

    collection = db["av_analysis"]
    all_analysis = collection.find({"date": None})
    count = 0
    reset = 0
    for analysis in all_analysis:
        count += 1
        reset += 1
        if reset == 1000:
            reset = 0
            print("Count: %s" % count)
        file_id = analysis.get('sha1')
        date_stored = analysis.get('date')
        if(date_stored is not None):
            # mdc.save_first_seen(file_id,date_stored) #Uncoment to copy all av
            # dates to meta dates
            continue

        # Trying to get the best date
        date_registers = ['first_seen',
                          'additional_info.first_seen_itw', 'scan_date']
        for register in date_registers:
            vt_date = read_from_dictionary(register, analysis)
            if vt_date is not None:
                break

        try:
            # The "date" value is use to speed up time queries for av
            # signatures
            new_date = process_date(vt_date)
        except ValueError:
            new_date = None
            print "fix_dates_in_av: invalid date in AV_metda:" + str(vt_date)

        command = {"$set": {"date": new_date}}
        try:
            collection.update_one({"sha1": file_id}, command, upsert=False)
        except WriteError:
            print("**** Error File: %s ****" % (file_id,))
            print(command)
            err = str(traceback.format_exc())
            print(err)
            continue
        mdc.save_first_seen(file_id, new_date)
        print("%s fixed -> new date: %s" % (file_id, new_date))
Esempio n. 3
0
def update_date(file_id, date):
    if file_id is None or date is None:
        return
    mdc = MetaController()
    res = mdc.save_first_seen(file_id, date)
Esempio n. 4
0
def update_date(file_id, date):
    if file_id is None or date is None:
        return
    mdc = MetaController()
    res = mdc.save_first_seen(file_id, date)