Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
 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))
Пример #4
0
 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
Пример #5
0
 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]
Пример #7
0
 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)
Пример #8
0
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)
Пример #9
0
 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))
Пример #10
0
def get_door():
    cursor = r.db('dashboard') \
              .table('doors') \
              .order_by(r.desc('timestamp')) \
              .run(conn)
    return cursor[0]['opened'], cursor[0]['timestamp']
Пример #11
0
def get_humidity():
    cursor = r.db('dashboard') \
              .table('humidity') \
              .order_by(r.desc('timestamp')) \
              .run(conn)
    return cursor[0]['value'], cursor[0]['timestamp']
Пример #12
0
def get_temperature():
    cursor = r.db('dashboard') \
              .table('temperatures') \
              .order_by(r.desc('timestamp')) \
              .run(conn)
    return cursor[0]['value'], cursor[0]['timestamp']