signalstickers / adhesive Goto Github PK
View Code? Open in Web Editor NEWA chatbot serving as your glue between Telegram and Signal sticker packs
License: GNU Affero General Public License v3.0
A chatbot serving as your glue between Telegram and Signal sticker packs
License: GNU Affero General Public License v3.0
While trying to import a sticker pack (randompacc
), an internal error is returned with no other information. I've tried the sticker pack URL and posting an individual sticker, as below:
An internal error occurred while trying to run that command.
Hey if you see the owner, give them this code okay?
12276346398779449083
Sticker
An internal error occurred while trying to run that command.
Hey if you see the owner, give them this code okay?
14181626151827031578
HTH!
When sending a sticker to the telegram bot, the bot errors out.
This is the console log:
ERROR:adhesive.telegram_bot:Unhandled exception in convert_sticker (18322785141090698656)
Traceback (most recent call last):
File "/home/paul/Adhesive/adhesive/telegram_bot.py", line 41, in handler
await f(event)
File "/home/paul/Adhesive/adhesive/telegram_bot.py", line 78, in wrapped_handler
return await handler(event)
File "/home/paul/Adhesive/adhesive/telegram_bot.py", line 85, in convert_sticker
async for is_link, response in convert_pack_interactive(
File "/home/paul/Adhesive/adhesive/glue.py", line 50, in convert_pack_interactive
async for response in converter(db, tg_client, stickers_client, *pack_info):
File "/home/paul/Adhesive/adhesive/glue.py", line 100, in convert_to_signal
tg_pack = await tg_client(tl.functions.messages.GetStickerSetRequest(input_sticker_set))
TypeError: __init__() missing 1 required positional argument: 'hash'
My Telegram account seems to have been blocked. I submitted and published a lot of stickers in the last months, and even if I send a non-animated sticker pack, I do not get any reply anymore…
How can I get unblocked?
Conversion takes 9–20 minutes right now. This is unacceptable.
In the short term, concurrency levels need to be tuned in order to maximize rate limits. The concurrency levels would also ideally be based on a formula that factors in the per-account rate limits and the number of concurrent command invocations.
In the long term, discussion needs to happen with the signal team to work on some sort of private rate limit exemptions.
Hello I am trying since yesterday to convert a couple packs and I Get the following error
An internal error occurred while trying to run that command. Hey if you see the owner, give them this code okay? 6290528808830764738
And
An internal error occurred while trying to run that command. Hey if you see the owner, give them this code okay? 8146189056719966816
Let's see how hard it would be to rip the TGS renderer out of Telegram Desktop and bind to it using ctypes or something.
Allows users to more easily customize a pack exported by the export command
I want to host a version of this bot publicly, because it seems like @AdhesiveStickerBOt is down.
I would reallly like the option to add stickerpacks to signalstickers.com.
Where can i get an api key?
The current process is as follows:
When the sticker pack already exists on signalstickers.com you only get the error at the end then. I.e. after having all the trouble with filling out all the details.
What I'd want is the following:
This would save a lot of work.
Workaround for #4. Support adding multiple Signal accounts to the config file and hopping between them as necessary to stay within the rates.
When attempting to convert a telegram pack to signal, the folllowing error occurs:
Traceback (most recent call last):
File "/home/bots/adhesive/adhesive/telegram_bot.py", line 41, in handler
await f(event)
File "/home/bots/adhesive/adhesive/telegram_bot.py", line 63, in convert
async for is_link, response in convert_link_interactive(
File "/home/bots/adhesive/adhesive/glue.py", line 32, in convert_link_interactive
async for is_link, message in convert_pack_interactive(db, tg_client, stickers_client, converter, *pack_info):
File "/home/bots/adhesive/adhesive/glue.py", line 50, in convert_pack_interactive
async for response in converter(db, tg_client, stickers_client, *pack_info):
File "/home/bots/adhesive/adhesive/glue.py", line 126, in convert_to_signal
await download_tg_cover(tg_client, signal_pack, tg_pack)
File "/home/bots/adhesive/adhesive/glue.py", line 162, in download_tg_cover
volume_id=thumb.location.volume_id,
AttributeError: 'PhotoSize' object has no attribute 'location'
Always converting between Telegram and Signal won't scale very well (see #2).
/convert {pack}
Asks the user what platform to convert to.
/convert {pack} to {platform name}
Platform name is any supported platform, normalized to lower case.
LINE supports animated packs, and they don't use Lottie either, so they should be much easier to convert to Signal.
Hello,
First. Thank you so much for this little fix. I love it. Unfortunately, when trying to convert my favourite sticker collection from Telegram to signal, some just couldn't be converted. It also seems random to me which can, or cannot be converted (they are all in animated). The error is reproducable. When you send the bot a sticker, he responses and the process starts, but instead of a result I will get the message "An internal error occurred while trying to run that command. Hey if you see the owner, give them this code okay? 14818712013640352576" with the number changing each time. Happened with 3/6 of my sticker packs.
OS: Ubuntu 20.10
Python version: 3.8.6
Steps to reproduce
$ git clone https://github.com/signalstickers/Adhesive.git
$ cd Adhesive/
$ python3.8 -m venv virtualenv
$ . virtualenv/bin/activate
(virtualenv) $ python3.8 -m pip install -Ur requirements.txt
Throws
Collecting toml~=0.10
Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting Pillow-SIMD~=7.0
Using cached Pillow-SIMD-7.0.0.post3.tar.gz (630 kB)
Collecting telethon~=1.0
Using cached Telethon-1.19.0-py3-none-any.whl (501 kB)
Collecting sqlcipher3-binary~=0.4
Using cached sqlcipher3_binary-0.4.5-cp38-cp38-manylinux1_x86_64.whl (4.6 MB)
Collecting signalstickers-client~=3.0
Using cached signalstickers_client-3.0.0-py3-none-any.whl (16 kB)
Collecting httpx~=0.16
Using cached httpx-0.16.1-py3-none-any.whl (65 kB)
Collecting semaphore-bot~=0.9
Using cached semaphore_bot-0.9.1-py3-none-any.whl (35 kB)
Processing /home/maqp/.cache/pip/wheels/aa/ca/9c/8a3c00512585c703edc457db81c066b9609d76758c74f72ac6/pyaes-1.6.1-py3-none-any.whl
Collecting rsa
Using cached rsa-4.6-py3-none-any.whl (47 kB)
Collecting protobuf<4.0.0,>=3.13.0
Using cached protobuf-3.14.0-cp38-cp38-manylinux1_x86_64.whl (1.0 MB)
Collecting anyio<3.0.0,>=2.0.2
Using cached anyio-2.0.2-py3-none-any.whl (62 kB)
Collecting cryptography<4.0.0,>=3.1.1
Using cached cryptography-3.3.1-cp36-abi3-manylinux2010_x86_64.whl (2.6 MB)
Collecting sniffio
Using cached sniffio-1.2.0-py3-none-any.whl (10 kB)
Collecting httpcore==0.12.*
Using cached httpcore-0.12.2-py3-none-any.whl (54 kB)
Collecting rfc3986[idna2008]<2,>=1.3
Using cached rfc3986-1.4.0-py2.py3-none-any.whl (31 kB)
Collecting certifi
Using cached certifi-2020.12.5-py2.py3-none-any.whl (147 kB)
Collecting python-dateutil==2.8.1
Using cached python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
Collecting attrs==18.2.0
Using cached attrs-18.2.0-py2.py3-none-any.whl (34 kB)
Collecting pyasn1>=0.1.3
Using cached pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
Collecting six>=1.9
Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting idna>=2.8
Using cached idna-3.1-py3-none-any.whl (58 kB)
Collecting cffi>=1.12
Using cached cffi-1.14.4-cp38-cp38-manylinux1_x86_64.whl (411 kB)
Collecting h11==0.*
Using cached h11-0.12.0-py3-none-any.whl (54 kB)
Collecting pycparser
Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Using legacy setup.py install for Pillow-SIMD, since package 'wheel' is not installed.
Installing collected packages: toml, Pillow-SIMD, pyaes, pyasn1, rsa, telethon, sqlcipher3-binary, six, protobuf, sniffio, idna, anyio, h11, httpcore, rfc3986, certifi, httpx, pycparser, cffi, cryptography, signalstickers-client, python-dateutil, attrs, semaphore-bot
Running setup.py install for Pillow-SIMD ... error
ERROR: Command errored out with exit status 1:
command: /home/maqp/Adhesive/virtualenv/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py'"'"'; __file__='"'"'/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-n1wq4zlz/install-record.txt --single-version-externally-managed --compile --install-headers /home/maqp/Adhesive/virtualenv/include/site/python3.8/Pillow-SIMD
cwd: /tmp/pip-install-5cjz_zfi/Pillow-SIMD/
Complete output (176 lines):
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/PIL
copying src/PIL/XpmImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PaletteFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PdfParser.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/TiffImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/DcxImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageChops.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/BmpImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PcfFontFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GribStubImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/IcoImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageShow.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/WebPImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/_version.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/FontFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PcxImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/EpsImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/Hdf5StubImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/FtexImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageMath.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageQt.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PyAccess.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/SgiImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GimpPaletteFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageGrab.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/BdfFontFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PalmImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageCms.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/SpiderImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PdfImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/MspImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/DdsImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PsdImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/XbmImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/IcnsImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImagePalette.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageStat.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/BlpImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/TarIO.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/CurImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/XVThumbImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/McIdasImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageFont.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/Jpeg2KImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/MpegImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/_tkinter_finder.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GbrImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PcdImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/MpoImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageSequence.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageColor.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageDraw2.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/FitsStubImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/IptcImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PpmImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/__init__.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImtImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageMorph.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/BufrStubImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageTk.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/features.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ContainerIO.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GimpGradientFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImagePath.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageWin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageFilter.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/SunImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PSDraw.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GdImageFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageTransform.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/MicImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/WmfImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/FliImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageOps.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageDraw.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/FpxImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/TgaImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ExifTags.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PngImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/Image.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/GifImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/_binary.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/__main__.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/_util.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/JpegPresets.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/WalImageFile.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/JpegImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/PixarImagePlugin.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageEnhance.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/TiffTags.py -> build/lib.linux-x86_64-3.8/PIL
copying src/PIL/ImageMode.py -> build/lib.linux-x86_64-3.8/PIL
running egg_info
writing src/Pillow_SIMD.egg-info/PKG-INFO
writing dependency_links to src/Pillow_SIMD.egg-info/dependency_links.txt
writing top-level names to src/Pillow_SIMD.egg-info/top_level.txt
reading manifest file 'src/Pillow_SIMD.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.c'
warning: no files found matching '*.h'
warning: no files found matching '*.sh'
warning: no directories found matching 'Tests'
no previously-included directories found matching 'Tests'
warning: no previously-included files found matching '.appveyor.yml'
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching '.codecov.yml'
warning: no previously-included files found matching '.editorconfig'
warning: no previously-included files found matching '.readthedocs.yml'
warning: no previously-included files found matching 'azure-pipelines.yml'
warning: no previously-included files matching '.git*' found anywhere in distribution
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
no previously-included directories found matching '.azure-pipelines'
no previously-included directories found matching '.travis'
writing manifest file 'src/Pillow_SIMD.egg-info/SOURCES.txt'
running build_ext
The headers or library files could not be found for jpeg,
a required dependency when compiling Pillow from source.
Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation.html
Traceback (most recent call last):
File "/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py", line 860, in <module>
setup(
File "/home/maqp/Adhesive/virtualenv/lib/python3.8/site-packages/setuptools/__init__.py", line 145, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.8/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/maqp/Adhesive/virtualenv/lib/python3.8/site-packages/setuptools/command/install.py", line 61, in run
return orig.install.run(self)
File "/usr/lib/python3.8/distutils/command/install.py", line 589, in run
self.run_command('build')
File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/lib/python3.8/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/usr/lib/python3.8/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/lib/python3.8/distutils/command/build_ext.py", line 340, in run
self.build_extensions()
File "/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py", line 687, in build_extensions
raise RequiredDependencyException(f)
__main__.RequiredDependencyException: jpeg
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py", line 915, in <module>
raise RequiredDependencyException(msg)
__main__.RequiredDependencyException:
The headers or library files could not be found for jpeg,
a required dependency when compiling Pillow from source.
Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation.html
----------------------------------------
ERROR: Command errored out with exit status 1: /home/maqp/Adhesive/virtualenv/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py'"'"'; __file__='"'"'/tmp/pip-install-5cjz_zfi/Pillow-SIMD/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-n1wq4zlz/install-record.txt --single-version-externally-managed --compile --install-headers /home/maqp/Adhesive/virtualenv/include/site/python3.8/Pillow-SIMD Check the logs for full command output.
Ruh roh. Looks like we got an error from signalstickers.com. Here's what they said: “['Pack does not exists on Signal: wrong id or key?']”
When trying to convert a sticker from telegram to signal and submit that to signalstickers.com.
Here's what we could do.
/download {pack link}
Converts to zip file. Format could be similar to CBZ.
Default behavior would be changed to download, because that is a more flexible and universal format than a specific conversion from one chat service to another.
The idea is to have a CLI frontend and a Telegram/Signal/etc frontend for each command. For Signal this would mean that users would not have to install signald and could also script the sticker pack functions. For Telegram, users could use their own account (userbot) instead of the bot API.
The below may help people who can't get Adhesive to run. I suspect it's related to the sqlcipher3
dependency , which appears problematic on MacOS.
$ python3 -m venv .venv
$ . .venv/bin/activate
$ python3 -m adhesive.signal_auth
Traceback (most recent call last):
File "/usr/local/Cellar/[email protected]/3.9.7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/Cellar/[email protected]/3.9.7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/Volumes/path/to/signal-adhesive/adhesive/signal_auth.py", line 78, in <module>
username, password = get_credentials()
File "/Volumes/path/to/signal-adhesive/adhesive/signal_auth.py", line 68, in get_credentials
username = get_config_item('uuid_id')
File "/Volumes/path/to/signal-adhesive/adhesive/signal_auth.py", line 56, in get_config_item
row = fetchval(db(), 'SELECT json FROM items WHERE id = ?', (key,))
File "/Volumes/path/to/signal-adhesive/adhesive/signal_auth.py", line 50, in fetchval
row = db.execute(query, *args).fetchone()
sqlite3.DatabaseError: file is not a database
(Had some trouble installing sqlcipher3 and compiled it manually)
(.venv) > $ python --version
Python 3.9.7
(.venv) > $ pip freeze
anyio==2.2.0
asqlite==1.0.0
attrs==18.2.0
certifi==2021.5.30
cffi==1.14.6
cryptography==3.4.8
h11==0.12.0
httpcore==0.12.3
httpx==0.16.1
humanize==3.11.0
idna==3.2
Pillow==8.3.2
protobuf==3.17.3
pyaes==1.6.1
pyasn1==0.4.8
pycparser==2.20
pysqlcipher3==1.0.4
python-dateutil==2.8.1
rfc3986==1.5.0
rsa==4.7.2
semaphore-bot==0.10.1
signalstickers-client==3.0.0
six==1.16.0
sniffio==1.2.0
Telethon==1.23.0
toml==0.10.2
db.sqlite
in sqlitebrowser, decrypt it with the hex-encoded password from config.json
(make sure to select "raw" and to prefix the key with "0x"plaintext.sqlite
... (alternatively, you can just extract the required credentials via sqlitebrowser and skip steps 3-4)adhesive/signal_auth.py
to remove the decryption logic and point it at the plaintext db insteaddiff --git a/adhesive/signal_auth.py b/adhesive/signal_auth.py
index 13b186c..41d9732 100644
--- a/adhesive/signal_auth.py
+++ b/adhesive/signal_auth.py
@@ -36,13 +36,12 @@ def db():
return _db.get()
config_path = get_config_path()
- db_path = config_path / 'sql' / 'db.sqlite'
+ db_path = config_path / 'sql' / 'plaintext.sqlite'
if not db_path.is_file():
raise FileNotFoundError(db_path, 'not found')
db = sqlcipher.connect(db_path)
key = json.loads((config_path / 'config.json').read_text())['key']
- db.execute(f'''PRAGMA key="x'{key}'"''')
_db.set(db)
return db
I was supposed to give that to you:
An internal error occurred while trying to run that command. Hey if you see the owner, give them this code okay? 3305526389975229324
Tried again and here is another round:
An internal error occurred while trying to run that command. Hey if you see the owner, give them this code okay? 5703161261181087732
converting this pack:
gives this error:
ERROR:adhesive.signal_bot:Unhandled exception in convert_sticker (2416445211293941633)
Traceback (most recent call last):
File "/home/bots/adhesive/adhesive/signal_bot.py", line 21, in handler
await f(ctx)
File "/home/bots/adhesive/adhesive/signal_bot.py", line 64, in convert_sticker
async for _, response in convert_pack_interactive(
File "/home/bots/adhesive/adhesive/glue.py", line 48, in convert_pack_interactive
async for response in converter(db, tg_client, stickers_client, *pack_info):
File "/home/bots/adhesive/adhesive/glue.py", line 240, in convert_to_telegram
tg_pack = await tg_client(tl.functions.stickers.CreateStickerSetRequest(
File "/home/bots/adhesive/.venv/lib/python3.8/site-packages/telethon/client/users.py", line 30, in __call__
return await self._call(self._sender, request, ordered=ordered)
File "/home/bots/adhesive/.venv/lib/python3.8/site-packages/telethon/client/users.py", line 79, in _call
result = await future
telethon.errors.rpcerrorlist.StickerEmojiInvalidError: Sticker emoji invalid (caused by CreateStickerSetRequest)
Both signal and telegram bots don't respond to anything.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.