Class: Lita::Handlers::Sushiyuki

Inherits:
Handler
  • Object
show all
Defined in:
lib/lita/handlers/sushiyuki.rb

Constant Summary collapse

SUSHI_MAP =
{
  # filename: aliases
  '01' => ["yes"],
  '02' => ["no"],
  '03' => ["ok"],
  '04' => ["thanks", "thank you", "gyoku"],
  '05' => ["sorry"],
  '06' => ["sigh"],
  '07' => ["angry"],
  '08' => ["no comment"],
  '09' => ["cool"],
  '10' => ["kappa"],
  '11' => ["help"],
  '12' => ["what", "question", "?"],
  '13' => ["sleep", "sleepy"],
  '14' => ["oh no"],
  '15' => ["love"],
  '16' => ["grin"],
  '17' => ["bye"],
  '18' => ["sneak"],
  '19' => ["hide"],
  '20' => ["peel"],
  '21' => ["hot"],
  '22' => ["fail", "dip"],
  '23' => ["too much", "ikura"],
  '24' => ["happy"],
  '25' => ["smile"],
  '26' => ["wat", "anago"],
  '27' => ["tea", "content", "agari"],
  '28' => ["gari", "don't forget"],
  '29' => ["wasabi", "sabi"],
  '30' => ["come on", "c'mon"],
  '31' => ["sparkles"],
  '32' => ["sweat"],
  '33' => ["cry"],
  '34' => ["surprised"],
  '35' => ["idea"],
  '36' => ["sad", "sob"],
  '37' => ["chat"],
  '38' => ["phone", "call"],
  '39' => ["hello"],
  '40' => ["see you"],
}

Instance Method Summary collapse

Instance Method Details

#find_sushi(query) ⇒ Object



48
49
50
51
52
# File 'lib/lita/handlers/sushiyuki.rb', line 48

def find_sushi(query)
  sushi = SUSHI_MAP.find{ |name, aliases| aliases.include?(query) }
  return nil unless sushi
  sushi[0]
end

#hear_sushi(response) ⇒ Object



86
87
88
# File 'lib/lita/handlers/sushiyuki.rb', line 86

def hear_sushi(response)
  response.reply sushi_url(find_sushi('sneak')) if rand(5) == 0
end

#list_sushiyuki(response) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/lita/handlers/sushiyuki.rb', line 69

def list_sushiyuki(response)
  unless Lita.config.robot.adapter == :twitter
    return response.reply SUSHI_MAP.values.flatten.join(', ')
  end

  batch = []
  SUSHI_MAP.values.flatten.each do |name|
    batch << name
    next if batch.join(', ').length < 110
    response.reply batch.join(', ')
    batch = []
  end
  response.reply batch.join(', ') unless batch.empty?
end

#query_sushiyuki(response) ⇒ Object



60
61
62
63
64
65
# File 'lib/lita/handlers/sushiyuki.rb', line 60

def query_sushiyuki(response)
  query    = response.matches[0][0].downcase
  return if query == 'list'
  filename = find_sushi(query)
  response.reply sushi_url(filename) if filename
end

#sushi_url(filename) ⇒ Object



54
55
56
# File 'lib/lita/handlers/sushiyuki.rb', line 54

def sushi_url(filename)
  "https://d1zd1v0cxnbx2w.cloudfront.net/images/sets/sushiyuki/#{filename}.png"
end