smsutil
smsutil copied to clipboard
Utilities for encoding, decoding and splitting SMS.
smsutil - encode, decode and split SMS
.. image:: https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg :target: https://saythanks.io/to/jezeniel
.. image:: https://img.shields.io/pypi/pyversions/smsutil :target: https://pypi.org/project/smsutil/
Simple set of utility functions for encoding, decoding and splitting sms messages. Shift tables is currently not supported.
Features
- Codecs for encoding and decoding
GSM 03.38 <https://en.wikipedia.org/wiki/GSM_03.38>
_ - Message splitting for both
UCS2/UTF-16
andGSM 03.38
Installation
To install smsutil
:
.. code-block:: bash
$ pip install smsutil
Basic Usage
Example for encoding and decoding:
.. code-block:: python
import smsutil
smsutil.is_valid_gsm('nobita and doraemon') # True smsutil.is_valid_gsm('๐') # False
gsm = smsutil.encode('the quick brown fox jumps over the lazy dog {@}')
b'the quick brown fox jumps over the lazy dog \x1b(\x00\x1b)'
smsutil.decode(gsm) # encoding='gsm0338'
'the quick brown fox jumps over the lazy dog {@}'
utf16 = smsutil.encode('ๆ้ซใงใใ ๐')
b'g\x00\x9a\xd80g0W0_\x00 \xd8<\xdfT'
smsutil.decode(utf16, encoding='utf_16_be') # should specify encoding
'ๆ้ซใงใใ ๐'
sms = smsutil.split('[the quick brown fox]') len(sms.parts) # 1 sms.encoding # 'gsm0338' sms.parts[0].content # '[the quick brown fox]' sms.parts[0].length # 21 sms.parts[0].bytes # 23
sms = smsutil.split('ๆ้ซใงใใ ๐') len(sms.parts) # 1 sms.encoding # 'utf_16_be' sms.parts[0].content # 'ๆ้ซใงใใ ๐' sms.parts[0].length # 7 sms.parts[0].bytes # 16
smsutil is just using python's builtin codecs for UCS2/UTF-16.
Contributing
- Fork repository.
- Create a pull request.
- โจ๐ฐโจ