Exemplo n.º 1
0
def _cond_update_url_info(cond, update_map, inc_map = None, fields = ["_id"]):
    '''
    Notes: fields are just fields from urlRepository, while update_map/inc_map can include metaUrlRepository fields.
    updates for metaUrlRepository fields just support async mode.
    '''

    fields = make_fields(fields)
    first_update, second_update = _make_update(update_map, inc_map)

    if second_update is not None:
        crawlerMetadb.update_url_info_meta(cond, second_update)

    if first_update is not None:
        return db.urlRepository.find_and_modify(cond, first_update, fields=fields)
    else:
        return _cond_get_url_info(cond, fields)
Exemplo n.º 2
0
def _async_update_url_info(cond, update_map, inc_map):
    first_update, second_update = _make_update(update_map, inc_map)
    if first_update is not None:
        db.urlRepository.update(cond, first_update)
    if second_update is not None:
        crawlerMetadb.update_url_info_meta(cond, second_update)