Giter Club home page Giter Club logo

adhesive's Introduction

Deutsch Français

About

A nice and handy gallery to browse and download sticker packs for Signal. This site is served on signalstickers.org, directly from this GitHub repository.

Adding a sticker pack to this site

Use the tool Contribute at the top of signalstickers.org, and follow the guide!

Contribution guidelines

We reserve the right to moderate and refuse packs or stickers. In particular:

  • Stickers packs that call for hatred or violence against people or communities based on age, body size, disability, ethnicity, gender identity and expression, nationality, personal appearance, race, religion, or sexual identity and orientation;
  • Sticker packs that directly promote a brand or a company.

We also reserve the right to moderate packs or stickers after their submission and acceptance.

The idea is to keep a family atmosphere: I'd like my grandmother to be able to navigate sticker packs quietly.

Q&A

How can I create a sticker pack?

Follow the tutorial on the Signal support site to upload your stickers to Signal.

Note: when creating stickers, don't forget to add a white stroke to improve legibility on dark themes! You can use this script or use this project to automatically resize and add a white stroke on all the PNG and WEBP images of a directory.

How can I create animated stickers?

You can use our lib to create animated stickers from GIF/APNG. You can also use the Signal Desktop app to create animated stickers from APNG files.

You can also use some tools we provide to assist you with animated stickers creation.

Note that support for some APNG files is not perfect on Signal for iOS at the moment.

Am I required to add my sticker pack to this site to share it with my friends?

No. You can just send any sticker to your friends and they will be able to install the pack, or you can share your sticker pack using the signal.art link that you got when you created your sticker pack, or by using the share button from inside the signal app's sticker managment screen.

Do not hesitate to post your pack on social networks using the hashtag #makeprivacystick as well!

Can you create a sticker pack for me?

Ask on Discussions, and a fellow user might help you!

Where can I find more stickers?

Is this a commercial project?

No. This project is and will remain open-source.

Who built this?

@romainricard, @darkobits, @valkheim, @muellermartin, @sticker201 and @u32i64 participated to the conception and the code.

The stickers were added by the community. Most of stickers from Telegram were ported by @signal-stickers.

License

See LICENSE.md.

adhesive's People

Contributors

ioistired avatar romainricard avatar thibmeu 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

adhesive's Issues

Installation requires compilation from source

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.

Did the bot block me? How to get unblocked?

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?

LINE support

LINE supports animated packs, and they don't use Lottie either, so they should be much easier to convert to Signal.

Numeric error when trying to submit to signalstickers.com

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

MacOS: `sqlite3.DatabaseError: file is not a database`

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.

Trying to get the credentials (fails)

$ 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

Dependencies

(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

My workaround/solution

  1. Open Signal's 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"
    image
  2. Save the full db as plaintext.sqlite ... (alternatively, you can just extract the required credentials via sqlitebrowser and skip steps 3-4)
  3. Patch adhesive/signal_auth.py to remove the decryption logic and point it at the plaintext db instead
diff --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
  1. Run it again (works)

Not being able to convert certain sticker

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.

The rate limits suck

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.

No any respond on telegram app

Hi When I apply start or send the sticker link on the telegram app. No any respond. And it already fews day issue. Even del and reopen the bot. It still no respone.
55530167-E6A7-4FB2-A049-822A6550A8BD

A CLI frontend for easier deployment

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.

Internal Error while trying to convert packs.

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

→Telegram: handle invalid emojis

converting this pack:

https://signal.art/addstickers/#pack_id=e76a010259fc6011059fee999946387f&pack_key=a517923068c864f320c4c3fff07f157562050518a92c8c0bab0b4b58a1d6ad42

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)

Where do i get signalstickers_api_token?

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?

Check whether sticker pack exists on signalstickers.com before submitting

currently

The current process is as follows:

  1. you send a sticker
  2. Bot converts it.
  3. You press to submit it to signalstickers.com
  4. You fill out all the details including tags
  5. You press submit

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.

wanted

What I'd want is the following:

  1. you send a sticker
  2. Bot converts it.
  3. You press to submit it to signalstickers.com
  4. Not now checks whether the pack already exists on signalstickers.com and if so, cancels the process showing you an error already now, that this won't work.

This would save a lot of work.

Can no longer download pack thumbnails

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'

Error when sending stickers to Telegram Bot: TypeError: __init__() missing 1 required positional argument: 'hash'

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'

Explicit X↔Y conversion command

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.

Export a pack to zip

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.

"internal error" importing `randompacc`

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:

https://t.me/addstickers/randompacc

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!

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.