示例#1
0
def addconv():
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    user = op.get(session['user'])
    filename = request.form['picname']
    picfile = request.files['picfile']
    txtfile = request.files['desctext']
    folder = 'convinient'
    if not filename.strip():
        filename = picfile.filename
    if picfile.filename:
        rfolder = os.path.join(USER_FOLDER, user.username, folder)
        picpath = os.path.join(rfolder, picfile.filename)
        txtpath = os.path.join(rfolder, txtfile.filename)
        abspath = os.path.abspath(picpath)
        txtabspath = os.path.abspath(txtpath)
        if not os.path.isfile(picpath):
            picfile.save(picpath)
            txtfile.save(txtpath)
            op.add_convinient_pic(filename, picfile.filename, txtfile.filename,
                                  user.username, datetime.now())
            publisher.publish('%s&&%s' % (
                folder,
                abspath,
            ), session['user'])
            publisher.publish('%s&&%s' % (
                folder,
                txtabspath,
            ), session['user'])
    return redirect("/opengov/convinient")
示例#2
0
def vedio():
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    user = op.get(session['user'])
    if request.method == 'POST':
        filename = request.form['filename']
        videofile = request.files['file']
        videopath = os.path.join(USER_FOLDER, user.username, 'advds',
                                 videofile.filename)
        if not os.path.isfile(videopath):
            videofile.save(videopath)
            abspath = os.path.abspath(videopath)
            #print abspath
            publisher.publish('advds&&%s' % (abspath), session['user'])
            #print session['user']
            print 'add video', user.username
            op.add_video(filename, videofile.filename, user.username,
                         datetime.now())
            #print filename
    folder = os.path.join(USER_FOLDER, user.username, 'advds')
    #allvideo = os.listdir(folder)
    allvideo = op.get_video_by_user(user.username)
    videoinfo = []
    for v in allvideo:
        name, ext = os.path.splitext(v.videoname)
        size = os.path.getsize(os.path.join(folder, v.videoname)) / 1024
        videoinfo.append((v.cid, name, size, ext, user.area))
    #videoinfo = enumerate(videoinfo)
    session['advideo'] = videoinfo
    return render_template('ad_vedio.html',
                           videoinfo=videoinfo,
                           usersname=user.name)
示例#3
0
def adduser():
    if 'user' not in session:
        return redirect('/login')
    name = request.form['name']
    phone = request.form['phone']
    cardno = request.form['cardno']
    town = request.form['townname']
    if town:
        town = town.split(';')[-1].strip()  # only store town code
    coun = request.form['countryname']
    if coun:
        coun = coun.split(';')[1].strip()  # only store country code
    devno = request.form['devno']
    if devno:
        devno = devno.split(';')[1].strip()
    seqno = int(request.form['seqno'])
    #print town, coun, devno, seqno
    if not town or not coun or not devno:
        return '<h2>必须输入乡镇,行政村和位点信息!</h2>'
    op = userdb.DbOperation()
    if not op.update_bin_user_basic_info(town, coun, devno, seqno, name, phone,
                                         cardno):
        #print 'user not found:', name
        op.add_bin_user(cardno, town, coun, devno, seqno, 'super', name,
                        phone)  # hack with super user
    else:
        print 'user existing: ', name
    return redirect('/usrmng/users')
示例#4
0
def del_bin_user(cid):
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    #op.del_bin_user_by_cardno(cardno)
    op.del_bin_user_by_id(cid)
    return redirect('/usrmng/users')
示例#5
0
def info_add_pic():
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    user = op.get(session['user'])
    filename = request.form['picname']
    picfile = request.files['picfile']
    qr = request.files['qrcode']
    infofolder = os.path.join(USER_FOLDER, user.username, 'info')
    if picfile.filename and qr.filename:
        picpath = os.path.join(infofolder, picfile.filename)
        name, ext = os.path.splitext(picfile.filename)
        qrname = '.'.join(['-'.join([name, 'qrind']), 'png'])
        txtfile = '.'.join([name, 'txt'])
        txtpath = os.path.join(infofolder, txtfile)
        qrpath = os.path.join(infofolder, qrname)
        if not os.path.isfile(picpath):
            picfile.save(picpath)
            if not os.path.isfile(qrpath):
                qr.save(qrpath)
            with open(txtpath, 'wb') as txtfd:
                #print filename
                txtfd.write(filename.encode('utf8'))
            op.add_info_item(filename, picfile.filename, qrname, txtfile,
                             user.username, datetime.now())
            abspath = os.path.abspath(picpath)
            publisher.publish('info&&%s' % (abspath), session['user'])
            publisher.publish('info&&%s' % (qrpath), session['user'])
            publisher.publish('info&&%s' % (txtpath), session['user'])
    return redirect("/infosrv/pics")
示例#6
0
def del_video(idx):
    if 'user' not in session:
        return redirect('/login')
    idx = int(idx)
    op = userdb.DbOperation()
    user = op.get(session['user'])
    folder = os.path.join(USER_FOLDER, user.username, 'advds')
    todel = op.get_video_by_rowid(idx)
    fp = os.path.join(folder, todel.videoname)
    if os.path.isfile(fp):
        os.remove(fp)
        op.del_video_by_rowid(idx)
    else:
        pass
        #print fp, 'not existing'
    #allvideo = os.listdir(folder)
    allvideo = op.get_video_by_user(user.username)
    videoinfo = []
    for v in allvideo:
        name, ext = os.path.splitext(v.videoname)
        size = os.path.getsize(os.path.join(folder, v.videoname)) / 1024
        videoinfo.append((v.cid, name, size, ext, user.area))
    session['advideo'] = videoinfo
    return render_template('ad_vedio.html',
                           videoinfo=videoinfo,
                           usersname=user.name)
示例#7
0
def ad():
    if 'user' in session:
        set_ad_video_in_session()
        op = userdb.DbOperation()
        user = op.get(session['user'])
        return render_template('ad.html', usersname=user.name)
    return redirect('/login')
示例#8
0
def login():
    if request.method == 'POST':
        usr = request.form['regular']
        pas = request.form['pass']
        if 'checkbox1' in request.form:
            pass
            #print request.form['checkbox1']
        else:
            #print 'not checked'
            pass
        op = userdb.DbOperation()
        if op.verify(usr, pas):
            if 'user' not in session:
                session['user'] = usr
            else:
                if session['user'] == usr:
                    pass
                    #print 'stored session: {}'.format(session['user'])
                else:
                    #print 'another user use this session'
                    session['user'] = usr
            upath = os.path.join(USER_FOLDER, usr)
            if not os.path.exists(upath):
                create_userdir(upath)
            return redirect('/ad/video')
    return render_template('login.html')
示例#9
0
def pav_match():
    if 'user' in session:
        mp4file = '/static/img/nothinghere.mp4'
        src_folder = '/home/haitong/machinelearning/py-faster-rcnn/tools/'
        pva_det_outdir = '/home/haitong/machinelearning/other_nets/pva-faster-rcnn/tools/output/'
        if request.method == 'POST':
            video = request.files['videofile']
            video.save(video.filename)
            call(['rm', '-f', src_folder + '*.jpg'])
            call(['rm', '-f', src_folder + 'output/' + '*.jpg'])
            call(['rm', '-f', pva_det_outdir + '*.jpg'])
            call(['rm', '-f', 'proceeded.mp4'])
            call(['rm', '-f', './static/proceeded.mp4'])
            call([
                'ffmpeg', '-i', video.filename, '-r', '25',
                src_folder + 'test_%d.jpg'
            ])

            for f in os.listdir(src_folder):
                #print f
                base, ext = os.path.splitext(f)
                #if ext != 'jpg': continue
                s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                s.connect(('localhost', 3001))  ### sending to localhost:3001
                s.send(f)
                resp = s.recv(1024)
                print resp
                #s = socket.socket(
                #    socket.AF_INET, socket.SOCK_STREAM)
                #s.connect((BEHOST, BEPORT))
                #s.send('camera:' + f)
                #resp = s.recv(1024)
                #print resp
                s.close()
            call([
                'ffmpeg', '-f', 'image2', '-i',
                pva_det_outdir + r'test_%d.jpg', 'proceeded.mp4'
            ])
            shutil.move('proceeded.mp4', './static/proceeded.mp4')
            tgtfile = request.files['picfile']
            print 'target file', tgtfile.filename
            tgtpath = os.path.join(PAV_UPLOAD_FOLDER, tgtfile.filename)
            tgtfile.save(tgtpath)
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.connect((BEHOST, BEPORT))
            s.send(tgtfile.filename)
            resp = s.recv(1024)
            print resp
            mp4file = '/static/img/' + resp
            s.close()
        op = userdb.DbOperation()
        user = op.get(session['user'])
        return render_template('pav-match.html',
                               usersname=user.name,
                               mp4=mp4file)
    return redirect('/login')
示例#10
0
def terms():
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    terms = op.get_geoinfo()
    #print terms
    return render_template('terminals.html',
                           terminals=terms,
                           usersname=session['user'],
                           towns=op.get_towns())
示例#11
0
def usredit():
    name = request.args.get('name')
    cid = request.args.get('cid')
    phone = request.args.get('phone')
    cardno = request.args.get('cardno')
    #print name, cid, phone, cardno
    op = userdb.DbOperation()
    ret = op.update_bin_user_by_id(cid, name, phone, cardno)
    if ret:
        return 'ok'
    else:
        return 'nok'
示例#12
0
def set_ad_video_in_session():
    op = userdb.DbOperation()
    user = op.get(session['user'])
    folder = os.path.join(USER_FOLDER, session['user'], 'advds')
    #print folder
    allvideo = os.listdir(folder)
    videoinfo = []
    for v in allvideo:
        name, ext = os.path.splitext(v)
        size = os.path.getsize(os.path.join(folder, v)) / 1024
        videoinfo.append((name, size, ext, user.area))
    videoinfo = enumerate(videoinfo)
    session['advideo'] = videoinfo
示例#13
0
def add_term():
    if 'user' not in session:
        return redirect('/login')
    tn = request.form['townname'].strip()
    tc = request.form['towncode'].strip()
    cn = request.form['countryname'].strip()
    cc = request.form['countrycode'].strip()
    dn = request.form['devname'].strip()
    dc = request.form['devcode'].strip()
    ip = request.form['ipaddr'].strip()
    op = userdb.DbOperation()
    op.add_geoinfo(tn, tc, cn, cc, dn, dc, ip)
    return redirect('/terminals')
示例#14
0
def mudel(idx):
    if 'user' not in session:
        return redirect('/login')
    idx = int(idx)
    op = userdb.DbOperation()
    pic = op.get_museum_pic_by_rowid(idx)
    folder = os.path.join(USER_FOLDER, pic.user, 'commuseum')
    picpath = os.path.join(folder, pic.picname)
    if os.path.isfile(picpath):
        os.remove(picpath)
    else:
        pass
        #print 'deleting commpic not existing.'
    op.del_museum_pic_by_rowid(idx)
    return redirect('/commsrv/museum')
示例#15
0
def infopic():
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    user = op.get(session['user'])
    infoitems = op.get_info_items_by_user(user.username)
    infofolder = os.path.join(USER_FOLDER, user.username, 'info')
    items = []
    for info in infoitems:
        items.append(
            (info.picname, os.path.join(infofolder, info.picname).strip('.'),
             os.path.join(infofolder, info.qrname).strip('.'), info.cid))
    return render_template('infosrv.html',
                           usersname=user.name,
                           infoitems=items)
示例#16
0
def conv():
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    user = op.get(session['user'])
    pics = op.get_convinient_pics_by_user(user.username)
    folder = os.path.join(USER_FOLDER, user.username, 'convinient')
    allpics = []
    for pic in pics:
        allpics.append(
            (pic.picname, os.path.join(folder, pic.picname).strip('.'),
             os.path.join(folder, pic.textname).strip('.'), pic.cid))
    return render_template('convinient.html',
                           usersname=user.name,
                           infoitems=allpics)
示例#17
0
def dancing():
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    user = op.get(session['user'])
    folder = os.path.join(USER_FOLDER, user.username, 'dance')
    allvideo = op.get_dancing_video_by_user(user.username)
    videoinfo = []
    for v in allvideo:
        name, ext = os.path.splitext(v.videoname)
        size = os.path.getsize(os.path.join(folder, v.videoname)) / 1024
        videoinfo.append((v.cid, name, size, ext, user.area))
    #videoinfo = enumerate(videoinfo)
    session['advideo'] = videoinfo
    return render_template('dancing.html',
                           videoinfo=videoinfo,
                           usersname=user.name)
示例#18
0
def get_counts():
    townid = int(request.args.get('towninfo').split(';')[0])
    op = userdb.DbOperation()
    couns = op.get_countries_by_townid(townid)
    jscouns = []
    for c in couns:
        jscouns.append({
            'cn': c.counname,
            'cc': c.councode,
            'ti': c.townid,
            'cid': c.cid
        })
    jsres = json.dumps({'data': jscouns})
    #print jsres
    resp = Response(jsres, status=200, mimetype='application/json')
    resp.headers['Link'] = 'http://localhost:5000'
    return resp
示例#19
0
def query():
    cardno = request.form['cardno']
    #print cardno
    op = userdb.DbOperation()
    usr = op.get_bin_user_by_cardno(cardno)
    rank = op.get_bin_user_rank(cardno)
    result = {
        'name': usr.name,
        'mobile': usr.phone,
        'rank': rank,
        'count': usr.count
    }
    js = json.dumps(result)
    #print js
    resp = Response(js, status=200, mimetype='application/json')
    resp.headers['Link'] = 'http://localhost:5000'
    return resp
示例#20
0
def del_dancing(idx):
    if 'user' not in session:
        return redirect('/login')
    idx = int(idx)
    op = userdb.DbOperation()
    user = op.get(session['user'])
    folder = os.path.join(USER_FOLDER, user.username, 'dance')
    todel = op.get_dancing_video_by_rowid(idx)
    fp = os.path.join(folder, todel.videoname)
    if os.path.isfile(fp):
        os.remove(fp)
        op.del_dancing_video_by_rowid(idx)
    else:
        pass
        #print fp, 'not existing'
    return redirect('/commsrv/dancing')
    '''
示例#21
0
def get_terms():
    cid = int(request.args.get('countryinfo').split(';')[-1])
    op = userdb.DbOperation()
    terminals = op.get_terminals_by_country_id(cid)
    jsterms = []
    for t in terminals:
        jsterms.append({
            'tn': t.termname,
            'tc': t.termcode,
            'ci': t.counid,
            'cid': t.cid,
            'ip': t.ipaddr
        })
    jsres = json.dumps({'data': jsterms})
    #print jsres
    resp = Response(jsres, status=200, mimetype='application/json')
    resp.headers['Link'] = 'http://localhost:5000'
    return resp
示例#22
0
def del_info(idx):
    if 'user' not in session:
        return redirect('/login')
    idx = int(idx)
    op = userdb.DbOperation()
    info = op.get_info_item_by_rowid(idx)
    infofolder = os.path.join(USER_FOLDER, info.user, 'info')
    picpath = os.path.join(infofolder, info.picname)
    qrpath = os.path.join(infofolder, info.qrname)
    if os.path.isfile(picpath):
        os.remove(picpath)
        if os.path.isfile(qrpath):
            os.remove(qrpath)
        op.del_info_item_by_rowid(idx)
    else:
        pass
        #print 'deleting info pic not existing.'

    return redirect('/infosrv/pics')
示例#23
0
def delconv(idx):
    if 'user' not in session:
        return redirect('/login')
    idx = int(idx)
    op = userdb.DbOperation()
    pic = op.get_convinient_pic_by_rowid(idx)
    folder = os.path.join(USER_FOLDER, pic.user, 'convinient')
    picpath = os.path.join(folder, pic.picname)
    rootp, _ = os.path.splitext(picpath)
    txtpath = rootp + '.txt'
    if os.path.isfile(picpath):
        os.remove(picpath)
        if os.path.isfile(txtpath):
            os.remove(txtpath)
    else:
        pass
        #print 'deleting convinient not existing.'
    op.del_convinient_pic_by_rowid(idx)
    return redirect('/opengov/convinient')
示例#24
0
def expression():
    if 'user' in session:
        resimg = 'undefined'
        if request.method == 'POST':
            tgtfile = request.files['picfile']
            tgtpath = os.path.join(EXP_UPLOAD_FOLDER, tgtfile.filename)
            tgtfile.save(tgtpath)
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.connect((EXPHOST, EXPPORT))
            s.send(tgtfile.filename)
            resp = s.recv(1024)
            print resp
            resimg = '/static/img/' + tgtfile.filename
            s.close()
        op = userdb.DbOperation()
        user = op.get(session['user'])
        return render_template('expression.html',
                               usersname=user.name,
                               result_img=resimg)
    return redirect('/login')
示例#25
0
def chop():
    if 'user' in session:
        result = u'请上传图片'
        upload = ''
        if request.method == 'POST':
            tgtfile = request.files['picfile']
            tgtpath = os.path.join(CHOPSTICK_UPLOAD_FOLDER, tgtfile.filename)
            tgtfile.save(tgtpath)
            upload = '/static/img/' + tgtfile.filename
            shutil.copy(tgtpath, './static/img/')
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.connect((CSTHOST, CSTPORT))
            s.send(tgtfile.filename)
            resp = s.recv(1024)
            print resp
            result = resp
            s.close()
        op = userdb.DbOperation()
        user = op.get(session['user'])
        return render_template('chopstick.html',
                               usersname=user.name,
                               result=result,
                               upload_file=upload)
    return redirect('/login')
示例#26
0
def muadd():
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    user = op.get(session['user'])
    filename = request.form['picname']
    picfile = request.files['picfile']
    txtfile = request.files['desctext']
    if not filename.strip():
        filename = picfile.filename
    if picfile.filename:
        folder = os.path.join(USER_FOLDER, user.username, 'commuseum')
        picpath = os.path.join(folder, picfile.filename)
        txtpath = os.path.join(folder, txtfile.filename)
        abspath = os.path.abspath(picpath)
        abstxtp = os.path.abspath(txtpath)
        if not os.path.isfile(picpath):
            picfile.save(picpath)
            txtfile.save(txtpath)
            op.add_museum_pic(filename, picfile.filename, txtfile.filename,
                              user.username, datetime.now())
            publisher.publish('commuseum&&%s' % (abspath, ), session['user'])
            publisher.publish('commuseum&&%s' % (abstxtp, ), session['user'])
    return redirect("/commsrv/museum")
示例#27
0
def dancing_add():
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    user = op.get(session['user'])
    folder = 'dance'  #'commsqr'
    if request.method == 'POST':
        filename = request.form['filename']
        videofile = request.files['file']
        if videofile.filename:
            videopath = os.path.join(USER_FOLDER, user.username, folder,
                                     videofile.filename)
            abspath = os.path.abspath(videopath)
            if not os.path.isfile(videopath):
                videofile.save(videopath)
                op.add_dancing_video(filename, videofile.filename,
                                     user.username, datetime.now())
                publisher.publish('%s&&%s' % (
                    'commsqr',
                    abspath,
                ), session['user'])
                #print filename
    return redirect('/commsrv/dancing')
    '''
示例#28
0
def del_term(cid):
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    op.del_geoinfo(int(cid))
    return redirect('/terminals')
示例#29
0
def bin_report(cardno):
    #print 'use report ', cardno
    op = userdb.DbOperation()
    op.update_bin_user_count(cardno)
    return 'ok'
示例#30
0
def users():
    if 'user' not in session:
        return redirect('/login')
    op = userdb.DbOperation()
    users = op.get_bin_users_by_admin('super')
    return render_template('usermng.html', users=users, towns=op.get_towns())