event_nlp 0.3.1 → 0.4.0
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.tar.gz.sig +0 -0
- data/lib/event_nlp.rb +36 -17
- metadata +25 -26
- 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: 73cd65c68a6459b464bc21d5d91f925fdfb776c7
|
4
|
+
data.tar.gz: 524ccb60d5660fd2c99520e3915ab672519ea4e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5810a9e49803482d1b2ee43f9f03e45848b06fb20b4ded4e75303dfa2c7a955683b527bea1699d0d1f7bf054821ec9b5611a1f2fabfe7652ab03f73c1796143c
|
7
|
+
data.tar.gz: 6df966634ca2c75075a93df62f509e123db9b7c79234cebe5379d98ce73965775bfc04d6715fd46519aa38a69c4bc6ec11e3286232207096e79dac42198be714
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/event_nlp.rb
CHANGED
@@ -52,12 +52,13 @@ class EventNlp
|
|
52
52
|
def expressions(params)
|
53
53
|
|
54
54
|
starting = /(?:\(?\s*starting (\d+\w{2} \w+\s*\w*)(?: until (.*))?\s*\))?/
|
55
|
-
|
56
|
-
|
57
|
-
|
55
|
+
weekdays2 = Date::DAYNAMES.join('|').downcase
|
56
|
+
weekdays = "(%s)" % weekdays2
|
57
|
+
months = "(%s)" % (Date::MONTHNAMES[1..-1] + Date::ABBR_MONTHNAMES[1..-1])\
|
58
|
+
.join('|').downcase
|
58
59
|
times = /(?: *(?:at |@ |from )?(\d+(?::\d+)?(?:[ap]m|\b)) *)/
|
59
60
|
times2 = /\d+(?::\d+)?[ap]m-\d+(?::\d+)?[ap]m|\d+(?::\d+)?-\d+(?::\d+)?/
|
60
|
-
days =
|
61
|
+
days = /(\d+(?:st|nd|rd|th))/
|
61
62
|
periods = /day|week|month/
|
62
63
|
|
63
64
|
#weekdays = Date::DAYNAMES.join('|').downcase
|
@@ -187,7 +188,8 @@ class EventNlp
|
|
187
188
|
end
|
188
189
|
|
189
190
|
puts [0.5, title, recurring, d].inspect if @debug
|
190
|
-
{input: input, title: title.rstrip, recurring: recurring,
|
191
|
+
{input: input, title: title.rstrip, recurring: recurring,
|
192
|
+
date: d, end_date: end_date }
|
191
193
|
|
192
194
|
end
|
193
195
|
|
@@ -203,7 +205,8 @@ class EventNlp
|
|
203
205
|
|
204
206
|
|
205
207
|
# 7th Oct Euston Station (meet at Timothy's house at 7pm)
|
206
|
-
get /^(\d(?:st|nd|rd|th) \w+) *(.*)\s+at\s+(\w+)/i do
|
208
|
+
get /^(\d(?:st|nd|rd|th) \w+) *(.*)\s+at\s+(\w+)/i do \
|
209
|
+
|raw_day, title, time|
|
207
210
|
|
208
211
|
d = Chronic.parse(raw_day + ' ' + time)
|
209
212
|
|
@@ -216,7 +219,7 @@ class EventNlp
|
|
216
219
|
# some event Wednesday 11am
|
217
220
|
|
218
221
|
relative_day = '|today|tomorrow|tonight'
|
219
|
-
get /^(.*)\s+(#{
|
222
|
+
get /^(.*)\s+(#{weekdays2+relative_day})(?: \(([^\)]+)\)) (at \d{1,2}(?::\d{2})?(?:[ap]m)?)/i \
|
220
223
|
do |title, raw_date, date2, time2|
|
221
224
|
puts 'time2: ' + time2.inspect if @debug
|
222
225
|
puts 'date2: ' + date2 if @debug
|
@@ -234,7 +237,8 @@ class EventNlp
|
|
234
237
|
end
|
235
238
|
|
236
239
|
# Group meeting Red Hall 2pm-4pm on Monday (4th Dec 2017)
|
237
|
-
get /^(.*)\s+(#{times2})(?: on)
|
240
|
+
get /^(.*)\s+(#{times2})(?: on) +#{weekdays}(?: \(([^\)]+)\))?/i \
|
241
|
+
do |title, xtimes, raw_day, actual_date|
|
238
242
|
|
239
243
|
puts 'actual_date: ' + actual_date.inspect if @debug
|
240
244
|
puts 'raw_day: ' + raw_day.inspect if @debug
|
@@ -246,7 +250,8 @@ class EventNlp
|
|
246
250
|
d = Chronic.parse actual_date
|
247
251
|
else
|
248
252
|
d = Chronic.parse(raw_day)
|
249
|
-
input.sub!(/#{weekdays}/i
|
253
|
+
input.sub!(/#{weekdays}/i,
|
254
|
+
%Q(#{raw_day} (#{d.strftime("#{d.day.ordinal} %b %Y")})))
|
250
255
|
end
|
251
256
|
|
252
257
|
t1, t2 = xtimes.split(/-/,2)
|
@@ -263,7 +268,8 @@ class EventNlp
|
|
263
268
|
|
264
269
|
# hall 2 friday at 11am
|
265
270
|
|
266
|
-
get /^(.*)\s
|
271
|
+
get /^(.*)\s+#{weekdays}(?: \(([^\)]+)\))?(#{times})?/i \
|
272
|
+
do |title, raw_day, actual_date, time|
|
267
273
|
|
268
274
|
puts 'actual_date: ' + actual_date.inspect if @debug
|
269
275
|
puts 'raw_day: ' + raw_day.inspect if @debug
|
@@ -275,7 +281,8 @@ class EventNlp
|
|
275
281
|
d = Chronic.parse(raw_day + ' ' + time.to_s)
|
276
282
|
else
|
277
283
|
d = Chronic.parse(raw_day + ' ' + time.to_s)
|
278
|
-
input.sub!(/#{weekdays}/i
|
284
|
+
input.sub!(/#{weekdays}/i,
|
285
|
+
%Q(#{raw_day} (#{d.strftime("#{d.day.ordinal} %b %Y")})))
|
279
286
|
end
|
280
287
|
|
281
288
|
puts 'd: ' + d.inspect if @debug
|
@@ -301,7 +308,8 @@ class EventNlp
|
|
301
308
|
end
|
302
309
|
|
303
310
|
# friday hall 2 11am
|
304
|
-
get
|
311
|
+
get /^#{weekdays}\s+(.*)\s+(\d+(?::\d{2})?[ap]m)$/i do \
|
312
|
+
|raw_day, title, time|
|
305
313
|
|
306
314
|
d = Chronic.parse(raw_day + ' ' + time)
|
307
315
|
|
@@ -309,7 +317,17 @@ class EventNlp
|
|
309
317
|
{ title: title, date: d }
|
310
318
|
|
311
319
|
end
|
312
|
-
|
320
|
+
|
321
|
+
# Tuesday 10th July hall 2 at 11am
|
322
|
+
get /#{weekdays}\s+#{days}\s+#{months}\s+(?:at )?(.*)\s+at\s+(#{times})/i \
|
323
|
+
do |wday, day, month, title, time|
|
324
|
+
|
325
|
+
d = Chronic.parse([day, month, time].join(' '))
|
326
|
+
|
327
|
+
puts ['1.44.5', day, month, title].inspect if @debug
|
328
|
+
{ title: title, date: d }
|
329
|
+
|
330
|
+
end
|
313
331
|
|
314
332
|
# hall 2 at 11am
|
315
333
|
get /(.*)\s+at\s+(#{times})/i do |title, time|
|
@@ -325,8 +343,8 @@ class EventNlp
|
|
325
343
|
# 27-Mar@1436 some important day
|
326
344
|
# 25/07/2017 11pm some important day
|
327
345
|
#
|
328
|
-
get /^(\d+\/\d+\/\d+)\s*(\d+(?:\:\d+)?[ap]m)?\s+([^\*]+)(\*)?/
|
329
|
-
time, title, annualar|
|
346
|
+
get /^(\d+\/\d+\/\d+)\s*(\d+(?:\:\d+)?[ap]m)?\s+([^\*]+)(\*)?/ \
|
347
|
+
do |raw_date, time, title, annualar|
|
330
348
|
|
331
349
|
d = Chronic.parse(raw_date + ' ' + time.to_s,
|
332
350
|
:endian_precedence => :little)
|
@@ -349,7 +367,8 @@ class EventNlp
|
|
349
367
|
|
350
368
|
# Some event (10 Woodhouse Lane) 30th Nov from 9:15-17:00
|
351
369
|
|
352
|
-
get /^(.*)
|
370
|
+
get /^(.*) #{days} #{months}(?: from)? (#{times2})/i do \
|
371
|
+
|title, day, month, xtimes|
|
353
372
|
|
354
373
|
t1, t2 = xtimes.split(/-/,2)
|
355
374
|
|
@@ -407,4 +426,4 @@ class EventNlp
|
|
407
426
|
|
408
427
|
end
|
409
428
|
|
410
|
-
end
|
429
|
+
end
|
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.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -10,28 +10,27 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
/
|
31
|
-
|
32
|
-
kbRihMTezaC+4A==
|
13
|
+
MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQUFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwNzA1MTAxNjMyWhcN
|
15
|
+
MTkwNzA1MTAxNjMyWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVsMUO
|
17
|
+
uqAIaefnFUYjL01BM0IKcynSiGaen10C1l+mdb5L2u/qqmDlei+dhkROzdalv3I9
|
18
|
+
mzfM+gmypIghj96WuiJWFN0W3ktFvxo/GBt9H5va9e8osXAzIuMmU6XcPNHRJJ8a
|
19
|
+
l+++HBSeBylV0JGH3h+4Ia5fF8rsnUnhXnethMO4bEjERFVH8PO6qDnL28ua3r05
|
20
|
+
W964deP/xkSD2JCc9UEzmfa6+vXpT8EM00TEFsC0KWLC1tbNqQHknxW/JGFsvSrm
|
21
|
+
rtjUzYRg4D2JzBAvkofjPWhDcDwUg9HjEslqg0k4jzk8d7bCihmRDaeNLpmjFVeu
|
22
|
+
miMJkFxdCkRbFxkrAgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
23
|
+
HQYDVR0OBBYEFD6Oql0vDFt0//hJu95Y7ai3GlpdMCYGA1UdEQQfMB2BG2dlbW1h
|
24
|
+
c3RlckBqYW1lc3JvYmVydHNvbi5ldTAmBgNVHRIEHzAdgRtnZW1tYXN0ZXJAamFt
|
25
|
+
ZXNyb2JlcnRzb24uZXUwDQYJKoZIhvcNAQEFBQADggEBAEVbqAk47S/3aPeR4B7G
|
26
|
+
l875ptDSNkXUq0Y6/c7HLtCqO8J9WPGbNUoGT3EeYQblEcay816mbd3TLOgTdmo/
|
27
|
+
vJphzqk0LEHBYD2oC1G7Yzzq7BHkkoJN54e6b5ZzUHNctIGluMrjnNvIagHKfJlR
|
28
|
+
UAX6I2o4wL8qFLDxkEcv8FRc67xJBMdQljoYHO+mM8uz8Lsk5Go0xI6UvIZvAnXh
|
29
|
+
fJkRwzhE/iZ3kywtmmOnZthaWgHjUoY7bl8lyroUeFf1f3f1tNUKk7kfClyRVrka
|
30
|
+
hfzP67fp+s/TI6Tk+IvaEWBcfX7AV2XjfhS+q3uCBvQRjmbbRg3JO4XdjAQI3q8d
|
31
|
+
+P4=
|
33
32
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
33
|
+
date: 2018-07-05 00:00:00.000000000 Z
|
35
34
|
dependencies:
|
36
35
|
- !ruby/object:Gem::Dependency
|
37
36
|
name: chronic_cron
|
@@ -39,20 +38,20 @@ dependencies:
|
|
39
38
|
requirements:
|
40
39
|
- - "~>"
|
41
40
|
- !ruby/object:Gem::Version
|
42
|
-
version: '0.
|
41
|
+
version: '0.4'
|
43
42
|
- - ">="
|
44
43
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0.
|
44
|
+
version: 0.4.0
|
46
45
|
type: :runtime
|
47
46
|
prerelease: false
|
48
47
|
version_requirements: !ruby/object:Gem::Requirement
|
49
48
|
requirements:
|
50
49
|
- - "~>"
|
51
50
|
- !ruby/object:Gem::Version
|
52
|
-
version: '0.
|
51
|
+
version: '0.4'
|
53
52
|
- - ">="
|
54
53
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.
|
54
|
+
version: 0.4.0
|
56
55
|
- !ruby/object:Gem::Dependency
|
57
56
|
name: app-routes
|
58
57
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|