Created
December 21, 2018 16:02
-
-
Save aaronbassett/1cdee3106f09f65d4f4d821d64d37d94 to your computer and use it in GitHub Desktop.
Send Fancy SMS with Python and the Nexmo SMS API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import click | |
import nexmo | |
import string | |
@click.command() | |
@click.argument( | |
"font", | |
type=click.Choice( | |
["gothic", "typewriter", "double_struck", "script", "circled", "squared"] | |
), | |
) | |
@click.argument("number_to") | |
@click.argument("sender") | |
@click.argument("message") | |
def send_fancy_sms(font, number_to, sender, message): | |
fonts_lowercase = { | |
"gothic": "๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐", | |
"typewriter": "๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐ ๐ก๐ข๐ฃ", | |
"double_struck": "๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐ ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง๐จ๐ฉ๐ช๐ซ", | |
"script": "๐ถ๐ท๐ธ๐นโฏ๐ปโ๐ฝ๐พ๐ฟ๐๐๐๐โด๐ ๐๐๐๐๐๐๐๐๐๐", | |
"circled": "๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ก๐ ข๐ ฃ๐ ค๐ ฅ๐ ฆ๐ ง๐ จ๐ ฉ", | |
"squared": "๐ ฐ๐ ฑ๐ ฒ๐ ณ๐ ด๐ ต๐ ถ๐ ท๐ ธ๐ น๐ บ๐ ป๐ ผ๐ ฝ๐ พ๐ ฟ๐๐๐๐๐๐ ๐๐๐๐", | |
} | |
fonts_uppercase = { | |
"gothic": "๐ฌ๐ญ๐ฎ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต๐ถ๐ท๐ธ๐น๐บ๐ป๐ผ๐ฝ๐พ๐ฟ๐๐๐๐๐๐ ", | |
"typewriter": "๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต๐ถ๐ท๐ธ๐น๐บ๐ป๐ผ๐ฝ๐พ๐ฟ๐๐๐๐๐๐ ๐๐๐๐", | |
"double_struck": "๐ธ๐นโ๐ป๐ผ๐ฝ๐พโ๐๐๐๐๐โ๐โโโ๐๐๐๐๐๐๐โค", | |
"script": "๐โฌ๐๐โฐโฑ๐ขโโ๐ฅ๐ฆโโณ๐ฉ๐ช๐ซ๐ฌโ๐ฎ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต", | |
"circled": "๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ก๐ ข๐ ฃ๐ ค๐ ฅ๐ ฆ๐ ง๐ จ๐ ฉ", | |
"squared": "๐ ฐ๐ ฑ๐ ฒ๐ ณ๐ ด๐ ต๐ ถ๐ ท๐ ธ๐ น๐ บ๐ ป๐ ผ๐ ฝ๐ พ๐ ฟ๐๐๐๐๐๐ ๐๐๐๐", | |
} | |
for letter in string.ascii_lowercase: | |
message = message.replace( | |
letter, fonts_lowercase[font][string.ascii_lowercase.index(letter)] | |
) | |
for letter in string.ascii_uppercase: | |
message = message.replace( | |
letter, fonts_uppercase[font][string.ascii_uppercase.index(letter)] | |
) | |
client = nexmo.Client( | |
key=os.environ["NEXMO_KEY"], secret=os.environ["NEXMO_SECRET"] | |
) | |
client.send_message( | |
{"from": sender, "to": number_to, "type": "unicode", "text": message} | |
) | |
if __name__ == "__main__": | |
send_fancy_sms() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment