Skip to content

Instantly share code, notes, and snippets.

@4mcn
Last active December 31, 2015 15:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 4mcn/8004551 to your computer and use it in GitHub Desktop.
Save 4mcn/8004551 to your computer and use it in GitHub Desktop.
ウッ
#! /usr/bin/env ruby
# -*- coding: utf-8 -*-
gem 'twitter', '< 5.0.0'
require 'rainbow'
require 'tweetstream'
require 'twitter'
TweetStream.configure do |config|
config.consumer_key = ENV['CONSUMER_KEY']
config.consumer_secret = ENV['CONSUMER_SECRET']
config.oauth_token = ENV['ACCESS_TOKEN']
config.oauth_token_secret = ENV['ACCESS_TOKEN_SECRET']
end
Twitter.configure do |config|
config.consumer_key = ENV['CONSUMER_KEY']
config.consumer_secret = ENV['CONSUMER_SECRET']
config.oauth_token = ENV['ACCESS_TOKEN']
config.oauth_token_secret = ENV['ACCESS_TOKEN_SECRET']
end
$runnning = true
TweetStream::Client.new.on_timeline_status { |status|
text = status.text
if text =~ /[@@]#{ENV['SCREEN_NAME']}/ and not status.retweeted_status
if status.user.screen_name == ENV['SCREEN_NAME']
case text
when /start$/
$runnning = true
puts 'started.'
when /stop$/
$runnning = false
puts 'stopped.'
end
end
if $runnning
name = text[/(?:(?:名前[をの]?変更|(?:update|change)[  _]name)[\s ](?<name>(?:.|\s){1,20})|(?<name>(?:.|\s){1,20})(?:.|\s)*[((]\s*[@@]#{ENV['SCREEN_NAME']}\s*[))])/i, 'name']
if name
puts "#{status.created_at.to_s.color(:yellow)} @#{status.user.screen_name}: #{text}"
puts "update @#{ENV['SCREEN_NAME']}\'s name to \"#{name}\""
Twitter.update_profile(name: name.delete("\r\n"))
Twitter.update(".@#{status.user.screen_name} によって名前が\"#{name}\"に変更されました。", in_reply_to_status_id: status.id)
end
end
end
}.userstream
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment