Coder Social home page Coder Social logo

smart-tv-telegram's Introduction

smart-tv-telegram PyPI PyPI - License Docker

A Telegram Bot to stream content on your smart TV (also Chromecast, FireTV and other UPnP device)

Demonstration video

poc

Feature

  • Streaming, the bot will not have to download the entire file before playing it on your device
  • You can play anything if your device has the right codec
  • You can stream on any device that supports UPnP (AVTransport)
  • Chromecast, Vlc (telnet api) and Kodi (xbmc http api) support
  • Streaming over HTTP
  • Web interface that plays videos in your browser

Note: Chromecast (1st, 2nd and 3rd Gen.) only supports H.264 and VP8 video codecs

Note: Most LG TVs with WebOS have an incorrect UPnP implementation

How-to setup (Release from pypi)

Make sure you have an updated version of python, only the latest version will be supported

  • Install smart-tv-telegram from pip
  • Download config.ini.example as config.ini
  • Edit config.ini
  • Start from python entrypoint
python3 -m pip install --upgrade smart-tv-telegram
curl https://raw.githubusercontent.com/andrew-ld/smart-tv-telegram/master/config.ini.example -o config.ini
nano config.ini
smart_tv_telegram -c config.ini -v 1

How-to setup (Manual build)

Make sure you have an updated version of python, only the latest version will be supported

  • Download the repository
  • Build wheel package
  • Install package
  • Copy config.ini.example to config.ini
  • Edit config.ini
  • Start from python entrypoint
git clone https://github.com/andrew-ld/smart-tv-telegram
cd smart-tv-telegram
python3 -m pip install wheel
python3 setup.py sdist bdist_wheel
python3 -m pip install dist/*.whl
cp config.ini.example config.ini
nano config.ini
smart_tv_telegram -c config.ini -v 1

How-to setup (Docker)

  • Copy config.ini.example to config.ini
  • Edit config.ini
  • Build Docker image
  • Start Docker container
cp config.ini.example config.ini
nano config.ini
docker image build -t smart-tv-telegram:latest .
docker run --network host -v "$(pwd)/config.ini:/app/config.ini:ro" -d smart-tv-telegram:latest

Troubleshooting

Q: How do I use the web interface?

A: Set enabled to 1 in web_ui config block, and change the password

  • open http://listen_ip:listen_port/static/index.html

  • now if you send a video in the bot on telegram you can choose to play it in the browser

Q: My Firewall block upnp and broadcasting, how can use kodi without it

A: Set xbmc_enabled to 1 and add your kodi device to xbmc_devices list

Q: What is the format of xbmc_devices

A: A List of Python Dict with host, port, (and optional: username and password)

example: [{"host": "192.168.1.2", "port": 8080, "username": "pippo", "password": "pluto"}]

Q: How-To control vlc from this bot

A: set vlc_enabled to 1 and add your vlc device to vlc_devices list

Q: What is the format of vlc_devices

A: A List of Python Dict with host, port, (and optional: password)

example: [{"host": "127.0.0.1", "port": 4212, "password": "123"}]

Q: How-To enable upnp on my device that use kodi

A: follow this guide (you should enable remote control)

Q: How do I get a token?

A: From @BotFather

Q: How do I set up admins?

A: You have to enter your user_id, there are many ways to get it, the easiest is to use @getuseridbot

Q: How do I get an app_id and app_hash?

A: https://core.telegram.org/api/obtaining_api_id#obtaining-api-id

Q: The video keeps freezing

A: Check the video bitrate, this bot supports maximum ~4.5Mb/s

smart-tv-telegram's People

Contributors

andrew-ld avatar davtur19 avatar dependabot[bot] avatar marcobuster avatar pouup avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smart-tv-telegram's Issues

400 AUTH_BYTES_INVALID

With the config in the next passage, igot this issue:
pyrogram.errors.exceptions.bad_request_400.AuthBytesInvalid: [400 AUTH_BYTES_INVALID]: The authorization bytes are invalid (caused by "auth.ImportAuthorization")

api_id=1289xxx
api_hash=188843f0a6814389xxxxxxxx
token=509780xxxx:AAEVTmCxYQ0A1xxxxxxxxx
session_name=SmartTVBot
file_fake_fw_wait=0.2

[bot]
admins=[35149xxx]
block_size=1048576
request_gone_timeout=900

[http]
listen_host=192.168.1.2
listen_port=8350

[web_ui]
enabled=0
password=owo

[discovery]
upnp_enabled=1
upnp_scan_timeout=3
chromecast_enabled=0
chromecast_scan_timeout=2
xbmc_enabled=1
xbmc_devices=[{"host": "192.168.178.71", "port": 8080},]
vlc_enabled=0
vlc_devices=[{"host": "127.0.0.1", "port": 4212, "password": "123"},]
device_request_timeout=3

pyrogram.errors.exceptions.bad_request_400.AuthBytesInvalid

File "/usr/local/bin/smart_tv_telegram", line 8, in
sys.exit(entry_point())
File "/usr/local/lib/python3.9/dist-packages/smart_tv_telegram/main.py", line 93, in entry_point
arg_parser(_devices)
File "/usr/local/lib/python3.9/dist-packages/smart_tv_telegram/main.py", line 82, in arg_parser
main(args.config, devices)
File "/usr/local/lib/python3.9/dist-packages/smart_tv_telegram/main.py", line 48, in main
loop.run_until_complete(async_main(config, devices))
File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/usr/local/lib/python3.9/dist-packages/smart_tv_telegram/main.py", line 42, in async_main
await mtproto.start()
File "/usr/local/lib/python3.9/dist-packages/smart_tv_telegram/mtproto.py", line 120, in start
await session.send(ImportAuthorization(id=exported_auth.id, bytes=exported_auth.bytes))
File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 425, in send
return await self._send(data, timeout=timeout)
File "/usr/local/lib/python3.9/dist-packages/pyrogram/session/session.py", line 395, in _send
RPCError.raise_it(result, type(data))
File "/usr/local/lib/python3.9/dist-packages/pyrogram/errors/rpc_error.py", line 78, in raise_it
raise getattr(
pyrogram.errors.exceptions.bad_request_400.AuthBytesInvalid: [400 AUTH_BYTES_INVALID]: The authorization bytes are invalid (caused by "auth.ImportAuthorization")

Streaming not working on Sony KD-55XE9005

Hello!
I really like this bot and enjoy it in my office. But my smart TV in my living room is driving me crazy ;-)

Environment:
Docker container on Synology DS718+
Problem-TV: Sony KD-55XE9005

Forwarding the video and the bot lists the TV twice (tried both).
On TV nothing happens.
Telegram prints error message.
Same video(s) working on my office TV.

Here is the error log from docker:
Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/smart_tv_telegram/bot.py", line 183, in _select_device await device.stop() File "/usr/local/lib/python3.9/site-packages/smart_tv_telegram/devices/upnp_device.py", line 92, in stop raise error File "/usr/local/lib/python3.9/site-packages/smart_tv_telegram/devices/upnp_device.py", line 89, in stop await stop.async_call(InstanceID=0) File "/usr/local/lib/python3.9/site-packages/async_upnp_client/client.py", line 521, in async_call raise UpnpError('Error during async_call(), status: %s, body: %s' % async_upnp_client.client.UpnpError: Error during async_call(), status: 500, body: <?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>701</errorCode><errorDescription>Action Stop failed </errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope

Error message in Telegram:
Error during async_call(), status: 500, body: <?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring>UPnPError</faultstring><detail><UPnPError xmlns="urn:schemas-upnp-org:control-1-0"><errorCode>701</errorCode><errorDescription>Action Stop failed </errorDescription></UPnPError></detail></s:Fault></s:Body></s:Envelope>

ini-file:
[discovery] upnp_enabled=1 upnp_scan_timeout=3 chromecast_enabled=1 chromecast_scan_timeout=3 xbmc_enabled=0 xbmc_devices=[{"host": "192.168.42.140", "port": 8080},] vlc_enabled=0 vlc_devices=[{"host": "127.0.0.1", "port": 4212, "password": "123"},] device_request_timeout=3

I hope this information are enough to help me with this problem and hope it's not my TV ;-)

Cheers!
Jake

Unhealthy container / Startup Loop

Someone an idea why my container don't passes the health check since the last update?

2023-12-15T14:48:59.068690422Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-12-15T14:48:59.068718442Z File "/usr/local/lib/python3.11/site-packages/smart_tv_telegram/mtproto.py", line 63, in <genexpr> 2023-12-15T14:48:59.068750423Z if not all(x.is_connected.is_set() for x in self._client.media_sessions.values()): 2023-12-15T14:48:59.068777338Z ^^^^^^^^^^^^^^ 2023-12-15T14:48:59.068800004Z AttributeError: 'Session' object has no attribute 'is_connected' 2023-12-15T14:49:31.226975893Z ERROR:aiohttp.server:Error handling request 2023-12-15T14:49:31.227418142Z Traceback (most recent call last): 2023-12-15T14:49:31.227458842Z File "/usr/local/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request 2023-12-15T14:49:31.227503025Z resp = await request_handler(request) 2023-12-15T14:49:31.227538959Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-12-15T14:49:31.227575558Z File "/usr/local/lib/python3.11/site-packages/aiohttp/web_app.py", line 504, in _handle 2023-12-15T14:49:31.227609385Z resp = await handler(request) 2023-12-15T14:49:31.227635947Z ^^^^^^^^^^^^^^^^^^^^^^ 2023-12-15T14:49:31.227659356Z File "/usr/local/lib/python3.11/site-packages/smart_tv_telegram/http.py", line 99, in _health_check_handler 2023-12-15T14:49:31.227695903Z await self._mtproto.health_check() 2023-12-15T14:49:31.227723063Z File "/usr/local/lib/python3.11/site-packages/smart_tv_telegram/mtproto.py", line 63, in health_check 2023-12-15T14:49:31.227754229Z if not all(x.is_connected.is_set() for x in self._client.media_sessions.values()): 2023-12-15T14:49:31.227786516Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2023-12-15T14:49:31.227813540Z File "/usr/local/lib/python3.11/site-packages/smart_tv_telegram/mtproto.py", line 63, in <genexpr> 2023-12-15T14:49:31.227845481Z if not all(x.is_connected.is_set() for x in self._client.media_sessions.values()): 2023-12-15T14:49:31.227873528Z ^^^^^^^^^^^^^^

Implement play queue

Currently when sending multiple files to bot nothing useful is happening.
It would be nice to have play queue, especially for audio and pictures.

P.S.
pychromecast has some facilities, you can see in examples\media_enqueue.py

how to run it?

where should i put this: smart_tv_telegram -c config.ini -v 1 in the config file?
can you please explain?

noob questions

Hello andrew,
at first I am sry my bad english but i have many questions to ask :D how should i install the requirments for python? exam.:aiohttp and this stuff.. and after finishing the installation should i start any server? file? and how? and i have something called blocksize on bot option on config.ini what should i fill here? and my last question is: the listenhost and -port on http option.. should i write the ip adress from my phone or the device which i want play on?
and merry Christmas :)

TV Addon

I am impressed and thank you for your work.

Would it be possible that you could provide a TV addon for Kodi.tv?

Best regards

404 when connect to http web

Can I use http web to view stream video? When I conenct to 127.0.0.1:8330 (ip and port set in config.ini) it respone 404, I can not get video to play on web.

Docker automatic builds with GitHub Actions

Hi, it would be cool to use GitHub Actions to build the Docker image then push it to the GitHub Container Registry or Docker Hub.
If you want I can do it then send you a PR.

No device selection

Hello, I have a problem. If I send a video to the bot, the bot answers with "select a Device" but there are no devices to select. If I write the Device name manually, the video starts on that Device. Only the selection is gone since a while.

Maybe the log can help:
2024-05-22T07:58:43.140401793Z ERROR:aiohttp.server:Error handling request 2024-05-22T07:58:43.140944594Z Traceback (most recent call last): 2024-05-22T07:58:43.140983823Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request 2024-05-22T07:58:43.141028033Z resp = await request_handler(request) 2024-05-22T07:58:43.141057184Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle 2024-05-22T07:58:43.141103118Z resp = await handler(request) 2024-05-22T07:58:43.141130795Z File "/usr/local/lib/python3.10/site-packages/smart_tv_telegram/http.py", line 254, in _stream_handler 2024-05-22T07:58:43.141164693Z await stream.write(block) 2024-05-22T07:58:43.141191733Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_response.py", line 514, in write 2024-05-22T07:58:43.141221595Z await self._payload_writer.write(data) 2024-05-22T07:58:43.141250742Z File "/usr/local/lib/python3.10/site-packages/aiohttp/http_writer.py", line 119, in write 2024-05-22T07:58:43.141281499Z await self.drain() 2024-05-22T07:58:43.141308766Z File "/usr/local/lib/python3.10/site-packages/aiohttp/http_writer.py", line 171, in drain 2024-05-22T07:58:43.141337242Z await self._protocol._drain_helper() 2024-05-22T07:58:43.141362139Z File "/usr/local/lib/python3.10/site-packages/aiohttp/base_protocol.py", line 90, in _drain_helper 2024-05-22T07:58:43.141434448Z await asyncio.shield(waiter) 2024-05-22T07:58:43.141465108Z File "/usr/local/lib/python3.10/asyncio/selector_events.py", line 862, in _read_ready__data_received 2024-05-22T07:58:43.141497177Z data = self._sock.recv(self.max_size) 2024-05-22T07:58:43.141522953Z ConnectionResetError: [Errno 104] Connection reset by peer 2024-05-22T07:58:48.957245663Z ERROR:aiohttp.server:Error handling request 2024-05-22T07:58:48.957708244Z Traceback (most recent call last): 2024-05-22T07:58:48.957750178Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 433, in _handle_request 2024-05-22T07:58:48.957796130Z resp = await request_handler(request) 2024-05-22T07:58:48.957825777Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle 2024-05-22T07:58:48.957858421Z resp = await handler(request) 2024-05-22T07:58:48.957910954Z File "/usr/local/lib/python3.10/site-packages/smart_tv_telegram/http.py", line 254, in _stream_handler 2024-05-22T07:58:48.957945758Z await stream.write(block) 2024-05-22T07:58:48.957972569Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_response.py", line 514, in write 2024-05-22T07:58:48.958005139Z await self._payload_writer.write(data) 2024-05-22T07:58:48.958032105Z File "/usr/local/lib/python3.10/site-packages/aiohttp/http_writer.py", line 119, in write 2024-05-22T07:58:48.958117828Z await self.drain() 2024-05-22T07:58:48.958144464Z File "/usr/local/lib/python3.10/site-packages/aiohttp/http_writer.py", line 171, in drain 2024-05-22T07:58:48.958173747Z await self._protocol._drain_helper() 2024-05-22T07:58:48.958199047Z File "/usr/local/lib/python3.10/site-packages/aiohttp/base_protocol.py", line 90, in _drain_helper 2024-05-22T07:58:48.958230024Z await asyncio.shield(waiter) 2024-05-22T07:58:48.958256447Z File "/usr/local/lib/python3.10/asyncio/selector_events.py", line 862, in _read_ready__data_received 2024-05-22T07:58:48.958291280Z data = self._sock.recv(self.max_size) 2024-05-22T07:58:48.958317272Z ConnectionResetError: [Errno 104] Connection reset by peer

Maybe anyone can help?

asyncio.exceptions.CancelledError

Occurs when sending video to bot, immediately after I choose device from list.

I have tried to update some packages, but still no luck.

Exception in thread Thread-3:
Traceback (most recent call last):
  File "C:\Apps\Python\Lib\threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "C:\Apps\Python\Lib\site-packages\pychromecast\socket_client.py", line 525, in run
    self.initialize_connection()
  File "C:\Apps\Python\Lib\site-packages\pychromecast\socket_client.py", line 295, in initialize_connection
    host, port, service_info = get_host_from_service(
                               ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Apps\Python\Lib\site-packages\pychromecast\dial.py", line 38, in get_host_from_service
    service_info = zconf.get_service_info("_googlecast._tcp.local.", service.data)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Apps\Python\Lib\site-packages\zeroconf\_core.py", line 540, in get_service_info
    if info.request(self, timeout, question_type):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Apps\Python\Lib\site-packages\zeroconf\_services\info.py", line 473, in request
    return bool(run_coro_with_timeout(self.async_request(zc, timeout, question_type), zc.loop, timeout))
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Apps\Python\Lib\site-packages\zeroconf\_utils\asyncio.py", line 82, in run_coro_with_timeout
    return asyncio.run_coroutine_threadsafe(aw, loop).result(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Apps\Python\Lib\concurrent\futures\_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "C:\Apps\Python\Lib\concurrent\futures\_base.py", line 401, in __get_result
    raise self._exception
  File "C:\Apps\Python\Lib\site-packages\zeroconf\_services\info.py", line 482, in async_request
    await zc.async_wait_for_start()
  File "C:\Apps\Python\Lib\site-packages\zeroconf\_core.py", line 507, in async_wait_for_start
    raise NotRunningException
zeroconf._exceptions.NotRunningException
ERROR:pyrogram.dispatcher:
Traceback (most recent call last):
  File "D:\repo\smart-tv-telegram\smart_tv_telegram\bot.py", line 199, in _select_device
    await device.play(uri, data.filename, local_token)
  File "D:\repo\smart-tv-telegram\smart_tv_telegram\devices\chromecast_device.py", line 60, in play
    await run_method_in_executor(self._device.wait)
  File "D:\repo\smart-tv-telegram\smart_tv_telegram\tools.py", line 120, in run_method_in_executor
    return await asyncio.get_event_loop().run_in_executor(_EXECUTOR, func, *args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Apps\Python\Lib\site-packages\pyrogram\dispatcher.py", line 240, in handler_worker
    await handler.callback(self.client, *args)
  File "D:\repo\smart-tv-telegram\smart_tv_telegram\bot.py", line 191, in _select_device
    async with async_timeout.timeout(self._config.device_request_timeout) as timeout_context:
  File "C:\Apps\Python\Lib\site-packages\async_timeout\__init__.py", line 129, in __aexit__
    self._do_exit(exc_type)
  File "C:\Apps\Python\Lib\site-packages\async_timeout\__init__.py", line 212, in _do_exit
    raise asyncio.TimeoutError
TimeoutError

Video installion tutorial

This project looks awsome.
Can you make an tutorial video on how to install and use this project, i have had problems running this script command, "python3 setup.py sdist bdist_wheel" as i got Error, yes i have latest python version.
I will appreciate if you could make a tutorial.
Thank you.

Error message on Kodi 19.3

Hello, i send a video to the bot, than I choose my device inside of telegram. Then I got in Kodi the message (I try to translate from German to English): "Playback not possible: General error during playback. See log for more information."

The I click ok on that message and click on play inside the telegram bot and the video starts to play correctly.

The log from the bot:

2022-02-19T13:56:51.139356210Z ERROR:aiohttp.server:Error handling request

2022-02-19T13:56:51.139859422Z Traceback (most recent call last):

2022-02-19T13:56:51.139898404Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request

2022-02-19T13:56:51.139943449Z resp = await request_handler(request)

2022-02-19T13:56:51.139973970Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle

2022-02-19T13:56:51.140007634Z resp = await handler(request)

2022-02-19T13:56:51.140034669Z File "/usr/local/lib/python3.10/site-packages/smart_tv_telegram/http.py", line 199, in _stream_handler

2022-02-19T13:56:51.140071826Z message = await self._mtproto.get_message(int(message_id))

2022-02-19T13:56:51.140102307Z File "/usr/local/lib/python3.10/site-packages/async_lru.py", line 237, in wrapped

2022-02-19T13:56:51.140159258Z return (yield from asyncio.shield(fut, loop=_loop))

2022-02-19T13:56:51.140193645Z TypeError: shield() got an unexpected keyword argument 'loop'

2022-02-19T13:56:51.155174446Z ERROR:aiohttp.server:Error handling request

2022-02-19T13:56:51.155308508Z Traceback (most recent call last):

2022-02-19T13:56:51.155340919Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request

2022-02-19T13:56:51.155380615Z resp = await request_handler(request)

2022-02-19T13:56:51.155408669Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle

2022-02-19T13:56:51.155439415Z resp = await handler(request)

2022-02-19T13:56:51.155467352Z File "/usr/local/lib/python3.10/site-packages/smart_tv_telegram/http.py", line 199, in _stream_handler

2022-02-19T13:56:51.155498567Z message = await self._mtproto.get_message(int(message_id))

2022-02-19T13:56:51.155526554Z File "/usr/local/lib/python3.10/site-packages/async_lru.py", line 212, in wrapped

2022-02-19T13:56:51.155563856Z return (yield from asyncio.shield(fut, loop=_loop))

2022-02-19T13:56:51.155591498Z TypeError: shield() got an unexpected keyword argument 'loop'

2022-02-19T13:56:51.176612909Z ERROR:aiohttp.server:Error handling request

2022-02-19T13:56:51.176726014Z Traceback (most recent call last):

2022-02-19T13:56:51.176771796Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request

2022-02-19T13:56:51.176810056Z resp = await request_handler(request)

2022-02-19T13:56:51.176837468Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle

2022-02-19T13:56:51.176868097Z resp = await handler(request)

2022-02-19T13:56:51.176893363Z File "/usr/local/lib/python3.10/site-packages/smart_tv_telegram/http.py", line 199, in _stream_handler

2022-02-19T13:56:51.176924518Z message = await self._mtproto.get_message(int(message_id))

2022-02-19T13:56:51.176952683Z File "/usr/local/lib/python3.10/site-packages/async_lru.py", line 212, in wrapped

2022-02-19T13:56:51.176981317Z return (yield from asyncio.shield(fut, loop=_loop))

2022-02-19T13:56:51.177008257Z TypeError: shield() got an unexpected keyword argument 'loop'

2022-02-19T13:56:51.196970907Z ERROR:aiohttp.server:Error handling request

2022-02-19T13:56:51.197108377Z Traceback (most recent call last):

2022-02-19T13:56:51.197143613Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_protocol.py", line 435, in _handle_request

2022-02-19T13:56:51.197186016Z resp = await request_handler(request)

2022-02-19T13:56:51.197213981Z File "/usr/local/lib/python3.10/site-packages/aiohttp/web_app.py", line 504, in _handle

2022-02-19T13:56:51.197245273Z resp = await handler(request)

2022-02-19T13:56:51.197271746Z File "/usr/local/lib/python3.10/site-packages/smart_tv_telegram/http.py", line 199, in _stream_handler

2022-02-19T13:56:51.197302690Z message = await self._mtproto.get_message(int(message_id))

2022-02-19T13:56:51.197331778Z File "/usr/local/lib/python3.10/site-packages/async_lru.py", line 212, in wrapped

2022-02-19T13:56:51.197364021Z return (yield from asyncio.shield(fut, loop=_loop))

2022-02-19T13:56:51.197391282Z TypeError: shield() got an unexpected keyword argument 'loop'
`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.