Copy Link
Add to Bookmark
Report

NULL mag Issue 06 21 Embed ansi to Python

eZine's profile picture
Published in 
null magazine
 · 26 Dec 2020

  




lets see a way to embed ansi screens/logos/menus to a python script,
without the need to attach external files to a package. all of our
ansi stuff will be in the file of the script. to do so, we have first
to convert the ansi images/files to base64 strings.

in linux is easy as this: base64 <filename>
the output of the command is what we want... almost... as you see below
we have to put all this big string between quotes and add the plus sign
at the end. the quickest way, is with this command:

base64 <ansifile> | sed "s/^/\'/" | sed "s/$/\'+/"

just copy/paste the output into your script, add the libraries we need,
like base64 and os, which are standard and you are ready to go...

just see the example commands at the end of this script example.

--- copy here ----------------------------------------------------------------
#!/usr/bin/python3
import base64
import os
screen = base64.b64decode( \
'ChtbNTZDG1szN23fChtbMTszMG0gICAgICAgICAgICAgICAbWzQxQxtbMDszNzs0MG0gIBtbMzZt'+
'39wbWzE7MzBt3BtbMDszNzs0MG0gICAgIBtbM0MbWzMzbSAbWzBtChtbMTszMG0gICAgICAgICAg'+
'ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgG1swOzM3OzQwbSAbWzM2bd/cG1sxOzMw'+
'bdwbWzA7MzY7NDBtIBtbMTszMG0gICAgICAgICAgG1swOzM3OzQwbSAbWzM2bdvb39zb3BtbMzNt'+
'ICDf3BtbMzA7NDNtICAgIGUbWzMzOzQwbW1hZxtbMG0KIBtbMzZtICAg3Nzc3Nzc3NwbWzE7MzBt'+
'3BtbMDszNzs0MG3fG1szQ9wgG1s1QyAbWzE7MzBt3BtbMDszNzs0MG0gIBtbN0MbWzE7MzBt3xtb'+
'MDszNzs0MG3cG1szQxtbMzZtsLAbWzM3bSAgIBtbMzZt29uystwbWzM3bSAgG1s0QxtbMzZt3xtb'+
'MzdtICAbWzM2bdvb29vbG1szN20gICAbWzMzbSAgG1szN20gG1szM22wsLCwsLCwsBtbMG0KG1s0'+
'QxtbMzZt39/f39+ysrLb29vbG1sxOzMwOzQ2bd8bWzA7MzY7NDBt3NwbWzE7MzBt3BtbMDszNzs0'+
'MG0gICAgIBtbMzZtstsbWzM3bSAgG1szNm3cG1szN20gG1s2QxtbMzZt29wbWzM3bSAbWzM2bbKy'+
'G1szN20gICAbWzM2bdvbG1sxOzQ2bSAgG1swOzM2OzQwbdsbWzM3bSAgG1s1QxtbMzZt3xtbMzdt'+
'IBtbMzZt29sbWzE7NDZt3xtbMDszNjs0MG3bshtbMG0KIBtbMzZtsrKy3NzcG1szN20gICAgG1sz'+
'QxtbMzZt39/b3NvbshtbMTszMDs0Nm3fG1swOzM3OzQwbSAbWzM2bdzb29ve2xtbMzdtIBtbN0Mb'+
'WzM2bdvb29zbG1szN20gICAbWzM2bdvbG1sxOzQ2bd8bWzA7MzY7NDBt29sbWzdDG1szN20gG1sz'+
'Nm3b3Nvb2xtbNUMbWzMxbSAbWzMzbSAgICAgG1swbQobWzNDG1szNm3f29vb3tvcG1szN20gIBtb'+
'MTszMG2wsLAbWzA7Mzc7NDBtICAbWzM2bdvb29vb29zf29veIBtbMzdtICAbWzE7MzBtsLCwsCAb'+
'WzA7Mzc7NDBtIBtbMzZt29sbWzE7NDZt3xtbMDszNjs0MG3b2xtbMzdtICAgG1szNm3b2xtbMTs0'+
'Nm3cG1swOzM2OzQwbdvbG1szN20gIBtbMTszMG3fG1s0N23cIBtbNDBt2yAbWzA7Mzc7NDBtIBtb'+
'MzZt2xtbMTs0Nm0g3N8gG1swbQogIBtbMTszMG0gG1swOzM3OzQwbSAgG1szNm3b294bWzE7NDZt'+
'3yAbWzA7Mzc7NDBtICAbWzE7MzA7NDdtstsbWzQwbdsgG1swOzM3OzQwbSAbWzM2bdvbG1sxOzQ2'+
'bd8bWzA7MzY7NDBt29sbWzE7NDZt3BtbMDszNjs0MG3b2xtbMTs0Nm3cIBtbMDszNjs0MG3bG1sz'+
'N20gG1szNm3cG1szN20gG1sxOzMwbSAgICAgG1swOzM3OzQwbSAgG1szNm3bG1sxOzQ2bdzfG1sw'+
'OzM2OzQwbdsbWzM3bSAgG1sxOzM2OzQ2bSAg39wbWzA7MzY7NDBt2xtbMzdtIN8gG1sxOzMwbSAg'+
'G1szQxtbMDszNzs0MG0gG1szNm3bG1sxOzQ2bd/c3xtbMDszNjs0MG3bG1szN20gIBtbMTszMG3f'+
'G1s0N23cICAbWzM3bd/cG1szMG0gICDc39wbWzQwbdsgG1swbQogG1sxOzMwbdzfG1swOzM3OzQw'+
'bSAgG1szNm3b29wbWzE7NDZtINwbWzA7Mzc7NDBtICAbWzE7MzBt29vbIBtbMDszNzs0MG0gG1sx'+
'OzM2bdvf2xtbNDZt3N8bWzQwbdvbG1s0Nm3cG1s0MG3b29sbWzA7Mzc7NDBtICAgG1sxOzMwOzQ3'+
'bbLb29vbG1s0MG0gG1swOzM3OzQwbSAbWzE7MzY7NDZt29zb3BtbMDszNjs0MG3bG1szN20gG1sz'+
'Nm3bG1sxOzQ2bdvb29sbWzZDG1s0MG2wsLCyshtbMDszNjs0MG3b39sbWzM3bSAgG1sxOzMwbd8b'+
'WzA7Mzc7NDBt39/fG1sxbd8bWzA7Mzc7NDBt39/fG1sxOzMwbd/c39wgG1swbQogG1sxOzMwbSAg'+
'G1swOzM3OzQwbSAgG1sxOzM2bdsbWzQ2bd/c39wbWzQwbdsbWzA7Mzc7NDBtIBtbMTszMG0gIBtb'+
'MDszNzs0MG0gG1sxOzMwbSAbWzA7Mzc7NDBtICAbWzE7MzZt29vb29vb29vb2xtbMDszNzs0MG0g'+
'ICAbWzE7MzBt2xtbNDdt29sbWzQwbSAbWzA7Mzc7NDBtICAgG1sxOzM2bdvb29vbINvb27KysLAb'+
'WzA7Mzc7NDBtICAbWzE7MzBtIBtbM0MbWzM2bdvb29vbG1swOzM3OzQwbSDf3AogG1sxOzMwbSAg'+
'ICAbWzM2bdvb29vb2xtbNEOwsLCysrLb29/f39/fG1swOzM3OzQwbSAgIBtbMTszMG2wsLAbWzA7'+
'Mzc7NDBtICAbWzE7MzZtsLCystvb29vb29vb2xtbM0MbWzMwbSDb2yAbWzA7Mzc7NDBtIBtbMTsz'+
'Nm3b29vb2yAgG1swOzM3OzQwbSAg3wogG1sxOzMwbSAgICAbWzA7Mzc7NDBtIBtbMTszNm3b29/f'+
'3xtbNUMbWzA7Mzc7NDBtICAbWzFt3Nzc3Nzc29vb29sbWzA7Mzc7NDBtIBtbN0MgG1sxbdzc3Nwg'+
'G1szNm3f39/f2yAbWzA7MzY7NDBtIBtbMTszMG0gG1swOzM3OzQwbSAbWzE7MzBt39/fG1szNm0g'+
'IN/b29vbG1s2QxtbMDszNzs0MG0gChtbNUMgG1sxbdzc3NvbIBtbNUMbWzA7Mzc7NDBtIBtbMW3b'+
'29vb29zb29vb2xtbMDszNzs0MG0gG1s3QyAbWzFt29vb29vb29vc3BtbMDszNzs0MG0gICAgG1sx'+
'OzMwbbCwsCAbWzM3bd8g3NwgG1szNm3fG1swOzM3OzQwbSAbWzZDICAgCiAbWzE7MzBtZXVnIRtb'+
'MDszNzs0MG0gG1sxbdvb2xtbNDZt29sbWzQwbdwbWzVDG1swOzM3OzQwbSAbWzFt29vb29vbG1sw'+
'OzM3OzQwbSAbWzFt29vb27IbWzZDG1swOzM3OzQwbSAbWzFtstvb29vf29vb29sbWzA7Mzc7NDBt'+
'ICAgIBtbMTszMG0gICAbWzA7Mzc7NDBtICAgG1sxbdvb29vb3BtbMDszNzs0MG3cICAgICAgIBtb'+
'MW2wsLCwsBtbMG0KG1s1QyAgG1sxbdvb29vbG1szQxtbMDszNzs0MG0gICAgG1sxbdvbG1s0N23b'+
'29sbWzA7Mzc7NDBtIBtbMW3bG1s0N23b29vbG1s3QxtbNDBt29vb29sbWzA7Mzc7NDBtIBtbMW3b'+
'2xtbNDdt29vbG1swOzM3OzQwbSAbWzVDICAgICDfG1sxOzQ3bd8bWzQwbdvb29vb2xtbNDdt3Btb'+
'NDBt3NwbWzA7Mzc7NDBt3CAgICAgICDcCiAbWzFtsLCwsCAbWzA7Mzc7NDBtIBtbMW3b29vb2xtb'+
'MDszNzs0MG0g3yAg3CAgG1sxbdvbG1s0N23b298bWzA7Mzc7NDBtICAbWzE7NDdt39vb29wbWzQw'+
'bdwbWzA7Mzc7NDBt3CAgICAbWzFt29vb29sbWzA7Mzc7NDBtICAbWzFt29sbWzQ3bdvb3BtbNDBt'+
'3BtbMDszNzs0MG3cICAgIBtbMW2wsLCwG1swOzM3OzQwbSAgIN8bWzFt3xtbNDdt3xtbNDBt29vb'+
'29vb29vb29vbG1s0N23cG1swbQrc3Nzc3CAgG1sxbdvb39wbWzQ3bd8bWzA7Mzc7NDBtICDc3yDb'+
'IBtbMW3b3BtbNDdt3xtbMDszNzs0MG3fINwgIN8bWzE7NDdt3xtbNDBt29sbWzQ3bdwbWzA7Mzc7'+
'NDBt3BtbMTs0N23c29wbWzA7Mzc7NDBtIBtbMTs0N23b29vb2xtbM0MbWzA7Mzc7NDBt3xtbMTs0'+
'N23fG1s0MG3bG1s0N23b29vb29wbWzQwbdzc3Nzc3BtbMDszNzs0MG3b3CAgICAgIN8bWzFt39/f'+
'G1s0N23fG1s0MG3b27KyshtbMG0KG1s1Q9/cIBtbMW3fG1s0N23fG1swOzM3OzQwbd8g3N8bWzND'+
'2yAbWzE7NDdt3xtbMDszNzs0MG3fINzfIN/cG1sxOzMwbSAbWzA7Mzc7NDBtIN8bWzFt398bWzQ3'+
'bd8bWzQwbdvbG1s0N23b3BtbNDBt29vb29vcG1swOzM3OzQwbdwgICDfG1sxbd/fG1s0N23f29vf'+
'G1swOzM3OzQwbd8bWzE7NDdt3xtbNDBt29vb29sbWzA7Mzc7NDBtICDc39/f3Nzc3CAgIBtbMW0g'+
'ICAgIBtbMG0KG1s2QxtbMTszMG0gG1swOzM3OzQwbd/cG1sxOzMwbSAbWzA7Mzc7NDBt3N8gG1s0'+
'Q9wgINzfICAgICDf3NzcICAgICAgG1sxbbKystsbWzQ3bd8bWzQwbd/fG1swOzM3OzQwbSAg3yDf'+
'ICAgINzfG1sxbd8bWzA7Mzc7NDBt3xtbMW3fG1swOzM3OzQwbd8gINzc3yAgICAgICDb29vb29vf'+
'3N8bWzlD3xtbNUMgICDc3yAgICAgIBtbNUPf39/cIN8bWzFtsLCwG1swOzM3OzQwbSAgINzfG1s0'+
'Q9wgIN8gIN/f39/f3xtbMTdDICAbWzE3Q98bWzE2Q9/c3Nzc3Nzf3yAKG1s1NUMbWzM2bWkgcyBz'+
'IHUgZSAgIBtbMUMbWzMwOzQ2bd/cIDAwNiDf3BtbMG0KG1s3MkMbWzM2bbCwsLCwsLAbWzBtCg==')

# for utf8 terminals use this:
print(''.join(str(screen,"cp437")))
# for cp437 terminals use this:
#os.write(1, screen)
--- stop copying here --------------------------------------------------------
--- give credits here --------------------------------------------------------
i had some trouble displaying the exact ansi, in a non utf8 terminal,
so i had to use the os.write function for it. you can make your script
detect the terminal encoding and use the proper function, according
that.





← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT