ruboty-weather 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 860623a0d508c8584f07762c8b8e55c743348406
4
- data.tar.gz: 273528a4c69fc97e39ba9dee023e0183d508fd2f
3
+ metadata.gz: ecbe7a1112b83e2d5aeda9649e62793f8f408d69
4
+ data.tar.gz: 946ee44d3ed0e50daf5eb894da8c2eea3666714d
5
5
  SHA512:
6
- metadata.gz: fce8ab36a1a2ad7548453e55b0726a6e247edcd2e07392032503695c48643155dd953f1946e7e1d8f7d07fa0ac85a66286fcda8eb722bf8e686d0b1d2cbe6a1c
7
- data.tar.gz: 3c3e0c6901bbbf1af01f93538f958e185cb64c24e3f37b3b7b45d7f77d99bfc272b2409ddf41ff6ba675926cb1b78d7afa83644ab9d5b6e746b1b603649692a0
6
+ metadata.gz: d2cf18cd5ff5ec4d043b6c43dbcca1ac6da746c65273af1f4e24f73367f0cc28e0d5d703a0a7a59bd0287682ae8b6f377dfb9cb602c45defba2acc9ad0d63be7
7
+ data.tar.gz: 397a1215d30f887aec4a58eca6f2c50f3dbe03abeead556307175c11d34d4844d94fecf8635bfe30819a20078e61a1044679e26df06eaadb37a49dd53133dbc7
@@ -1,7 +1,7 @@
1
1
  module Ruboty
2
2
  module Handlers
3
3
  class Weather < Base
4
- on /weather( me)?/, name: "weather", description: "Fetch weather info from livedoor API"
4
+ on /weather/, name: "weather", description: "Fetch weather info from livedoor API"
5
5
 
6
6
  def weather(message)
7
7
  message.reply(fetch)
@@ -5,12 +5,6 @@ module Ruboty
5
5
  module Weather
6
6
  class Client
7
7
  LIVEDOOR_WEATHER_API_URL = 'http://weather.livedoor.com/forecast/webservice/json/v1'
8
- #TODO parse this http://weather.livedoor.com/forecast/rss/primary_area.xml
9
- CITIES = {
10
- tokyo: 130010,
11
- chiba: 120010,
12
- yokohama: 140010
13
- }
14
8
 
15
9
  def initialize
16
10
  @client = Faraday.new do |connection|
@@ -21,7 +15,15 @@ module Ruboty
21
15
 
22
16
  def get(city_code=default_city)
23
17
  response = @client.get("#{url}?city=#{city_code}").body
24
- response['forecasts'][0]['telop']
18
+
19
+ forecasts = response['forecasts']
20
+ today = forecasts[0]
21
+ tomorrow = forecasts[1]
22
+
23
+ today_forecast = "#{today['date']}: #{emojilize!(today['telop'])} (#{temperature_to_s(today['temperature'])})"
24
+ tomorrow_forecast = "#{tomorrow['date']}: #{emojilize!(tomorrow['telop'])} (#{temperature_to_s(tomorrow['temperature'])})"
25
+
26
+ [today_forecast, tomorrow_forecast].join("\n")
25
27
  end
26
28
 
27
29
  private
@@ -30,13 +32,34 @@ module Ruboty
30
32
  LIVEDOOR_WEATHER_API_URL
31
33
  end
32
34
 
33
- def cities
34
- CITIES
35
- end
36
-
37
35
  def default_city
38
36
  ENV['RUBOTY_WEATHER_CITY'] || 130010 #tokyo
39
37
  end
38
+
39
+ def emojilize!(telop)
40
+
41
+ telop.gsub!(/時々/, "\u{2194}")
42
+ telop.gsub!(/のち/, "\u{27A1}")
43
+
44
+ emojis = {
45
+ "晴" => "\u{2600}",
46
+ "曇" => "\u{2601}",
47
+ "雨" => "\u{2614}",
48
+ "雷" => "\u{26A1}",
49
+ "雪" => "\u{26C4}",
50
+ }.each do |k, v|
51
+ telop.gsub!(/#{k}/, v)
52
+ end
53
+
54
+ telop
55
+ end
56
+
57
+ def temperature_to_s(temperature)
58
+ min = (temperature['min'] ? temperature['min']['celsius'] : '-')
59
+ max = (temperature['max'] ? temperature['max']['celsius'] : '-')
60
+
61
+ "#{min}/#{max}"
62
+ end
40
63
  end
41
64
  end
42
65
  end
@@ -1,5 +1,5 @@
1
1
  module Ruboty
2
2
  module Weather
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruboty-weather
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryoichi SEKIGUCHI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-07 00:00:00.000000000 Z
11
+ date: 2014-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruboty