51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
# SPDX-FileCopyrightText: 2019 Limor Fried for Adafruit Industries
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
"""
|
|
This example will access the twitter follow button API, grab a number like
|
|
the number of followers... and display it on a screen!
|
|
if you can find something that spits out JSON data, we can display it
|
|
"""
|
|
import time
|
|
import board
|
|
from adafruit_pyportal import PyPortal
|
|
|
|
# Change this to your twitter username!
|
|
TWITTER_NAME = "adafruit"
|
|
|
|
# Set up where we'll be fetching data from
|
|
DATA_SOURCE = "https://cdn.syndication.twimg.com/widgets/followbutton/info.json?screen_names="+TWITTER_NAME # pylint: disable=line-too-long
|
|
DATA_LOCATION = [0, "followers_count"]
|
|
|
|
# the current working directory (where this file is)
|
|
cwd = ("/"+__file__).rsplit('/', 1)[0]
|
|
# Initialize the pyportal object and let us know what data to fetch and where
|
|
# to display it
|
|
pyportal = PyPortal(url=DATA_SOURCE,
|
|
json_path=DATA_LOCATION,
|
|
status_neopixel=board.NEOPIXEL,
|
|
default_bg=cwd+"/twitter_background.bmp",
|
|
text_font=cwd+"/fonts/Collegiate-50.bdf",
|
|
text_position=(165, 140),
|
|
text_color=0xFFFFFF,
|
|
caption_text="www.twitter.com/"+TWITTER_NAME,
|
|
caption_font=cwd+"/fonts/Collegiate-24.bdf",
|
|
caption_position=(50, 200),
|
|
caption_color=0xFFFFFF,)
|
|
|
|
# track the last value so we can play a sound when it updates
|
|
last_value = 0
|
|
|
|
while True:
|
|
try:
|
|
value = pyportal.fetch()
|
|
print("Response is", value)
|
|
if last_value < value: # ooh it went up!
|
|
print("New follower!")
|
|
pyportal.play_file(cwd+"/coin.wav") # uncomment make a noise!
|
|
last_value = value
|
|
except (ValueError, RuntimeError, ConnectionError, OSError) as e:
|
|
print("Some error occured, retrying! -", e)
|
|
|
|
time.sleep(60) # wait a minute before getting again
|