-#!/usr/bin/python3
-
-import logging
-
-from asyncio import run
-
-from mpdaio.connection import ConnectionPool
-from mpdaio.exceptions import MPDProtocolError
-
-
-HELLO_PREFIX = 'OK MPD '
-
-async def _hello(conn):
- """Consume HELLO_PREFIX"""
- # await conn.drain()
- # data = await conn.readline()
- data = await conn.readuntil(b'\n')
- rcv = data.decode('utf-8')
- if not rcv.startswith(HELLO_PREFIX):
- raise MPDProtocolError(f'Got invalid MPD hello: "{rcv}"')
- logging.debug('consumed hello prefix')
- logging.debug('"%s"', rcv)
- version = rcv.split('\n')[0][len(HELLO_PREFIX):]
- logging.debug('version: %s', version)
- return version
-
-
-async def lookup(pool, server, port, query):
- try:
- conn = await pool.connect(server, port)
- logging.info(conn)
- except (ValueError, OSError):
- return {}
-
- async with conn:
- await _hello(conn)
- conn.write(query.encode('utf-8'))
- conn.write(b'\n')
- await conn.drain()
- data = await conn.readuntil(b'OK\n')
- rcv = data.decode('utf-8')
- logging.info(rcv)
- await pool.close()
-
-
-def main():
- logging.basicConfig(level=logging.DEBUG)
- pool = ConnectionPool(max_connections=10)
- logging.info(pool)
- run(lookup(pool, 'hispaniola.lan', 6600,'currentsong'))
-
-
-if __name__ == '__main__':
- main()