コード例 #1
0
def get_cur_actors(sid):
    """获取未标注过主演名单"""
    actors = set(get_actors(sid))

    session = DBSession()
    session.expire_on_commit = False
    #querycs = session.query(CheckActor).filter(CheckActor.sid == sid).all()
    querycs = {
        obj.aname
        for obj in session.query(PicLabel.aname).filter(
            PicLabel.sid == sid).distinct() if obj.aname
    }
    session.commit()
    session.close()
    actors = actors - querycs
    '''
    for qactor in querycs:
        if qactor.status == 1:
            try:
                actors.remove(qactor.actor)
            except:
                continue
    '''

    return list(actors) + [u"不保留", u"上一张", u"跳过"]
コード例 #2
0
def get_actors(sid):
    """获取至少10个主演名单"""
    session = DBSession()
    session.expire_on_commit = False
    uquerys = session.query(CheckActor)
    uquery = uquerys.filter(CheckActor.sid == sid).all()
    session.commit()
    session.close()
    actors = [act.actor for act in uquery]
    return actors  #[:10]
コード例 #3
0
def get_sid(file_name):
    """获取sid"""
    session = DBSession()
    session.expire_on_commit = False
    uquery = session.query(PicLabel).filter(
        PicLabel.label == 0, PicLabel.title == file_name).first()
    session.commit()
    session.close()
    if uquery:
        return uquery.sid
コード例 #4
0
def get_data():
    #if request.method == "POST":
    rdict = {"aname": '', "img_hash": '', "title": ''}
    for item in rdict:
        rdict[item] = request.values.get(item, '')

    row_update_dict = {}
    row2_update_dict = {}

    if rdict["aname"] == u"不保留":
        row_update_dict['valid'] = 0
        row_update_dict['label'] = 1
    elif rdict["aname"] == u"上一张":
        session = DBSession()
        session.expire_on_commit = False
        session.query(PicLabel).filter(
            PicLabel.image_hash == rdict["img_hash"]).update(
                {PicLabel.current: 0})
        uquerys = session.query(PicLabel).filter(
            PicLabel.title == rdict["title"]).filter(
                or_(PicLabel.label == 0,
                    PicLabel.image_hash == rdict["img_hash"])).order_by(
                        PicLabel.episode, PicLabel.frame_timestamp).all()
        for idx, uquery in enumerate(uquerys):
            if uquery.image_hash == rdict["img_hash"]:
                index = idx
        length = len(uquerys)
        uquery = uquerys[(length + index - 2) % length]
        session.query(PicLabel).filter(
            PicLabel.image_hash == uquery.image_hash).update(
                {PicLabel.current: 1})
        session.commit()
        session.close()
    elif rdict["aname"] != u"跳过" and rdict["aname"] != u"上一张":
        row_update_dict['aname'] = rdict['aname']
        row_update_dict['label'] = 1
        # row2_update_dict['status'] = 1

    session = DBSession()
    try:
        if row_update_dict:
            session.query(PicLabel).filter_by(
                image_hash=rdict["img_hash"]).update(row_update_dict)
        if row2_update_dict:
            session.query(CheckActor).filter(
                CheckActor.actor == rdict["aname"]).update(row2_update_dict)
        session.commit()
    except:
        session.rollback()
    finally:
        session.close()

    #url, img_hash, title, episode, frame_timestamp = get_url(rdict["title"])
    #return jsonify(url=url, img_hash=img_hash, title=title, episode=episode, frame_timestamp=frame_timestamp)
    return jsonify({'error_code': 0})
コード例 #5
0
def get_url(file_name):
    """获取图片信息"""
    session = DBSession()
    session.expire_on_commit = False
    # offset_limit = session.query(PicLabel).filter(PicLabel.label == 0, PicLabel.title == file_name).count()
    # offset_row = int(hashlib.sha1(os.urandom(10)).hexdigest(), 16) % offset_limit
    # #offset_row = random.randint(0, offset_limit)
    # uquery = session.query(PicLabel).filter(PicLabel.label == 0, PicLabel.title == file_name).offset(offset_row).first()

    curq = session.query(PicLabel).filter(PicLabel.current == 1,
                                          PicLabel.title == file_name).first()
    if not curq:
        uquery = session.query(PicLabel).filter(
            PicLabel.title == file_name,
            PicLabel.label == 0).order_by(PicLabel.episode,
                                          PicLabel.frame_timestamp).first()
    else:
        session.query(PicLabel).filter(
            PicLabel.image_hash == curq.image_hash).update(
                {PicLabel.current: 0})
        uquerys = session.query(PicLabel).filter(
            PicLabel.title == file_name).filter(
                or_(PicLabel.label == 0,
                    PicLabel.image_hash == curq.image_hash)).order_by(
                        PicLabel.episode, PicLabel.frame_timestamp).all()
        for idx, uquery in enumerate(uquerys):
            if uquery.image_hash == curq.image_hash:
                index = idx
        length = len(uquerys)
        uquery = uquerys[(index + 1) % length]
    session.query(PicLabel).filter(
        PicLabel.image_hash == uquery.image_hash).update({PicLabel.current: 1})
    session.commit()
    session.close()
    try:
        url = baseurl + uquery.image_path
        img_hash = uquery.image_hash
        title = uquery.title
        episode = uquery.episode
        #print episode
        frame_timestamp = uquery.frame_timestamp
        return url, img_hash, title, episode, frame_timestamp
    except:
        return None