def sign_up(): data = { 'username': request.form.get("username"), 'password': request.form.get("password"), 'email': request.form.get("email") } aids = db.select(conn, 'account', ['aid'], dict()) aids = set([t['aid'] for t in aids]) data['aid'] = ''.join(random.choice(letters + numbers) for j in range(10)) while data['aid'] in aids: data['aid'] = ''.join( random.choice(letters + numbers) for j in range(10)) res = db.insert(conn, 'account', data) if res is True: sids = db.select(conn, "stocks", "*", dict()) random.seed(time.time()) rec_stk = random.sample(sids, 10) for stk in rec_stk: db.insert(conn, "rec_stk", {'aid': data['aid'], 'sid': stk['sid']}) resp = make_response(redirect(url_for("homepage.all_records"))) resp.set_cookie('aid', data['aid']) return resp else: return render_template('/login/SignUp.html', msg="name or email duplicate")
def make_chart_sql(year, market1, market2): query1 = db.select([data]).where( db.and_(data.columns.year == year, data.columns.market == market1)) data1 = connection.execute(query1).fetchall()[0][2:] query2 = db.select([data]).where( db.and_(data.columns.year == year, data.columns.market == market2)) data2 = connection.execute(query2).fetchall()[0][2:] img = io.BytesIO() fig, ax = plt.subplots(figsize=(6, 4)) pos = list(range(len(seasons))) width = 0.35 plt.bar(pos, data1, width, color='#58ACB6') plt.bar([p + width for p in pos], data2, width, color='#7067A0') plt.title(market1 + ' vs. ' + market2 + ' - ' + year) plt.legend([market1, market2]) ax.set_xticks([p + 0.5 * width for p in pos]) ax.set_xticklabels(seasons) fig.savefig(img, format='png', transparent=True, bbox_inches='tight', pad_inches=0) img.seek(0) chart_url = base64.b64encode(img.getvalue()).decode() plt.close() return 'data:image/png;base64,{}'.format(chart_url)
def get_receipt(order_no): args = dict(order_no=order_no) rec = db.select("Receipts", vars=args, where="order_id=$order_no").list() print (rec) if len(rec) == 0: rec = db.select("Receipts", vars=args, where="id=0").list() return rec[0]
def __init__(self): self.maxUsers = 10 # LIMITED TO 30 USERS/COLORS clients = db.select('user', what='count(*) as count')[0] if clients.count >= self.maxUsers: raise web.seeother('/data/warning') try: cookie = web.cookies() if cookie.user == '' and cookie.color == '': Color = self.color() User = self.name() web.setcookie('color', Color, 604800) web.setcookie('user', User, 604800) timestamp = time.strftime("%Y-%m-%d %I:%M:%S %p") db.insert('user', user=User, color=Color, timestamp=timestamp) else: data = db.select('user', where='user="******"'.format(cookie.user)) if not data: x except BaseException as ex: print ex web.setcookie('user', '', 3600) web.setcookie('color', '', 3600) raise web.seeother('/')
def handle_fact(self, engine, message, cmd, args): if cmd == 'fact': results = db.select('SELECT text FROM facts ORDER BY RANDOM() LIMIT 1') if not results: raise Exception('В базі ще немає жодного факту :(') users = db.select('SELECT username FROM stats ORDER BY RANDOM() LIMIT 5') if not users or len(users) < 3: raise Exception('Недостатньо людей в базі :(') result = results[0][0] users = [u'@{}'.format(user[0]) for user in users] engine.telegram.sendMessage( chat_id=message.chat_id, text=result.format(*users) ) return True elif cmd == 'addfact': if len(args.strip()) == 0: raise Exception('Введіть, що саме додати! Наприклад: "/addfact {} любить фапати на аніме.".') if args.find('{}') == -1: raise Exception('В факті має бути принаймні одна і не більше п’яти пар фігурних дужок - "{}".') if args.count('{}') > 3: raise Exception('В факті має бути принаймні одна і не більше трьох пар фігурних дужок - "{}".') self.db.execute('INSERT INTO facts(author, text) VALUES("{}", ?)'.format(message.from_user.username), (args.strip(),)) engine.telegram.sendMessage( chat_id=message.chat_id, text='Факт додано!' )
def show_article(id): all_entries = db.select("select * from blogs order by created_at" ) for i in all_entries: if i['id'] == id: this_entry = i this_entry_index = all_entries.index(i) if this_entry_index > 0: next_entry = all_entries[this_entry_index-1] else: next_entry = None if this_entry_index < (len(all_entries) -1): pre_entry = all_entries[this_entry_index+1] else: pre_entry = None #this_entry = db.select("select * from blogs where id='%s'" % id)[0] this_entry['created_at_converted'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(this_entry['created_at'])) this_comments = db.select("select * from comments where blog_id ='%s'" % id) if this_comments: for i in this_comments: i.created_at_converted = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(i.created_at)) if session.has_key('username'): return render_template('article.html', entry=this_entry, username=session['username'], comments=this_comments, pre_entry=pre_entry, next_entry=next_entry, catalogs=catalogs, tags=tags, title=this_entry.name) else: return render_template('article.html', entry=this_entry, comments=this_comments, pre_entry=pre_entry, next_entry=next_entry, catalogs=catalogs, tags=tags, title=this_entry.name)
def sign_in(): data = { 'name': request.form.get("username"), 'pwd': request.form.get("password") } res = db.select(conn, 'account', ['aid'], data) if res is not None and len(res) != 0: log = dict() lids = db.select(conn, 'logs', ['lid'], dict()) lids = set([t['lid'] for t in lids]) log['lid'] = ''.join( random.choice(letters + numbers) for j in range(10)) while log['lid'] in lids: log['lid'] = ''.join( random.choice(letters + numbers) for j in range(10)) log['if_log_in'] = True log['time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) log['aid'] = res[0]['aid'] db.insert(conn, 'logs', log) resp = make_response(redirect(url_for("homepage.all_records"))) resp.set_cookie(key='aid', value=res[0]['aid'], expires=None) return resp else: return render_template('/login/SignIn.html', msg="error user name or password")
def handle_fact(self, engine, message, cmd, args): if cmd == 'fact': results = db.select( 'SELECT text FROM facts ORDER BY RANDOM() LIMIT 1') if not results: raise Exception('В базі ще немає жодного факту :(') users = db.select( 'SELECT username FROM stats ORDER BY RANDOM() LIMIT 5') if not users or len(users) < 3: raise Exception('Недостатньо людей в базі :(') result = results[0][0] users = [u'@{}'.format(user[0]) for user in users] engine.telegram.sendMessage(chat_id=message.chat_id, text=result.format(*users)) return True elif cmd == 'addfact': if len(args.strip()) == 0: raise Exception( 'Введіть, що саме додати! Наприклад: "/addfact {} любить фапати на аніме.".' ) if args.find('{}') == -1: raise Exception( 'В факті має бути принаймні одна і не більше п’яти пар фігурних дужок - "{}".' ) if args.count('{}') > 3: raise Exception( 'В факті має бути принаймні одна і не більше трьох пар фігурних дужок - "{}".' ) self.db.execute( 'INSERT INTO facts(author, text) VALUES("{}", ?)'.format( message.from_user.username), (args.strip(), )) engine.telegram.sendMessage(chat_id=message.chat_id, text='Факт додано!')
def get_fact(self, chat_id): results = db.select('SELECT text FROM facts ORDER BY RANDOM() LIMIT 1') if not results: raise Exception('В базі ще немає жодного факту :(') users = db.select('SELECT username FROM stats WHERE chat_id = ? ORDER BY RANDOM() LIMIT 5', (chat_id,)) if not users or len(users) < 3: raise Exception('Недостатньо людей в базі :(') result = results[0][0] users = [u'@{}'.format(user[0]) for user in users] return result.format(*users)
def name(user_id: int): custom = db.select(TABLE='users', SELECT='custom_name', WHERE={'user_id': user_id}) if custom[0]: return custom[0] #? return db.select(TABLE='users', SELECT='name', WHERE={'user_id': user_id})[0]
def make_rec_stk(): aids = db.select(conn, "account", ["aid"], dict()) aids = [t['aid'] for t in aids] for user in aids: db.delete(conn, 'rec_stk', {'aid': user}) sids = db.select(conn, "stocks", "*", dict()) random.seed(time.time()) rec_stk = random.sample(sids, 10) for stk in rec_stk: db.insert(conn, "rec_stk", {'aid': user, 'sid': stk['sid']})
def get_fact(self): results = db.select('SELECT text FROM facts ORDER BY RANDOM() LIMIT 1') if not results: raise Exception('В базі ще немає жодного факту :(') users = db.select( 'SELECT username FROM stats ORDER BY RANDOM() LIMIT 5') if not users or len(users) < 3: raise Exception('Недостатньо людей в базі :(') result = results[0][0] users = [u'@{}'.format(user[0]) for user in users] return result.format(*users)
def machine(): _db = db.connect(settings.settings()) user = auth.username() if user == 'admin': res = db.select(_db, 'machines') else: res = db.select(_db, 'machines', where='owner=\'%s\'' % user) items = [x[0] for x in res] return jsonify({ 'machines': [{ 'uri': url_for('machine_id', machine_id=x, _external=True), 'id': x } for x in items] })
def machine_del(machine_id): user = auth.username() _db = db.connect(settings.settings()) if user == 'admin': res = db.select(_db, 'machines', where='id=\'%s\'' % machine_id) else: res = db.select(_db, 'machines', where='id=\'%s\' AND owner=\'%s\'' % (machine_id, user)) if not res: abort_msg(400, 'Machine "%s" not found' % (machine_id)) res = res[0] inf = infra.provider(settings.settings()) dom = inf.getDomain(res[0]) if not dom or dom is None: abort(400) if dom.isActive(): dom.destroy() flags = 0 if dom.hasManagedSaveImage(): flags |= libvirt.VIR_DOMAIN_UNDEFINE_MANAGED_SAVE if dom.snapshotNum() > 0: flags |= VIR_DOMAIN_UNDEFINE_SNAPSHOTS_METADATA vol_provider = images.volume_provider(settings.settings()) vols = inf.deviceItems(dom, 'disk') error_msg = '' try: dom.undefineFlags(flags) except: error_msg = 'ERROR: Undefining domain: %s' % macine_id print(error_msg) error_msg += vol_provider.removeVolumes(vols) _db = db.connect(settings.settings()) db.delete(_db, 'machines', where='id=\'%s\'' % machine_id) data = {'removed': machine_id} if error_msg: data['error'] = error_msg return jsonify(data)
def put_machine(machine_id): if not request.json: abort_msg(400, 'Expected JSON input') user = auth.username() _db = db.connect(settings.settings()) if user == 'admin': res = db.select(_db, 'machines', where='id=\'%s\'' % machine_id) else: res = db.select(_db, 'machines', where='id=\'%s\' AND owner=\'%s\'' % (machine_id, user)) if not res: abort_msg(400, 'Machine "%s" not found' % (machine_id)) res = res[0] inf = infra.provider(settings.settings()) dom = inf.getDomain(res[0]) if not dom or dom is None: abort_msg(400, 'Machine "%s" not in backedn' % (machine_id)) if 'operation' not in request.json: abort_msg(400, 'No operation defined') data = {} if request.json['operation'] == 'reboot': data['result'] = dom.reboot() elif request.json['operation'] == 'reset': data['result'] = dom.reset() elif request.json['operation'] == 'shutdown': data['result'] = dom.shutdown() elif request.json['operation'] == 'start': st = dom.state()[0] if st in [0, 4, 5, 6]: data['result'] = dom.create() else: abort_msg(400, 'Can\'t start, invalid state: %s' % (inf.domState(dom))) elif request.json['operation'] == 'forceoff': data['result'] = dom.destroy() elif request.json['operation'] == 'suspend': data['result'] = dom.suspend() elif request.json['operation'] == 'resume': data['result'] = dom.resume() else: abort_msg(400, 'Unknown operation: %s' % (request.json['operation'])) data[request.json['operation']] = machine_id return jsonify(data)
def members(group_id: int, limit: int = 10): return db.select( TABLE='members', SELECT='user_id', WHERE={'group_id': group_id}, LIMIT=limit, )
def modifing_plans(): aid = request.cookies.get('aid') if aid is None or aid == "": return redirect(url_for("login.sign_in")) pid = request.form.get("pid") plan = db.select(conn, "plans", "*", {'pid': pid})[0] return render_template("/plans/ModifyPlans.html", plan=plan)
def add_plans(): aid = request.cookies.get('aid') if aid is None or aid == "": return redirect(url_for("login.sign_in")) plan = { 'aid': aid, 'starting': to_valid_time(request.form.get("starting")), 'ending': to_valid_time(request.form.get("ending")), 'cycle': request.form.get("cycle"), 'budget': request.form.get("budget") } if plan['budget'] == "": return render_template("/plans/AddingPlan.html", msg="illegal value") pids = db.select(conn, 'plans', ['pid'], dict()) pids = set([t['pid'] for t in pids]) plan['pid'] = ''.join(random.choice(letters + numbers) for j in range(10)) while plan['pid'] in pids: plan['pid'] = ''.join( random.choice(letters + numbers) for j in range(10)) begin, end = find_current_period(plan['starting'], plan['cycle']) sql = """select SUM(amt) as total from records where aid = '%s' and time is not null and time >= '%s' and time <= '%s';""" % ( aid, begin, end) existed_amt = db.special_select(sql)[0]['total'] plan['credit'] = float(plan['budget']) - float(existed_amt) res = db.insert(conn, 'plans', plan) if res is True: return redirect(url_for(".own_plans")) else: return render_template("/plans/AddingPlan.html", msg="illegal value")
def merge(phone_id, card_id): """手机临时账号和校园卡账号合并""" record_table = 'record' t = db.transaction() phone_id, card_id = int(phone_id), int(card_id) # db.update(record_table, where="lost_id=%i" % phone_id, lost_id=card_id) # db.update(record_table, where="find_id=%i" % phone_id, find_id=card_id) # # 删除合并用户 # phone_user = db.select(_table, where="id=%i" % phone_id, limit=1, what='phone') # try: # db.delete(_table, where="id=%i" % phone_id) # except: # db.update(_table, where="id=%i" % phone_id, phone=None) # db.update(_table, where="id=%i" % card_id, phone=phone_user[0].phone) try: # 转移记录 db.update(record_table, where="lost_id=%i" % phone_id, lost_id=card_id) db.update(record_table, where="find_id=%i" % phone_id, find_id=card_id) # 删除合并用户 phone_user = db.select(_table, where="id=%i" % phone_id, limit=1, what='phone') try: db.delete(_table, where="id=%i" % phone_id) except: db.update(_table, where="id=%i" % phone_id, phone=None) db.update(_table, where="id=%i" % card_id, phone=phone_user[0].phone) except: t.rollback() return False else: t.commit() return card_id
def modifing_record(): aid = request.cookies.get('aid') if aid is None or aid == "": return redirect(url_for("login.sign_in")) reid = request.form.get("reid") record = db.select(conn, "records", "*", {'reid': reid})[0] return render_template("/homepage/ModifyRecord.html", record=record)
def test_create_order(self): with self.config: oi = orders.create_new_order(6) ret = db.select('Orders', where='id='+str(oi)) to = ret[0] self.assertEquals(to.waiter, 6) self.assertEquals(to.status, 0)
def test_add_item(self): with self.config: oi = orders.create_new_order(2) orders.add_item(oi, 1, 1) ret = db.select('OrderedItems', where='order_id='+str(oi)) ti = ret[0] self.assertEquals(ti.item_id, 1)
def check_defaults(): cur_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) sql = "select * from defaults where ending > '%s' or ending is null;" % cur_time defaults = db.special_select(sql) for default in defaults: if check_time(default['starting'], default['cycle']): record = dict() record['name'] = default['name'] record['be_from'] = default['be_from'] record['be_to'] = default['be_to'] record['amt'] = default['amt'] record['tag'] = default['tag'] record['time'] = default['time'] record['remark'] = default['remark'] record['aid'] = default['aid'] reids = db.select(conn, 'records', ['reid'], dict()) reids = [t['reid'] for t in reids] record['reid'] = ''.join( random.choice(letters + numbers) for j in range(10)) while record['reid'] in reids: record['reid'] = ''.join( random.choice(letters + numbers) for j in range(10)) db.insert(conn, 'records', record)
def buy_stock(): aid = request.cookies.get('aid') if aid is None or aid == "": return redirect(url_for("login.sign_in")) data = { 'aid': aid, 'sid': request.form.get('sid'), 'num': request.form.get('num'), 'price': float(request.form.get('price')) } if data['num'] == "": return redirect(url_for(".stock_market")) else: data['num'] = int(data['num']) tmp = db.select(conn, 'own_stk', "*", {'sid': data['sid'], 'aid': aid}) if len(tmp) == 0: db.insert(conn, 'own_stk', data) else: new_num = int(tmp[0]['num']) + data['num'] new_price = (float(tmp[0]['price']) * int(tmp[0]['num']) + data['num'] * data['price']) / new_num db.update(conn, 'own_stk', {"=": { 'price': new_price, 'num': new_num }}, { 'sid': data['sid'], 'aid': aid }) return redirect(url_for(".own_stock"))
def getuser(self, token): cond = "`token`='{0}'".format(token) try: user = db.select("`user`,`type`", 'users', cond, one=True) except BaseException as e: raise e return user if user else None
def post_user(): if auth.username() != 'admin': abort_msg(400, 'Access denied, admin needed!') if not request.json: abort_msg(400, 'Expected JSON parameters') if 'user' not in request.json: abort_msg(400, 'Value for "user" not defined') user = request.json['user'] passwd = '' if 'password' in request.json: passwd = request.json['password'] if user == 'admin': abort_msg(400, 'Can\'t create admin') _db = db.connect(settings.settings()) res = db.select(_db, 'users', where='name=\'%s\'' % user) if res: abort_msg(400, 'User \"%s\" already exists' % user) if not passwd: passwd = utils.generatePassword(20) db.insert(_db, 'users', [user, passwd, utils.generateApiKey()]) data = {'user': request.json['user'], 'password': passwd} return jsonify(data)
def submit_score(self, username, good): results = db.select( 'SELECT * ' 'FROM carma WHERE username="******"'.format( username ) ) if not results: db.execute( 'INSERT INTO carma(username, commends, reports) ' 'VALUES("{}", 0, 0)'.format(username) ) commends = 0 reports = 0 else: _, _, commends, reports = results[0] if good: commends += 1 else: reports += 1 db.execute( 'UPDATE carma SET commends={}, reports={} ' 'WHERE username="******"'.format( commends, reports, username ) )
def GET(self): pdata = web.input(order_id = None) orlist = get_order(pdata.order_id) items = menu.get_menu_items() tags = db.select('Categories').list() page = render.customer_banner(items, pdata.order_id, orlist, tags) return render_page(page)
def get_user(self,username): #user = User("manager", "$2a$12$CyLyLDPA5NFTY48o3fANQOEsni38JgHBk3FNwdUFd1OwYMBZxN146", "manager") users = db.select('Users join Role', dict(username=username), where="uname = $username and Users.role = Role.id", what='Users.id as uid,uname,password,Role.id as roleid, Role.name as user_type').list() if (len(users) == 1 ): return users[0]
def test_delete_item(self): itemid = db.insert('MenuItems', name= 'Chicken', description='Desc', price=20) delete_item(itemid) ret = db.select('MenuItems', where='name="Chicken"') with self.assertRaises(IndexError): mitem = ret[0]
def test_set_status(self): itemid = db.insert('MenuItems', name= 'Chicken', description='Desc', price=20) set_status(itemid, False) ret = db.select('MenuItems', where='name="Chicken"') mitem = ret[0] self.assertFalse(mitem.available)
def modifing_defaults(): aid = request.cookies.get('aid') if aid is None or aid == "": return redirect(url_for("login.sign_in")) did = request.form.get("did") default = db.select(conn, "defaults", "*", {'did': did})[0] return render_template("/defaults/ModifyDefaults.html", default=default)
def add_defaults(): aid = request.cookies.get('aid') if aid is None or aid == "": return redirect(url_for("login.sign_in")) default = { 'aid': aid, 'name': request.form.get("name"), 'be_from': request.form.get("be_from"), 'be_to': request.form.get("be_to"), 'starting': to_valid_time(request.form.get("starting")), 'ending': to_valid_time(request.form.get("ending")), 'cycle': request.form.get("cycle"), 'amt': request.form.get("amt"), 'remark': request.form.get("remark"), 'tag': request.form.get("tag") } dids = db.select(conn, 'defaults', ['did'], dict()) dids = set([t['did'] for t in dids]) default['did'] = ''.join( random.choice(letters + numbers) for j in range(10)) while default['did'] in dids: default['did'] = ''.join( random.choice(letters + numbers) for j in range(10)) res = db.insert(conn, 'defaults', default) if res is True: return redirect(url_for(".own_defaults")) else: return render_template("/defaults/AddingDefaults.html", msg="illegal value")
def run(self): gags = self.ng.get_latest_hot()[::-1] for gag in gags: match = db.select('SELECT * FROM gags WHERE gag="{}"'.format(gag.id)) if not match: # New gag! db.execute('INSERT INTO gags(gag, kind) VALUES("{}", "{}")'.format(gag.id, gag.kind)) if gag.kind == 'image': self.engine.telegram.sendPhoto( chat_id=settings.CHAT_ID, photo=gag.img['src'], caption=gag.name ) elif gag.kind == 'gif': import urllib2 from random import random data = urllib2.urlopen(gag.animated['data-mp4']).read() tmp = open('/tmp/{}.mp4'.format(str(int(random() * 1000000))), 'w+b') tmp.write(data) tmp.seek(0) self.engine.telegram.sendVideo( chat_id=settings.CHAT_ID, video=tmp, caption=gag.name ) elif gag.kind == 'article': self.engine.telegram.sendPhoto( chat_id=settings.CHAT_ID, photo=gag.img['href'], caption=u'Full version: {}'.format(gag.name) ) # print 'NineGagPoster.run()' self.start_later(3)
def POST(self): data = web.input(category=None, order_id=None) orlist = get_order(data.order_id) items = menu.get_menu_items_category(data.category) tags = db.select('Categories').list() page = render.customer_banner(items, data.order_id, orlist, tags) return render_page(page)
def test_create_item(self): create_item('Chicken', 'Chicken Desc', 30) ret = db.select('MenuItems', where='name="Chicken"') mitem = ret[0] self.assertEquals(mitem.name, 'Chicken') self.assertEquals(mitem.description, 'Chicken Desc') self.assertEquals(mitem.price, 30.0) self.assertTrue(mitem.available)
def test_change_pass(self): uid = db.insert('Users', uname='kevin', role=1, password=self.passwd) users.change_pass(uid, 'newpassword') ret = db.select('Users', where="uname='kevin'") user = ret[0] phash = str(user.password); expected = bcrypt.hashpw('newpassword', phash) self.assertEquals(expected, phash)
def POST(self): item = web.input(item_id=None, order_id=None, qty=None) update_quantity(item.order_id, item.item_id, item.qty) orlist = get_order(item.order_id) items = menu.get_menu_items() tags = db.select('Categories').list() page = render.customer_banner(items, item.order_id, orlist, tags) return render_page(page)
def show_all_blog(): entries = db.select('select * from blogs order by created_at DESC') for i in entries: i['created_at_converted'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(i['created_at'])) if session.has_key('username'): return render_template('blog.html', entries=entries, username=session['username'], catalogs=catalogs, tags=tags, title="Yecheng Zhou's Blog") else: return render_template('blog.html', entries=entries, catalogs=catalogs, tags=tags, title="Yecheng Zhou's Blog")
async def count(self, filter: Optional[Union[str, TextClause]] = None) -> int: q = db.select([db.func.count([x for x in self.model.pk][0])]) filter = filter if filter is not None else self.filter if filter is not None: if not isinstance(filter, TextClause): filter = db.text(filter) q = q.where(filter) return await q.gino.scalar() or 0
def member(group_id: int, user_id: int) -> bool: return bool( db.select(SELECT='user_id', TABLE='members', WHERE={ 'group_id': group_id, 'user_id': user_id }))
def POST(self): pdata = web.input(category_id=None) print pdata.category_id db.delete('Categories', vars=locals(), where="id = $pdata.category_id") items = get_menu_items() tags = db.select('Categories').list() menu_table = render.menu_editor(items, tags) return render_page(menu_table)
def GET(self): if (web.config._session.roleid != 1): raise web.seeother('/') items = get_menu_items() tags = db.select('Categories').list() menu_table = render.menu_editor(items, tags) return render_page(menu_table)
def ship_count_all(group_id: int, limit: int = 100): return db.select(SELECT=['user_id', 'count'], TABLE='ship_count', WHERE={ 'group_id': group_id, }, ORDER_BY='count DESC', LIMIT=limit)
def ship_count(group_id, user_id: int): return db.select(SELECT='count', TABLE='ship_count', WHERE={ 'group_id': group_id, 'user_id': user_id }, ORDER_BY='count DESC')
def get_markets(): query = db.select([data]) ResultProxy = connection.execute(query) ResultSet = ResultProxy.fetchall() markets = set() for r in ResultSet: markets.add(r[0]) return markets
def get_years(): query = db.select([data]) ResultProxy = connection.execute(query) ResultSet = ResultProxy.fetchall() years = set() for r in ResultSet: years.add(r[1]) return years
def show_projects(): """ call github api to get all repositories """ #global glob_username url = 'https://api.github.com/users/YechengZhou/repos' last_update_time = db.select('select created_at from projects limit 0,1;') all_repositories_info = [] print last_update_time if len(last_update_time) != 0 and int(time.time()) - int(last_update_time[0].created_at) < 3600 * 12: # do not update within 12 hours all_repositories_info = db.select('select * from projects') else: all_rep = git_api_query(url) if isinstance(all_rep, list): for i in all_rep: logging.info("query url is : %s" % i['url']) i_result = git_api_query(i['url']) this_rep = db.MyDict() if isinstance(i_result, dict): this_rep['name'] = i_result['name'] this_rep['html_url'] = i_result['html_url'] this_rep['description'] = i_result['description'] all_repositories_info.append(this_rep) #if len(last_update_time) == 0: # no project items currently, just insert what have got #flag_just_insert = True # update project schema based on new query result from Github api all_repo_name_db = db.select('select name from projects;') for p in all_repositories_info: if db.MyDict(('name',), (p.name,)) in all_repo_name_db: # just update db.update("update projects set url=?, description=?, created_at=? where name=?", p['html_url'], p['description'], time.time(), p.name) else: this_project = Projects( name=p['name'], url=p['html_url'], description=p['description'] ) this_project.insert() if session.has_key('username'): #dir(all_repositories_info[0]) return render_template('projects.html', projects=all_repositories_info, username=session['username'], title='Projects') else: return render_template('projects.html', projects=all_repositories_info, title='Projects')
def POST(self): if (web.config._session.roleid != 1): raise web.seeother('/') pdata = web.input(category=None) db.insert('Categories', category = pdata.category) items = get_menu_items() tags = db.select('Categories').list() menu_table = render.menu_editor(items, tags) return render_page(menu_table)
def last_shippers_time(group_id): r = db.select(SELECT='time', FROM='shippers', WHERE={'group_id': group_id}) if not r: r = 0 else: r = r[0] return float(r)
def before_request(): setup.create_db() _db = db.connect(settings.settings()) res = db.select(_db, 'users', ['pass'], 'name=\'%s\'' % ('admin')) if res is None or not res: admin_pass = utils.generatePassword(20) db.insert(_db, 'users', ['admin', admin_pass, utils.generateApiKey()]) print('Password for admin: "%s", keep this in safe place!\n' % (admin_pass))
def all_records(): aid = request.cookies.get('aid') if aid is None or aid == "": return redirect(url_for("login.sign_in")) records = db.select(conn, 'records', "*", {'aid': aid}, special="ORDER BY time DESC") return render_template("/homepage/HomePage.html", records=records)
def test_add_user(self): users.add_user('kevin', 1, 'password') ret = db.select('Users', where="uname='kevin'") user = ret[0] self.assertEquals(user.uname, 'kevin') self.assertEquals(user.role, 1) phash = str(user.password); expected = bcrypt.hashpw('password', phash) self.assertEquals(expected, phash)
def name(self): existUser = True while existUser: user = '******' + str(randrange(1, self.maxUsers*5, 1)) data = db.select('user', where='user="******"'.format(user)) if data: existUser = True else: existUser = False return user
def test_delete_user(self): users.add_user('kevin', 1, 'password') with self.winput as webdata: self.input_mock.action ='delete' webdata.return_value = self.input_mock with self.config: with self.assertRaises(Exception): self.manager.POST() ret = db.select('Users', where="uname='kevin'") with self.assertRaises(IndexError): user = ret[0]
def post(self): t = db.select("select * from users where email=?", request.form['email']) if t: raise APIValueError(data=request.form['email'], message="email has already been registered") user = User( email=request.form['email'], password=request.form['password'], name=request.form['username'], image=request.form['image'] if request.form.has_key('image') else "about:blank", admin=1, ) user.insert()
def authenticate(passwd=None, username=None): user = db.select(table,what='password', where='username=$username',vars={'username':username}) user = user.list() if len(user) == 0: return False else: encrypt_passwd = user[0].password split = encrypt_passwd.split('$') salt = split[0] if hashlib.sha1(salt+passwd).hexdigest() == split[1]: return True else: return False
def test_web_delete_item(self): itemid = db.insert('MenuItems', name= 'Chicken', description='Desc', price=20) with self.winput as info: self.input_mock.action = 'delete' self.input_mock.item = itemid info.return_value = self.input_mock with self.config: with self.assertRaises(Exception): self.menued.POST() ret = db.select('MenuItems', where='1=1') with self.assertRaises(IndexError): mitem = ret[0]
def test_web_hide_item(self): itemid = db.insert('MenuItems', name= 'Chicken', description='Desc', price=20) with self.winput as info: self.input_mock.action = 'hide' self.input_mock.item = itemid info.return_value = self.input_mock with self.config: with self.assertRaises(Exception): self.menued.POST() ret = db.select('MenuItems', where='id=$itemid', vars=locals()) mitem = ret[0] self.assertFalse(mitem.available)