示例#1
0
def lookup(card_id, spider_name):
    try:
        card = Card.by_id(card_id)
        spiders.lookup(card, spider_name)
        db.session.commit()
    except Exception, e:
        log.exception(e)
示例#2
0
def update(id):
    authz.require(authz.logged_in())
    card = obj_or_404(Card.by_id(id))
    card.save(request_data(), g.user)
    db.session.commit()
    extract.delay(card.id)
    return jsonify(card)
示例#3
0
def index(card_id):
    authz.require(authz.logged_in())
    card = obj_or_404(Card.by_id(card_id))
    references = db.session.query(Reference)
    references = references.filter(Reference.card == card)
    pager = Pager(references, card_id=card_id)
    return jsonify(pager, index=True)
示例#4
0
def update(id):
    authz.require(authz.logged_in())
    card = obj_or_404(Card.by_id(id))
    card.save(request_data(), g.user)
    db.session.commit()
    extract.delay(card.id)
    return jsonify(card)
示例#5
0
def index(parent_id):
    authz.require(authz.logged_in())
    card = obj_or_404(Card.by_id(parent_id))
    links = db.session.query(Link)
    links = links.filter(Link.parent == card)
    links = links.order_by(Link.offset.asc())
    pager = Pager(links, parent_id=parent_id)
    return jsonify(pager, index=True)
示例#6
0
def index(parent_id):
    authz.require(authz.logged_in())
    card = obj_or_404(Card.by_id(parent_id))
    links = db.session.query(Link)
    links = links.filter(Link.parent == card)
    links = links.order_by(Link.offset.asc())
    pager = Pager(links, parent_id=parent_id)
    return jsonify(pager, index=True)
示例#7
0
def extract(card_id):
    parent = Card.by_id(card_id)
    log.info('Extracting entities from "%s"...', parent.title)
    try:
        extract_entities(parent)
        db.session.commit()
    except Exception, e:
        log.exception(e)
示例#8
0
文件: queue.py 项目: 01-/storyweb
def index(self, card_id):
    try:
        card = Card.by_id(card_id)
        if card is None:
            raise self.retry(countdown=2)
        index_card(card)
    except Exception, e:
        log.exception(e)
示例#9
0
文件: queue.py 项目: 01-/storyweb
def lookup(self, card_id, spider_name):
    try:
        card = Card.by_id(card_id)
        if card is None:
            raise self.retry(countdown=1)
        spiders.lookup(card, spider_name)
        db.session.commit()
    except Exception, e:
        log.exception(e)
示例#10
0
文件: queue.py 项目: 01-/storyweb
def extract(self, card_id):
    parent = Card.by_id(card_id)
    if parent is None:
        raise self.retry(countdown=1)
    log.info('Extracting entities from "%s"...', parent.title)
    try:
        extract_entities(parent)
        db.session.commit()
    except Exception, e:
        log.exception(e)
示例#11
0
文件: extract.py 项目: 01-/storyweb
def extract_multi(parent):
    seen = set([parent.id])
    for offset, card in extract_known(parent):
        if card.id not in seen:
            seen.add(card.id)
            yield offset, card

    for offset, data in extract_calais(parent.text):
        author = User.default_user()
        card = Card.find(data.get('title'))
        if card is None:
            card = Card()
        elif card.id in seen:
            continue
        else:
            data['text'] = card.text
            author = card.author
        card.save(data, author)
        seen.add(card.id)
        yield offset, card
示例#12
0
def refresh(parent_id):
    authz.require(authz.logged_in())
    card = obj_or_404(Card.by_id(parent_id))
    link = aliased(Link)
    links = db.session.query(link.id)
    links = links.filter(link.parent == card)
    response = {'status': 'ok'}

    try:
        since = request.args.get('since')
        if since is not None:
            since = dateutil.parser.parse(since)

            child = aliased(Card)
            links = links.join(child, link.child)
            links = links.filter(or_(link.updated_at > since,
                                     child.updated_at > since))
    except (AttributeError, ValueError), e:
        response['status'] = 'ok'
        response['error'] = unicode(e)
示例#13
0
def extract(card_id):
    parent = Card.by_id(card_id)
    if parent.category != Card.ARTICLE:
        log.info('Not extracting entities from "%s"...', parent.title)
        return
    log.info('Extracting entities from "%s"...', parent.title)
    try:
        for offset, child in extract_entities(parent.text):
            data = {
                'offset': offset,
                'child': child
            }
            link = Link.find(parent, child)
            if link is None:
                link = Link()
            else:
                data['status'] = link.status
            link.save(data, parent, child.author)
        index.delay(card_id)
        db.session.commit()
    except Exception, e:
        log.exception(e)
示例#14
0
def delete(id):
    authz.require(authz.logged_in())
    card = obj_or_404(Card.by_id(id))
    db.session.delete(card)
    db.session.commit()
    raise Gone()
示例#15
0
def view(id):
    authz.require(authz.logged_in())
    card = obj_or_404(Card.by_id(id))
    return jsonify(card)
示例#16
0
def view(id):
    authz.require(authz.logged_in())
    card = obj_or_404(Card.by_id(id))
    return jsonify(card)
示例#17
0
def index(card_id):
    try:
        card = Card.by_id(card_id)
        index_card(card)
    except Exception, e:
        log.exception(e)
示例#18
0
def delete(id):
    authz.require(authz.logged_in())
    card = obj_or_404(Card.by_id(id))
    db.session.delete(card)
    db.session.commit()
    raise Gone()
示例#19
0
def suggest():
    authz.require(authz.logged_in())
    options = Card.suggest(request.args.get("prefix"), categories=request.args.getlist("category"))
    return jsonify({"options": options}, index=True)
示例#20
0
def create():
    authz.require(authz.logged_in())
    card = Card().save(request_data(), g.user)
    db.session.commit()
    extract.delay(card.id)
    return jsonify(card, status=201)
示例#21
0
def create(card_id):
    authz.require(authz.logged_in())
    card = obj_or_404(Card.by_id(card_id))
    reference = Reference().save(request_data(), card, g.user)
    db.session.commit()
    return jsonify(reference, status=201)
示例#22
0
def suggest():
    authz.require(authz.logged_in())
    options = Card.suggest(request.args.get('prefix'),
                           categories=request.args.getlist('category'))
    return jsonify({'options': options}, index=True)