Возможность реализации с помощью юзербота?
Вообщем-то, решил переписать модуль для юзербота. Модуль работает с голосовыми чатами, воспроизводит разного рода медиа в голосовых чатах. Модуль использует в данный момент использует py-tgcalls==0.9.7, который требует NodeJs + tgcalls. Собственно в новой библиотеке(py-tgcalls==2.0.6) разработчик убрал надобность в NodeJs, и в качестве ядра библиотеки используется NativeTgCalls(далее NTgCalls). Собственно, что происходит? код:
async def client_ready(self, client: CustomTelegramClient, db: Any):
class HikkaTLClient(MtProtoClient):
def __init__(self, cache_duration: int, client: CustomTelegramClient):
self.package_name = 'telethon'
from pytgcalls.mtproto.telethon_client import TelethonClient
self._bind_client = TelethonClient(cache_duration, client)
class CustomPyTgCalls(PyTgCalls):
def __init__(self, app: CustomTelegramClient, cache_duration: int = 120, workers: int = 32):
Methods.__init__(self)
Scaffold.__init__(self)
self._app = HikkaTLClient(cache_duration, app)
self._is_running = False
self._env_checker = Environment(
self._REQUIRED_PYROGRAM_VERSION,
self._REQUIRED_TELETHON_VERSION,
self._REQUIRED_HYDROGRAM_VERSION,
self._app.package_name,
)
self._cache_user_peer = Cache()
self.loop = asyncio.get_event_loop()
self.workers = workers
self._binding = NTgCalls()
self._lock = asyncio.Lock()
self.executor = ThreadPoolExecutor(self.workers, thread_name_prefix='Handler')
def cache_user_peer(self) -> Cache:
return self._cache_user_peer
self._app = CustomPyTgCalls(client)
await self._app.start()
Крафт клиента для реализации pytgcalls в данном среде(вроде) правильный, так же и клиент стартует(иначе бы просто не пустило к выполнению команд, ссылаясь на разного рода ошибки, вроде: невалидного клиента mtproto)
Код для тестового проигрывания медиа в голосовом чате: взят из офф доков и дописан под реализацию модуля.
async def cplcmd(self, message: Message):
chat_id = utils.get_chat_id(message)
message = await utils.answer(message, "загружаю")
test_stream = 'http://docs.evostream.com/sample_content/assets/sintel1m720p.mp4'
try:
await self._app.play(chat_id, MediaStream(test_stream))
await utils.answer(message, "играю")
except BadRequestError as e:
await utils.answer(message, f"Ошибка: {e}")
на этапе await self._app.play(chat_id, MediaStream(test_stream))
где по логике клиент должен зайти в голосовой чат и проиграть медиа с ссылки, падает весь юзербот с критической ошибкой Aborted(core dumped).
Собственно, с помощью journalctl в логах обнаружилась ошибка:
дек 09 21:27:06 ubuntu (sd-parse-elf)[117933]: Could not parse number of program headers from core file: invalid `Elf' handle
дек 09 21:27:06 ubuntu (sd-parse-elf)[117933]: Could not parse number of program headers from core file: invalid `Elf' handle
дек 09 21:27:06 ubuntu[117927]: [?] Process 117786 (python) of user 1000 dumped core.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libharfbuzz-144af51e.so.0 without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libharfbuzz-144af51e.so.0
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libfreetype-e7d5437d.so.6.20.1 without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libfreetype-e7d5437d.so.6.20.1
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libbrotlicommon-3ecfe81c.so.1 without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libpng16-4cc6a9fc.so.16.44.0 without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libpng16-4cc6a9fc.so.16.44.0
Module /home/ubuntu/.local/lib/python3.10/site-packages/PIL/_imagingft.cpython-310-x86_64-linux-gnu.so without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/PIL/_imagingft.cpython-310-x86_64-linux-gnu.so
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libbrotlidec-ba690955.so.1 without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libXau-154567c4.so.6.0.0 without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libXau-154567c4.so.6.0.0
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/liblzma-c9407571.so.5.6.3 without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/liblzma-c9407571.so.5.6.3
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libxcb-b8a56d01.so.1.1.0 without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libxcb-b8a56d01.so.1.1.0
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libopenjp2-05423b53.so without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libopenjp2-05423b53.so
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libjpeg-45e70d75.so.62.4.0 without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libjpeg-45e70d75.so.62.4.0
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libtiff-0a86184d.so.6.0.2 without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/pillow.libs/libtiff-0a86184d.so.6.0.2
Module /home/ubuntu/.local/lib/python3.10/site-packages/PIL/_imaging.cpython-310-x86_64-linux-gnu.so without build-id.
Module /home/ubuntu/.local/lib/python3.10/site-packages/PIL/_imaging.cpython-310-x86_64-linux-gnu.so
Module libgcc_s.so.1 from deb gcc-14-14.2.0-4ubuntu2~24.04.amd64
Module libstdc++.so.6 from deb gcc-14-14.2.0-4ubuntu2~24.04.amd64
Module ntgcalls.cpython-310-x86_64-linux-gnu.so without build-id.
Stack trace of thread 117808:
#0 0x000076747389eb1c __pthread_kill_implementation (libc.so.6 + 0x9eb1c)
#1 0x000076747384526e __GI_raise (libc.so.6 + 0x4526e)
#2 0x00007674738288ff __GI_abort (libc.so.6 + 0x288ff)
#3 0x0000767462e87876 n/a (ntgcalls.cpython-310-x86_64-linux-gnu.so + 0x487876)
#4 0x0000767462e6d5cb n/a (ntgcalls.cpython-310-x86_64-linux-gnu.so + 0x46d5cb)
#5 0x0000767462e6d5a5 n/a (ntgcalls.cpython-310-x86_64-linux-gnu.so + 0x46d5a5)
#6 0x0000767462b73954 n/a (ntgcalls.cpython-310-x86_64-linux-gnu.so + 0x173954)
#7 0x0000767462b748d8 n/a (ntgcalls.cpython-310-x86_64-linux-gnu.so + 0x1748d8)
#8 0x0000767462bc6e54 n/a (ntgcalls.cpython-310-x86_64-linux-gnu.so + 0x1c6e54)
#9 0x0000767462bc5da2 n/a (ntgcalls.cpython-310-x86_64-linux-gnu.so + 0x1c5da2)
#10 0x0000767462bc7399 n/a (ntgcalls.cpython-310-x86_64-linux-gnu.so + 0x1c7399)
#11 0x000076747389ca94 start_thread (libc.so.6 + 0x9ca94)
#12 0x0000767473929c3c __clone3 (libc.so.6 + 0x129c3c)
Stack trace of thread 117786:
#0 0x0000767473929ee0 __GI_epoll_pwait (libc.so.6 + 0x129ee0)
#1 0x000076746f59acdd n/a (/home/ubuntu/.local/lib/python3.10/site-packages/uvloop/loop.cpython-310-x86_64-linux-gnu.so + 0x168cdd)
#2 0x1f68421000000000 n/a (n/a + 0x0)
ELF object binary architecture: AMD x86-64
К слову - упал ntgcalls. Пробовал и сам его собирать и брать готовую реализацию с репо На этом моменте сижу сутки и идей, что с этим делать - нет... Если у Вас возникли идеи - буду рад прислушаться.