ThinX

From Noisebridge
Revision as of 20:39, 23 November 2018 by 🥧 (talk | contribs) (→‎digits.py: fixed 'Tru?' clip)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

lenovo ThinkServer TS140

Quad Core Xeon Machine

Arch Linux / NUBcore


Python

>>> t = '0000000000000000000000111111111111111111111122222222222222222222223333333333333333333333'
>>> c = '4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555'
>>> for i in range(24): print(t) if i < 8 else print(c)

0000000000000000000000111111111111111111111122222222222222222222223333333333333333333333
0000000000000000000000111111111111111111111122222222222222222222223333333333333333333333
0000000000000000000000111111111111111111111122222222222222222222223333333333333333333333
0000000000000000000000111111111111111111111122222222222222222222223333333333333333333333
0000000000000000000000111111111111111111111122222222222222222222223333333333333333333333
0000000000000000000000111111111111111111111122222222222222222222223333333333333333333333
0000000000000000000000111111111111111111111122222222222222222222223333333333333333333333
0000000000000000000000111111111111111111111122222222222222222222223333333333333333333333
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555
4444444444444444444444444444444444444444444455555555555555555555555555555555555555555555


BART Time / Count

>>> import trains
Train API Status: 200
[1, 9, 2, 5] [4, 6] No message.


         1111              999999999999          222222222222      55555555555555555555 
     11111111          9999            9999  2222            2222  5555                 
         1111          9999            9999                  2222  5555555555555555     
         1111              9999999999999999              2222                      5555 
         1111                          9999          2222                          5555 
         1111                      9999          2222              5555            5555 
     111111111111          99999999          22222222222222222222      555555555555     
                                                                                        
                          44444444                            6666666666666666          
                          44444444                            6666666666666666          
                  4444444444444444                    66666666                          
                  4444444444444444                    66666666                          
          44444444        44444444            66666666                                  
          44444444        44444444            66666666                                  
  44444444                44444444            66666666666666666666666666666666          
  44444444                44444444            66666666666666666666666666666666          
  4444444444444444444444444444444444444444    66666666                        66666666  
  4444444444444444444444444444444444444444    66666666                        66666666  
                          44444444            66666666                        66666666  
                          44444444            66666666                        66666666  
                          44444444                    666666666666666666666666          
                          44444444                    666666666666666666666666          
                                                                                        
                                                                                        
>>> 

trains.py

import requests
import digits

url = "http://api.bart.gov/api/bsa.aspx?cmd=count&key=MW9S-E7SL-26DU-VV8V&json=y"

r = requests.get(url)
print("Train API Status:", r.status_code)

data = r.json()

time = data.get('root').get('time')
traincount = data.get('root').get('traincount')
message = data.get('root').get('message')

t = time.split(':')
h = int(t[0])
m = int(t[1])

time = []
if h < 10:
        time.append(0)
        time.append(h)
else:
        time.append(int(h/10))
        time.append(h % 10)
if m < 10:
        time.append(0)
        time.append(m)
else:
        time.append(int(m/10))
        time.append(m % 10)

traincount = int(traincount)
if traincount < 10:
        traincount = [traincount]
else:
        traincount = [int(traincount/10), traincount%10]

if message == '':
        message = "No message."

print(time, traincount, message)

digits.printDigits(time)
digits.printDigits2x(traincount)


digits.py

def bit(b, i, c, double):
        c = c + c + c + c
        if double:
                return c + c if b & 1 << i > 0 else '        '
        else:
                return c if b & 1 << i > 0 else '    '

def digitRow(d, r, c, double=False):
        l = ' '
        if double:
                l = l + ' '
        for i in range(5):
                l = l + bit(d[i], r, c, double)
        l = l + ' '
        if double:
                l = l + ' '
        return l

def printDigit(d, c='X'):
        for i in range(8):
                print(digitRow(d, i, c))

def printDigits(d):
        lines = ['', '', '', '', '', '', '', '']
        for i in range(len(d)):
                digit = eval("d" + str(d[i]))
                for r in range(8):
                        lines[r] = lines[r] + digitRow(digit, r, str(d[i]))
        for i in range(8):
                print(lines[i])

def printDigits2x(d):
        lines = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
        for i in range(len(d)):
                digit = eval('d' + str(d[i]))
                for r in range(8):
                        lines[r * 2] = lines[r * 2] + digitRow(digit, r, str(d[i]), True)
                        lines[r*2+1] = lines[r*2+1] + digitRow(digit, r, str(d[i]), True)
        for i in range(16):
                print(lines[i])

def test():
        print('')
        printDigit(d0, '0')
        printDigit(d1, '1')
        printDigit(d2, '2')
        printDigit(d3, '3')
        printDigit(d4, '4')
        printDigit(d5, '5')
        printDigit(d6, '6')
        printDigit(d7, '7')
        printDigit(d8, '8')
        printDigit(d9, '9')

#      0123456789123456789012
#
#  0        000000000000
#  1    0000            0000
#  2    0000        00000000
#  3    0000    0000    0000
#  4    00000000        0000
#  5    0000            0000
#  6        000000000000
#  7

d0 = [int('00111110', 2),
      int('01010001', 2),
      int('01001001', 2),
      int('01000101', 2),
      int('00111110', 2)]


#      0123456789123456789012
#
#  0            1111
#  1        11111111
#  2            1111
#  3            1111
#  4            1111
#  5            1111
#  6        111111111111
#  7

d1 = [int('00000000', 2),
      int('01000010', 2),
      int('01111111', 2),
      int('01000000', 2),
      int('00000000', 2)]

d2 = [int('01000010', 2),
      int('01100001', 2),
      int('01010001', 2),
      int('01001001', 2),
      int('01000110', 2)]

d3 = [int('00100001', 2),
      int('01000001', 2),
      int('01000101', 2),
      int('01001011', 2),
      int('00110001', 2)]

d4 = [int('00011000', 2),
      int('00010100', 2),
      int('00010010', 2),
      int('01111111', 2),
      int('00010000', 2)]

d5 = [int('00100111', 2),
      int('01000101', 2),
      int('01000101', 2),
      int('01000101', 2),
      int('00111001', 2)]

d6 = [int('00111100', 2),
      int('01001010', 2),
      int('01001001', 2),
      int('01001001', 2),
      int('00110000', 2)]

d7 = [int('00000001', 2),
      int('01110001', 2),
      int('00001001', 2),
      int('00000101', 2),
      int('00000011', 2)]

d8 = [int('00110110', 2),
      int('01001001', 2),
      int('01001001', 2),
      int('01001001', 2),
      int('00110110', 2)]

d9 = [int('00000110', 2),
      int('01001001', 2),
      int('01001001', 2),
      int('00101001', 2),
      int('00011110', 2)]