reminders_txt 0.7.0 → 0.9.1
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/reminders_txt.rb +58 -8
- data.tar.gz.sig +0 -0
- metadata +37 -18
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3374da8e9e063a36520ddd0d8d916dbc4b2e600dbe8ed6c595b387599dc5dba8
|
4
|
+
data.tar.gz: 138ee3fed7fe6c4b5571ce627d16c7d4036637a255f84c11626f453cd9bbbcac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a280af4775c6d214142a15f0907d5711688cb0e3ecee74442611dcf94330be1907d1e15bb87f600e7378741cc8c0ab303cda4bd3bf8620f16167fcf3accadc8
|
7
|
+
data.tar.gz: 85bf7b3c7082ffb3cd24ae4840de0bda4cbb93e8d4f32790657e06b89b0809b33c7856c9fa8089ec14c7a611199e2455f6f37ad2818dbf5e132a74a4d6d00983
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/reminders_txt.rb
CHANGED
@@ -7,17 +7,24 @@ require 'dynarex'
|
|
7
7
|
require 'event_nlp'
|
8
8
|
require 'digest/md5'
|
9
9
|
require 'human_speakable'
|
10
|
+
require 'rxfreadwrite'
|
11
|
+
require 'vpim'
|
10
12
|
|
11
13
|
|
12
|
-
class
|
14
|
+
class Fixnum
|
15
|
+
def ordinal
|
16
|
+
self.to_s + ( (10...20).include?(self) ? 'th' : %w{ th st nd rd th th th th th th }[self % 10] )
|
17
|
+
end
|
18
|
+
end
|
13
19
|
|
20
|
+
class RemindersTxtException < Exception
|
14
21
|
|
15
22
|
end
|
16
23
|
|
17
24
|
|
18
25
|
class RemindersTxt
|
19
26
|
using ColouredText
|
20
|
-
include
|
27
|
+
include RXFReadWriteModule
|
21
28
|
|
22
29
|
attr_reader :reminders, :dx
|
23
30
|
|
@@ -41,7 +48,7 @@ class RemindersTxt
|
|
41
48
|
|
42
49
|
else
|
43
50
|
|
44
|
-
@filepath = File.join(
|
51
|
+
@filepath = File.join(DirX.pwd, 'reminders.txt')
|
45
52
|
@dxfilepath = @filepath.sub(/.txt$/,'.xml')
|
46
53
|
|
47
54
|
@dx = Dynarex.new
|
@@ -64,11 +71,20 @@ class RemindersTxt
|
|
64
71
|
end
|
65
72
|
end
|
66
73
|
|
67
|
-
def add(
|
74
|
+
def add(obj)
|
75
|
+
|
76
|
+
if obj.is_a? String then
|
77
|
+
|
78
|
+
s = obj
|
79
|
+
s.strip!
|
80
|
+
r = EventNlp.new(@now, params: {input: s}).parse(s)
|
81
|
+
return if r.nil?
|
68
82
|
|
69
|
-
|
70
|
-
|
71
|
-
|
83
|
+
elsif obj.is_a? OpenStruct
|
84
|
+
|
85
|
+
r = obj
|
86
|
+
|
87
|
+
end
|
72
88
|
|
73
89
|
@reminders << r
|
74
90
|
refresh()
|
@@ -93,6 +109,40 @@ class RemindersTxt
|
|
93
109
|
@dx.filter {|x| x.title =~ /#{s}/i}
|
94
110
|
end
|
95
111
|
|
112
|
+
def import_vcs(filename)
|
113
|
+
|
114
|
+
puts 'filename: ' + filename.inspect if @debug
|
115
|
+
icsfile = FileX.read filename
|
116
|
+
cal = Vpim::Icalendar.decode(icsfile).first
|
117
|
+
puts '*********************' if @debug
|
118
|
+
r = cal.components[0]
|
119
|
+
datestart = "%s %s" % [r.dtstart.day.ordinal, r.dtstart.strftime("%B %Y at %H:%M%P")]
|
120
|
+
event = "%s: %s at %s %s" % [r.categories.join(', '), r.summary, r.location, datestart]
|
121
|
+
|
122
|
+
if r.dtend then
|
123
|
+
|
124
|
+
if r.dtstart.to_date == r.dtend.to_date then
|
125
|
+
event += '-' + r.dtend.strftime("%H:%M%P")
|
126
|
+
else
|
127
|
+
dateend = "%s %s" % [r.dtend.day.ordinal, r.dtend.strftime("%B %Y at %H:%M%P")]
|
128
|
+
event += ' to ' + dateend
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
h = {
|
134
|
+
input: event,
|
135
|
+
title: "%s: %s" % [r.categories.join(', '), r.summary],
|
136
|
+
date: r.dtstart
|
137
|
+
}
|
138
|
+
|
139
|
+
h[:venue] = r.location if r.location
|
140
|
+
h[:end_date] = r.dtend if r.dtend
|
141
|
+
|
142
|
+
add OpenStruct.new(h)
|
143
|
+
|
144
|
+
end
|
145
|
+
|
96
146
|
def upcoming(ndays=5, days: ndays, months: nil)
|
97
147
|
|
98
148
|
next_date = if months then
|
@@ -261,7 +311,7 @@ class RemindersTxt
|
|
261
311
|
filepath = File.dirname @dxfilepath
|
262
312
|
|
263
313
|
notesfile = File.join(filepath, 'reminder_notes.xml')
|
264
|
-
return unless
|
314
|
+
return unless FileX.exists? notesfile
|
265
315
|
|
266
316
|
dx = Dynarex.new notesfile
|
267
317
|
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reminders_txt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
tYyvieamfpSjWJEZi7K760qv2dWJ9kwfaJ7Q3TVP4Jjt0Iwep7Gutk7GV3uY35DA
|
36
36
|
iHcajrfKduh5CsLsvkXRjR4E
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2022-
|
38
|
+
date: 2022-08-10 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: dynarex
|
@@ -46,7 +46,7 @@ dependencies:
|
|
46
46
|
version: '1.9'
|
47
47
|
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 1.9.
|
49
|
+
version: 1.9.11
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -56,47 +56,67 @@ dependencies:
|
|
56
56
|
version: '1.9'
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: 1.9.
|
59
|
+
version: 1.9.11
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: event_nlp
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
|
-
- - ">="
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: 0.6.0
|
67
64
|
- - "~>"
|
68
65
|
- !ruby/object:Gem::Version
|
69
|
-
version: '0.
|
66
|
+
version: '0.7'
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.7.0
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 0.6.0
|
77
74
|
- - "~>"
|
78
75
|
- !ruby/object:Gem::Version
|
79
|
-
version: '0.
|
76
|
+
version: '0.7'
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 0.7.0
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: human_speakable
|
82
82
|
requirement: !ruby/object:Gem::Requirement
|
83
83
|
requirements:
|
84
|
-
- - ">="
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: 0.2.0
|
87
84
|
- - "~>"
|
88
85
|
- !ruby/object:Gem::Version
|
89
86
|
version: '0.2'
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.2.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.2'
|
94
97
|
- - ">="
|
95
98
|
- !ruby/object:Gem::Version
|
96
99
|
version: 0.2.0
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: vpim
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
97
104
|
- - "~>"
|
98
105
|
- !ruby/object:Gem::Version
|
99
|
-
version: '
|
106
|
+
version: '13.11'
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 13.11.11
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '13.11'
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: 13.11.11
|
100
120
|
description:
|
101
121
|
email: digital.robertson@gmail.com
|
102
122
|
executables: []
|
@@ -123,8 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
143
|
- !ruby/object:Gem::Version
|
124
144
|
version: '0'
|
125
145
|
requirements: []
|
126
|
-
|
127
|
-
rubygems_version: 2.7.10
|
146
|
+
rubygems_version: 3.3.7
|
128
147
|
signing_key:
|
129
148
|
specification_version: 4
|
130
149
|
summary: Reads and updates diary reminders from a plain text file
|
metadata.gz.sig
CHANGED
Binary file
|