Skip to content

Commit df50767

Browse files
committed
name query handler
1 parent b5879a0 commit df50767

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

web/server.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,53 @@ def get(self):
217217
self.write(resp)
218218

219219

220+
class NameHandler(BaseHandler):
221+
executor = ThreadPoolExecutor(50)
222+
223+
@run_on_executor()
224+
def get_top_resource(self):
225+
if self.get_query_argument("human", None):
226+
aggregation = [
227+
{
228+
"$project": {
229+
"name": {
230+
"$concat": [
231+
"$data.info.area",
232+
"$data.info.channel_cn",
233+
": ",
234+
"$data.info.cnname",
235+
" ",
236+
"$data.info.enname",
237+
" ",
238+
"$data.info.aliasname"
239+
]
240+
},
241+
"_id": False
242+
}
243+
}
244+
]
245+
query_cursor = self.mongo.db["yyets"].aggregate(aggregation)
246+
else:
247+
projection = {'_id': False,
248+
'data.info.cnname': True,
249+
'data.info.enname': True,
250+
'data.info.aliasname': True,
251+
'data.info.channel_cn': True,
252+
253+
}
254+
query_cursor = self.mongo.db["yyets"].find({}, projection)
255+
256+
data = []
257+
for i in query_cursor:
258+
data.extend(i.values())
259+
return dict(data=data)
260+
261+
@gen.coroutine
262+
def get(self):
263+
resp = yield self.get_top_resource()
264+
self.write(resp)
265+
266+
220267
class MetricsHandler(BaseHandler):
221268
executor = ThreadPoolExecutor(50)
222269

@@ -256,6 +303,7 @@ class RunServer:
256303
handlers = [
257304
(r'/api/resource', ResourceHandler),
258305
(r'/api/top', TopHandler),
306+
(r'/api/name', NameHandler),
259307
(r'/api/metrics', MetricsHandler),
260308
(r'/', IndexHandler),
261309
(r'/(.*\.html|.*\.js|.*\.css|.*\.png|.*\.jpg|.*\.ico|.*\.gif|.*\.woff2)', web.StaticFileHandler,

0 commit comments

Comments
 (0)