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
    def process(self):
        if len(self.specs) == 0:
            checker.down(message='No one signal package')

        data = numpy.concatenate(self.specs)
        mx = numpy.max(data)
        data = numpy.log(data / mx) >= -1.5
        skiped, comp = compress(data)

        if len(comp) < 2:
            checker.corrupt(message='No signal')

        bounds = get_bounds(numpy.unique(comp))

        if len(bounds) == 0:
            checker.mumble(message="Can't understand dot size")

        silence = comp[1::2]
        signal = comp[0::2]
        if skiped == 2:
            signal, silence = silence, signal
        signal = list(numpy.where(signal <= bounds[0], '.', '-'))
        silence = apply_silence_bounds(silence, bounds)
        if skiped == 2:
            signal, silence = silence, signal
        morse = merge(signal, silence)
        text = convert_to_text(morse)

        if not text:
            checker.corrupt(message='No one symbol in signal')

        return text
Esempio n. 3
0
async def check_status(response, log_info):
    if response.status >= 500:
        checker.down(error='{}\n\tstatus code is {}. Content: {}\n'.format(
            log_info, response.status, await response.text()))
    if response.status != 200:
        checker.mumble(error='{}\n\tstatus code is {}. Content: {}\n'.format(
            log_info, response.status, await response.text()))
Esempio n. 4
0
 def send(self, method, message):
     try:
         if type(method) is str:
             method = get_method(method)
         self.socket.sendall(method + message)
     except Exception as ex:
         checker.down(error="can't send data. {}".format(message),
                      exception=ex)
Esempio n. 5
0
	async def get(self, url):
		url = self.get_url(url)
		try:
			async with self.session.get(url) as response:
				await check_status(response)
				return await response.text()
		except Exception as ex:
			checker.down(error=url, exception=ex)
Esempio n. 6
0
 def __init__(self, hostname, port=None):
     self.hostname = hostname
     self.port = 12345 if port is None else port
     self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     try:
         self.socket.connect((self.hostname, self.port))
     except Exception as ex:
         checker.down(error="can't connect to {}".format(hostname),
                      exception=ex)
Esempio n. 7
0
	def get_listener(self):
		url = self.get_url('publics', proto='ws')
		try:
			connection = self.session.ws_connect(url, origin=self.get_url(''))
		except Exception as ex:
			checker.down(exception=ex)
		helper = WSHelper(connection)
		helper.start()
		return helper
Esempio n. 8
0
 def recv(self, length):
     buf = bytearray()
     try:
         while len(buf) < length:
             buf += self.socket.recv(length - len(buf))
         return buf
     except Exception as ex:
         checker.down(
             error="can't recive full data. recived: {}".format(buf),
             exception=ex)
Esempio n. 9
0
 async def get_connection(self, url):
     url = self.get_url(url, proto='ws')
     log_info = get_log_info(self.name, url)
     try:
         connection = await self.session.ws_connect(url,
                                                    origin=self.get_url(''))
         checker.log(log_info + ' connected')
     except Exception as ex:
         checker.down(error=log_info, exception=ex)
     return log_info, connection
Esempio n. 10
0
	async def post(self, url, data={}, need_check_status=True):
		url = self.get_url(url)
		try:
			async with self.session.post(url, data=data) as response:
				if need_check_status:
					await check_status(response)
					return await response.text()
				else:
					return response.status, await response.text()
		except Exception as ex:
			checker.down(error='{}\n{}'.format(url, data), exception=ex)
Esempio n. 11
0
 async def get(self, url):
     url = self.get_url(url)
     log_info = get_log_info(self.name, url)
     try:
         async with self.session.get(url) as response:
             await check_status(response, log_info)
             text = await response.text()
             checker.log(log_info + ' responsed')
             return text
     except Exception as ex:
         checker.down(error=log_info, exception=ex)
Esempio n. 12
0
 def get_listener(self, url):
     url = self.get_url(url, proto='ws')
     log_info = get_log_info(self.name, url)
     try:
         checker.log(log_info + ' cookies:' +
                     get_cookie_string(self.session.cookie_jar))
         connection = self.session.ws_connect(url, origin=self.get_url(''))
         checker.log(log_info + ' connected')
     except Exception as ex:
         checker.down(error=log_info, exception=ex)
     helper = WSHelper(connection)
     helper.start()
     return helper
Esempio n. 13
0
 async def post(self, url, data={}, need_check_status=True):
     url = self.get_url(url)
     log_info = get_log_info(self.name, url)
     try:
         checker.log(log_info + ' ' + json.dumps(data))
         async with self.session.post(url, json=data) as response:
             if need_check_status:
                 await check_status(response, log_info)
                 text = await response.text()
                 checker.log(log_info + ' responsed')
                 return text
             else:
                 return response.status, await response.text()
     except Exception as ex:
         checker.down(error='{}\n{}'.format(log_info, data), exception=ex)
Esempio n. 14
0
 async def start_internal(self):
     try:
         async for msg in self.connection:
             if msg.type == self.type:
                 checker.log(self.log_info +
                             'get data, length: {}'.format(len(msg.data)))
                 try:
                     await self.process(msg)
                 except Exception as ex:
                     checker.mumble(error='can\'t process service responce',
                                    exception=ex)
             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)