示例#1
0
def run(dry_run):
    packages = db.all_packages()
    logger.info('--- DELETE running! ---')

    total_deleted = 0
    final_status = [
        'Entrega Efetuada',
        'Objeto entregue ao destinatário',
        'Objeto apreendido por órgão de fiscalização',
        'Objetvo devolvido',
        'Objetvo roubado',
        'Aguardando recebimento pelo ECT.',
        'Objeto não localizado no fluxo postal.',
        'Delivered',
    ]

    for elem in track(list(packages), description="Processing..."):
        code = elem['code']
        time_diff = int(time() - float(elem['time']))
        latest_status = elem['stat'][-1]

        if (any(status in latest_status
                for status in final_status) and time_diff > int_del
                or time_diff > 2 * int_del):
            if not dry_run:
                db.delete_package(elem['code'])

            logger.info("%s\t%s\t%r", datetime.now(), elem['code'],
                        latest_status)
            total_deleted += 1

    logger.info("Total of packages deleted: %s", total_deleted)
示例#2
0
def count_packages():
    '''
    Count total packages and packages per status
    '''
    cursor = db.all_packages()
    pkg_status = defaultdict(int)
    for elem in cursor:
        if len(elem['code']) > 13:
            pkg_status['trackingmore'] += 1
        if 'Aguardando recebimento pel' in str(elem):
            pkg_status['wait'] += 1
        else:
            pkg_status['qtd'] += 1
        if 'Aguardando pagamento do despacho postal' in str(elem):
            pkg_status['despacho'] += 1
        if 'Liberado sem tributação' in str(elem):
            pkg_status['sem_imposto'] += 1
        if 'Objeto recebido pelos Correios do Brasil' in str(elem):
            pkg_status['importado'] += 1
        if 'Fiscalização Aduaneira finalizada' in str(elem):
            pkg_status['tributado'] += 1
        if 'Objeto roubado' in str(elem):
            pkg_status['extraviado'] += 1
    return pkg_status
示例#3
0
    else:
        logger_info.info(str(datetime.now()) + '\tCorreios indisponível')
        return False

if __name__ == '__main__':
    #sleep(60*int(multiple))
    logger_info = logging.getLogger('InfoLogger')
    handler_info = logging.FileHandler(LOG_ALERTS_FILE)
    logger_info.setLevel(logging.DEBUG)
    logger_info.addHandler(handler_info)

    sentry_url = config['SENTRY']['url']
    if sentry_url:
        sentry_sdk.init(sentry_url)

    cursor1 = db.all_packages()
    start = time()
    sent = 1
    if check_system():
        pass
    else:
        sys.exit()
    for elem in cursor1:
        try:
            if elem['code'][5] != multiple:
                continue
            now = time()
            timediff = int(now) - int(start)
            #if timediff > 800:
            #    logger_info.info(str(datetime.now()) + '\t' + multiple + '\tRoutine too long')
            #    break