async def get(self): def filter_accessible(v): # filter out private device groups = self.current_user.get("groups", {}).keys() groups = list(groups) + [self.current_user.email, "" ] # include user-private device return r.expr(groups).contains(v['owner'].default("")) reql = db.table_devices.without("sources", "source") if not self.current_user.admin: reql = reql.filter(filter_accessible) if self.get_argument("platform", ""): reql = reql.filter({"platform": self.get_argument("platform")}) if self.get_argument("usable", None): # 只查找能用的设备 reql = reql.filter({ "using": False, "colding": False, "present": True }) if self.get_argument("present", None): reql = reql.filter( {"present": self.get_argument("present") == "true"}) reql = reql.order_by(r.desc("createdAt")) devices = await reql.all() if self.get_argument("present", ""): present = self.get_argument("present") == "true" devices = [d for d in devices if d['present'] == present] self.write_json({ "success": True, "devices": devices, "count": await db.table_devices.count(), }) # yapf: disable
async def get(self): reql = db.table_devices.without("sources", "source").order_by(r.desc("createdAt")) if self.get_argument("platform", ""): reql = reql.filter({"platform": self.get_argument("platform")}) if self.get_argument("usable", None): # 只查找能用的设备 reql = reql.filter({ "using": False, "colding": False, "present": True }) if self.get_argument("present", None): reql = reql.filter( {"present": self.get_argument("present") == "true"}) devices = await reql.all() if self.get_argument("present", ""): present = self.get_argument("present") == "true" devices = [d for d in devices if d['present'] == present] self.write_json({ "success": True, "devices": devices, "count": await db.table_devices.count(), }) # yapf: disable
def test_sort_multi_1_desc_2(self, conn): expected = [{ 'id': 'todd', 'age': 52, 'score': 15 }, { 'id': 'pale', 'age': 52, 'score': 30 }, { 'id': 'bill', 'age': 35, 'score': 78 }, { 'id': 'glen', 'age': 26, 'score': 15 }, { 'id': 'joe', 'age': 26, 'score': 60 }] result = r.db('y').table('scores').order_by(r.desc('age'), 'score').run(conn) assertEqual(expected, list(result))
def get_lastest_price_data(self, currency): prices = ( r.db("bitfinex") .table("tickers") .order_by(r.desc("timestamp")) .filter({"currency": currency.upper()}) .limit(75) .run() ) return prices
def rq(self, filter=False): if not filter: filter = self._filter() rq = r.table(self._db_table) if len(filter)>0: rq = rq.filter(filter) if not self._order_by == None: rq = rq.order_by(*tuple([order if not order[:1] == '-' else r.desc(order[1:]) for order in list(self._order_by) ])) if not self._limit == 0: rq = rq.limit(int(self._limit)) return rq
def get_latest_prices(values_length): query = r.db('cryptobot')\ .table('messages').pluck(['price', 'time', 'trade_id']).order_by(r.desc('time')).limit(values_length).run() prices = [] trade_ids = [] time = [] # print(query[0]) for d in query: prices.append(float(d['price'])) trade_ids.append(int(d['trade_id'])) time.append(d['time'].strftime('%M:%S')) return prices[::-1], trade_ids[::-1], time[::-1]
def should_buy(self, currency, last_price): should_buy = set() prices = ( r.db("bitfinex") .table("tickers") .order_by(r.desc("timestamp")) .filter({"currency": currency.upper()}) .limit(3) .run() ) for price in prices: if last_price <= price["last_price"]: should_buy.add(True) else: should_buy.add(False) return all(el for el in should_buy)
def index(): conn = connect() if request.method == "POST": url = request.form["url"] method = request.form["method"] body = request.form["body"] assert method in ["POST", "GET"] target = {"url": url, "method": method, "body": body} t_targets().insert(target).run(conn) targets = list(t_targets().merge( lambda t: { "reports": t_reports().get_all(t["id"], index="target_id").order_by( r.desc("date")).limit(5).coerce_to("array") }).run(conn)) conn.close() return render_template("index.html", targets=targets)
def test_sort_1_attr_2_desc(self, conn): expected = [ { 'id': 'bill', 'age': 35, 'score': 78 }, { 'id': 'joe', 'age': 26, 'score': 60 }, { 'id': 'todd', 'age': 52, 'score': 15 }, ] result = r.db('y').table('scores').order_by(r.desc('score')).run(conn) assertEqual(expected, list(result))
def get_door(): cursor = r.db('dashboard') \ .table('doors') \ .order_by(r.desc('timestamp')) \ .run(conn) return cursor[0]['opened'], cursor[0]['timestamp']
def get_humidity(): cursor = r.db('dashboard') \ .table('humidity') \ .order_by(r.desc('timestamp')) \ .run(conn) return cursor[0]['value'], cursor[0]['timestamp']
def get_temperature(): cursor = r.db('dashboard') \ .table('temperatures') \ .order_by(r.desc('timestamp')) \ .run(conn) return cursor[0]['value'], cursor[0]['timestamp']