Closed difhel closed 2 months ago
same here
Needs some thinking on how best to approach this as tstickers supports multiple backends
For now, try the following:
pip install tstickers[rlottie-python]
@FredHappyface I tried this, still the same error.
Ah that's no good. I'll take a look at this as soon as I've some free time!
1. Install tstickers Package:
pip install tstickers
2. Install Required Dependencies:
pip install "rlottie-python>=1.3.3,<2"
pip install "pyrlottie>=2024.0.1,<2026"
pip install "loguru>=0.7.2,<2"
3. Create and Set Up Working Directory:
mystickers
.mystickers
directory.env.txt
and place your bot token
inside this file.4. Run the Sticker Conversion Command in mystickers
:
Navigate to the mystickers directory and run:
cd mystickers
tstickers --pack https://t.me/addstickers/DonutTheDog
Hello! After applying your fix I got this error:
(telegram-stickers-py3.12) mark@Marks-MacBook-Pro telegram-stickers % tstickers -p https://t.me/addstickers/AnimatedEmojies
INFO | ============================================================
INFO | Starting to scrape "AnimatedEmojies" ..
INFO | Time taken to scrape 598 stickers - 41.604s
INFO |
INFO | ------------------------------------------------------------
INFO | Starting download of "animatedemojies" into downloads/animatedemojies
Traceback (most recent call last):
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/bin/tstickers", line 8, in <module>
sys.exit(cli())
^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/tstickers/cli.py", line 95, in cli
_ = downloader.downloadPack(stickerPack)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/tstickers/downloader.py", line 231, in downloadPack
downloads += 1 if i.result() > 0 else 0
^^^^^^^^^^
File "/usr/local/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/local/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/tstickers/downloader.py", line 199, in downloadSticker
return path.write_bytes(self.session.get(link).content)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/requests_cache/session.py", line 126, in get
return self.request('GET', url, params=params, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/requests_cache/session.py", line 182, in request
return super().request(method, url, *args, headers=headers, **kwargs) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/requests_cache/session.py", line 217, in send
cached_response = self.cache.get_response(actions.cache_key)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/requests_cache/backends/base.py", line 78, in get_response
response = self.responses[self.redirects[key]]
~~~~~~~~~~~~~~^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/requests_cache/backends/sqlite.py", line 311, in __getitem__
cur = con.execute(f'SELECT value FROM {self.table_name} WHERE key=?', (key,))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.InterfaceError: bad parameter or other API misuse
I think this is an unrelated issue connected with caching, as I often encourage it when redownloading packs. After I used rm -rf ./downloads
, I encountered another issue:
(telegram-stickers-py3.12) mark@Marks-MacBook-Pro telegram-stickers % tstickers -p https://t.me/addstickers/AnimatedEmojies
INFO | ============================================================
INFO | Starting to scrape "AnimatedEmojies" ..
INFO | Time taken to scrape 598 stickers - 0.599s
INFO |
INFO | ------------------------------------------------------------
INFO | Starting download of "animatedemojies" into downloads/animatedemojies
INFO | Time taken to download 598 stickers - 0.810s
INFO |
INFO | ------------------------------------------------------------
INFO | -> Cache miss for AnimatedEmojies!
INFO | Converting stickers "AnimatedEmojies"...
Traceback (most recent call last):
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/bin/tstickers", line 8, in <module>
sys.exit(cli())
^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/tstickers/cli.py", line 100, in cli
downloader.convertPack(
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/tstickers/downloader.py", line 272, in convertPack
converted = convertedTgs = convertAnimated(
^^^^^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/tstickers/convert.py", line 146, in convertAnimated
converted = convertMap[backend](swd, threads, frameSkip, scale)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/tstickers/convert_pyrlottie.py", line 55, in convertAnimated
converted += doConvMultLottie(
^^^^^^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/tstickers/convert_pyrlottie.py", line 48, in doConvMultLottie
asyncio.get_event_loop().run_until_complete(
File "/usr/local/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/pyrlottie/__init__.py", line 480, in convMultLottie
_ = [destFiles.add(destFile) for destFile in await future]
^^^^^^^^^^^^
File "/usr/local/Cellar/python@3.12/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/asyncio/tasks.py", line 631, in _wait_for_one
return f.result() # May raise f.exception().
^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/pyrlottie/__init__.py", line 535, in convSingleLottie
binDir = _getBinDir()
^^^^^^^^^^^^
File "/Users/mark/Library/Caches/pypoetry/virtualenvs/telegram-stickers-usHqk-q4-py3.12/lib/python3.12/site-packages/pyrlottie/__init__.py", line 200, in _getBinDir
raise OSError(msg)
OSError: Sorry, your environment is not currently supported! system='Darwin' machine='x86_64'
Task exception was never retrieved
[...many repeats of this error]
Solution for RuntimeError: Backend could not be loaded
Solution Steps:
1. Install tstickers Package:
pip install tstickers
2. Install Required Dependencies:
pip install "rlottie-python>=1.3.3,<2" pip install "pyrlottie>=2024.0.1,<2026" pip install "loguru>=0.7.2,<2"
3. Create and Set Up Working Directory:
- Create a directory named
mystickers
.- Navigate to the
mystickers
directory.- Create a file named
env.txt
and place yourbot token
inside this file.4. Run the Sticker Conversion Command in
mystickers
:Navigate to the mystickers directory and run:
cd mystickers tstickers --pack https://t.me/addstickers/DonutTheDog
Its working but its failing to convert anything
Edit: After letting it run for a while it seems like for some reason it does convert some sticker packs but doesn't others..
Check the pyrlottie documentation does not support the darwin_x86_64 and darwin_arm64 .conversion stickers can specify rlottie-python or pyrlottie You can use rlottie-python to try the conversion. For example, python -m tstickers --backend rlottie-python
Hey taking a look at this today to make this all a bit more user friendly! Now the tstickers package will install with pyrlottie regardless of the extra chosen. Bit frustrating that python doesn't handle this particularly nicely. Also the cli will provide a more helpful error message in the case of using an uninstalled backend. For example in testing
$ tstickers -b rlottie-python
ERROR | !! rlottie-python is not installed! Install with "pip install rlottie-python"
Apologies this has taken so long to get around to! I'll have a look at the pyrlottie lib later to see what I can do around the darwin support. Broadly the lottie-python lib has broader os support than this lib but seems to be a little less performant as a backend (due to the use of python-pillow oddly)
I'll also write some documentation on this as I realise it's a bit broken and confusing at the moment (also fixing as much of the broken as possible)
@FredHappyface I tried this, still the same error.
Hmm really strange. Ive tested locally and I suspect this is largely down to unclear documentation as things behave largely as expected. Ie
PS C:\Users\Dell> py -m venv venv
PS C:\Users\Dell> .\venv\Scripts\activate.ps1
(venv) PS C:\Users\Dell> py -m pip install tstickers[pyrlottie]
...
Installing collected packages: win32-setctime, urllib3, typing-extensions, six, platformdirs, Pillow, packaging, numpy, idna, colorama, charset-normalizer, certifi, attrs, url-normalize, requests, loguru, emoji, deprecation, cattrs, requests-cache, pyrlottie, tstickers
...
stickers -b pyrlottie
works as expected
stickers -b lottie-python
throws an error
As noted above, I've changed the default install to include pyrlottie
going forwards (releasing later today) so not specifying a backend will work on a vanilla install :)
Its working but its failing to convert anything
Edit: After letting it run for a while it seems like for some reason it does convert some sticker packs but doesn't others..
Hi can you create a new issue for this? And can you provide the link to the sticker pack not working/ or a stacktrace so I can investigate this? Thanks :)
Before You Begin
Before proceeding, please make sure to follow these steps:
Issue Details
I am always getting this error when trying to download a stickerpack.
Description
I added my bot token to
env
, thenSystem Information
Please provide the following additional information about your system or environment: