zetabot 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc2429ddf380f1ac41654c012e259c544c9a0ff0e590f17f913e075942601d18
4
- data.tar.gz: 648688cd373041736a394c91639f68ad01440befabbbbf4a74d268bb374021a4
3
+ metadata.gz: ed044e37e911043426ff36017bdebb1e8c437773b3bf7a6ba54c4921dc0bf244
4
+ data.tar.gz: '009ffbd654540ef687531b74bb05bec2c743836bf44ccddd64807ce532b7570f'
5
5
  SHA512:
6
- metadata.gz: 0f7c7e290f02c30d77c662418ee589d2f5269bcdd1c3bbcda80a7416b1c96e014bf7b24c815d0db4bddf4c0ebc9289e6173f653603857925c5ba5c05d98b37c6
7
- data.tar.gz: ec190062500dca097dc17477edd7323e5b5ab33fa33de30492c15a92a420e3c2d58275d05f6899f63f1bfcf433391ffe77b37d04bc37de793c6fa8025049195f
6
+ metadata.gz: 70212106c37c86eed94b4f05dd87c6a99c1d7bc68ecc47b4f12984ab39c2fba6ceedf7812b4cbae54ed505c0e05586f91001fd0a3a0c716f2500f0e32b086e21
7
+ data.tar.gz: de0e3a5dbb7e0d82666d031b75e0c6d7683fdc2e5671dd3a4d7c12b6cf5010971d3930334a3ea044d0eddd7f15bc8b13e8204b146b43c36518e83075f5340657
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_WITHOUT: "readline_buffer"
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zetabot (1.1.0)
4
+ zetabot (2.0.0)
5
5
  actionview
6
6
  chronic
7
7
  chronic_duration
@@ -42,13 +42,13 @@ GEM
42
42
  remote: https://rubygems.org/
43
43
  specs:
44
44
  Ascii85 (1.0.3)
45
- actionview (5.2.2)
46
- activesupport (= 5.2.2)
45
+ actionview (5.2.3)
46
+ activesupport (= 5.2.3)
47
47
  builder (~> 3.1)
48
48
  erubi (~> 1.4)
49
49
  rails-dom-testing (~> 2.0)
50
50
  rails-html-sanitizer (~> 1.0, >= 1.0.3)
51
- activesupport (5.2.2)
51
+ activesupport (5.2.3)
52
52
  concurrent-ruby (~> 1.0, >= 1.0.2)
53
53
  i18n (>= 0.7, < 2)
54
54
  minitest (~> 5.1)
@@ -77,7 +77,7 @@ GEM
77
77
  coderay (~> 1.1)
78
78
  method_source (~> 0.9)
79
79
  coderay (1.1.2)
80
- concurrent-ruby (1.1.4)
80
+ concurrent-ruby (1.1.5)
81
81
  connection_pool (2.2.2)
82
82
  crack (0.4.3)
83
83
  safe_yaml (~> 1.0.0)
@@ -90,18 +90,18 @@ GEM
90
90
  thread_safe (~> 0.3, >= 0.3.1)
91
91
  destructor (0.1.0)
92
92
  diff-lcs (1.3)
93
- discourse_api (0.33.0)
93
+ discourse_api (0.36.0)
94
94
  faraday (~> 0.9)
95
95
  faraday_middleware (~> 0.10)
96
96
  rack (>= 1.6)
97
97
  dnsbl-client (1.0.4)
98
- domain_name (0.5.20180417)
98
+ domain_name (0.5.20190701)
99
99
  unf (>= 0.0.5, < 1.0.0)
100
100
  dronebl.rb (0.1.0.0)
101
101
  httparty (~> 0.13)
102
102
  nokogiri (~> 1.6)
103
103
  erubi (1.8.0)
104
- every_day_irb (2.0.0)
104
+ every_day_irb (2.1.0)
105
105
  cd (~> 1.0)
106
106
  fancy_irb (1.1.0)
107
107
  paint (>= 0.9, < 3.0)
@@ -110,7 +110,7 @@ GEM
110
110
  multipart-post (>= 1.2, < 3)
111
111
  faraday_middleware (0.13.1)
112
112
  faraday (>= 0.7.4, < 1.0)
113
- ffi (1.10.0)
113
+ ffi (1.11.1)
114
114
  geocoder (1.5.1)
115
115
  gist (5.0.0)
116
116
  github_api (0.18.2)
@@ -119,7 +119,7 @@ GEM
119
119
  faraday (~> 0.8)
120
120
  hashie (~> 3.5, >= 3.5.2)
121
121
  oauth2 (~> 1.0)
122
- haml (5.0.4)
122
+ haml (5.1.2)
123
123
  temple (>= 0.8.0)
124
124
  tilt
125
125
  hashery (2.1.2)
@@ -127,29 +127,29 @@ GEM
127
127
  hirb (0.7.3)
128
128
  http-cookie (1.0.3)
129
129
  domain_name (~> 0.5)
130
- httparty (0.16.4)
130
+ httparty (0.17.0)
131
131
  mime-types (~> 3.0)
132
132
  multi_xml (>= 0.5.2)
133
133
  humanize-bytes (2.2.0)
134
134
  i18n (1.6.0)
135
135
  concurrent-ruby (~> 1.0)
136
- instance (0.2.0)
137
136
  interactive_editor (0.0.11)
138
137
  spoon (>= 0.0.1)
139
138
  ipaddress (0.8.3)
140
- irbtools (2.2.1)
139
+ irb (1.0.0)
140
+ irbtools (3.0.0)
141
141
  binding.repl (~> 3.0)
142
- clipboard (~> 1.1)
143
- code (~> 0.9)
142
+ clipboard (~> 1.3)
143
+ code (>= 0.9.2, < 2.0)
144
144
  coderay (~> 1.1)
145
145
  debugging (~> 1.1)
146
146
  every_day_irb (~> 2.0)
147
147
  fancy_irb (~> 1.1)
148
148
  hirb (~> 0.7, >= 0.7.3)
149
- instance (~> 0.2)
150
149
  interactive_editor (~> 0.0, >= 0.0.10)
151
- method_locator (~> 0.0, >= 0.0.4)
152
- methodfinder (~> 2.0)
150
+ irb (>= 0.9.6)
151
+ methodfinder (~> 2.2)
152
+ object_shadow (~> 1.1)
153
153
  ori (~> 0.1.0)
154
154
  os
155
155
  paint (>= 0.9, < 3.0)
@@ -158,7 +158,7 @@ GEM
158
158
  ruby_version (~> 1.0)
159
159
  wirb (~> 2.0)
160
160
  iso8601 (0.9.1)
161
- jwt (2.1.0)
161
+ jwt (2.2.1)
162
162
  liner (0.2.4)
163
163
  loofah (2.2.3)
164
164
  crass (~> 1.0.2)
@@ -174,24 +174,23 @@ GEM
174
174
  webrobots (>= 0.0.9, < 0.2)
175
175
  memoizable (0.4.2)
176
176
  thread_safe (~> 0.3, >= 0.3.1)
177
- method_locator (0.0.4)
178
177
  method_source (0.9.2)
179
178
  methodfinder (2.2.1)
180
179
  mime-types (3.2.2)
181
180
  mime-types-data (~> 3.2015)
182
- mime-types-data (3.2018.0812)
181
+ mime-types-data (3.2019.0331)
183
182
  mini_portile2 (2.4.0)
184
183
  minitest (5.11.3)
185
184
  mkfifo (0.1.1)
186
185
  multi_json (1.13.1)
187
186
  multi_xml (0.6.0)
188
- multipart-post (2.0.0)
187
+ multipart-post (2.1.1)
189
188
  net-http-digest_auth (1.4.1)
190
- net-http-persistent (3.0.0)
189
+ net-http-persistent (3.1.0)
191
190
  connection_pool (~> 2.2)
192
- net_http_timeout_errors (0.3.3)
191
+ net_http_timeout_errors (0.3.5)
193
192
  netrc (0.11.0)
194
- nokogiri (1.10.1)
193
+ nokogiri (1.10.4)
195
194
  mini_portile2 (~> 2.4.0)
196
195
  ntlm-http (0.1.1)
197
196
  numerizer (0.1.1)
@@ -201,26 +200,27 @@ GEM
201
200
  multi_json (~> 1.3)
202
201
  multi_xml (~> 0.5)
203
202
  rack (>= 1.2, < 3)
203
+ object_shadow (1.1.0)
204
204
  oga (2.15)
205
205
  ast
206
206
  ruby-ll (~> 2.1)
207
207
  ori (0.1.0)
208
- os (1.0.0)
208
+ os (1.0.1)
209
209
  paint (2.1.0)
210
210
  parslet (1.8.2)
211
- pdf-reader (2.2.0)
211
+ pdf-reader (2.2.1)
212
212
  Ascii85 (~> 1.0.0)
213
213
  afm (~> 0.2.1)
214
214
  hashery (~> 2.0)
215
215
  ruby-rc4
216
216
  ttfunk
217
217
  persist (1.0.0)
218
- public_suffix (3.0.3)
219
- rack (2.0.6)
218
+ public_suffix (3.1.1)
219
+ rack (2.0.7)
220
220
  rails-dom-testing (2.0.3)
221
221
  activesupport (>= 4.2.0)
222
222
  nokogiri (>= 1.6)
223
- rails-html-sanitizer (1.0.4)
223
+ rails-html-sanitizer (1.2.0)
224
224
  loofah (~> 2.2, >= 2.2.2)
225
225
  rake (10.5.0)
226
226
  recursive-open-struct (1.1.0)
@@ -232,15 +232,15 @@ GEM
232
232
  rspec-core (~> 3.8.0)
233
233
  rspec-expectations (~> 3.8.0)
234
234
  rspec-mocks (~> 3.8.0)
235
- rspec-core (3.8.0)
235
+ rspec-core (3.8.2)
236
236
  rspec-support (~> 3.8.0)
237
- rspec-expectations (3.8.2)
237
+ rspec-expectations (3.8.4)
238
238
  diff-lcs (>= 1.2.0, < 2.0)
239
239
  rspec-support (~> 3.8.0)
240
- rspec-mocks (3.8.0)
240
+ rspec-mocks (3.8.1)
241
241
  diff-lcs (>= 1.2.0, < 2.0)
242
242
  rspec-support (~> 3.8.0)
243
- rspec-support (3.8.0)
243
+ rspec-support (3.8.2)
244
244
  ruby-ll (2.1.2)
245
245
  ansi
246
246
  ast
@@ -262,8 +262,8 @@ GEM
262
262
  thread_safe (~> 0.1)
263
263
  unf (0.1.4)
264
264
  unf_ext
265
- unf_ext (0.0.7.5)
266
- unicode-display_width (1.5.0)
265
+ unf_ext (0.0.7.6)
266
+ unicode-display_width (1.6.0)
267
267
  unitwise (2.2.0)
268
268
  liner (~> 0.2)
269
269
  memoizable (~> 0.4)
data/README.md CHANGED
@@ -1,41 +1,144 @@
1
- # Zeta
2
-
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/Zeta`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
6
-
7
- ## Installation
8
-
9
- Add this line to your application's Gemfile:
10
-
11
- ```ruby
12
- gem 'Zeta'
13
- ```
14
-
15
- And then execute:
16
-
17
- $ bundle
18
-
19
- Or install it yourself as:
20
-
21
- $ gem install Zeta
22
-
23
- ## Usage
24
-
25
- TODO: Write usage instructions here
26
-
27
- ## Development
28
-
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
-
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
-
33
- ## Contributing
34
-
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/Zeta.
36
-
37
-
38
- ## License
39
-
40
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
41
-
1
+ # Zbot
2
+ Cinch IRC bot written with plenty of help. I will not claim any of the plugins
3
+ And will try to get the correct credits in source
4
+
5
+ # Installation
6
+ Zeta requires ruby >= 2.5.0 and rubygems. Installation beyond that is simple
7
+
8
+ _Steps_
9
+ * gem install zetabot
10
+ * zetabot
11
+
12
+ _Plugins_
13
+ All plugins are automatically loaded that are in the plugins directory
14
+
15
+ # Upgrade
16
+ _Steps_
17
+ * git pull
18
+ * bundle
19
+ * update config files to new examples
20
+ * ruby ./migrate.rb
21
+ * ruby ./zeta.rb
22
+
23
+ ## Commands
24
+ roles: owner,admin,operator,halfop,voice,nobody
25
+ prefix: ?
26
+
27
+ ### Admin
28
+ _Channel_
29
+ ** Role Required: admin/owner **
30
+ * ?join (\#channel) - admin
31
+ * ?part (\#channel) - admin
32
+ * ?quit (\#channel) - owner
33
+
34
+ _Plugins_
35
+ ** Role Required: admin **
36
+ * ?plugin load (plugin)
37
+ * ?plugin unload (plugin)
38
+ * ?plugin reload (plugin)
39
+ * ?plugin set (plugin)
40
+
41
+ _Developer_
42
+ ** Role Required: owner **
43
+ * ?die (msg) // Kills the bot
44
+ * ?e code // (alias: eval) Evaluate command
45
+ * ?em code // (alias: eval) Evaluate command send in msg
46
+ * ?er code // (alias: evalreply) Evaluate command and send to channel
47
+
48
+ _Ignore_
49
+ ** Role Required: operator **
50
+ * ?ignore (user)
51
+ * ?unignore (user)
52
+
53
+ _Channel_
54
+ ** Role Required: operator **
55
+ * ?disable (channel) // can omit channel to use current
56
+ * ?enable (channel) // enalbed a channel that has been disabled
57
+
58
+ _Access_
59
+ ** Role Required: voice **
60
+ * ?setaccess (user) (level) // Levels: nobody,voice,halfop,operator,admin,owner,founder
61
+ * ?access (user) // Show current access level
62
+
63
+ _Uptime_
64
+ ** Role Required: admin **
65
+ * ?uptime // Bot uptime
66
+ * ?sysuptime // grabs the uptime from current system
67
+ * ?users // shows users currently logged into shell
68
+
69
+ ### Macros
70
+ Macros are prefixed by a period and are loaded from locales/macros.yml
71
+ example. typing in ".dnf" in channel will cause the bot to respond with "Duke Nukem Forever came out. Your argument is invalid."
72
+
73
+ ### FIFO
74
+ Zeta will open a named pipe under bot/zeta.io messages sent to this pipe will be directly sent to the irc server
75
+
76
+ ### Plugins
77
+ _Utility_
78
+ * ?calc (query) - Returns a wolframalpha solution
79
+ * ?wiki (term) - Returns a wikipedia entry
80
+
81
+ _Code Runner_
82
+ * ?run (lang) (code)
83
+ * ?langs - lists all of the languages that are supported
84
+
85
+ _Seen_
86
+ * ?seen (user)
87
+
88
+ _Misc_
89
+ * ?attack (target)
90
+ * ?info (plugin)
91
+ * ?fnord
92
+ * ?xmas - days till christmas
93
+ * ?mayan - current day in the mayan calendar
94
+ * ?newyear - days until new years
95
+ * ?heavymetalise (message) - styles the vowles of the text
96
+ * ?rainbow (text) - colorizes your text
97
+ * ?eyerape (text) - even worse then rainbow
98
+ * ?rr (nick) - Play a game of Russian Rullete
99
+ * ?fml - Returns a "F*ck My Life"
100
+
101
+ _GifMe_
102
+ * ?randomgif - grabs a random gif from gifme
103
+ * ?gif (term) - returns the best match from gifme
104
+
105
+ _Movie_
106
+ * ?movie (movie name) :year - the year is optional but must be prefixed with a colon
107
+
108
+ _Urban Dictionary_
109
+ * ?ud (definition) - returns a definition
110
+ * ?wotd - World of the day
111
+
112
+ _Weather_
113
+ * ?w (location)
114
+ * ?wx (location)
115
+ * ?setw (location) - Sets your current location so the bot will remember if you do ?w
116
+ * ?hurricane - gets current hurricane activity
117
+ * ?forecast (location)
118
+
119
+ _PDF Info_
120
+ This plugin grabs the metadata from a pdf that is linked in channel
121
+
122
+ _DBZ_
123
+ responds when you say certain keywords
124
+
125
+ ### Network Specific Plugins
126
+ #### FlagRun Networks
127
+ _URL Grabber_
128
+ Grabs metadata from url in channel
129
+
130
+ #### DarkScience
131
+
132
+ _API_
133
+ * ?finger (nick) - pulls nickname information from the DarkScience API
134
+ * ?stats (nick) - pulls statistics information for a nick from the DarkScience API
135
+ * ?peek (channel) - pulls channel information from Darkscience API
136
+
137
+ _QDB_
138
+ * ?addquote (text) - submits quote to DarkScience API
139
+ * ?quote (id) - grabs the quote matching that ID for the specific channel
140
+ * ?quote - grabs random quote for channel
141
+
142
+ _LibSecure_
143
+ ** only works in \#libsecure channel **
144
+ * ?latest - grabs the latest post from libsecure
@@ -0,0 +1,10 @@
1
+ GEM
2
+ specs:
3
+
4
+ PLATFORMS
5
+ ruby
6
+
7
+ DEPENDENCIES
8
+
9
+ BUNDLED WITH
10
+ 1.16.1
@@ -1,17 +1,8 @@
1
1
  require 'action_view'
2
2
  module Plugins
3
3
  class Seen
4
- class SeenStruct < Struct.new(:who, :where, :what, :time)
5
- include ActionView::Helpers::DateHelper
6
- def to_s
7
- # "[#{time.asctime}] #{who} was seen in #{where} last saying #{what}"
8
- time_ago = time_ago_in_words(Time.at(time))
9
- if where.to_s.upcase == 'STAFF' || where.to_s.upcase == 'SERVICES'
10
- return ''
11
- end
12
- "Seen ∴ \x0304#{who}\x0F was last seen talking in \x1F#{where.to_s.upcase}\x0F \x02#{time_ago}\x0F ago."
13
- end
14
- end
4
+ include ActionView::Helpers::DateHelper
5
+ class SeenStruct < Struct.new(:who, :where, :time); end
15
6
 
16
7
  include Cinch::Plugin
17
8
  include Cinch::Helpers
@@ -32,9 +23,8 @@ module Plugins
32
23
  end
33
24
 
34
25
  def listen(m)
35
- return if m.channel == '#staff'
36
- return if m.channel == '#netops'
37
- @users[m.user.nick] = SeenStruct.new(m.user, m.channel, m.message, Time.now)
26
+ return if m.channel == '#services'
27
+ @users[m.user.nick] = SeenStruct.new(m.user, m.channel, Time.now)
38
28
  end
39
29
 
40
30
  def execute(m, nick)
@@ -43,10 +33,11 @@ module Plugins
43
33
  m.reply 'You are a Stupid human!'
44
34
  elsif nick == m.user.nick
45
35
  m.reply "Unfortunately, I see an idiot by the name of #{m.user.nick}"
46
- elsif @users.key?(nick)
47
- m.reply @users[nick].to_s
36
+ elsif @users.key?(nick) && (@users[nick].where == m.channel)
37
+ time_ago = time_ago_in_words(Time.at(@users[nick].time))
38
+ m.reply "Seen ∴ \x0304#{@users[nick].who}\x0F was last seen talking in here about \x02#{time_ago}\x0F ago."
48
39
  else
49
- m.reply "I haven't seen #{nick}"
40
+ m.reply "I haven't seen #{nick} say anything yet!"
50
41
  end
51
42
  end
52
43
 
@@ -1,5 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
- # == Author
2
+ # == Original Author
3
3
  # Marvin Gülker (Quintus)
4
4
  #
5
5
  # == Modification author
@@ -23,6 +23,7 @@
23
23
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
24
24
 
25
25
  # Plugin for inspecting links pasted into channels.
26
+ # F
26
27
  require 'video_info'
27
28
  require 'mechanize'
28
29
  require 'action_view'
@@ -88,7 +89,7 @@ module Plugins
88
89
  def match_youtube(msg, url)
89
90
  if Config.secrets[:google]
90
91
  video = VideoInfo.new(url)
91
- msg.reply "#{Format(:red, 'YouTube ')}∴ #{video.title} ( #{Format(:green, Time.at(video.duration).strftime("%H:%M:%S"))} )"
92
+ msg.reply "#{Format(:red, 'YouTube ')}∴ #{video.title} ( #{Format(:green, Time.at(video.duration).utc.strftime("%H:%M:%S"))} )"
92
93
  else
93
94
  match_other(msg, url)
94
95
  end
@@ -96,7 +97,7 @@ module Plugins
96
97
  end
97
98
 
98
99
  def match_github(msg, url)
99
- # TODO parse github url
100
+ # TODO: parse github url
100
101
  end
101
102
 
102
103
  def match_imgur(msg, url)
@@ -105,20 +106,20 @@ module Plugins
105
106
 
106
107
  # Query Data
107
108
  data = JSON.parse(
108
- RestClient.get("https://api.imgur.com/3/image/#{id[1]}", { Authorization: "Client-ID #{Config.secrets[:imgur_id]}" })
109
- )
109
+ RestClient.get("https://api.imgur.com/3/image/#{id[1]}",
110
+ { Authorization: "Client-ID #{Config.secrets[:imgur_id]}" }
111
+ )
112
+ )
110
113
  return 'Unable to query imgur' unless defined?(data)
114
+
111
115
  i = Hashie::Mash.new(data)
112
116
 
113
117
  # SET Not Safe For Work
114
- if i.data.nsfw
115
- nsf = "[#{Format(:red, 'NSFW')}]"
116
- else
117
- nsf = "[#{Format(:green, 'SAFE')}]"
118
- end
118
+ nsf = i.data.nsfw ? "[#{Format(:red, 'NSFW')}]" : "[#{Format(:green, 'SAFE')}]"
119
119
 
120
120
  # Trigger reply message
121
- msg.reply("#{Format(:purple, 'IMGUR')} #{nsf} ∴ [#{Format(:yellow, i.data.type)}] #{i.data.width}x#{i.data.height} "\
121
+ msg.reply("#{Format(:purple, 'IMGUR')} #{nsf} "\
122
+ "∴ [#{Format(:yellow, i.data.type)}] #{i.data.width}x#{i.data.height} "\
122
123
  "∴ Views: #{ i.data.views.to_s} ∴ #{i.data.title ? i.data.title[0..100] : 'No Title'} "\
123
124
  "∴ Posted #{time_ago_in_words(Time.at(i.data.datetime))} ago")
124
125
  end
@@ -126,7 +127,7 @@ module Plugins
126
127
  def match_other(msg,url)
127
128
  begin
128
129
  html = Mechanize.start { |m|
129
- # Timeout longwinded pages
130
+ # Timeout long winded pages
130
131
  m.max_history = 1
131
132
  m.read_timeout = 4
132
133
  m.max_file_buffer = 2_097_152
@@ -105,6 +105,7 @@ module Plugins
105
105
  wind = Unitwise(data.wind.speed, 'kilometer')
106
106
 
107
107
  data.reply = "OWM ∴ #{ac.formatted_address} " \
108
+ "≈ #{Time.now.change(offset: data.timezone).strftime("%a %D %l:%M %P")} " \
108
109
  "≈ #{data.weather[0].description}, #{temp.convert_to('[degF]').to_i.round(2)} F (#{temp.convert_to('Cel').to_i.round(2)} C) " \
109
110
  "≈ Humidity: #{data.main.humidity}% " \
110
111
  "≈ Pressure: #{pressure.convert_to('[in_i\'Hg]').to_f.round(2)} in/Hg " \
@@ -142,11 +143,11 @@ module Plugins
142
143
  gusts = Unitwise(current.windGust, 'mile').convert_to('kilometer').to_i
143
144
 
144
145
  tempstring = "#{current.temperature.to_i} F (#{c} C)"
145
- feelslike = "#{current.apparentTemperature.to_i} F (#{c_feels} C)"
146
+ # feelslike = "#{current.apparentTemperature.to_i} F (#{c_feels} C)"
146
147
 
147
148
  data.reply = "DS ∴ #{ac.formatted_address} " \
149
+ "≈ #{Time.at(current.time).strftime("%a %D %l:%M %P")} " \
148
150
  "≈ #{current.summary} #{tempstring} " \
149
- "≈ Feels like #{feelslike} " \
150
151
  "≈ Humidity: #{current.relative_humidity} " \
151
152
  "≈ Pressure: #{p.convert_to('[in_i\'Hg]').to_f.round(2)} in/Hg " \
152
153
  "(#{p.convert_to("kPa").to_f.round(2)} kPa) " \
@@ -1,3 +1,3 @@
1
1
  module Zeta
2
- VERSION = '2.0.0'
2
+ VERSION = '2.0.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zetabot
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Liothen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-06 00:00:00.000000000 Z
11
+ date: 2019-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -564,6 +564,7 @@ executables:
564
564
  extensions: []
565
565
  extra_rdoc_files: []
566
566
  files:
567
+ - ".bundle/config"
567
568
  - ".gitignore"
568
569
  - Gemfile
569
570
  - Gemfile.lock
@@ -591,6 +592,7 @@ files:
591
592
  - lib/Zeta/cache.rb
592
593
  - lib/Zeta/cinch.rb
593
594
  - lib/Zeta/config.rb
595
+ - lib/Zeta/gems.locked
594
596
  - lib/Zeta/gems.rb
595
597
  - lib/Zeta/locale.rb
596
598
  - lib/Zeta/locale/en/8ball.yml
@@ -654,7 +656,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
654
656
  - !ruby/object:Gem::Version
655
657
  version: '0'
656
658
  requirements: []
657
- rubygems_version: 3.0.1
659
+ rubygems_version: 3.0.3
658
660
  signing_key:
659
661
  specification_version: 4
660
662
  summary: Zeta is a IRC bot written in ruby using the Cinch Framework