event_nlp 0.5.2 → 0.5.3

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
  SHA256:
3
- metadata.gz: 124158eaa2d190a018ac080544f817c23aa5b204a2077bcf9c6b763384be0c68
4
- data.tar.gz: ce967c58f45480fbb66462f6cf9bac6445c82a4a2d6b69d95654262f794b3b2b
3
+ metadata.gz: 42e47f457a1e07759fc8b3de0ae3f85d35fc0679e252c9c52570457e5d389125
4
+ data.tar.gz: 58cabc06778bed4444a025092f47699089627145c06ab91befc1f02050e1a61a
5
5
  SHA512:
6
- metadata.gz: 734b60be3195c82512801cb0680a3c7965afefd567722f2870c0efc2ad030dc4b348d81e5672c489c64b3c9150f5d5b1746f1e8c998f9592eecc9a517c0297e6
7
- data.tar.gz: 744bc3868f73a02a28b88b040c11beeb2af9d374e33f6427ae31ef29ce332110b3a1a79be5344cf0a4c12e29b05c05e1bf29bcdca1f9a5c7097113a7cce70614
6
+ metadata.gz: e223d22b9a2404c8467fce4b9b8f58b9889dfffa15a3c83aaccc5c8d3912abaf50cf26bc46fbfc84744f345afa6905fbfcd7f27a49293d4b915c6cba72e49a47
7
+ data.tar.gz: b8f40f7a4168aaed947b00a2bbab9fd7864fc81388305cd8f6ede785bf84added0bef7fa3561f16400f35e2309eb0aefc0bdfab44ebef53df088058103eb3c19
Binary file
data.tar.gz.sig CHANGED
@@ -1,2 +1 @@
1
- ems�*4Da5.�CO��
2
- ��&� 1T2��-��D�A$�)y*|0eV�7k�4��
1
+ .��)�?�ª܋� 5 ֌a���'�M
@@ -53,17 +53,19 @@ class EventNlp
53
53
  def expressions(params)
54
54
 
55
55
  starting = /(?:\(?\s*starting (\d+\w{2} \w+\s*\w*)(?: until (.*))?\s*\))?/
56
- weekdays2 = Date::DAYNAMES.join('|').downcase
56
+ weekdays2 = (Date::DAYNAMES + Date::ABBR_DAYNAMES).join('|').downcase
57
57
  weekdays = "(%s)" % weekdays2
58
58
  months = "(%s)" % (Date::MONTHNAMES[1..-1] + Date::ABBR_MONTHNAMES[1..-1])\
59
59
  .join('|').downcase
60
60
  times = /(?: *(?:at |@ |from )?(\d+(?::\d+)?(?:[ap]m|\b)) *)/
61
61
  times2 = /\d+(?::\d+)?[ap]m-\d+(?::\d+)?[ap]m|\d+(?::\d+)?-\d+(?::\d+)?/
62
+ times3 = /(\d+(?::\d+)?[ap]m-\d+(?::\d+)?[ap]m|\d+(?::\d+)?-\d+(?::\d+)?)/
62
63
  days = /(\d+(?:st|nd|rd|th))/
63
64
  periods = /day|week|month/
64
65
 
65
66
  #weekdays = Date::DAYNAMES.join('|').downcase
66
67
  #
68
+
67
69
  #times = /(?: *at )?\d[ap]m/
68
70
 
69
71
  # e.g. electricity bill on the 28th of every month
@@ -223,7 +225,7 @@ class EventNlp
223
225
  # some event Wednesday 11am
224
226
 
225
227
  relative_day = '|today|tomorrow|tonight'
226
- get /^(.*)\s+(#{weekdays2+relative_day})(?: \(([^\)]+)\)) (at \d{1,2}(?::\d{2})?(?:[ap]m)?)/i \
228
+ get /^(.*)\s+(#{weekdays2+relative_day}\b)(?: \(([^\)]+)\)) (at \d{1,2}(?::\d{2})?(?:[ap]m)?)/i \
227
229
  do |title, raw_date, date2, time2|
228
230
  puts ('time2: ' + time2.inspect).debug if @debug
229
231
  puts ('date2: ' + date2).debug if @debug
@@ -241,7 +243,7 @@ class EventNlp
241
243
  end
242
244
 
243
245
  # Group meeting Red Hall 2pm-4pm on Monday (4th Dec 2017)
244
- get /^(.*)\s+(#{times2})(?: on) +#{weekdays}(?: \(([^\)]+)\))?/i \
246
+ get /^(.*)\s+(#{times2})(?: on) +#{weekdays}\b(?: \(([^\)]+)\))?/i \
245
247
  do |title, xtimes, raw_day, actual_date|
246
248
 
247
249
  if @debug then
@@ -256,7 +258,7 @@ class EventNlp
256
258
  d = Chronic.parse actual_date
257
259
  else
258
260
  d = Chronic.parse(raw_day)
259
- input.sub!(/#{weekdays}/i,
261
+ input.sub!(/#{weekdays}\b/i,
260
262
  %Q(#{raw_day} (#{d.strftime("#{d.day.ordinal} %b %Y")})))
261
263
  end
262
264
 
@@ -274,7 +276,7 @@ class EventNlp
274
276
 
275
277
  # hall 2 friday at 11am
276
278
 
277
- get /^(.*)\s+#{weekdays}(?: \(([^\)]+)\))?(#{times})?/i \
279
+ get /^(.*)\s+#{weekdays}\b(?: \(([^\)]+)\))?(#{times})?/i \
278
280
  do |title, raw_day, actual_date, time|
279
281
 
280
282
  if @debug then
@@ -328,9 +330,10 @@ class EventNlp
328
330
  end
329
331
 
330
332
  # friday hall 2 11am
331
- get /^#{weekdays}\s+(.*)\s+(\d+(?::\d{2})?[ap]m)$/i do \
333
+ get /^#{weekdays}\b\s+(.*)\s+(\d+(?::\d{2})?[ap]m)$/i do \
332
334
  |raw_day, title, time|
333
335
 
336
+ puts [raw_day, title, time].inspect if @debug
334
337
  venue = title[/^at +(.*)/,1]
335
338
  d = Chronic.parse(raw_day + ' ' + time)
336
339
 
@@ -340,7 +343,7 @@ class EventNlp
340
343
  end
341
344
 
342
345
  # Tuesday 10th July hall 2 at 11am
343
- get /#{weekdays}\s+#{days}\s+#{months}\s+(?:at )?(.*)\s+at\s+(#{times})/i \
346
+ get /#{weekdays}\b\s+#{days}\s+#{months}\s+(?:at )?(.*)\s+at\s+(#{times})/i \
344
347
  do |wday, day, month, title, time|
345
348
 
346
349
  d = Chronic.parse([day, month, time].join(' '))
@@ -392,10 +395,26 @@ class EventNlp
392
395
 
393
396
  { title: title, date: d1, end_date: d2 }
394
397
  end
398
+
399
+ # Some event (10 Woodhouse Lane) 30th Nov from 9:15-17:00
400
+
401
+ get /^#{weekdays}\b #{months} #{days} #{times3} (.*)/i do \
402
+ |wday, month, day, xtimes, title|
403
+
404
+ puts [month, day, xtimes, title].inspect if @debug
405
+ t1, t2 = xtimes.split(/-/,2)
406
+
407
+ d1 = Chronic.parse([month, day, t1 + ':00'].join(' '))
408
+ d2 = Chronic.parse([month, day, t2 + ':00'].join(' '))
409
+
410
+ puts [4.55, title, d1, d2].inspect.debug if @debug
411
+
412
+ { title: title, date: d1, end_date: d2 }
413
+ end
395
414
 
396
415
  # e.g. Wednesday 30th Nov at 9:15 10 Woodhouse Lane
397
416
 
398
- get /^(?:#{weekdays2}) #{days} #{months}(?: at)? #{times}(.*)/i do \
417
+ get /^(?:#{weekdays2}\b) #{days} #{months}(?: at)? #{times}(.*)/i do \
399
418
  |day, month, t1, title|
400
419
 
401
420
  d1 = Chronic.parse([month, day, t1].join(' '))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: event_nlp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -30,7 +30,7 @@ cert_chain:
30
30
  hfzP67fp+s/TI6Tk+IvaEWBcfX7AV2XjfhS+q3uCBvQRjmbbRg3JO4XdjAQI3q8d
31
31
  +P4=
32
32
  -----END CERTIFICATE-----
33
- date: 2019-03-10 00:00:00.000000000 Z
33
+ date: 2019-03-18 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: chronic_cron
metadata.gz.sig CHANGED
Binary file