teems 0.3.3 → 0.8.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
- data/CHANGELOG.md +67 -0
- data/README.md +77 -0
- data/bin/teems +8 -1
- data/lib/teems/api/calendar.rb +45 -14
- data/lib/teems/api/client.rb +19 -4
- data/lib/teems/api/mail.rb +132 -0
- data/lib/teems/api/mail_actions.rb +22 -0
- data/lib/teems/api/mail_rules.rb +24 -0
- data/lib/teems/cli.rb +2 -0
- data/lib/teems/commands/base.rb +31 -7
- data/lib/teems/commands/cal.rb +109 -28
- data/lib/teems/commands/cal_ics.rb +47 -0
- data/lib/teems/commands/confirmation.rb +19 -0
- data/lib/teems/commands/help.rb +4 -0
- data/lib/teems/commands/mail.rb +207 -0
- data/lib/teems/commands/mail_decrypting.rb +46 -0
- data/lib/teems/commands/mail_help.rb +85 -0
- data/lib/teems/commands/mail_rules.rb +201 -0
- data/lib/teems/commands/mail_sync.rb +92 -0
- data/lib/teems/commands/mail_thread.rb +87 -0
- data/lib/teems/commands/mail_triage.rb +241 -0
- data/lib/teems/commands/meet.rb +159 -0
- data/lib/teems/commands/sync.rb +15 -8
- data/lib/teems/commands/sync_folders.rb +118 -0
- data/lib/teems/formatters/format_utils.rb +23 -2
- data/lib/teems/formatters/html_entities.rb +49 -0
- data/lib/teems/formatters/html_text.rb +181 -0
- data/lib/teems/formatters/ics_format.rb +112 -0
- data/lib/teems/formatters/link_cleaner.rb +91 -0
- data/lib/teems/formatters/link_collector.rb +70 -0
- data/lib/teems/formatters/mail_formatter.rb +58 -0
- data/lib/teems/formatters/mail_markdown.rb +70 -0
- data/lib/teems/formatters/mail_rule_formatter.rb +45 -0
- data/lib/teems/formatters/mail_rule_text.rb +67 -0
- data/lib/teems/formatters/output.rb +45 -8
- data/lib/teems/models/chat.rb +19 -5
- data/lib/teems/models/event.rb +1 -23
- data/lib/teems/models/event_display.rb +40 -0
- data/lib/teems/models/ics_event.rb +60 -0
- data/lib/teems/models/mail_conversation.rb +62 -0
- data/lib/teems/models/mail_encryption.rb +41 -0
- data/lib/teems/models/mail_folder.rb +44 -0
- data/lib/teems/models/mail_message.rb +152 -0
- data/lib/teems/models/mail_rule.rb +38 -0
- data/lib/teems/runner.rb +6 -0
- data/lib/teems/services/api_client.rb +23 -11
- data/lib/teems/services/browser.rb +17 -0
- data/lib/teems/services/clipboard.rb +17 -0
- data/lib/teems/services/mail_folders.rb +76 -0
- data/lib/teems/services/mail_id_cache.rb +51 -0
- data/lib/teems/services/mail_legacy_files.rb +96 -0
- data/lib/teems/services/mail_sync_attachments.rb +103 -0
- data/lib/teems/services/mail_sync_engine.rb +98 -0
- data/lib/teems/services/mail_sync_folder.rb +142 -0
- data/lib/teems/services/mail_sync_store.rb +116 -0
- data/lib/teems/services/smime_content.rb +36 -0
- data/lib/teems/services/smime_decryptor.rb +36 -0
- data/lib/teems/services/sync_dir_naming.rb +16 -10
- data/lib/teems/services/sync_dir_ownership.rb +111 -0
- data/lib/teems/services/sync_dir_planning.rb +130 -0
- data/lib/teems/services/sync_store.rb +20 -43
- data/lib/teems/services/token_extractor.rb +4 -0
- data/lib/teems/support/control_chars.rb +19 -0
- data/lib/teems/support/mime_header.rb +61 -0
- data/lib/teems/support/mime_part.rb +97 -0
- data/lib/teems/support/signed_data.rb +23 -0
- data/lib/teems/support/time_parsing.rb +9 -1
- data/lib/teems/version.rb +1 -1
- data/lib/teems.rb +63 -2
- metadata +48 -1
data/lib/teems.rb
CHANGED
|
@@ -16,10 +16,12 @@ module Teems
|
|
|
16
16
|
|
|
17
17
|
# Error raised when a Teams API request fails (4xx/5xx responses)
|
|
18
18
|
class ApiError < Error
|
|
19
|
-
|
|
19
|
+
# error_code is the service's own code (Graph's error.code, e.g. "syncStateNotFound")
|
|
20
|
+
attr_reader :status_code, :error_code
|
|
20
21
|
|
|
21
|
-
def initialize(message = nil, status_code: nil)
|
|
22
|
+
def initialize(message = nil, status_code: nil, error_code: nil)
|
|
22
23
|
@status_code = status_code
|
|
24
|
+
@error_code = error_code
|
|
23
25
|
super(message)
|
|
24
26
|
end
|
|
25
27
|
|
|
@@ -48,6 +50,8 @@ module Teems
|
|
|
48
50
|
autoload :Channel, 'teems/models/channel'
|
|
49
51
|
autoload :Chat, 'teems/models/chat'
|
|
50
52
|
autoload :Event, 'teems/models/event'
|
|
53
|
+
autoload :IcsEvent, 'teems/models/ics_event'
|
|
54
|
+
autoload :EventDisplay, 'teems/models/event_display'
|
|
51
55
|
autoload :Message, 'teems/models/message'
|
|
52
56
|
autoload :InlineImage, 'teems/models/inline_image'
|
|
53
57
|
autoload :InlineImageParsing, 'teems/models/inline_image'
|
|
@@ -55,6 +59,12 @@ module Teems
|
|
|
55
59
|
autoload :User, 'teems/models/user'
|
|
56
60
|
autoload :UserProfile, 'teems/models/user_profile'
|
|
57
61
|
autoload :Duration, 'teems/models/duration'
|
|
62
|
+
autoload :MailFolder, 'teems/models/mail_folder'
|
|
63
|
+
autoload :MailMessage, 'teems/models/mail_message'
|
|
64
|
+
autoload :MailConversation, 'teems/models/mail_conversation'
|
|
65
|
+
autoload :MailEncryption, 'teems/models/mail_encryption'
|
|
66
|
+
autoload :MailRule, 'teems/models/mail_rule'
|
|
67
|
+
autoload :MAIL_RULE_SENDING_ACTIONS, 'teems/models/mail_rule'
|
|
58
68
|
end
|
|
59
69
|
|
|
60
70
|
# Application services for configuration, caching, and API communication
|
|
@@ -69,10 +79,25 @@ module Teems
|
|
|
69
79
|
autoload :InlineImageDownloader, 'teems/services/inline_image_downloader'
|
|
70
80
|
autoload :TeamsUrlParser, 'teems/services/teams_url_parser'
|
|
71
81
|
autoload :SyncStore, 'teems/services/sync_store'
|
|
82
|
+
autoload :SyncFileOps, 'teems/services/sync_store'
|
|
72
83
|
autoload :SyncDirNaming, 'teems/services/sync_dir_naming'
|
|
84
|
+
autoload :SyncDirOwnership, 'teems/services/sync_dir_ownership'
|
|
85
|
+
autoload :SyncDirPlanning, 'teems/services/sync_dir_planning'
|
|
73
86
|
autoload :SafariJsRunner, 'teems/services/safari_js_runner'
|
|
74
87
|
autoload :SyncEngine, 'teems/services/sync_engine'
|
|
75
88
|
autoload :SyncImages, 'teems/services/sync_images'
|
|
89
|
+
autoload :MailFolders, 'teems/services/mail_folders'
|
|
90
|
+
autoload :MailIdCache, 'teems/services/mail_id_cache'
|
|
91
|
+
autoload :Browser, 'teems/services/browser'
|
|
92
|
+
autoload :Clipboard, 'teems/services/clipboard'
|
|
93
|
+
autoload :SmimeContent, 'teems/services/smime_content'
|
|
94
|
+
autoload :SmimeDecryptor, 'teems/services/smime_decryptor'
|
|
95
|
+
autoload :MailLegacyFiles, 'teems/services/mail_legacy_files'
|
|
96
|
+
autoload :MailSyncAttachments, 'teems/services/mail_sync_attachments'
|
|
97
|
+
autoload :MailSyncEngine, 'teems/services/mail_sync_engine'
|
|
98
|
+
autoload :MailSyncFolder, 'teems/services/mail_sync_folder'
|
|
99
|
+
autoload :MailSyncIndex, 'teems/services/mail_sync_folder'
|
|
100
|
+
autoload :MailSyncStore, 'teems/services/mail_sync_store'
|
|
76
101
|
end
|
|
77
102
|
|
|
78
103
|
# Output formatters for messages and terminal output
|
|
@@ -82,7 +107,19 @@ module Teems
|
|
|
82
107
|
autoload :MessageFormatter, 'teems/formatters/message_formatter'
|
|
83
108
|
autoload :MarkdownFormatter, 'teems/formatters/markdown_formatter'
|
|
84
109
|
autoload :CalendarFormatter, 'teems/formatters/calendar_formatter'
|
|
110
|
+
autoload :IcsFormat, 'teems/formatters/ics_format'
|
|
85
111
|
autoload :TranscriptMarkdown, 'teems/formatters/transcript_markdown'
|
|
112
|
+
autoload :HtmlEntities, 'teems/formatters/html_entities'
|
|
113
|
+
autoload :HtmlTags, 'teems/formatters/html_text'
|
|
114
|
+
autoload :HtmlText, 'teems/formatters/html_text'
|
|
115
|
+
autoload :TextBuffer, 'teems/formatters/html_text'
|
|
116
|
+
autoload :LinkCleaner, 'teems/formatters/link_cleaner'
|
|
117
|
+
autoload :LinkCollector, 'teems/formatters/link_collector'
|
|
118
|
+
autoload :MailDates, 'teems/formatters/mail_formatter'
|
|
119
|
+
autoload :MailFormatter, 'teems/formatters/mail_formatter'
|
|
120
|
+
autoload :MailMarkdown, 'teems/formatters/mail_markdown'
|
|
121
|
+
autoload :MailRuleText, 'teems/formatters/mail_rule_text'
|
|
122
|
+
autoload :MailRuleFormatter, 'teems/formatters/mail_rule_formatter'
|
|
86
123
|
end
|
|
87
124
|
|
|
88
125
|
# CLI commands implementing user-facing functionality
|
|
@@ -91,17 +128,33 @@ module Teems
|
|
|
91
128
|
autoload :Activity, 'teems/commands/activity'
|
|
92
129
|
autoload :Auth, 'teems/commands/auth'
|
|
93
130
|
autoload :Cal, 'teems/commands/cal'
|
|
131
|
+
autoload :CalIcsExport, 'teems/commands/cal_ics'
|
|
94
132
|
autoload :Channels, 'teems/commands/channels'
|
|
95
133
|
autoload :Chats, 'teems/commands/chats'
|
|
96
134
|
autoload :Messages, 'teems/commands/messages'
|
|
97
135
|
autoload :Sync, 'teems/commands/sync'
|
|
136
|
+
autoload :SyncFolders, 'teems/commands/sync_folders'
|
|
98
137
|
autoload :Help, 'teems/commands/help'
|
|
99
138
|
autoload :Who, 'teems/commands/who'
|
|
100
139
|
autoload :Ooo, 'teems/commands/ooo'
|
|
101
140
|
autoload :Org, 'teems/commands/org'
|
|
102
141
|
autoload :Meeting, 'teems/commands/meeting'
|
|
142
|
+
autoload :Meet, 'teems/commands/meet'
|
|
103
143
|
autoload :Transcripts, 'teems/commands/transcripts'
|
|
104
144
|
autoload :Status, 'teems/commands/status'
|
|
145
|
+
autoload :Mail, 'teems/commands/mail'
|
|
146
|
+
autoload :MailReading, 'teems/commands/mail'
|
|
147
|
+
autoload :MailDecrypting, 'teems/commands/mail_decrypting'
|
|
148
|
+
autoload :MailThread, 'teems/commands/mail_thread'
|
|
149
|
+
autoload :MailTriage, 'teems/commands/mail_triage'
|
|
150
|
+
autoload :MailDueDate, 'teems/commands/mail_triage'
|
|
151
|
+
autoload :MailSelection, 'teems/commands/mail_triage'
|
|
152
|
+
autoload :MailHelp, 'teems/commands/mail_help'
|
|
153
|
+
autoload :MailRules, 'teems/commands/mail_rules'
|
|
154
|
+
autoload :MailRuleOptions, 'teems/commands/mail_rules'
|
|
155
|
+
autoload :MailRuleBuilder, 'teems/commands/mail_rules'
|
|
156
|
+
autoload :Confirmation, 'teems/commands/confirmation'
|
|
157
|
+
autoload :MailSyncing, 'teems/commands/mail_sync'
|
|
105
158
|
end
|
|
106
159
|
|
|
107
160
|
# Thin wrappers around Teams API endpoints
|
|
@@ -111,6 +164,10 @@ module Teems
|
|
|
111
164
|
autoload :Channels, 'teems/api/channels'
|
|
112
165
|
autoload :Chats, 'teems/api/chats'
|
|
113
166
|
autoload :Files, 'teems/api/files'
|
|
167
|
+
autoload :Mail, 'teems/api/mail'
|
|
168
|
+
autoload :MailActions, 'teems/api/mail_actions'
|
|
169
|
+
autoload :MailRules, 'teems/api/mail_rules'
|
|
170
|
+
autoload :MailPaths, 'teems/api/mail'
|
|
114
171
|
autoload :Meetings, 'teems/api/meetings'
|
|
115
172
|
autoload :Messages, 'teems/api/messages'
|
|
116
173
|
autoload :Users, 'teems/api/users'
|
|
@@ -124,5 +181,9 @@ module Teems
|
|
|
124
181
|
autoload :Timezone, 'teems/support/timezone'
|
|
125
182
|
autoload :TimeParsing, 'teems/support/time_parsing'
|
|
126
183
|
autoload :Subprocess, 'teems/support/subprocess'
|
|
184
|
+
autoload :MimeHeader, 'teems/support/mime_header'
|
|
185
|
+
autoload :MimePart, 'teems/support/mime_part'
|
|
186
|
+
autoload :SignedData, 'teems/support/signed_data'
|
|
187
|
+
autoload :ControlChars, 'teems/support/control_chars'
|
|
127
188
|
end
|
|
128
189
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: teems
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Eric Boehs
|
|
@@ -28,6 +28,9 @@ files:
|
|
|
28
28
|
- lib/teems/api/chats.rb
|
|
29
29
|
- lib/teems/api/client.rb
|
|
30
30
|
- lib/teems/api/files.rb
|
|
31
|
+
- lib/teems/api/mail.rb
|
|
32
|
+
- lib/teems/api/mail_actions.rb
|
|
33
|
+
- lib/teems/api/mail_rules.rb
|
|
31
34
|
- lib/teems/api/meetings.rb
|
|
32
35
|
- lib/teems/api/messages.rb
|
|
33
36
|
- lib/teems/api/users.rb
|
|
@@ -38,9 +41,19 @@ files:
|
|
|
38
41
|
- lib/teems/commands/auth.rb
|
|
39
42
|
- lib/teems/commands/base.rb
|
|
40
43
|
- lib/teems/commands/cal.rb
|
|
44
|
+
- lib/teems/commands/cal_ics.rb
|
|
41
45
|
- lib/teems/commands/channels.rb
|
|
42
46
|
- lib/teems/commands/chats.rb
|
|
47
|
+
- lib/teems/commands/confirmation.rb
|
|
43
48
|
- lib/teems/commands/help.rb
|
|
49
|
+
- lib/teems/commands/mail.rb
|
|
50
|
+
- lib/teems/commands/mail_decrypting.rb
|
|
51
|
+
- lib/teems/commands/mail_help.rb
|
|
52
|
+
- lib/teems/commands/mail_rules.rb
|
|
53
|
+
- lib/teems/commands/mail_sync.rb
|
|
54
|
+
- lib/teems/commands/mail_thread.rb
|
|
55
|
+
- lib/teems/commands/mail_triage.rb
|
|
56
|
+
- lib/teems/commands/meet.rb
|
|
44
57
|
- lib/teems/commands/meeting.rb
|
|
45
58
|
- lib/teems/commands/meeting_recording.rb
|
|
46
59
|
- lib/teems/commands/meeting_transcript.rb
|
|
@@ -49,10 +62,20 @@ files:
|
|
|
49
62
|
- lib/teems/commands/org.rb
|
|
50
63
|
- lib/teems/commands/status.rb
|
|
51
64
|
- lib/teems/commands/sync.rb
|
|
65
|
+
- lib/teems/commands/sync_folders.rb
|
|
52
66
|
- lib/teems/commands/transcripts.rb
|
|
53
67
|
- lib/teems/commands/who.rb
|
|
54
68
|
- lib/teems/formatters/calendar_formatter.rb
|
|
55
69
|
- lib/teems/formatters/format_utils.rb
|
|
70
|
+
- lib/teems/formatters/html_entities.rb
|
|
71
|
+
- lib/teems/formatters/html_text.rb
|
|
72
|
+
- lib/teems/formatters/ics_format.rb
|
|
73
|
+
- lib/teems/formatters/link_cleaner.rb
|
|
74
|
+
- lib/teems/formatters/link_collector.rb
|
|
75
|
+
- lib/teems/formatters/mail_formatter.rb
|
|
76
|
+
- lib/teems/formatters/mail_markdown.rb
|
|
77
|
+
- lib/teems/formatters/mail_rule_formatter.rb
|
|
78
|
+
- lib/teems/formatters/mail_rule_text.rb
|
|
56
79
|
- lib/teems/formatters/markdown_formatter.rb
|
|
57
80
|
- lib/teems/formatters/message_formatter.rb
|
|
58
81
|
- lib/teems/formatters/output.rb
|
|
@@ -62,21 +85,41 @@ files:
|
|
|
62
85
|
- lib/teems/models/chat.rb
|
|
63
86
|
- lib/teems/models/duration.rb
|
|
64
87
|
- lib/teems/models/event.rb
|
|
88
|
+
- lib/teems/models/event_display.rb
|
|
89
|
+
- lib/teems/models/ics_event.rb
|
|
65
90
|
- lib/teems/models/inline_image.rb
|
|
91
|
+
- lib/teems/models/mail_conversation.rb
|
|
92
|
+
- lib/teems/models/mail_encryption.rb
|
|
93
|
+
- lib/teems/models/mail_folder.rb
|
|
94
|
+
- lib/teems/models/mail_message.rb
|
|
95
|
+
- lib/teems/models/mail_rule.rb
|
|
66
96
|
- lib/teems/models/message.rb
|
|
67
97
|
- lib/teems/models/parsing.rb
|
|
68
98
|
- lib/teems/models/user.rb
|
|
69
99
|
- lib/teems/models/user_profile.rb
|
|
70
100
|
- lib/teems/runner.rb
|
|
71
101
|
- lib/teems/services/api_client.rb
|
|
102
|
+
- lib/teems/services/browser.rb
|
|
72
103
|
- lib/teems/services/cache_store.rb
|
|
104
|
+
- lib/teems/services/clipboard.rb
|
|
73
105
|
- lib/teems/services/configuration.rb
|
|
74
106
|
- lib/teems/services/file_downloader.rb
|
|
75
107
|
- lib/teems/services/headless_extract.rb
|
|
76
108
|
- lib/teems/services/inline_image_downloader.rb
|
|
109
|
+
- lib/teems/services/mail_folders.rb
|
|
110
|
+
- lib/teems/services/mail_id_cache.rb
|
|
111
|
+
- lib/teems/services/mail_legacy_files.rb
|
|
112
|
+
- lib/teems/services/mail_sync_attachments.rb
|
|
113
|
+
- lib/teems/services/mail_sync_engine.rb
|
|
114
|
+
- lib/teems/services/mail_sync_folder.rb
|
|
115
|
+
- lib/teems/services/mail_sync_store.rb
|
|
77
116
|
- lib/teems/services/safari_js_runner.rb
|
|
78
117
|
- lib/teems/services/safari_oauth.rb
|
|
118
|
+
- lib/teems/services/smime_content.rb
|
|
119
|
+
- lib/teems/services/smime_decryptor.rb
|
|
79
120
|
- lib/teems/services/sync_dir_naming.rb
|
|
121
|
+
- lib/teems/services/sync_dir_ownership.rb
|
|
122
|
+
- lib/teems/services/sync_dir_planning.rb
|
|
80
123
|
- lib/teems/services/sync_engine.rb
|
|
81
124
|
- lib/teems/services/sync_images.rb
|
|
82
125
|
- lib/teems/services/sync_store.rb
|
|
@@ -86,8 +129,12 @@ files:
|
|
|
86
129
|
- lib/teems/services/token_extractor_scripts.rb
|
|
87
130
|
- lib/teems/services/token_refresher.rb
|
|
88
131
|
- lib/teems/services/token_store.rb
|
|
132
|
+
- lib/teems/support/control_chars.rb
|
|
89
133
|
- lib/teems/support/error_logger.rb
|
|
90
134
|
- lib/teems/support/help_formatter.rb
|
|
135
|
+
- lib/teems/support/mime_header.rb
|
|
136
|
+
- lib/teems/support/mime_part.rb
|
|
137
|
+
- lib/teems/support/signed_data.rb
|
|
91
138
|
- lib/teems/support/subprocess.rb
|
|
92
139
|
- lib/teems/support/time_parsing.rb
|
|
93
140
|
- lib/teems/support/timezone.rb
|