irenegr

purple debian archey

Oct 1st, 2012
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 17.48 KB | None | 0 0
  1. #!/usr/bin/env python
  2. #
  3. # Archey [version 0.2.8]
  4. #
  5. # Archey is a system information tool written in Python.
  6. #
  7. # Maintained by Melik Manukyan <[email protected]>
  8. # ASCII art by Brett Bohnenkamper <[email protected]>
  9. # Changes Jerome Launay <[email protected]>
  10. # Fedora support by YeOK <[email protected]>
  11.  
  12. # Distributed under the terms of the GNU General Public License v3.
  13. # See http://www.gnu.org/licenses/gpl.txt for the full license text.
  14.  
  15. # Import libraries
  16. import os, sys, subprocess, optparse, re, linecache
  17. from subprocess import Popen, PIPE
  18. from optparse import OptionParser
  19. from getpass import getuser
  20. from time import ctime, sleep
  21.  
  22. # Display [Comment/Uncomment to Enable/Disable information.]
  23. display = [
  24.  'user', # Display Username
  25.  'hostname', # Display Machine Hostname
  26.  'distro', # Display Distribution
  27.  'kernel',  # Display Kernel Version
  28.  'uptime',  # Display System Uptime
  29.  'wm',  # Display Window Manager
  30.  'de', # Display Desktop Environment
  31.  'sh', # Display Current Shell
  32.  'term', # Display Current Terminal
  33.  'packages', # Display Number of Packages Installed
  34.  'cpu', # Display CPU Model
  35.  'ram', # Display RAM Usage
  36.  'disk' # Display Disk Usage
  37.  ]
  38.  
  39. # Array containing Values
  40. result = []
  41.  
  42. # Options
  43. if __name__=='__main__':
  44.  parser = OptionParser(usage='%prog [-s, --screenshot]', description='Archey is a system information tool written in Python.', version="%prog 0.2.8")
  45.  parser.add_option('-s', '--screenshot',
  46.   action='store_true', dest='screenshot', help='take a screenshot')
  47.  (options, args) = parser.parse_args()
  48.  
  49. # Define processes for identifying Desktop Environmentss, Window Managers, Shells.
  50. de_dict = {
  51.  'gnome-session': 'GNOME',
  52.  'ksmserver': 'KDE',
  53.  'xfce4-session': 'Xfce'}
  54.            
  55. wm_dict = {
  56.  'awesome': 'Awesome',
  57.  'beryl': 'Beryl',
  58.  'blackbox': 'Blackbox',
  59.  'compiz': 'Compiz',
  60.  'dwm': 'DWM',
  61.  'enlightenment': 'Enlightenment',
  62.  'fluxbox': 'Fluxbox',
  63.  'fvwm': 'FVWM',
  64.  'i3': 'i3',
  65.  'icewm': 'IceWM',
  66.  'kwin': 'KWin',
  67.  'metacity': 'Metacity',
  68.  'musca': 'Musca',
  69.  'openbox': 'Openbox',
  70.  'pekwm': 'PekWM',
  71.  'ratpoison': 'ratpoison',
  72.  'scrotwm': 'ScrotWM',
  73.  'wmaker': 'Window Maker',
  74.  'wmfs': 'Wmfs',
  75.  'wmii': 'wmii',
  76.  'xfwm4': 'Xfwm',
  77.  'xmonad': 'xmonad'}
  78.  
  79. sh_dict = {
  80.  'zsh': 'Zsh',
  81.  'bash': 'Bash',
  82.  'dash': 'Dash',
  83.  'fish': 'Fish',
  84.  'ksh': 'Ksh',
  85.  'csh': 'Csh',
  86.  'jsh': 'Jsh',
  87.  'tcsh': 'Tcsh'}
  88.  
  89. # Define Colour Scheme
  90.  
  91. clear = '\x1b[0m'
  92. blackB = '\x1b[0;30m'
  93. blackB = '\x1b[1;30m'
  94. redN = '\x1b[0;31m'
  95. redB = '\x1b[1;31m'
  96. greenN = '\x1b[0;32m'
  97. greenB = '\x1b[1;32m'
  98. yellowN = '\x1b[0;33m'
  99. yellowB = '\x1b[1;33m'
  100. blueN = '\x1b[0;34m'
  101. blueB = '\x1b[1;34m'
  102. magentaN = '\x1b[0;35m'
  103. magentaB = '\x1b[1;35m'
  104. cyanN = '\x1b[0;36m'
  105. cyanB = '\x1b[1;36m'
  106. whiteN = '\x1b[0;37m'
  107. whiteB = '\x1b[1;37m'
  108.  
  109. # Find running processes.
  110. def xmonadfix(str):
  111.  if re.compile("xmonad").match(str): return "xmonad"
  112.  return str
  113. p1 = Popen(['ps', '-u', getuser()], stdout=PIPE).communicate()[0].split('\n')
  114. processes = map(xmonadfix, [process.split()[3] for process in p1 if process])
  115. p1 = None
  116.  
  117. # Find Distro.
  118. DetectDistro = Popen(['lsb_release', '-i'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
  119.  
  120. # Print coloured key with normal value.
  121. def output(key, value):
  122.  if DetectDistro == 'Ubuntu':
  123.   output ='%s%s:%s %s' % (redB, key, clear, value)
  124.  if DetectDistro == 'Arch':
  125.   output = '%s%s:%s %s' % (blueB, key, clear, value)
  126.  if DetectDistro == 'Debian':
  127.   output = '%s%s:%s %s' % (blueB, key, clear, value)
  128.  if DetectDistro == 'Fedora':
  129.   output = '%s%s:%s %s' % (blueB, key, clear, value)
  130.  if DetectDistro == 'CrunchBang':
  131.   output = '%s%s:%s %s' % (whiteN, key, clear, value)
  132.  if DetectDistro == 'LinuxMint':
  133.   output = '%s%s:%s %s' % (greenB, key, clear, value)
  134.  result.append(output)
  135.  
  136. # RAM Function.
  137. def ram_display():
  138.  raminfo = Popen(['free', '-m'], stdout=PIPE).communicate()[0].split('\n')
  139.  ram = ''.join(filter(re.compile('M').search, raminfo)).split()
  140.  used = int(ram[2]) - int(ram[5]) - int(ram[6])
  141.  usedpercent = ((float(used) / float(ram[1])) * 100)
  142.  if usedpercent <= 33:
  143.   ramdisplay = '%s%s MB %s/ %s MB' % (greenB, used, clear, ram[1])
  144.   output('RAM', ramdisplay)
  145.  if usedpercent > 33 and usedpercent < 67:
  146.   ramdisplay = '%s%s MB %s/ %s MB' % (yellowB, used, clear, ram[1])
  147.   output('RAM', ramdisplay)
  148.  if usedpercent >= 67:
  149.   ramdisplay = '%s%s MB %s/ %s MB' % (redB, used, clear, ram[1])
  150.   output('RAM', ramdisplay)
  151.  
  152. # Screenshot Function.
  153. screen = '%s' % options.screenshot
  154. def screenshot():
  155.  print 'Taking shot in',
  156.  list = range(1,6)
  157.  list.reverse()
  158.  for x in list:
  159.    print '%s..' % x,
  160.    sys.stdout.flush()
  161.    sleep(1)
  162.  print 'Say Cheeze!'
  163.  subprocess.check_call(['scrot'])
  164.  
  165. # Operating System Function.
  166. def distro_display():
  167.  arch = Popen(['uname', '-m'], stdout=PIPE).communicate()[0].rstrip('\n')
  168.  if DetectDistro == 'Debian':
  169.   release = Popen(['lsb_release', '-r'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
  170.   distro = 'Debian %s %s' % (release, arch)
  171.  if DetectDistro == 'Ubuntu':
  172.   release = Popen(['lsb_release', '-r'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
  173.   distro = 'Ubuntu %s %s' % (release, arch)
  174.  if DetectDistro == 'Arch':
  175.   distro = 'Arch Linux %s' % arch
  176.  if DetectDistro == 'Fedora':
  177.   release = Popen(['lsb_release', '-r'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
  178.   distro = 'Fedora %s %s' % (release, arch)
  179.  if DetectDistro == 'CrunchBang':
  180.   release = Popen(['lsb_release', '-r'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
  181.  if DetectDistro == 'LinuxMint':
  182.   release = Popen(['lsb_release', '-r'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
  183.   distro = 'Mint %s %s' % (release, arch)
  184.  output('OS', distro)
  185.  
  186. # Kernel Function.
  187. def kernel_display():
  188.  kernel = Popen(['uname', '-r'], stdout=PIPE).communicate()[0].rstrip('\n')
  189.  output ('Kernel', kernel)
  190.  
  191. def user_display():
  192.  username= os.getenv('USER')
  193.  output ('User', username)
  194.  
  195. # Hostname Function.
  196. def hostname_display():
  197.  hostname = Popen(['uname', '-n'], stdout=PIPE).communicate()[0].rstrip('\n')
  198.  output('Hostname', hostname)
  199.  
  200. # CPU Function.
  201. def cpu_display():
  202.  file = open('/proc/cpuinfo').readlines()
  203.  cpuinfo = re.sub('  +', ' ', file[4].replace('model name\t: ', '').rstrip('\n'))
  204.  output ('CPU', cpuinfo)
  205.  
  206. # Uptime Function.
  207. def uptime_display():
  208.  fuptime = int(open('/proc/uptime').read().split('.')[0])
  209.  day = int(fuptime / 86400)
  210.  fuptime = fuptime % 86400
  211.  hour = int(fuptime / 3600)
  212.  fuptime = fuptime % 3600
  213.  minute = int(fuptime / 60)
  214.  uptime = ''
  215.  if day == 1:
  216.   uptime += '%d day, ' % day
  217.  if day > 1:
  218.   uptime += '%d days, ' % day
  219.  uptime += '%d:%02d' % (hour, minute)
  220.  output('Uptime', uptime)
  221.  
  222. # Desktop Environment Function.
  223. def de_display():
  224.  for key in de_dict.keys():
  225.   if key in processes:
  226.    de = de_dict[key]
  227.    output ('Desktop Environment', de)
  228.  
  229. # Window Manager Function.
  230. def wm_display():
  231.  for key in wm_dict.keys():
  232.   if key in processes:
  233.    wm = wm_dict[key]
  234.    output ('Window Manager', wm)
  235.  
  236. # Shell Function.
  237. def sh_display():
  238.  sh = os.getenv("SHELL").split('/')[-1].capitalize()
  239.  output ('Shell', sh)
  240.  
  241. # Terminal Function.
  242. def term_display():
  243.  term = os.getenv("TERM").split('/')[-1].capitalize()
  244.  output ('Terminal', term)
  245.  
  246. # Packages Function.
  247. def packages_display():
  248.  if DetectDistro == 'Ubuntu':
  249.   p1 = Popen(['dpkg', '--get-selections'], stdout=PIPE)
  250.   p2 = Popen(['grep', '-v', 'deinstall'], stdin=p1.stdout, stdout=PIPE)
  251.   p3 = Popen(['wc', '-l'], stdin=p2.stdout, stdout=PIPE)
  252.   packages = p3.communicate()[0].rstrip('\n')
  253.   output ('Packages', packages)
  254.  if DetectDistro == 'Arch':
  255.   p1 = Popen(['pacman', '-Q'], stdout=PIPE)
  256.   p2 = Popen(['wc', '-l'], stdin=p1.stdout, stdout=PIPE)
  257.   packages = p2.communicate()[0].rstrip('\n')
  258.   output ('Packages', packages)
  259.  if DetectDistro == 'Debian':
  260.   p1 = Popen(['dpkg', '--get-selections'], stdout=PIPE)
  261.   p2 = Popen(['grep', '-v', 'deinstall'], stdin=p1.stdout, stdout=PIPE)
  262.   p3 = Popen(['wc', '-l'], stdin=p2.stdout, stdout=PIPE)
  263.   packages = p3.communicate()[0].rstrip('\n')
  264.   output ('Packages', packages)
  265.  if DetectDistro == 'CrunchBang':
  266.   p1 = Popen(['dpkg', '--get-selections'], stdout=PIPE)
  267.   p2 = Popen(['grep', '-v', 'deinstall'], stdin=p1.stdout, stdout=PIPE)
  268.   p3 = Popen(['wc', '-l'], stdin=p2.stdout, stdout=PIPE)
  269.   packages = p3.communicate()[0].rstrip('\n')
  270.   output ('Packages', packages)
  271.  if DetectDistro == 'Fedora':
  272.   p1 = Popen(['rpm', '-qa'], stdout=PIPE)
  273.   p2 = Popen(['wc', '-l'], stdin=p1.stdout, stdout=PIPE)
  274.   packages = p2.communicate()[0].rstrip('\n')
  275.  if DetectDistro == 'LinuxMint':
  276.   p1 = Popen(['dpkg', '--get-selections'], stdout=PIPE)
  277.   p2 = Popen(['grep', '-v', 'deinstall'], stdin=p1.stdout, stdout=PIPE)
  278.   p3 = Popen(['wc', '-l'], stdin=p2.stdout, stdout=PIPE)
  279.   packages = p3.communicate()[0].rstrip('\n')
  280.   output ('Packages', packages)
  281.  
  282. # Disk Function.
  283. def disk_display():
  284.  p1 = Popen(['df', '-Tlh', '--total', '-t', 'ext4', '-t', 'ext3', '-t', 'ext2', '-t', 'reiserfs', '-t', 'jfs', '-t', 'ntfs', '-t', 'fat32', '-t', 'btrfs', '-t', 'fuseblk'], stdout=PIPE).communicate()[0]
  285.  total = p1.splitlines()[-1]
  286.  used = total.split()[3]
  287.  size = total.split()[2]
  288.  usedpercent = float(re.sub("[A-Z]", "", used)) / float(re.sub("[A-Z]", "", size)) * 100
  289.  if usedpercent <= 33:
  290.   fs = '%s%s %s/ %s' % (greenB, used, clear, size)  
  291.   output ('Disk', fs)
  292.  if usedpercent > 33 and usedpercent < 67:
  293.   fs = '%s%s %s/ %s' % (yellowB, used, clear, size)  
  294.   output ('Disk', fs)
  295.  if usedpercent >= 67:
  296.   fs = '%s%s %s/ %s' % (redB, used, clear, size)  
  297.   output ('Disk', fs)
  298.      
  299.  
  300. # Run functions found in 'display' array.
  301. for x in display:
  302.  funcname=x+'_display'
  303.  func=locals()[funcname]
  304.  func()
  305.  
  306. # Array containing values.
  307. result.extend(['']*(20 - len(display)))
  308.  
  309. # Result.
  310. if DetectDistro == 'Ubuntu':
  311.  print """
  312. %s                          .oyhhs:   %s
  313. %s                 ..--.., %sshhhhhh-   %s
  314. %s               -+++++++++`:%syyhhyo`  %s
  315. %s          .--  %s-++++++++/-.-%s::-`    %s
  316. %s        .::::-   %s:-----:/+++/++/.   %s
  317. %s       -:::::-.          %s.:++++++:  %s
  318. %s  ,,, %s.:::::-`             %s.++++++- %s
  319. %s./+++/-%s`-::-                %s./////: %s
  320. %s+++++++ %s.::-                        %s
  321. %s./+++/-`%s-::-                %s:yyyyyo %s
  322. %s  ``` `%s-::::-`             %s:yhhhhh: %s
  323. %s       -:::::-.         %s`-ohhhhhh+  %s
  324. %s        .::::-` %s-o+///+oyhhyyyhy:   %s
  325. %s         `.--  %s/yhhhhhhhy+%s,....     %s
  326. %s               /hhhhhhhhh%s-.-:::;    %s
  327. %s               `.:://::- %s-:::::;    %s
  328. %s                         `.-:-'     %s
  329. %s                                    %s
  330. %s""" % ( redN, result[0], redB, redN, result[1], redB, redN, result[2], yellowB, redB, redN, result[3], yellowB, redB, result[4], yellowB, redB, result[5], redB, yellowB, redB, result[6], redB, yellowB, redB, result[7], redB, yellowB, result[8], redB, yellowB, redN, result[9], redB, yellowB, redN, result[10], yellowB, redN, result[11], yellowB, redN, result[12], yellowB, redN, yellowB, result[13], redN, yellowB, result[14], redN, yellowB, result[15], yellowB, result[16], yellowB, result[17], clear )
  331.  
  332. if DetectDistro == 'Arch':
  333.  print """%s
  334. %s               +                %s
  335. %s               #                %s
  336. %s              ###               %s
  337. %s             #####              %s
  338. %s             ######             %s
  339. %s            ; #####;            %s
  340. %s           +##.#####            %s
  341. %s          +##########           %s
  342. %s         ######%s#####%s##;         %s
  343. %s        ###%s############%s+        %s
  344. %s       #%s######   #######        %s
  345. %s     .######;     ;###;`\".      %s
  346. %s    .#######;     ;#####.       %s
  347. %s    #########.   .########`     %s
  348. %s   ######'           '######    %s
  349. %s  ;####                 ####;   %s
  350. %s  ##'                     '##  %s
  351. %s #'                         `#  %s%s """ % (blueB, blueB, result[0], blueB, result[1], blueB, result[2], blueB, result[3], blueB, result[4], blueB, result[5], blueB, result[6], blueB, result[7], blueB, blueN, blueB, result[8], blueB, blueN, blueB, result[9], blueB, blueN, result[10], blueN, result[11], blueN, result[12], blueN, result[13], blueN, result[14], blueN, result[15], blueN, result[16], blueN, result[17], clear)
  352.  
  353. if DetectDistro == 'Debian':
  354.  print """%s
  355. %s                                  %s
  356. %s          _sudZUZ#Z#XZo=_         %s
  357. %s       _jmZZ2!!~---~!!X##wx       %s
  358. %s    .<wdP~~            -!YZL,     %s
  359. %s   .mX2'       _xaaa__     XZ[.   %s
  360. %s   oZ[      _jdXY!~?S#wa   ]Xb;   %s
  361. %s  _#e'     .]X2(     ~Xw|  )XXc   %s
  362. %s .2Z`      ]X[.       xY|  ]oZ(   %s
  363. %s .2#;      )3k;     _s!~   jXf`   %s
  364. %s  1Z>      -]Xb/    ~    __#2(    %s
  365. %s  -Zo;       +!4ZwerfgnZZXY'      %s
  366. %s   *#[,        ~-?!!!!!!-~        %s
  367. %s    XUb;.                         %s
  368. %s     )YXL,,                       %s
  369. %s       +3#bc,                     %s
  370. %s         -)SSL,,                  %s
  371. %s            ~~~~~                 %s
  372. %s                                  %s
  373. %s """ % (magentaB, magentaB, result[0], magentaB, result[1], magentaB, result[2], magentaB, result[3], magentaB, result[4], magentaB, result[5], magentaB, result[6], magentaB, result[7], magentaB, result[8], magentaN, result[9], magentaN, result[10], magentaN, result[11], magentaN, result[12], magentaN, result[13], magentaN, result[14], magentaN, result[15], magentaN, result[16], magentaN, result[17], clear)
  374.  
  375. if DetectDistro == 'Fedora':
  376.  print """
  377. %s           :/------------://        %s
  378. %s        :------------------://      %s
  379. %s      :-----------%s/shhdhyo/%s-://     %s
  380. %s    /-----------%somMMMNNNMMMd/%s-:/    %s
  381. %s   :-----------%ssMMMdo:/%s       -:/   %s
  382. %s  :-----------%s:MMMd%s-------    --:/  %s
  383. %s  /-----------%s:MMMy%s-------    ---/  %s
  384. %s :------    --%s/+MMMh/%s--        ---: %s
  385. %s :---     %soNMMMMMMMMMNho%s     -----: %s
  386. %s :--      %s+shhhMMMmhhy++%s   ------:  %s
  387. %s :-      -----%s:MMMy%s--------------/  %s
  388. %s :-     ------%s/MMMy%s-------------:   %s
  389. %s :-      ----%s/hMMM+%s------------:    %s
  390. %s :--%s:dMMNdhhdNMMNo%s-----------:      %s
  391. %s :---%s:sdNMMMMNds:%s----------:        %s
  392. %s :------%s:://:%s-----------://         %s
  393. %s :--------------------://           %s
  394. %s                                    %s
  395. %s """ % ( blueN, result[0], blueN, result[1], blueN, whiteB, blueN, result[2], blueN, whiteB, blueN, result[3], blueN, whiteB, blueN, result[4], blueN, whiteB, blueN, result[5], blueN, whiteB, blueN, result[6], blueN, whiteB, blueN, result[7], blueN, whiteB, blueN, result[8], blueN, whiteB, blueN, result[9], blueN, whiteB, blueN, result[10], blueN, whiteB, blueN, result[11], blueN, whiteB, blueN, result[12], blueN, whiteB, blueN, result[13], blueN, whiteB, blueN, result[14], blueN, whiteB, blueN, result[15], blueN, result[16], blueN, result[17], clear )
  396.  
  397. if DetectDistro == 'CrunchBang':
  398.  print """                              
  399. %s                ___       ___      _  %s
  400. %s               /  /      /  /     | | %s
  401. %s              /  /      /  /      | | %s
  402. %s             /  /      /  /       | | %s
  403. %s     _______/  /______/  /______  | | %s
  404. %s    /______   _______   _______/  | | %s
  405. %s          /  /      /  /          | | %s
  406. %s         /  /      /  /           | | %s
  407. %s        /  /      /  /            | | %s
  408. %s ______/  /______/  /______       | | %s
  409. %s/_____   _______   _______/       | | %s
  410. %s     /  /      /  /               | | %s
  411. %s    /  /      /  /                |_| %s
  412. %s   /  /      /  /                  _  %s
  413. %s  /  /      /  /                  | | %s
  414. %s /__/      /__/                   |_| %s
  415. %s                                      %s
  416. %s                                      %s
  417. %s""" % ( whiteN, result[0], whiteN, result[1], whiteN, result[2], whiteN, result[3], whiteN, result[4], whiteN, result[5], whiteN, result[6], whiteN, result[7], whiteN, result[8], whiteN, result[9], whiteN, result[10], whiteN, result[11], whiteN, result[12], whiteN, result[13], whiteN, result[14], whiteN, result[15], whiteN, result[16], whiteN, result[17], clear )                                    
  418.  
  419. if DetectDistro == 'LinuxMint':
  420.  print """%s                                     %s
  421. %s MMMMMMMMMMMMMMMMMMMMMMMMMmds+.      %s
  422. %s MMm----::-://////////////oymNMd+`   %s
  423. %s MMd      %s/++                %s-sNMd:  %s
  424. %s MMNso/`  %sdMM    `.::-. .-::.` %s.hMN: %s
  425. %s ddddMMh  %sdMM   :hNMNMNhNMNMNh: `%sNMm %s
  426. %s     NMm  %sdMM  .NMN/-+MMM+-/NMN` %sdMM %s
  427. %s     NMm  %sdMM  -MMm  `MMM   dMM. %sdMM %s
  428. %s     NMm  %sdMM  -MMm  `MMM   dMM. %sdMM %s
  429. %s     NMm  %sdMM  .mmd  `mmm   yMM. %sdMM %s
  430. %s     NMm  %sdMM`  ..`   ...   ydm. %sdMM %s
  431. %s     hMM-  %s+MMd/-------...-:sdds %sMMM %s
  432. %s     -NMm-  %s:hNMNNNmdddddddddy/` %sdMM %s
  433. %s      -dMNs-``%s-::::-------.``    %sdMM %s
  434. %s       `/dMNmy+/:-------------:/yMMM %s
  435. %s          ./ydNMMMMMMMMMMMMMMMMMMMMM %s
  436. %s                                     %s
  437. %s                                     %s
  438. %s""" % ( whiteB, result[0], whiteB, result[1], whiteB, result[2], whiteB, greenB, whiteB, result[3], whiteB, greenB, whiteB, result[4], whiteB, greenB, whiteB, result[5], whiteB, greenB, whiteB, result[6], whiteB, greenB, whiteB, result[7], whiteB, greenB, whiteB, result[8], whiteB, greenB, whiteB, result[9], whiteB, greenB, whiteB, result[10], whiteB, greenB, whiteB, result[11], whiteB, greenB, whiteB, result[12], whiteB, greenB, whiteB, result[13], whiteB, result[14], whiteB, result[15], whiteB, result[16], whiteB, result[17], clear )
  439.  
  440. if screen == 'True':
  441.  screenshot()
Advertisement
Add Comment
Please, Sign In to add comment