· 8 years ago · Jan 01, 2017, 10:34 AM
1# coding: utf-8
2require 'twitter'
3require 'tweetstream'
4require 'yaml'
5
6 class Omikuji
7 def initialize(keys)
8 token_for_twitter = {
9 consumer_key: keys["consumer_key"],
10 consumer_secret: keys["consumer_secret"],
11 access_token: keys["access_token"],
12 access_token_secret: keys["access_token_secret"]
13 }
14
15 token_for_tweetstream = {
16 consumer_key: keys["consumer_key"],
17 consumer_secret: keys["consumer_secret"],
18 oauth_token: keys["access_token"],
19 oauth_token_secret: keys["access_token_secret"]
20 }
21
22 @streaming_client = TweetStream::Client.new(token_for_tweetstream)
23 @rest_client = Twitter::REST::Client.new(token_for_twitter)
24 end
25
26 def make(range)
27 star = ""
28 rand(range).times do
29 star << "☆"
30 end
31 star
32 end
33
34 def calc(point)
35 elem = ["大å‰", "ä¸å‰", "å°å‰", "å‰", "凶", "大凶"]
36 case point
37 when 4, 5; elem[5]
38 when 6, 7; elem[4]
39 when 8..11; elem[3]
40 when 12..15; elem[2]
41 when 16..18; elem[1]
42 when 19, 20; elem[0]
43 else "ãªã«ã‚‚ã‚りã¾ã›ã‚“"
44 end
45 end
46
47 def post(user)
48 elem = ["金é‹", "仕事é‹", "æ‹æ„›é‹", "妿¥é‹"]
49 str = ""
50 cnt = 0
51 elem.each do |u|
52 cnt = 0 if u == "金é‹"
53 stars = self.make(1..5)
54 str << u + ": " + stars + "\n"
55 cnt += stars.length
56 end
57 str << "é‹å‹¢: " + calc(cnt)
58 @rest_client.update("@#{user}\n#{str}")
59 end
60
61 def researcher
62 @streaming_client.userstream do |status|
63 if status.text.include?("@Shikugawa ãŠã¿ãã˜")
64 self.post(status.user.screen_name)
65 end
66 end
67 end
68 end
69
70omikuji = Omikuji.new(YAML.load_file("keys_maid.yaml"))
71omikuji.researcher