Esempio n. 1
0
 async def start_internal(self):
     try:
         async with self.connection as ws:
             async for msg in ws:
                 if msg.type == aiohttp.WSMsgType.TEXT:
                     try:
                         data = msg.json(loads=lambda s: checker.parse_json(
                             s, [
                                 'id', 'x', 'y', 'message', 'public', 'user'
                             ], ['id']))
                     except Exception as ex:
                         checker.mumble(
                             error='can\'t parse service responce',
                             exception=ex)
                     await self.queue.put(data)
                 elif msg.type == aiohttp.WSMsgType.CLOSED:
                     self.closed = True
                     break
                 else:
                     checker.mumble(
                         error=
                         'get message with unexpected type {}\nmessage: {}'.
                         format(msg.type, msg.data))
     except Exception as ex:
         checker.down(error='something down', exception=ex)
Esempio n. 2
0
 async def get_path(self, start, finish, inners):
     response = await self.post('/api/path', {
         'start': start,
         'finish': finish,
         'sub': inners
     })
     return checker.parse_json(response)
Esempio n. 3
0
	async def start_internal(self):
		async with self.connection as ws:
			async for msg in ws:
				if msg.type == aiohttp.WSMsgType.TEXT:
					try:
						data = msg.json(loads = lambda s : checker.parse_json(s, ['url', 'owner']))
					except Exception as ex:
						checher.mumble(error='can\'t parse service responce', exception=ex)
					await self.queue.put((data['url'], data['owner']))
				elif msg.type == aiohttp.WSMsgType.CLOSED:
					break
				else:
					checker.mumble(error='get message with unexpected type {}\nmessage: {}'.format(msg.type, msg.data))
Esempio n. 4
0
	async def put_post(self, title=None, body=None, public=None, signed=False, username=None, need_skill=False, skill=None):
		if title is None:
			title = checker.get_rand_string(16, ' ')
		if body is None:
			body = checker.get_rand_string(1024, ' ')
		if public is None:
			public = random.randrange(2) == 0
		request = {'title': title, 'body': body}
		if public:
			request['is_public'] = 'on'
		if signed:
			request['sign'] = self.signer.sign(self.hostname, username, request)
		if need_skill:
			if skill is None:
				skill = checker.get_rand_string(10, ' ')
			request['requirement'] = skill
		else:
			requirement = None
		response = await self.post('publish', request)
		url = checker.parse_json(response)[0]
		return url, public, title, body, skill
Esempio n. 5
0
	async def get_post(self, url, signed=False, username=None):
		response = await self.get(url)
		data = checker.parse_json(response, ['title', 'body'])
		if signed and not self.signer.check(self.hostname, username, data):
			checker.mumble(error='fail check sign for url {}'.format(url))
		return data
Esempio n. 6
0
 async def get_points(self):
     return checker.parse_json(await self.get('/api/points'))