dingbot 0.2.0 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7f9a46ca05f2961d757a47927595c3300ebd59b1
4
- data.tar.gz: 7a5114129dcfe3883f9269419f233a7d701a2609
2
+ SHA256:
3
+ metadata.gz: d5786404b17bd985d218ca86427d9295b8aa0e3c62e5de0d1a9a711bbc68b912
4
+ data.tar.gz: f1b404b5ef785d3239f9e8dcbfffea5fac403d117537b89b1122a01a1b42f006
5
5
  SHA512:
6
- metadata.gz: 9de7eead38333a685c6b28f5e53d0edf81193201ea7434647045d7b166a50bdf0eeb652964f54699b39bfe761a1873e7b4e3ae43caa07c664183d7b281f79d45
7
- data.tar.gz: 35f8cbd6429e2197e3e44463188c323d29e76fc13904ee41093c520cad2cc07a689d09e0c20bbb8e36b4d6bec35174a7baa324f3aaaf061b304a30495bc60ec8
6
+ metadata.gz: 43acda49cef2e0496a98cdff8136fd2e8cf58a247fa78bcf850690d71443aebff784d5dd79ab895df3e378ab4b125dd810f359dd62b93f0d75cd4e1fe98a6751
7
+ data.tar.gz: d4f9c6a4cabee5ebaf06a0b3837fa2c584440d18d3e6676bc51fd9197e3b50f428b7f657ef66bcd9b45c8545841440bcdc2d9a3afcfbccf23d7f3fbb427b6a20
data/.idea/workspace.xml CHANGED
@@ -2,7 +2,9 @@
2
2
  <project version="4">
3
3
  <component name="ChangeListManager">
4
4
  <list default="true" id="c677bfc7-f26b-44ab-b929-b38da245becc" name="Default" comment="">
5
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/dingbot/version.rb" afterPath="$PROJECT_DIR$/lib/dingbot/version.rb" />
5
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
6
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
7
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/dingbot_test.rb" afterPath="$PROJECT_DIR$/test/dingbot_test.rb" />
6
8
  </list>
7
9
  <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
8
10
  <option name="TRACKING_ENABLED" value="true" />
@@ -17,27 +19,39 @@
17
19
  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
18
20
  <component name="FileEditorManager">
19
21
  <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
20
- <file leaf-file-name="dingbot.rb" pinned="false" current-in-tab="false">
21
- <entry file="file://$PROJECT_DIR$/lib/dingbot.rb">
22
+ <file leaf-file-name="dingbot_test.rb" pinned="false" current-in-tab="false">
23
+ <entry file="file://$PROJECT_DIR$/test/dingbot_test.rb">
22
24
  <provider selected="true" editor-type-id="text-editor">
23
- <state relative-caret-position="520">
24
- <caret line="26" column="23" lean-forward="false" selection-start-line="26" selection-start-column="23" selection-end-line="26" selection-end-column="23" />
25
+ <state relative-caret-position="560">
26
+ <caret line="28" column="32" lean-forward="false" selection-start-line="28" selection-start-column="32" selection-end-line="28" selection-end-column="32" />
25
27
  <folding />
26
28
  </state>
27
29
  </provider>
28
30
  </entry>
29
31
  </file>
30
- <file leaf-file-name="dingbot.gemspec" pinned="false" current-in-tab="false">
31
- <entry file="file://$PROJECT_DIR$/dingbot.gemspec">
32
- <provider selected="true" editor-type-id="text-editor">
33
- <state relative-caret-position="60">
34
- <caret line="3" column="20" lean-forward="false" selection-start-line="3" selection-start-column="20" selection-end-line="3" selection-end-column="20" />
35
- <folding />
32
+ <file leaf-file-name="README.md" pinned="false" current-in-tab="true">
33
+ <entry file="file://$PROJECT_DIR$/README.md">
34
+ <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
35
+ <state split_layout="SPLIT">
36
+ <first_editor relative-caret-position="358">
37
+ <caret line="35" column="8" lean-forward="false" selection-start-line="35" selection-start-column="8" selection-end-line="35" selection-end-column="8" />
38
+ <folding>
39
+ <marker date="1497856439000" expanded="true" signature="697:1013" ph="do ... end" />
40
+ <marker date="1497856439000" expanded="true" signature="1246:1287" ph=" ... end" />
41
+ <marker date="1497856439000" expanded="true" signature="1315:1449" ph=" ... end" />
42
+ <marker date="1497856439000" expanded="true" signature="1475:1707" ph=" ... end" />
43
+ <marker date="1497856439000" expanded="true" signature="1741:1807" ph=" ... end" />
44
+ <marker date="1497856439000" expanded="true" signature="1856:2108" ph=" ... end" />
45
+ <marker date="1497856439000" expanded="true" signature="2165:2550" ph=" ... end" />
46
+ <marker date="1497856439000" expanded="true" signature="2585:3062" ph=" ... end" />
47
+ </folding>
48
+ </first_editor>
49
+ <second_editor />
36
50
  </state>
37
51
  </provider>
38
52
  </entry>
39
53
  </file>
40
- <file leaf-file-name="version.rb" pinned="false" current-in-tab="true">
54
+ <file leaf-file-name="version.rb" pinned="false" current-in-tab="false">
41
55
  <entry file="file://$PROJECT_DIR$/lib/dingbot/version.rb">
42
56
  <provider selected="true" editor-type-id="text-editor">
43
57
  <state relative-caret-position="40">
@@ -47,61 +61,71 @@
47
61
  </provider>
48
62
  </entry>
49
63
  </file>
50
- <file leaf-file-name="configuration.rb" pinned="false" current-in-tab="false">
51
- <entry file="file://$PROJECT_DIR$/lib/dingbot/configuration.rb">
64
+ <file leaf-file-name="Gemfile" pinned="false" current-in-tab="false">
65
+ <entry file="file://$PROJECT_DIR$/Gemfile">
52
66
  <provider selected="true" editor-type-id="text-editor">
53
- <state relative-caret-position="340">
54
- <caret line="17" column="16" lean-forward="true" selection-start-line="17" selection-start-column="16" selection-end-line="17" selection-end-column="16" />
67
+ <state relative-caret-position="0">
68
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
55
69
  <folding />
56
70
  </state>
57
71
  </provider>
58
72
  </entry>
59
73
  </file>
60
- <file leaf-file-name="client.rb" pinned="false" current-in-tab="false">
61
- <entry file="file://$PROJECT_DIR$/lib/dingbot/client.rb">
74
+ <file leaf-file-name="feed_card.rb" pinned="false" current-in-tab="false">
75
+ <entry file="file://$PROJECT_DIR$/lib/dingbot/message/feed_card.rb">
62
76
  <provider selected="true" editor-type-id="text-editor">
63
- <state relative-caret-position="302">
64
- <caret line="48" column="13" lean-forward="true" selection-start-line="48" selection-start-column="13" selection-end-line="48" selection-end-column="13" />
77
+ <state relative-caret-position="500">
78
+ <caret line="25" column="0" lean-forward="false" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
65
79
  <folding />
66
80
  </state>
67
81
  </provider>
68
82
  </entry>
69
83
  </file>
70
- <file leaf-file-name="text.rb" pinned="false" current-in-tab="false">
71
- <entry file="file://$PROJECT_DIR$/lib/dingbot/message/text.rb">
84
+ <file leaf-file-name="httparty.rb" pinned="false" current-in-tab="false">
85
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty.rb">
72
86
  <provider selected="true" editor-type-id="text-editor">
73
- <state relative-caret-position="50">
74
- <caret line="19" column="6" lean-forward="false" selection-start-line="19" selection-start-column="6" selection-end-line="19" selection-end-column="6" />
87
+ <state relative-caret-position="10060">
88
+ <caret line="503" column="8" lean-forward="false" selection-start-line="503" selection-start-column="8" selection-end-line="503" selection-end-column="8" />
75
89
  <folding />
76
90
  </state>
77
91
  </provider>
78
92
  </entry>
79
93
  </file>
80
- <file leaf-file-name="link.rb" pinned="false" current-in-tab="false">
81
- <entry file="file://$PROJECT_DIR$/lib/dingbot/message/link.rb">
94
+ <file leaf-file-name="base.rb" pinned="false" current-in-tab="false">
95
+ <entry file="file://$PROJECT_DIR$/lib/dingbot/message/base.rb">
82
96
  <provider selected="true" editor-type-id="text-editor">
83
- <state relative-caret-position="700">
84
- <caret line="35" column="9" lean-forward="false" selection-start-line="35" selection-start-column="9" selection-end-line="35" selection-end-column="9" />
97
+ <state relative-caret-position="280">
98
+ <caret line="14" column="0" lean-forward="false" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
85
99
  <folding />
86
100
  </state>
87
101
  </provider>
88
102
  </entry>
89
103
  </file>
90
- <file leaf-file-name="feed_card.rb" pinned="false" current-in-tab="false">
91
- <entry file="file://$PROJECT_DIR$/lib/dingbot/message/feed_card.rb">
104
+ <file leaf-file-name="response.rb" pinned="false" current-in-tab="false">
105
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty/response.rb">
92
106
  <provider selected="true" editor-type-id="text-editor">
93
- <state relative-caret-position="60">
94
- <caret line="3" column="5" lean-forward="false" selection-start-line="3" selection-start-column="5" selection-end-line="3" selection-end-column="16" />
107
+ <state relative-caret-position="480">
108
+ <caret line="24" column="0" lean-forward="false" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
95
109
  <folding />
96
110
  </state>
97
111
  </provider>
98
112
  </entry>
99
113
  </file>
100
- <file leaf-file-name="base.rb" pinned="false" current-in-tab="false">
101
- <entry file="file://$PROJECT_DIR$/lib/dingbot/message/base.rb">
114
+ <file leaf-file-name="request.rb" pinned="false" current-in-tab="false">
115
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty/request.rb">
116
+ <provider selected="true" editor-type-id="text-editor">
117
+ <state relative-caret-position="7640">
118
+ <caret line="382" column="0" lean-forward="false" selection-start-line="382" selection-start-column="0" selection-end-line="382" selection-end-column="0" />
119
+ <folding />
120
+ </state>
121
+ </provider>
122
+ </entry>
123
+ </file>
124
+ <file leaf-file-name="parser.rb" pinned="false" current-in-tab="false">
125
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty/parser.rb">
102
126
  <provider selected="true" editor-type-id="text-editor">
103
- <state relative-caret-position="600">
104
- <caret line="30" column="0" lean-forward="false" selection-start-line="30" selection-start-column="0" selection-end-line="30" selection-end-column="0" />
127
+ <state relative-caret-position="1220">
128
+ <caret line="61" column="19" lean-forward="false" selection-start-line="61" selection-start-column="19" selection-end-line="61" selection-end-column="19" />
105
129
  <folding />
106
130
  </state>
107
131
  </provider>
@@ -137,22 +161,22 @@
137
161
  <option value="$PROJECT_DIR$/lib/dingbot/msg/message.rb" />
138
162
  <option value="$PROJECT_DIR$/lib/dingbot/msg/base.rb" />
139
163
  <option value="$PROJECT_DIR$/lib/dingbot/request.rb" />
140
- <option value="$PROJECT_DIR$/lib/dingbot/message/feed_card.rb" />
141
164
  <option value="$PROJECT_DIR$/lib/dingbot/message/base.rb" />
142
165
  <option value="$PROJECT_DIR$/.travis.yml" />
143
166
  <option value="$PROJECT_DIR$/.gitignore" />
144
167
  <option value="$PROJECT_DIR$/lib/dingbot/error.rb" />
145
168
  <option value="$PROJECT_DIR$/lib/dingbot/message/markdown.rb" />
146
169
  <option value="$PROJECT_DIR$/lib/dingbot/message/link.rb" />
147
- <option value="$PROJECT_DIR$/lib/dingbot/message/text.rb" />
148
- <option value="$PROJECT_DIR$/dingbot.gemspec" />
149
170
  <option value="$PROJECT_DIR$/lib/dingbot/configuration.rb" />
150
171
  <option value="$PROJECT_DIR$/lib/dingbot.rb" />
151
172
  <option value="$PROJECT_DIR$/lib/dingbot/client.rb" />
173
+ <option value="$PROJECT_DIR$/dingbot.gemspec" />
174
+ <option value="$PROJECT_DIR$/lib/dingbot/message/text.rb" />
152
175
  <option value="$PROJECT_DIR$/lib/dingbot/message/action_card.rb" />
176
+ <option value="$PROJECT_DIR$/lib/dingbot/version.rb" />
177
+ <option value="$PROJECT_DIR$/lib/dingbot/message/feed_card.rb" />
153
178
  <option value="$PROJECT_DIR$/test/dingbot_test.rb" />
154
179
  <option value="$PROJECT_DIR$/README.md" />
155
- <option value="$PROJECT_DIR$/lib/dingbot/version.rb" />
156
180
  </list>
157
181
  </option>
158
182
  </component>
@@ -164,8 +188,8 @@
164
188
  </component>
165
189
  <component name="ProjectFrameBounds">
166
190
  <option name="y" value="23" />
167
- <option name="width" value="1920" />
168
- <option name="height" value="1053" />
191
+ <option name="width" value="1440" />
192
+ <option name="height" value="873" />
169
193
  </component>
170
194
  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
171
195
  <component name="ProjectView">
@@ -186,6 +210,88 @@
186
210
  <pane id="Scratches" />
187
211
  <pane id="ProjectPane">
188
212
  <subPane>
213
+ <PATH>
214
+ <PATH_ELEMENT>
215
+ <option name="myItemId" value="dingbot" />
216
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
217
+ </PATH_ELEMENT>
218
+ <PATH_ELEMENT>
219
+ <option name="myItemId" value="External Libraries" />
220
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
221
+ </PATH_ELEMENT>
222
+ </PATH>
223
+ <PATH>
224
+ <PATH_ELEMENT>
225
+ <option name="myItemId" value="dingbot" />
226
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
227
+ </PATH_ELEMENT>
228
+ <PATH_ELEMENT>
229
+ <option name="myItemId" value="External Libraries" />
230
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
231
+ </PATH_ELEMENT>
232
+ <PATH_ELEMENT>
233
+ <option name="myItemId" value="httparty (v0.15.5, RVM: ruby-2.3.1) [gem]" />
234
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
235
+ </PATH_ELEMENT>
236
+ </PATH>
237
+ <PATH>
238
+ <PATH_ELEMENT>
239
+ <option name="myItemId" value="dingbot" />
240
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
241
+ </PATH_ELEMENT>
242
+ <PATH_ELEMENT>
243
+ <option name="myItemId" value="External Libraries" />
244
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
245
+ </PATH_ELEMENT>
246
+ <PATH_ELEMENT>
247
+ <option name="myItemId" value="httparty (v0.15.5, RVM: ruby-2.3.1) [gem]" />
248
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
249
+ </PATH_ELEMENT>
250
+ <PATH_ELEMENT>
251
+ <option name="myItemId" value="lib" />
252
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
253
+ </PATH_ELEMENT>
254
+ </PATH>
255
+ <PATH>
256
+ <PATH_ELEMENT>
257
+ <option name="myItemId" value="dingbot" />
258
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
259
+ </PATH_ELEMENT>
260
+ <PATH_ELEMENT>
261
+ <option name="myItemId" value="External Libraries" />
262
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
263
+ </PATH_ELEMENT>
264
+ <PATH_ELEMENT>
265
+ <option name="myItemId" value="httparty (v0.15.5, RVM: ruby-2.3.1) [gem]" />
266
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
267
+ </PATH_ELEMENT>
268
+ <PATH_ELEMENT>
269
+ <option name="myItemId" value="lib" />
270
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
271
+ </PATH_ELEMENT>
272
+ <PATH_ELEMENT>
273
+ <option name="myItemId" value="httparty" />
274
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
275
+ </PATH_ELEMENT>
276
+ </PATH>
277
+ <PATH>
278
+ <PATH_ELEMENT>
279
+ <option name="myItemId" value="dingbot" />
280
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
281
+ </PATH_ELEMENT>
282
+ <PATH_ELEMENT>
283
+ <option name="myItemId" value="External Libraries" />
284
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
285
+ </PATH_ELEMENT>
286
+ <PATH_ELEMENT>
287
+ <option name="myItemId" value="httparty (v0.15.5, RVM: ruby-2.3.1) [gem]" />
288
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
289
+ </PATH_ELEMENT>
290
+ <PATH_ELEMENT>
291
+ <option name="myItemId" value="bin" />
292
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
293
+ </PATH_ELEMENT>
294
+ </PATH>
189
295
  <PATH>
190
296
  <PATH_ELEMENT>
191
297
  <option name="myItemId" value="dingbot" />
@@ -495,26 +601,26 @@
495
601
  <updated>1497604722774</updated>
496
602
  <workItem from="1497604723936" duration="2965000" />
497
603
  <workItem from="1497772186956" duration="12205000" />
498
- <workItem from="1497843772813" duration="2596000" />
604
+ <workItem from="1497843772813" duration="4189000" />
605
+ <workItem from="1497856200573" duration="247000" />
499
606
  </task>
500
607
  <servers />
501
608
  </component>
502
609
  <component name="TimeTrackingManager">
503
- <option name="totallyTimeSpent" value="17766000" />
610
+ <option name="totallyTimeSpent" value="19606000" />
504
611
  </component>
505
612
  <component name="ToolWindowManager">
506
- <frame x="0" y="23" width="1920" height="1053" extended-state="6" />
613
+ <frame x="0" y="23" width="1440" height="873" extended-state="6" />
507
614
  <editor active="true" />
508
615
  <layout>
509
- <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.19648562" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
616
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.1988555" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
510
617
  <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
511
618
  <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
512
619
  <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
513
- <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
514
620
  <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.23517169" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
515
621
  <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
516
622
  <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
517
- <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.21331947" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
623
+ <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2599232" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
518
624
  <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
519
625
  <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
520
626
  <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
@@ -522,6 +628,7 @@
522
628
  <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
523
629
  <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
524
630
  <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
631
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
525
632
  <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
526
633
  </layout>
527
634
  </component>
@@ -536,11 +643,50 @@
536
643
  <watches-manager />
537
644
  </component>
538
645
  <component name="editorHistoryManager">
646
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/bin/httparty">
647
+ <provider selected="true" editor-type-id="text-editor">
648
+ <state relative-caret-position="0">
649
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
650
+ <folding />
651
+ </state>
652
+ </provider>
653
+ </entry>
654
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty.rb">
655
+ <provider selected="true" editor-type-id="text-editor">
656
+ <state relative-caret-position="10060">
657
+ <caret line="503" column="8" lean-forward="false" selection-start-line="503" selection-start-column="8" selection-end-line="503" selection-end-column="8" />
658
+ <folding />
659
+ </state>
660
+ </provider>
661
+ </entry>
662
+ <entry file="file://$PROJECT_DIR$/lib/dingbot/message/base.rb">
663
+ <provider selected="true" editor-type-id="text-editor">
664
+ <state relative-caret-position="280">
665
+ <caret line="14" column="0" lean-forward="true" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
666
+ <folding />
667
+ </state>
668
+ </provider>
669
+ </entry>
670
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty/response.rb">
671
+ <provider selected="true" editor-type-id="text-editor">
672
+ <state relative-caret-position="480">
673
+ <caret line="24" column="0" lean-forward="false" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
674
+ <folding />
675
+ </state>
676
+ </provider>
677
+ </entry>
678
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty/request.rb">
679
+ <provider selected="true" editor-type-id="text-editor">
680
+ <state relative-caret-position="7640">
681
+ <caret line="382" column="0" lean-forward="false" selection-start-line="382" selection-start-column="0" selection-end-line="382" selection-end-column="0" />
682
+ <folding />
683
+ </state>
684
+ </provider>
685
+ </entry>
539
686
  <entry file="file://$PROJECT_DIR$/lib/dingbot.rb">
540
687
  <provider selected="true" editor-type-id="text-editor">
541
688
  <state relative-caret-position="220">
542
689
  <caret line="11" column="24" lean-forward="false" selection-start-line="11" selection-start-column="24" selection-end-line="11" selection-end-column="24" />
543
- <folding />
544
690
  </state>
545
691
  </provider>
546
692
  </entry>
@@ -548,7 +694,6 @@
548
694
  <provider selected="true" editor-type-id="text-editor">
549
695
  <state relative-caret-position="40">
550
696
  <caret line="2" column="46" lean-forward="false" selection-start-line="2" selection-start-column="46" selection-end-line="2" selection-end-column="46" />
551
- <folding />
552
697
  </state>
553
698
  </provider>
554
699
  </entry>
@@ -564,7 +709,6 @@
564
709
  <provider selected="true" editor-type-id="text-editor">
565
710
  <state relative-caret-position="420">
566
711
  <caret line="21" column="0" lean-forward="true" selection-start-line="21" selection-start-column="0" selection-end-line="21" selection-end-column="0" />
567
- <folding />
568
712
  </state>
569
713
  </provider>
570
714
  </entry>
@@ -572,7 +716,6 @@
572
716
  <provider selected="true" editor-type-id="text-editor">
573
717
  <state relative-caret-position="700">
574
718
  <caret line="35" column="9" lean-forward="true" selection-start-line="35" selection-start-column="9" selection-end-line="35" selection-end-column="9" />
575
- <folding />
576
719
  </state>
577
720
  </provider>
578
721
  </entry>
@@ -596,7 +739,6 @@
596
739
  <provider selected="true" editor-type-id="text-editor">
597
740
  <state relative-caret-position="920">
598
741
  <caret line="46" column="8" lean-forward="false" selection-start-line="46" selection-start-column="8" selection-end-line="46" selection-end-column="8" />
599
- <folding />
600
742
  </state>
601
743
  </provider>
602
744
  </entry>
@@ -604,7 +746,6 @@
604
746
  <provider selected="true" editor-type-id="text-editor">
605
747
  <state relative-caret-position="380">
606
748
  <caret line="19" column="6" lean-forward="false" selection-start-line="19" selection-start-column="6" selection-end-line="19" selection-end-column="6" />
607
- <folding />
608
749
  </state>
609
750
  </provider>
610
751
  </entry>
@@ -612,7 +753,6 @@
612
753
  <provider selected="true" editor-type-id="text-editor">
613
754
  <state relative-caret-position="0">
614
755
  <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
615
- <folding />
616
756
  </state>
617
757
  </provider>
618
758
  </entry>
@@ -644,6 +784,7 @@
644
784
  <provider selected="true" editor-type-id="text-editor">
645
785
  <state relative-caret-position="480">
646
786
  <caret line="24" column="0" lean-forward="false" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
787
+ <folding />
647
788
  </state>
648
789
  </provider>
649
790
  </entry>
@@ -668,26 +809,10 @@
668
809
  <entry file="file://$PROJECT_DIR$/lib/dingbot/objectified_hash.rb" />
669
810
  <entry file="file://$PROJECT_DIR$/lib/dingbot/api.rb" />
670
811
  <entry file="file://$PROJECT_DIR$/test/test_sentry.rb" />
671
- <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty/request.rb">
672
- <provider selected="true" editor-type-id="text-editor">
673
- <state relative-caret-position="206">
674
- <caret line="382" column="0" lean-forward="false" selection-start-line="382" selection-start-column="0" selection-end-line="382" selection-end-column="0" />
675
- <folding />
676
- </state>
677
- </provider>
678
- </entry>
679
- <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty/response.rb">
680
- <provider selected="true" editor-type-id="text-editor">
681
- <state relative-caret-position="206">
682
- <caret line="24" column="0" lean-forward="false" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
683
- </state>
684
- </provider>
685
- </entry>
686
812
  <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/bundler-1.14.6/lib/bundler/vendor/thor/lib/thor/base.rb">
687
813
  <provider selected="true" editor-type-id="text-editor">
688
814
  <state relative-caret-position="215">
689
815
  <caret line="24" column="9" lean-forward="false" selection-start-line="24" selection-start-column="9" selection-end-line="24" selection-end-column="9" />
690
- <folding />
691
816
  </state>
692
817
  </provider>
693
818
  </entry>
@@ -706,14 +831,6 @@
706
831
  </state>
707
832
  </provider>
708
833
  </entry>
709
- <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty.rb">
710
- <provider selected="true" editor-type-id="text-editor">
711
- <state relative-caret-position="413">
712
- <caret line="503" column="8" lean-forward="false" selection-start-line="503" selection-start-column="8" selection-end-line="503" selection-end-column="8" />
713
- <folding />
714
- </state>
715
- </provider>
716
- </entry>
717
834
  <entry file="file://$PROJECT_DIR$/LICENSE.txt">
718
835
  <provider selected="true" editor-type-id="text-editor">
719
836
  <state relative-caret-position="0">
@@ -740,78 +857,109 @@
740
857
  <provider selected="true" editor-type-id="text-editor">
741
858
  <state relative-caret-position="40">
742
859
  <caret line="2" column="46" lean-forward="false" selection-start-line="2" selection-start-column="46" selection-end-line="2" selection-end-column="46" />
743
- <folding />
744
860
  </state>
745
861
  </provider>
746
862
  </entry>
747
- <entry file="file://$PROJECT_DIR$/lib/dingbot/message/feed_card.rb">
863
+ <entry file="file://$PROJECT_DIR$/doc/DingBot.html">
748
864
  <provider selected="true" editor-type-id="text-editor">
749
- <state relative-caret-position="60">
750
- <caret line="3" column="5" lean-forward="false" selection-start-line="3" selection-start-column="5" selection-end-line="3" selection-end-column="16" />
751
- <folding />
865
+ <state relative-caret-position="6300">
866
+ <caret line="315" column="196" lean-forward="false" selection-start-line="315" selection-start-column="196" selection-end-line="315" selection-end-column="196" />
752
867
  </state>
753
868
  </provider>
754
869
  </entry>
755
- <entry file="file://$PROJECT_DIR$/lib/dingbot/message/link.rb">
870
+ <entry file="file://$PROJECT_DIR$/lib/dingbot/client.rb">
756
871
  <provider selected="true" editor-type-id="text-editor">
757
- <state relative-caret-position="700">
758
- <caret line="35" column="9" lean-forward="false" selection-start-line="35" selection-start-column="9" selection-end-line="35" selection-end-column="9" />
872
+ <state relative-caret-position="302">
873
+ <caret line="48" column="13" lean-forward="false" selection-start-line="48" selection-start-column="13" selection-end-line="48" selection-end-column="13" />
759
874
  <folding />
760
875
  </state>
761
876
  </provider>
762
877
  </entry>
763
- <entry file="file://$PROJECT_DIR$/doc/DingBot.html">
878
+ <entry file="file://$PROJECT_DIR$/lib/dingbot/configuration.rb">
764
879
  <provider selected="true" editor-type-id="text-editor">
765
- <state relative-caret-position="6300">
766
- <caret line="315" column="196" lean-forward="false" selection-start-line="315" selection-start-column="196" selection-end-line="315" selection-end-column="196" />
767
- <folding />
880
+ <state relative-caret-position="340">
881
+ <caret line="17" column="16" lean-forward="false" selection-start-line="17" selection-start-column="16" selection-end-line="17" selection-end-column="16" />
882
+ </state>
883
+ </provider>
884
+ </entry>
885
+ <entry file="file://$PROJECT_DIR$/dingbot.gemspec">
886
+ <provider selected="true" editor-type-id="text-editor">
887
+ <state relative-caret-position="60">
888
+ <caret line="3" column="18" lean-forward="false" selection-start-line="3" selection-start-column="18" selection-end-line="3" selection-end-column="18" />
889
+ </state>
890
+ </provider>
891
+ </entry>
892
+ <entry file="file://$PROJECT_DIR$/lib/dingbot/message/link.rb">
893
+ <provider selected="true" editor-type-id="text-editor">
894
+ <state relative-caret-position="511">
895
+ <caret line="35" column="9" lean-forward="false" selection-start-line="35" selection-start-column="9" selection-end-line="35" selection-end-column="9" />
768
896
  </state>
769
897
  </provider>
770
898
  </entry>
771
899
  <entry file="file://$PROJECT_DIR$/lib/dingbot/message/markdown.rb">
772
900
  <provider selected="true" editor-type-id="text-editor">
773
- <state relative-caret-position="236">
901
+ <state relative-caret-position="340">
774
902
  <caret line="17" column="10" lean-forward="false" selection-start-line="17" selection-start-column="10" selection-end-line="17" selection-end-column="10" />
775
- <folding />
776
903
  </state>
777
904
  </provider>
778
905
  </entry>
779
906
  <entry file="file://$PROJECT_DIR$/lib/dingbot/message/text.rb">
780
907
  <provider selected="true" editor-type-id="text-editor">
781
- <state relative-caret-position="50">
782
- <caret line="19" column="6" lean-forward="false" selection-start-line="19" selection-start-column="6" selection-end-line="19" selection-end-column="6" />
783
- <folding />
908
+ <state relative-caret-position="531">
909
+ <caret line="42" column="9" lean-forward="true" selection-start-line="42" selection-start-column="9" selection-end-line="42" selection-end-column="9" />
784
910
  </state>
785
911
  </provider>
786
912
  </entry>
787
913
  <entry file="file://$PROJECT_DIR$/lib/dingbot/message/action_card.rb">
788
914
  <provider selected="true" editor-type-id="text-editor">
789
- <state relative-caret-position="509">
790
- <caret line="34" column="108" lean-forward="false" selection-start-line="34" selection-start-column="108" selection-end-line="34" selection-end-column="108" />
915
+ <state relative-caret-position="240">
916
+ <caret line="12" column="9" lean-forward="true" selection-start-line="12" selection-start-column="9" selection-end-line="12" selection-end-column="9" />
917
+ </state>
918
+ </provider>
919
+ </entry>
920
+ <entry file="file://$PROJECT_DIR$/lib/dingbot.rb">
921
+ <provider selected="true" editor-type-id="text-editor">
922
+ <state relative-caret-position="520">
923
+ <caret line="26" column="23" lean-forward="false" selection-start-line="26" selection-start-column="23" selection-end-line="26" selection-end-column="23" />
924
+ </state>
925
+ </provider>
926
+ </entry>
927
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/bin/httparty">
928
+ <provider selected="true" editor-type-id="text-editor">
929
+ <state relative-caret-position="0">
930
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
791
931
  <folding />
792
932
  </state>
793
933
  </provider>
794
934
  </entry>
795
- <entry file="file://$PROJECT_DIR$/lib/dingbot/message/base.rb">
935
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty.rb">
796
936
  <provider selected="true" editor-type-id="text-editor">
797
- <state relative-caret-position="600">
798
- <caret line="30" column="0" lean-forward="false" selection-start-line="30" selection-start-column="0" selection-end-line="30" selection-end-column="0" />
937
+ <state relative-caret-position="10060">
938
+ <caret line="503" column="8" lean-forward="false" selection-start-line="503" selection-start-column="8" selection-end-line="503" selection-end-column="8" />
799
939
  <folding />
800
940
  </state>
801
941
  </provider>
802
942
  </entry>
803
- <entry file="file://$PROJECT_DIR$/lib/dingbot/client.rb">
943
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty/response.rb">
804
944
  <provider selected="true" editor-type-id="text-editor">
805
- <state relative-caret-position="302">
806
- <caret line="48" column="13" lean-forward="true" selection-start-line="48" selection-start-column="13" selection-end-line="48" selection-end-column="13" />
945
+ <state relative-caret-position="480">
946
+ <caret line="24" column="0" lean-forward="false" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
807
947
  <folding />
808
948
  </state>
809
949
  </provider>
810
950
  </entry>
811
- <entry file="file://$PROJECT_DIR$/test/dingbot_test.rb">
951
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty/request.rb">
812
952
  <provider selected="true" editor-type-id="text-editor">
813
- <state relative-caret-position="550">
814
- <caret line="80" column="3" lean-forward="true" selection-start-line="8" selection-start-column="0" selection-end-line="80" selection-end-column="3" />
953
+ <state relative-caret-position="7640">
954
+ <caret line="382" column="0" lean-forward="false" selection-start-line="382" selection-start-column="0" selection-end-line="382" selection-end-column="0" />
955
+ <folding />
956
+ </state>
957
+ </provider>
958
+ </entry>
959
+ <entry file="file://$PROJECT_DIR$/lib/dingbot/version.rb">
960
+ <provider selected="true" editor-type-id="text-editor">
961
+ <state relative-caret-position="40">
962
+ <caret line="2" column="18" lean-forward="false" selection-start-line="2" selection-start-column="18" selection-end-line="2" selection-end-column="18" />
815
963
  <folding />
816
964
  </state>
817
965
  </provider>
@@ -824,55 +972,55 @@
824
972
  </state>
825
973
  </provider>
826
974
  </entry>
827
- <entry file="file://$PROJECT_DIR$/README.md">
828
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
829
- <state split_layout="SPLIT">
830
- <first_editor relative-caret-position="84">
831
- <caret line="87" column="3" lean-forward="true" selection-start-line="87" selection-start-column="3" selection-end-line="87" selection-end-column="3" />
832
- <folding>
833
- <marker date="1497846243000" expanded="true" signature="559:875" ph="do ... end" />
834
- <marker date="1497846243000" expanded="true" signature="951:992" ph=" ... end" />
835
- <marker date="1497846243000" expanded="true" signature="1020:1154" ph=" ... end" />
836
- <marker date="1497846243000" expanded="true" signature="1180:1634" ph=" ... end" />
837
- <marker date="1497846243000" expanded="true" signature="1668:1734" ph=" ... end" />
838
- <marker date="1497846243000" expanded="true" signature="1783:2035" ph=" ... end" />
839
- <marker date="1497846243000" expanded="true" signature="2092:2477" ph=" ... end" />
840
- <marker date="1497846243000" expanded="true" signature="2512:2989" ph=" ... end" />
841
- </folding>
842
- </first_editor>
843
- <second_editor />
975
+ <entry file="file://$PROJECT_DIR$/lib/dingbot/message/base.rb">
976
+ <provider selected="true" editor-type-id="text-editor">
977
+ <state relative-caret-position="280">
978
+ <caret line="14" column="0" lean-forward="false" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
979
+ <folding />
844
980
  </state>
845
981
  </provider>
846
982
  </entry>
847
- <entry file="file://$PROJECT_DIR$/lib/dingbot/configuration.rb">
983
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.3.1/gems/httparty-0.15.5/lib/httparty/parser.rb">
848
984
  <provider selected="true" editor-type-id="text-editor">
849
- <state relative-caret-position="340">
850
- <caret line="17" column="16" lean-forward="true" selection-start-line="17" selection-start-column="16" selection-end-line="17" selection-end-column="16" />
985
+ <state relative-caret-position="1220">
986
+ <caret line="61" column="19" lean-forward="false" selection-start-line="61" selection-start-column="19" selection-end-line="61" selection-end-column="19" />
851
987
  <folding />
852
988
  </state>
853
989
  </provider>
854
990
  </entry>
855
- <entry file="file://$PROJECT_DIR$/lib/dingbot.rb">
991
+ <entry file="file://$PROJECT_DIR$/lib/dingbot/message/feed_card.rb">
856
992
  <provider selected="true" editor-type-id="text-editor">
857
- <state relative-caret-position="520">
858
- <caret line="26" column="23" lean-forward="false" selection-start-line="26" selection-start-column="23" selection-end-line="26" selection-end-column="23" />
993
+ <state relative-caret-position="500">
994
+ <caret line="25" column="0" lean-forward="false" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
859
995
  <folding />
860
996
  </state>
861
997
  </provider>
862
998
  </entry>
863
- <entry file="file://$PROJECT_DIR$/dingbot.gemspec">
999
+ <entry file="file://$PROJECT_DIR$/test/dingbot_test.rb">
864
1000
  <provider selected="true" editor-type-id="text-editor">
865
- <state relative-caret-position="60">
866
- <caret line="3" column="20" lean-forward="false" selection-start-line="3" selection-start-column="20" selection-end-line="3" selection-end-column="20" />
1001
+ <state relative-caret-position="560">
1002
+ <caret line="28" column="32" lean-forward="false" selection-start-line="28" selection-start-column="32" selection-end-line="28" selection-end-column="32" />
867
1003
  <folding />
868
1004
  </state>
869
1005
  </provider>
870
1006
  </entry>
871
- <entry file="file://$PROJECT_DIR$/lib/dingbot/version.rb">
872
- <provider selected="true" editor-type-id="text-editor">
873
- <state relative-caret-position="40">
874
- <caret line="2" column="18" lean-forward="false" selection-start-line="2" selection-start-column="18" selection-end-line="2" selection-end-column="18" />
875
- <folding />
1007
+ <entry file="file://$PROJECT_DIR$/README.md">
1008
+ <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
1009
+ <state split_layout="SPLIT">
1010
+ <first_editor relative-caret-position="358">
1011
+ <caret line="35" column="8" lean-forward="false" selection-start-line="35" selection-start-column="8" selection-end-line="35" selection-end-column="8" />
1012
+ <folding>
1013
+ <marker date="1497856439000" expanded="true" signature="697:1013" ph="do ... end" />
1014
+ <marker date="1497856439000" expanded="true" signature="1246:1287" ph=" ... end" />
1015
+ <marker date="1497856439000" expanded="true" signature="1315:1449" ph=" ... end" />
1016
+ <marker date="1497856439000" expanded="true" signature="1475:1707" ph=" ... end" />
1017
+ <marker date="1497856439000" expanded="true" signature="1741:1807" ph=" ... end" />
1018
+ <marker date="1497856439000" expanded="true" signature="1856:2108" ph=" ... end" />
1019
+ <marker date="1497856439000" expanded="true" signature="2165:2550" ph=" ... end" />
1020
+ <marker date="1497856439000" expanded="true" signature="2585:3062" ph=" ... end" />
1021
+ </folding>
1022
+ </first_editor>
1023
+ <second_editor />
876
1024
  </state>
877
1025
  </provider>
878
1026
  </entry>
data/README.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # DingTalk Bot
2
- [![Gem Version](https://badge.fury.io/rb/dingbot.svg)](https://badge.fury.io/rb/dingbot.svg)
2
+ [![Build Status](https://travis-ci.org/thierryxing/dingtalk-bot.svg?branch=master)](https://travis-ci.org/thierryxing/dingtalk-bot)
3
+ [![Gem Version](https://badge.fury.io/rb/dingbot.svg)](https://rubygems.org/gems/dingbot)
3
4
  [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/thierryxing/dingtalk-bot/master/LICENSE.txt)
4
5
 
5
6
  DingTalk Bot是阿里钉钉自定义机器人的Ruby库
6
- 官方文档:[阿里钉钉自定义机器人](https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.karFPe&treeId=257&articleId=105735&docType=1).
7
+ 官方文档:[阿里钉钉自定义机器人](https://developers.dingtalk.com/document/robots/robot-overview).
7
8
 
8
9
 
9
10
  ## 安装
@@ -24,10 +25,17 @@ gem 'dingbot'
24
25
  初始化客户端:
25
26
 
26
27
  ```ruby
28
+ # 全局配置方式
27
29
  DingBot.configure do |config|
28
30
  config.endpoint = 'https://oapi.dingtalk.com/robot/send' # API endpoint URL, default: ENV['DINGTALK_API_ENDPOINT'] or https://oapi.dingtalk.com/robot/send
29
- config.access_token = '3ddef428f1478056e858450e07272834c79bd538e8055a04e989573c469xxxx' # access token, default: ENV['DINGTALK_ACCESS_TOKEN']
31
+ config.access_token = 'your access token' # access token, default: ENV['DINGTALK_ACCESS_TOKEN']
32
+ config.secret = "your sign secret" # sign secret
30
33
  end
34
+
35
+ # 局部配置方式
36
+ DingBot.endpoint='https://oapi.dingtalk.com/robot/send'
37
+ DingBot.access_token = 'your access token'
38
+ DingBot.secret = "your sign secret" # sign secret
31
39
  ```
32
40
 
33
41
  发送消息
@@ -41,7 +49,7 @@ end
41
49
  def send_text
42
50
  message = DingBot::Message::Text.new(
43
51
  '我就是我, 是不一样的烟火',
44
- ['13718896117'],
52
+ ['1371xxxx117'],
45
53
  false
46
54
  )
47
55
  DingBot.send_msg(message)
@@ -52,7 +60,7 @@ def send_link
52
60
  message = DingBot::Message::Link.new(
53
61
  '我就是我, 是不一样的烟火',
54
62
  '这个即将发布的新版本,创始人陈航(花名“无招”)称它为“红树林”。',
55
- 'https://mp.weixin.qq.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI',
63
+ 'https://www.dingtalk.com/',
56
64
  'https://avatars1.githubusercontent.com/u/64818'
57
65
  )
58
66
  DingBot.send_msg(message)
@@ -109,4 +117,4 @@ end
109
117
  更为详细的用法请见此链接:[https://github.com/thierryxing/dingtalk-bot/blob/master/test/dingbot_test.rb](https://github.com/thierryxing/dingtalk-bot/blob/master/test/dingbot_test.rb)
110
118
 
111
119
  ## License
112
- Released under the MIT license. See LICENSE.txt for details.
120
+ Released under the MIT license. See LICENSE.txt for details.
data/dingbot.gemspec CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.required_ruby_version = ">= 2.0.0"
33
33
 
34
34
  spec.add_runtime_dependency "httparty"
35
- spec.add_development_dependency "bundler", "~> 1.14"
35
+ spec.add_development_dependency "bundler"
36
36
  spec.add_development_dependency "rake", "~> 10.0"
37
37
  spec.add_development_dependency "minitest", "~> 5.0"
38
38
  spec.add_development_dependency 'yard', "~> 0.9.5"
@@ -1,4 +1,5 @@
1
1
  require 'httparty'
2
+ require 'json'
2
3
  require 'dingbot/configuration'
3
4
  require 'dingbot/message/base'
4
5
  require 'dingbot/message/text'
@@ -12,7 +13,8 @@ module DingBot
12
13
  format :json
13
14
  headers "Content-Type" => "application/json"
14
15
 
15
- attr_accessor :access_token
16
+ # attr_accessor :access_token
17
+ # attr_accessor :secret
16
18
 
17
19
  # @private
18
20
  attr_accessor(*Configuration::VALID_OPTIONS_KEYS)
@@ -43,7 +45,20 @@ module DingBot
43
45
  end
44
46
 
45
47
  def send_msg(message)
46
- validate self.class.post(@endpoint, {query: {access_token: @access_token}, body: message.to_json})
48
+ query = {
49
+ access_token: @access_token,
50
+ }
51
+
52
+ if !@secret.nil? and !@secret.empty?
53
+ timestamp = (Time.now.to_f * 1000).to_i
54
+
55
+ query.merge!({
56
+ timestamp: timestamp,
57
+ sign: Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), @secret, "#{timestamp}\n#{@secret}")).strip
58
+ })
59
+ end
60
+
61
+ validate self.class.post(@endpoint, { query: query, body: message.to_json })
47
62
  end
48
63
 
49
64
  def send_text(content)
@@ -83,8 +98,12 @@ module DingBot
83
98
  end
84
99
 
85
100
  fail error_klass.new(response) if error_klass
86
-
87
101
  parsed = response.parsed_response
102
+
103
+ body = JSON.parse(response.body)
104
+ errcode = body["errcode"]
105
+ fail body["errmsg"] if errcode != 0
106
+
88
107
  parsed.client = self if parsed.respond_to?(:client=)
89
108
  parsed.parse_headers!(response.headers) if parsed.respond_to?(:parse_headers!)
90
109
  parsed
@@ -1,8 +1,8 @@
1
1
  module DingBot
2
2
  # Defines constants and methods related to configuration.
3
3
  module Configuration
4
- # An array of valid keys in the options hash when configuring a Sentry::API.
5
- VALID_OPTIONS_KEYS = [:endpoint, :access_token, :httparty].freeze
4
+ # An array of valid keys in the options hash when configuring a DingBot::API.
5
+ VALID_OPTIONS_KEYS = [:endpoint, :access_token, :httparty, :secret].freeze
6
6
 
7
7
  # The user agent that will be sent to the API endpoint if none is set.
8
8
  DEFAULT_USER_AGENT = "DingBot Ruby Gem #{DingBot::VERSION}".freeze
@@ -34,6 +34,7 @@ module DingBot
34
34
  def reset
35
35
  self.endpoint = ENV['DINGTALK_ENDPOINT'] || DEFAULT_ENDPOINT
36
36
  self.access_token = ENV['DINGTALK_ACCESS_TOKEN']
37
+ self.secret = ENV['DINGTALK_SECRET']
37
38
  end
38
39
 
39
40
  end
data/lib/dingbot/error.rb CHANGED
@@ -36,23 +36,9 @@ module DingBot
36
36
  message = parsed_response.message || parsed_response.error
37
37
 
38
38
  "Server responded with code #{@response.code}, message: " \
39
- "#{handle_message(message)}. " \
40
39
  "Request URI: #{@response.request.base_uri}#{@response.request.path}"
41
40
  end
42
41
 
43
- # Handle error response message in case of nested hashes
44
- def handle_message(message)
45
- case message
46
- when SentryApi::ObjectifiedHash
47
- message.to_h.sort.map do |key, val|
48
- "'#{key}' #{(val.is_a?(Hash) ? val.sort.map {|k, v| "(#{k}: #{v.join(' ')})"} : val).join(' ')}"
49
- end.join(', ')
50
- when Array
51
- message.join(' ')
52
- else
53
- message
54
- end
55
- end
56
42
  end
57
43
 
58
44
  # Raised when API endpoint returns the HTTP status code 400.
@@ -2,14 +2,35 @@ module DingBot
2
2
  module Message
3
3
 
4
4
  # ActionCard基类
5
+ # {
6
+ # "msgtype": "actionCard",
7
+ # "actionCard": {
8
+ # "title": "乔布斯 20 年前想打造一间苹果咖啡厅,而它正是 Apple Store 的前身",
9
+ # "text": "![screenshot](https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png) \n\n #### 乔布斯 20 年前想打造的苹果咖啡厅 \n\n Apple Store 的设计正从原来满满的科技感走向生活化,而其生活化的走向其实可以追溯到 20 年前苹果一个建立咖啡馆的计划",
10
+ # "btnOrientation": "0",
11
+ # "btns": [
12
+ # {
13
+ # "title": "内容不错",
14
+ # "actionURL": "https://www.dingtalk.com/"
15
+ # },
16
+ # {
17
+ # "title": "不感兴趣",
18
+ # "actionURL": "https://www.dingtalk.com/"
19
+ # }
20
+ # ]
21
+ # }
22
+ # "at":{
23
+ # "atMobiles":["137188xxxxx"]
24
+ # }
25
+ # }
5
26
  class ActionCard < Base
6
- attr_accessor :title, :text, :btn_orientation, :hide_avatar
27
+ attr_accessor :title, :text, :btn_orientation, :at_mobiles
7
28
 
8
- def initialize(title='', text='', btn_orientation='0', hide_avatar='0')
29
+ def initialize(title='', text='', btn_orientation='0', at_mobiles=[])
9
30
  @title = title
10
31
  @text = text
11
32
  @btn_orientation = btn_orientation
12
- @hide_avatar = hide_avatar
33
+ @at_mobiles = at_mobiles
13
34
  end
14
35
 
15
36
  def msg_type
@@ -17,13 +38,16 @@ module DingBot
17
38
  end
18
39
 
19
40
  def body_params
20
- super.merge(
41
+ super.merge({
21
42
  actionCard: {
22
43
  title: @title,
23
44
  text: @text,
24
- "hideAvatar": @hide_avatar,
25
- "btnOrientation": @btn_orientation,
45
+ btnOrientation: @btn_orientation,
46
+ },
47
+ at: {
48
+ atMobiles: @at_mobiles,
26
49
  }
50
+ }
27
51
  )
28
52
  end
29
53
  end
@@ -32,8 +56,8 @@ module DingBot
32
56
  class WholeActionCard < ActionCard
33
57
  attr_accessor :single_title, :single_url
34
58
 
35
- def initialize(title='', text='', single_title='', single_url='', btn_orientation='0', hide_avatar='0')
36
- super(title, text, btn_orientation, hide_avatar)
59
+ def initialize(title='', text='', single_title='', single_url='', at_mobiles=[], btn_orientation='0')
60
+ super(title, text, btn_orientation, at_mobiles)
37
61
  @single_title = single_title
38
62
  @single_url = single_url
39
63
  end
@@ -53,8 +77,8 @@ module DingBot
53
77
  class IndependentActionCard < ActionCard
54
78
  attr_accessor :buttons
55
79
 
56
- def initialize(title='', text='', buttons=[], btn_orientation='0', hide_avatar='0')
57
- super(title, text, btn_orientation, hide_avatar)
80
+ def initialize(title='', text='', buttons=[], at_mobiles=[], btn_orientation='0')
81
+ super(title, text, btn_orientation, at_mobiles)
58
82
  @buttons = buttons
59
83
  end
60
84
 
@@ -10,14 +10,22 @@ module DingBot
10
10
  # "> 9度,西北风1级,空气良89,相对温度73%\n\n" +
11
11
  # "> ![screenshot](http://image.jpg)\n" +
12
12
  # "> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n"
13
+ # },
14
+ # "at": {
15
+ # "atMobiles": [
16
+ # "1825718XXXX"
17
+ # ],
18
+ # "isAtAll": false
13
19
  # }
14
20
  # }
15
21
  class Markdown < Base
16
- attr_accessor :title, :text
22
+ attr_accessor :title, :text, :at_mobiles, :is_at_all
17
23
 
18
- def initialize(title='', text='')
24
+ def initialize(title='', text='', at_mobiles=[], is_at_all=false)
19
25
  @title = title
20
26
  @text = text
27
+ @at_mobiles = at_mobiles
28
+ @is_at_all = is_at_all
21
29
  end
22
30
 
23
31
  def msg_type
@@ -25,10 +33,15 @@ module DingBot
25
33
  end
26
34
 
27
35
  def body_params
28
- super.merge(
36
+ super.merge({
29
37
  markdown: {
30
38
  text: @text,
31
39
  title: @title,
40
+ },
41
+ at: {
42
+ atMobiles: @at_mobiles,
43
+ isAtAll: @is_at_all
44
+ }
32
45
  }
33
46
  )
34
47
  end
@@ -17,7 +17,7 @@ module DingBot
17
17
  # }
18
18
  class Text < Base
19
19
  attr_accessor :content, :at_mobiles, :is_at_all
20
-
20
+
21
21
  def initialize(content='', at_mobiles=[], is_at_all=false)
22
22
  @content = content
23
23
  @at_mobiles = at_mobiles
@@ -32,7 +32,7 @@ module DingBot
32
32
  super.merge(
33
33
  {
34
34
  text: {
35
- "content": @content
35
+ content: @content
36
36
  },
37
37
  at: {
38
38
  atMobiles: @at_mobiles,
@@ -1,5 +1,5 @@
1
1
  module DingBot
2
2
 
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.5"
4
4
 
5
5
  end
data/lib/dingbot.rb CHANGED
@@ -38,7 +38,7 @@ module DingBot
38
38
  #
39
39
  # @return [Array<Symbol>]
40
40
  def self.actions
41
- hidden = /access_token|post|validate|httparty/
41
+ hidden = /access_token|post|validate|httparty|secret/
42
42
  (DingBot::Client.instance_methods - Object.methods).reject {|e| e[hidden]}
43
43
  end
44
44
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dingbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thierry Xing
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-19 00:00:00.000000000 Z
11
+ date: 2021-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.14'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '1.14'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -133,8 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  - !ruby/object:Gem::Version
134
134
  version: '0'
135
135
  requirements: []
136
- rubyforge_project:
137
- rubygems_version: 2.5.1
136
+ rubygems_version: 3.0.3
138
137
  signing_key:
139
138
  specification_version: 4
140
139
  summary: 钉钉自定义机器人Ruby库