All Projects → signalstickers → signalstickers-client

signalstickers / signalstickers-client

Licence: LGPL-3.0 license
⚙️🐍 A Python client for the Signal stickers API

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to signalstickers-client

Human Signals
Human-friendly process signals
Stars: ✭ 223 (+364.58%)
Mutual labels:  signal
signal-weechat
Use signal in weechat
Stars: ✭ 69 (+43.75%)
Mutual labels:  signal
sigs
Simple thread-safe signal/slot C++17 include-only library.
Stars: ✭ 32 (-33.33%)
Mutual labels:  signal
Signalkit
SignalKit is a reactive Swift framework with focus on clean and readable API.
Stars: ✭ 245 (+410.42%)
Mutual labels:  signal
minimalist
Observable Property and Signal for building data-driven UI without Rx
Stars: ✭ 88 (+83.33%)
Mutual labels:  signal
promise-abortable
Promise lib for aborting in chain.
Stars: ✭ 19 (-60.42%)
Mutual labels:  signal
Signalstickers
🖥📱 An unofficial gallery of stickers for Signal, the secure messenger!
Stars: ✭ 210 (+337.5%)
Mutual labels:  signal
signal-portable
🚀 Signal portable for Windows
Stars: ✭ 22 (-54.17%)
Mutual labels:  signal
shinit
Basic Init Daemon in POSIX sh
Stars: ✭ 17 (-64.58%)
Mutual labels:  signal
signal-msg
Send Signal messages from GNU Emacs using signal-cli
Stars: ✭ 20 (-58.33%)
Mutual labels:  signal
Voice Gender
Gender recognition by voice and speech analysis
Stars: ✭ 248 (+416.67%)
Mutual labels:  signal
fsig
Send signals to a subprocess when files change
Stars: ✭ 16 (-66.67%)
Mutual labels:  signal
micro-signals
A tiny typed messaging system inspired by js-signals that uses ES2015 sets
Stars: ✭ 39 (-18.75%)
Mutual labels:  signal
Gipher
tinder like app for gifs built with elm and firebase
Stars: ✭ 229 (+377.08%)
Mutual labels:  signal
signal-estimator
Measure characteristics of a looped back signal.
Stars: ✭ 37 (-22.92%)
Mutual labels:  signal
Skui
Skia-based C++ UI framework
Stars: ✭ 218 (+354.17%)
Mutual labels:  signal
django-sqlalchemy
Django ORM built on top of SQLalchemy core 2.0 for seamless integration of SQLAlchemy with Django 4.1+ PostgreSQL 14+ only for now. [pre POC now]
Stars: ✭ 101 (+110.42%)
Mutual labels:  signal
antropy
AntroPy: entropy and complexity of (EEG) time-series in Python
Stars: ✭ 111 (+131.25%)
Mutual labels:  signal
FftSharp
A .NET Standard library for computing the Fast Fourier Transform (FFT) of real or complex data
Stars: ✭ 132 (+175%)
Mutual labels:  signal
prospectr
R package: Misc. Functions for Processing and Sample Selection of Spectroscopic Data
Stars: ✭ 26 (-45.83%)
Mutual labels:  signal

Python client for Signal stickers

A client to interact with the Signal stickers API.

  • Fetch sticker packs
  • Get images files
  • Upload sticker packs
  • etc.

Note: despite its name, this client does not interacts with signalstickers.com, so information defined there (tags, etc.) will not be fetched.

This client connects to the Signal sticker API. Please do not flood it.

Installation

pip3 install --user signalstickers-client

This module requires cryptography, protobuf, anyio, and httpx (but they should be installed with the previous command).

Usage

If you are not familiar with Signal stickers, read STICKERS_INTERNALS.md first.

Downloading a pack

The StickerPack object returned by await StickersClient().get_pack(<pack_id>, <pack_key>) exposes the following attributes:

  • id (string): the pack id. Equals to pack_id;
  • key (string): the pack key. Equals to pack_key;
  • title (string): the title of the pack;
  • author (string): the author of the pack;
  • nb_stickers (int): the number of stickers in the pack;
  • cover (Sticker): the cover sticker;
  • stickers (list): the list of stickers in the pack (which are Sticker objects).

A Sticker object exposes the following attributes:

  • id (int): the id of the sticker in the pack;
  • emoji (string): the emoji mapped to this sticker;
  • image_data (bytes): the webp image of the sticker.

Uploading a pack

Same thing, but use LocalStickerPack (that does not contains id and key) instead of StickerPack.

You will need your Signal credentials To obtain them, run the Signal Desktop app with the flag --enable-dev-tools, open the Developer Tools, and type window.reduxStore.getState().items.uuid_id to get your USER, and window.reduxStore.getState().items.password to get your PASSWORD.

Example usage

See examples/

Development

  • Create a pipenv with pipenv install --dev;
  • Edit the code you want;
  • Don't forget to launch tests with pipenv run py.test.

License

See LICENSE

Legal

This is not an official Signal project. This is an independant project.
Signal is a registered trademark in the United States and other countries.

Author

Romain Ricard [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].