def get_or_create_tracking_item(carrier, code):
    try:
        tracking_data = trackingmore.create_tracking_data(carrier, code)
        trackingmore.create_tracking_item(tracking_data)
        tracking_data = trackingmore.get_tracking_item(carrier, code)
    except trackingmore.trackingmore.TrackingMoreAPIException as e:
        if e.err_code == 4016: # Already exists
            tracking_data = trackingmore.get_tracking_item(carrier, code)
        else:
            raise e

    return tracking_data
Esempio n. 2
0
def get_or_create_tracking_item(carrier, code):
    print(carrier)
    try:
        tracking_data = trackingmore.get_tracking_item(carrier, code)
    except trackingmore.trackingmore.TrackingMoreAPIException as e:
        if e.err_code == 4031 or e.err_code == 4017:
            tracking_data = trackingmore.create_tracking_data(carrier, code)
            trackingmore.create_tracking_item(tracking_data)
            tracking_data = trackingmore.get_tracking_item(carrier, code)
        else:
            raise e

    return tracking_data
def get(code, times):
    try:
        td = trackingmore.create_tracking_data('cainiao', code)
        trackingmore.create_tracking_item(td)
    except trackingmore.trackingmore.TrackingMoreAPIException as e:
        if e.err_code == 4019 or e.err_code == 4021:
            return status.OFFLINE
        if e.err_code == 4016: # Already exists
            try:
                td = trackingmore.get_tracking_item('cainiao', code)
            except trackingmore.trackingmore.TrackingMoreAPIException as e:
                if e.err_code == 4019 or e.err_code == 4021:
                    return status.OFFLINE
    print(td)
    if td['status'] == 'notfound':
        return status.NOT_FOUND_TM
    elif len(td) < 10:
        return status.OFFLINE
    return formato_obj(td)