Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
493
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JSON 4.53 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. # subscription counter for ZEROSEG sample
  4. # Based on the ZEROSEG example libraries
  5. # This is just a poorly written sample for reference only, please keep that in mind.
  6. #
  7. # This script requires the ZeroSeg library
  8. # located at
  9. # https://github.com/AverageManVsPi/ZeroSeg
  10. #
  11. # The Youtube and Twitch functionality
  12. # uses the official APIs and as such
  13. # require a free dev API keys.
  14. # These need to be filled in the
  15. # respective variables (lines 30 and 59)
  16.  
  17. import ZeroSeg.led as led
  18. import time
  19. import random
  20. from datetime import datetime
  21. import urllib, json
  22. import RPi.GPIO as GPIO
  23. import threading
  24. switch1 = 17
  25. switch2 = 26
  26. GPIO.setmode(GPIO.BCM)
  27. GPIO.setup(switch1, GPIO.IN)
  28. GPIO.setup(switch2, GPIO.IN)
  29. #url do liczby subow
  30. url = "https://www.googleapis.com/youtube/v3/channels?part=statistics&id=UCeUWwZ09_UHgj9mn9JydQLg&fields=items/statistics/subscriberCount&key=AIzaSyBTLMM46pm2zUD8PviMkKtYjiyefgF4llc"
  31. ytactive = False
  32. twactive = False
  33. tick = 0;
  34. auto = 0;
  35.  
  36. def ytsubs():
  37.     global mode
  38.     global tick
  39.     threading.Timer(5.0, ytsubs).start()
  40.     if mode == 1:
  41.         if tick == 0:
  42.             tick = 1
  43.         else:
  44.             tick = 0
  45.         response = urllib.urlopen(url)
  46.         data = json.loads(response.read())
  47.         print "Youtube Refresh: ", data['items'][0]['statistics'].values()[0]
  48.         ytsubs.subs = data['items'][0]['statistics'].values()[0]
  49.  
  50. def twitch():
  51.     global mode
  52.     global tick
  53.     threading.Timer(5.0, twitch).start()
  54.     if mode == 2:
  55.         if tick == 0:
  56.             tick = 1
  57.         else:
  58.             tick = 0
  59.         response = urllib.urlopen("https://api.twitch.tv/kraken/streams/HeadLeonardo?client_id=obudsinorc18v67m41tfkpyzv3tx2a")
  60.         data = json.loads(response.read())
  61.         twitch.subs = "OFF";
  62.         if data['stream'] != None:
  63.             print "Twitch Refresh: ", data['stream']['viewers']
  64.             twitch.subs = str(data['stream']['viewers'])
  65.         else:
  66.             print "Twitch Offline"
  67.        
  68. def autogo():
  69.     global mode
  70.     threading.Timer(10.0, autogo).start()
  71.     global auto
  72.     if auto == 1:
  73.         mode += 1
  74.         if mode == 5:
  75.             mode = 1
  76.         print "Auto Switch: ", mode
  77.        
  78.        
  79. device = led.sevensegment(cascaded=2)
  80.  
  81. #startup
  82. print "Startujemy!"
  83. device.write_text(1, "-LEONTV-")
  84. #dodaj kropke po N
  85. device.letter(1, 4, "N", 1)
  86. time.sleep(2)
  87. mode = 1;
  88. level = 1;
  89. device.brightness(level)
  90. refresh = 99;
  91. anim = 8;      
  92.        
  93. ytsubs();
  94. twitch();
  95. autogo();
  96.  
  97. while True:
  98.     now = datetime.now()
  99.     if mode == 1:
  100.         device.write_text(1, "Y   " + ytsubs.subs)
  101.         #oznacz odswiezenie kropka
  102.         device.letter(1, 8, "Y", tick)
  103.            
  104.     if mode == 2:
  105.         try:
  106.             getattr(twitch, 'subs')
  107.         except AttributeError:
  108.             device.write_text(1, "T")
  109.             if anim != 8:
  110.                 device.letter(1, anim, " ", 1)
  111.             else:
  112.                 device.letter(1, anim, "T", 1)
  113.             anim -= 1
  114.             if anim < 1:
  115.                 anim = 8
  116.         else:
  117.             device.write_text(1, "T    " +  twitch.subs)
  118.             device.letter(1, 8, "T", tick)
  119.     if mode == 3:
  120.         hour = now.hour
  121.         minute = now.minute
  122.         second = now.second
  123.         dot = second % 2 == 0
  124.         # Set hours
  125.         device.letter(1, 8, int(hour / 10))     # Tens
  126.         device.letter(1, 7, hour % 10)     # Ones
  127.         device.letter(1, 6, " ", 1)
  128.         # Set minutes
  129.         device.letter(1, 5, int(minute / 10))   # Tens
  130.         device.letter(1, 4, minute % 10)        # Ones
  131.         device.letter(1, 3, " ", 1)
  132.         # Set seconds
  133.         device.letter(1, 2, int(second / 10))   # Tens
  134.         device.letter(1, 1, second % 10)        # Ones
  135.     if mode == 4:
  136.         day = now.day
  137.         month = now.month
  138.         year = now.year - 2000
  139.  
  140.         # Set day
  141.         device.letter(1, 8, int(day / 10))     # Tens
  142.         device.letter(1, 7, day % 10)          # Ones
  143.         device.letter(1, 6, '-')               # dash
  144.         # Set day
  145.         device.letter(1, 5, int(month / 10))     # Tens
  146.         device.letter(1, 4, month % 10)     # Ones
  147.         device.letter(1, 3, '-')               # dash
  148.         # Set day
  149.         device.letter(1, 2, int(year / 10))     # Tens
  150.         device.letter(1, 1, year % 10)     # Ones
  151.     if mode == 5:
  152.         auto = 1;  
  153.         mode = 1;
  154.    
  155.     if not GPIO.input(switch2):
  156.         if auto == 1:
  157.             auto = 0
  158.             mode = 1
  159.             print "Auto Off"
  160.         elif mode < 6:
  161.             mode += 1
  162.         else:
  163.             mode = 1
  164.         if mode == 1:
  165.             device.write_text(1, "SUBY YT")
  166.         if mode == 2:
  167.             device.write_text(1, "LIVE")
  168.         if mode == 3:
  169.             device.write_text(1, "CZAS")
  170.         if mode == 4:
  171.             device.write_text(1, "DATA")
  172.         if mode == 5:
  173.             device.write_text(1, "AUTO")
  174.         time.sleep(1)
  175.     #wskaznik jasnosci
  176.     elif not GPIO.input(switch1):
  177.         if level <= 2:
  178.             level = 5
  179.         elif level == 5:
  180.             level = 10
  181.         elif level == 10:
  182.             level = 14
  183.         elif level >= 14:
  184.             level = 1
  185.         device.brightness(level)
  186.         print "Poziom jasnosci:", level
  187.         time.sleep(0.5);
  188.     else:
  189.         pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement