-
-
Save asflash8/3c13e90e70da19d6f3a4 to your computer and use it in GitHub Desktop.
ハミダセでデモしたtwitterとhue連携プログラム
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CONSUMER_KEY="YOUR TWITTER APP CONSUMER KEY" | |
CONSUMER_SECRET="YOUR TWITTER APP CONSUMER SECRET" | |
ACCESS_TOKEN="YOUR TWITTER APP ACCESS TOKEN" | |
ACCESS_TOKEN_SECRET="YOUR TWITTER APP ACCESS TOKEN SECRET" | |
HUE_BRIDGE_HOST="YOUR_HUE_BRIDGE_HOST" | |
HUE_USERNAME="YOUR_HUE_USER_NAME" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
source "https://rubygems.org" | |
gem 'twitter' | |
gem 'dotenv' | |
gem 'hue' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'twitter' | |
require 'dotenv' | |
require 'erb' | |
require 'hue' | |
# 環境変数の読み込み | |
Dotenv.load | |
# Twitterクライアントの生成 | |
twitter = Twitter::REST::Client.new do |config| | |
config.consumer_key = ENV['CONSUMER_KEY'] | |
config.consumer_secret = ENV['CONSUMER_SECRET'] | |
config.access_token = ENV['ACCESS_TOKEN'] | |
config.access_token_secret = ENV['ACCESS_TOKEN_SECRET'] | |
end | |
# Hueライトクライアントの取得 | |
light_number = (ARGV[1] || 0).to_i | |
hue = Hue::Client.new(ENV['HUE_USERNAME']).lights[light_number] | |
tweets = {} | |
# 検索用ハッシュタグの取得 | |
hashtag = ERB::Util.url_encode(ARGV[0] || '#ハミダセ') | |
loop do | |
# 検索に一致した最近の3件のつぶやきを取得 | |
twitter.search(hashtag, reqult_type: :recent, locale: :ja).take(3).each do |tweet| | |
next if tweets.has_key? tweet.id | |
tweets[tweet.id] = tweet | |
puts '%20s : %s' % [tweet.user.screen_name, tweet.text[0..80].gsub("\n", '')] | |
hue.alert = "select" | |
sleep 0.5 | |
end | |
sleep 5 | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment