event_nlp 0.2.16 → 0.2.17
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/event_nlp.rb +45 -25
- data.tar.gz.sig +0 -0
- metadata +1 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0b3289870f21858812ccdaf45ab5ec26736eee9
|
4
|
+
data.tar.gz: 51f33ba988ee15567cf8bf28dfcfcd0ea200012e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6834d3422ac16b5af9552dcea6be8543fa5572a20520fc2629d25fa5eac80f48d3b2fc1dd2da7d38a32c872ab7a122d996098964e629b5a74fcd325f3fef6c9e
|
7
|
+
data.tar.gz: fa1cdf7c2cca71723979d82efc8576e2cc22d01c9f4e2b9be106eff0f707e444d40aaa7a5f8004924173c4c71d2729a3216ee5548b9019157b1f6ecf6a224517
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/event_nlp.rb
CHANGED
@@ -49,16 +49,13 @@ class EventNlp
|
|
49
49
|
|
50
50
|
private
|
51
51
|
|
52
|
-
def expressions(params)
|
53
|
-
|
54
|
-
|
55
|
-
|
52
|
+
def expressions(params)
|
56
53
|
|
57
54
|
starting = /(?:\(?\s*starting (\d+\w{2} \w+\s*\w*)(?: until (.*))?\s*\))?/
|
58
55
|
weekdays = Date::DAYNAMES.join('|').downcase
|
59
56
|
months = (Date::MONTHNAMES[1..-1] + Date::ABBR_MONTHNAMES[1..-1])\
|
60
57
|
.join('|').downcase
|
61
|
-
times = /(?: *(?:at |@ |from )?(\d+(?::\d+)?[ap]m) *)/
|
58
|
+
times = /(?: *(?:at |@ |from )?(\d+(?::\d+)?(?:[ap]m|\b)) *)/
|
62
59
|
times2 = /\d+(?::\d+)?[ap]m-\d+(?::\d+)?[ap]m|\d+(?::\d+)?-\d+(?::\d+)?/
|
63
60
|
days = /\d+(?:st|nd|rd|th)/
|
64
61
|
periods = /day|week|month/
|
@@ -214,15 +211,51 @@ class EventNlp
|
|
214
211
|
{ title: title, date: d }
|
215
212
|
|
216
213
|
end
|
214
|
+
|
215
|
+
# some event Wednesday
|
216
|
+
# some event Wednesday 11am
|
217
217
|
|
218
|
+
relative_day = '|today|tomorrow|tonight'
|
219
|
+
get /^(.*)\s+(#{weekdays+relative_day})(?: \(([^\)]+)\)) (at \d{1,2}(?::\d{2})?(?:[ap]m)?)/i \
|
220
|
+
do |title, raw_date, date2, time2|
|
221
|
+
puts 'time2: ' + time2.inspect if @debug
|
222
|
+
puts 'date2: ' + date2 if @debug
|
223
|
+
puts 'raw_date: ' + raw_date if @debug
|
224
|
+
|
225
|
+
d = if date2 then
|
226
|
+
Chronic.parse(date2 + ' '+ time2.to_s)
|
227
|
+
else
|
228
|
+
Chronic.parse(raw_date + ' '+ time2)
|
229
|
+
end
|
230
|
+
|
231
|
+
puts [4, title, raw_date, date2, time2].inspect if @debug
|
232
|
+
{title: title, date: d }
|
233
|
+
|
234
|
+
end
|
235
|
+
|
218
236
|
|
219
237
|
# hall 2 friday at 11am
|
220
|
-
get
|
238
|
+
get /^(.*)\s+(#{weekdays})(?: \(([^\)]+)\))?(#{times})?/i do |title, raw_day, actual_date, time|
|
221
239
|
|
222
|
-
|
240
|
+
puts 'actual_date: ' + actual_date.inspect if @debug
|
241
|
+
puts 'raw_day: ' + raw_day.inspect if @debug
|
242
|
+
puts 'time: ' + time.inspect if @debug
|
223
243
|
|
224
|
-
|
225
|
-
|
244
|
+
input = params[:input].clone
|
245
|
+
|
246
|
+
if actual_date then
|
247
|
+
d = Chronic.parse(raw_day + ' ' + time.to_s)
|
248
|
+
else
|
249
|
+
d = Chronic.parse(raw_day + ' ' + time.to_s)
|
250
|
+
input.sub!(/#{weekdays}/i,%Q(#{raw_day} (#{d.strftime("#{d.day.ordinal} %b %Y")})))
|
251
|
+
end
|
252
|
+
|
253
|
+
puts 'foo' + d.inspect
|
254
|
+
|
255
|
+
|
256
|
+
puts [1.7, input, title, raw_day].inspect if @debug
|
257
|
+
|
258
|
+
{input: input, title: title, date: d }
|
226
259
|
|
227
260
|
end
|
228
261
|
|
@@ -278,26 +311,12 @@ class EventNlp
|
|
278
311
|
d = Chronic.parse(raw_date, now: Time.local(@now.year + 1, 1, 1))
|
279
312
|
end
|
280
313
|
end
|
281
|
-
|
282
|
-
|
314
|
+
|
283
315
|
puts [3, title, raw_date, time].inspect if @debug
|
284
316
|
{ title: title, date: d, recurring: recurring }
|
285
317
|
end
|
286
318
|
|
287
|
-
|
288
|
-
# some event Wednesday 11am
|
289
|
-
|
290
|
-
relative_day = '|today|tomorrow|tonight'
|
291
|
-
get /^(.*)\s+((?:#{weekdays+relative_day})(?: \d{1,2}(?::\d{2})?[ap]m)?)/i \
|
292
|
-
do |title, raw_date|
|
293
|
-
|
294
|
-
d = Chronic.parse(raw_date)
|
295
|
-
|
296
|
-
puts [4, title, raw_date].inspect if @debug
|
297
|
-
{title: title, date: d }
|
298
|
-
|
299
|
-
end
|
300
|
-
|
319
|
+
|
301
320
|
|
302
321
|
# Some event (10 Woodhouse Lane) 30th Nov from 9:15-17:00
|
303
322
|
|
@@ -323,6 +342,7 @@ class EventNlp
|
|
323
342
|
nil, nil, nil, false
|
324
343
|
|
325
344
|
s2 = s.sub(/#{times}/i) {|x| time1 = x; ''}
|
345
|
+
puts 's2: ' + s2.inspect if @debug
|
326
346
|
s3 = s2.sub(/-(?=\d)/,'').sub(/#{times}/i) {|x| time2 = x; ''}
|
327
347
|
s4 = s3.sub(/ *#{weekdays} */i) {|x| weekday = x; ''}
|
328
348
|
s5 = s4.sub(/ *#{months} */i) {|x| month = x; ''}
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
metadata.gz.sig
CHANGED
Binary file
|