confirmation_code 0.0.4 → 0.0.5

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
  SHA1:
3
- metadata.gz: c0009cee084165c1cabeee0c05d9a4e900569550
4
- data.tar.gz: 3eaf2fc4a90edd34cdf34f5ca6978e62b3663fdc
3
+ metadata.gz: 277868ac26cb91b3bc21850e3a4221294acbf91e
4
+ data.tar.gz: cc8c2d032231a41da55a26c7ed01e137c76fcc46
5
5
  SHA512:
6
- metadata.gz: 06042427c72b5a822eaf1d131154be75b00c34014f2554efd5012ada8230a683d6a8f41425193218cbd1d1c9c380816f87b01b5ca58eb351dee3cfbb75fc11cc
7
- data.tar.gz: 4f0ba8abc5137f3b62e6a99e35de7442c90c999cb7f644801f0c54a67853fa17ddb142ef6684a044b489868b8d4546f2c7a21abd206e3bdedd8ac689af33d57d
6
+ metadata.gz: e58658fe790f6827afa2d2b2130ec0a631a2dfc42c038e8f48d0432c1950990cd519d348bfcb7cff03690a4eea62343c2ae3d5f9b4ac6f1081b10c6a4ba5fd34
7
+ data.tar.gz: 6404e4b19e56032f08a6fc6c11f252ffc7831858fc1cf7afb46e894a7cbe21db43a90e7e97ecb0465d24eada9f3ab123f9428b0655fc4afde63320d48af9f180
data/.gitignore CHANGED
@@ -37,5 +37,10 @@ build/
37
37
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
38
38
  .rvmrc
39
39
  *.jpeg
40
+ *.py
41
+ *.doc
42
+ *.bmp
43
+ uuPythonDemo2014.6.7/
44
+ .DS_Store
40
45
 
41
46
  # Created by .ignore support plugin (hsz.mobi)
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.license = "MIT"
16
16
 
17
17
  s.executables << 'confirmation_code'
18
+ s.add_runtime_dependency 'activesupport', '~> 3.0', '>= 3.0.0'
18
19
  s.add_dependency 'httpclient', '~> 2.7'
19
20
  s.add_dependency 'awesome_print', '~> 1.6'
20
21
  end
data/damatu.paw ADDED
@@ -0,0 +1,475 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE database SYSTEM "file:///System/Library/DTDs/CoreData.dtd">
3
+
4
+ <database>
5
+ <databaseInfo>
6
+ <version>134481920</version>
7
+ <UUID>0F034DAC-7079-4606-B391-4EAA2D184C72</UUID>
8
+ <nextObjectID>204</nextObjectID>
9
+ <metadata>
10
+ <plist version="1.0">
11
+ <dict>
12
+ <key>NSPersistenceFrameworkVersion</key>
13
+ <integer>641</integer>
14
+ <key>NSStoreModelVersionHashes</key>
15
+ <dict>
16
+ <key>LMCookieJar</key>
17
+ <data>
18
+ Fttmf2L4PrGvKUF496+nqgVVGek45TjOe7sUMtjNg8I=
19
+ </data>
20
+ <key>LMEnvironment</key>
21
+ <data>
22
+ uzBoVFcO4YvR9/3ej4AJ1UOOsA/u5DKY2aemusoIseU=
23
+ </data>
24
+ <key>LMEnvironmentDomain</key>
25
+ <data>
26
+ yM1GPGHdquS8IWLtuczlNoqKhIhD9FW6IReSfFffJgs=
27
+ </data>
28
+ <key>LMEnvironmentVariable</key>
29
+ <data>
30
+ P8e0lYd5JZKRabS/eXVSOJ4oitilz67xtv+pLqW1Jqg=
31
+ </data>
32
+ <key>LMEnvironmentVariableValue</key>
33
+ <data>
34
+ my5hNPJ51oDCSa8EgdNxWAnRcDLcERUGjtuXnzhSxQ0=
35
+ </data>
36
+ <key>LMKeyValue</key>
37
+ <data>
38
+ bIXXbyYF2xAv2MXg8JTVFsslmMKuvsfnR86QdUcFkdM=
39
+ </data>
40
+ <key>LMRequest</key>
41
+ <data>
42
+ vcehD1+Y0zJEqCmgqlTWLscXXTAat5YQbsUJSVqwTq0=
43
+ </data>
44
+ <key>LMRequestGroup</key>
45
+ <data>
46
+ MnZKiG/nHZ2bvbULv2vfzH+0tXd5w+NuuMPlNJjBAMw=
47
+ </data>
48
+ <key>LMRequestTreeItem</key>
49
+ <data>
50
+ Ae5GlAcsXxZOGKCPQgemYbXQ3+KUtHlsprrqBD+V81o=
51
+ </data>
52
+ </dict>
53
+ <key>NSStoreModelVersionHashesVersion</key>
54
+ <integer>3</integer>
55
+ <key>NSStoreModelVersionIdentifiers</key>
56
+ <array>
57
+ <string>LMDocumentVersion4</string>
58
+ </array>
59
+ </dict>
60
+ </plist>
61
+ </metadata>
62
+ </databaseInfo>
63
+ <object type="LMCOOKIEJAR" id="z104">
64
+ <attribute name="uuid" type="string">CB95B396-6876-494E-A6CD-5676BE7F0DD1</attribute>
65
+ <attribute name="order" type="int64">1</attribute>
66
+ <attribute name="name" type="string">Default Jar</attribute>
67
+ </object>
68
+ <object type="LMKEYVALUE" id="z105">
69
+ <attribute name="value" type="string"></attribute>
70
+ <attribute name="order" type="int64">0</attribute>
71
+ <attribute name="name" type="string"></attribute>
72
+ <attribute name="enabled" type="bool">1</attribute>
73
+ <relationship name="groupforbodyparameters" type="0/1" destination="LMREQUESTGROUP"></relationship>
74
+ <relationship name="groupforheaders" type="0/1" destination="LMREQUESTGROUP"></relationship>
75
+ <relationship name="groupforurlparameters" type="0/1" destination="LMREQUESTGROUP"></relationship>
76
+ <relationship name="request" type="0/1" destination="LMREQUEST" idrefs="z107"></relationship>
77
+ </object>
78
+ <object type="LMREQUEST" id="z107">
79
+ <attribute name="body" type="string">[{"data":{"json":"{\\"user\\":\\"[{\\\\\\"data\\\\\\":{\\\\\\"environmentVariable\\\\\\":\\\\\\"295648E5-FC22-4DA5-BDBF-F1CC230CB8A0\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"com.luckymarmot.EnvironmentVariableDynamicValue\\\\\\"}]\\",\\"pwd\\":\\"[{\\\\\\"data\\\\\\":{\\\\\\"environmentVariable\\\\\\":\\\\\\"CC6DE0A1-EC21-4D3F-AA1B-4C06006E4B45\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"com.luckymarmot.EnvironmentVariableDynamicValue\\\\\\"}]\\",\\"appID\\":\\"[{\\\\\\"data\\\\\\":{\\\\\\"environmentVariable\\\\\\":\\\\\\"CE62BA1B-77E4-4ED0-B603-EFC8D7C20CB3\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"com.luckymarmot.EnvironmentVariableDynamicValue\\\\\\"}]\\",\\"sign\\":\\"b3606170\\"}"},"identifier":"com.luckymarmot.JSONDynamicValue"}]</attribute>
80
+ <attribute name="uuid" type="string">85452E27-2D8D-4851-BCBB-27B7E096910C</attribute>
81
+ <attribute name="url" type="string">[{"data":{"environmentVariable":"FBBFC2D5-CB61-419A-8CB5-EB3ED5A91547"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\\/app\\/d2Balance?appID=",{"data":{"environmentVariable":"CE62BA1B-77E4-4ED0-B603-EFC8D7C20CB3"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600pwd=",{"data":{"environmentVariable":"CC6DE0A1-EC21-4D3F-AA1B-4C06006E4B45"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600user=",{"data":{"environmentVariable":"295648E5-FC22-4DA5-BDBF-F1CC230CB8A0"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600sign=",{"data":{"environmentVariable":"BBC5024E-958D-4DEF-A9EA-90F64D090A8D"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"}]</attribute>
82
+ <attribute name="storecookies" type="bool">1</attribute>
83
+ <attribute name="sendcookies" type="bool">1</attribute>
84
+ <attribute name="redirectmethod" type="bool">0</attribute>
85
+ <attribute name="redirectauthorization" type="bool">0</attribute>
86
+ <attribute name="method" type="string">GET</attribute>
87
+ <attribute name="followredirects" type="bool">0</attribute>
88
+ <attribute name="order" type="int64">0</attribute>
89
+ <attribute name="name" type="string">查询余额</attribute>
90
+ <relationship name="parent" type="0/1" destination="LMREQUESTTREEITEM" idrefs="z111"></relationship>
91
+ <relationship name="children" type="0/0" destination="LMREQUESTTREEITEM"></relationship>
92
+ <relationship name="headers" type="0/0" destination="LMKEYVALUE" idrefs="z105"></relationship>
93
+ </object>
94
+ <object type="LMREQUESTGROUP" id="z111">
95
+ <attribute name="uuid" type="string">690E4168-7AA7-4EA5-975C-009572E87965</attribute>
96
+ <attribute name="order" type="int64">0</attribute>
97
+ <attribute name="name" type="string">打码兔</attribute>
98
+ <relationship name="parent" type="0/1" destination="LMREQUESTTREEITEM"></relationship>
99
+ <relationship name="children" type="0/0" destination="LMREQUESTTREEITEM" idrefs="z172 z107 z112 z178"></relationship>
100
+ <relationship name="bodyparameters" type="0/0" destination="LMKEYVALUE"></relationship>
101
+ <relationship name="headers" type="0/0" destination="LMKEYVALUE"></relationship>
102
+ <relationship name="urlparameters" type="0/0" destination="LMKEYVALUE"></relationship>
103
+ </object>
104
+ <object type="LMREQUEST" id="z112">
105
+ <attribute name="uuid" type="string">D920AAAA-8410-442D-853A-14A0B421DFE1</attribute>
106
+ <attribute name="url" type="string">[{"data":{"environmentVariable":"3F0E126E-80EB-42FC-948F-9BB3056D1789"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},{"data":{"environmentVariable":"FBBFC2D5-CB61-419A-8CB5-EB3ED5A91547"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\\/app\\/d2Url?appID=",{"data":{"environmentVariable":"CE62BA1B-77E4-4ED0-B603-EFC8D7C20CB3"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600pwd=",{"data":{"environmentVariable":"CC6DE0A1-EC21-4D3F-AA1B-4C06006E4B45"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600user=",{"data":{"environmentVariable":"295648E5-FC22-4DA5-BDBF-F1CC230CB8A0"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600sign=",{"data":{"environmentVariable":"3777C087-9325-40C3-AD9A-44291FAC0958"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600url=",{"data":{"environmentVariable":"D44B9442-5950-420A-8EB5-011C75F740D5"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600type=200"]</attribute>
107
+ <attribute name="storecookies" type="bool">1</attribute>
108
+ <attribute name="sendcookies" type="bool">1</attribute>
109
+ <attribute name="redirectmethod" type="bool">0</attribute>
110
+ <attribute name="redirectauthorization" type="bool">0</attribute>
111
+ <attribute name="method" type="string">POST</attribute>
112
+ <attribute name="followredirects" type="bool">0</attribute>
113
+ <attribute name="body" type="string">[{"data":{"keyValues":[]},"identifier":"com.luckymarmot.BodyMultipartFormDataDynamicValue"}]</attribute>
114
+ <attribute name="order" type="int64">1</attribute>
115
+ <attribute name="name" type="string">上传图片url</attribute>
116
+ <relationship name="parent" type="0/1" destination="LMREQUESTTREEITEM" idrefs="z111"></relationship>
117
+ <relationship name="children" type="0/0" destination="LMREQUESTTREEITEM"></relationship>
118
+ <relationship name="headers" type="0/0" destination="LMKEYVALUE" idrefs="z113"></relationship>
119
+ </object>
120
+ <object type="LMKEYVALUE" id="z113">
121
+ <attribute name="value" type="string"></attribute>
122
+ <attribute name="order" type="int64">0</attribute>
123
+ <attribute name="name" type="string"></attribute>
124
+ <attribute name="enabled" type="bool">1</attribute>
125
+ <relationship name="groupforbodyparameters" type="0/1" destination="LMREQUESTGROUP"></relationship>
126
+ <relationship name="groupforheaders" type="0/1" destination="LMREQUESTGROUP"></relationship>
127
+ <relationship name="groupforurlparameters" type="0/1" destination="LMREQUESTGROUP"></relationship>
128
+ <relationship name="request" type="0/1" destination="LMREQUEST" idrefs="z112"></relationship>
129
+ </object>
130
+ <object type="LMENVIRONMENTDOMAIN" id="z139">
131
+ <attribute name="uuid" type="string">ACB78D83-97A5-4C0E-9ACF-5DFF85A36491</attribute>
132
+ <attribute name="order" type="int64">0</attribute>
133
+ <attribute name="name" type="string">打码兔</attribute>
134
+ <relationship name="environments" type="0/0" destination="LMENVIRONMENT" idrefs="z140"></relationship>
135
+ <relationship name="variables" type="0/0" destination="LMENVIRONMENTVARIABLE" idrefs="z144 z147 z149 z160 z141"></relationship>
136
+ </object>
137
+ <object type="LMENVIRONMENT" id="z140">
138
+ <attribute name="uuid" type="string">4DA5043C-87C9-47F9-A410-9AB64EFDDA6E</attribute>
139
+ <attribute name="order" type="int64">0</attribute>
140
+ <attribute name="name" type="string">Default Environment</attribute>
141
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z139"></relationship>
142
+ <relationship name="variablesvalues" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z151 z159 z153 z142 z146"></relationship>
143
+ </object>
144
+ <object type="LMENVIRONMENTVARIABLE" id="z141">
145
+ <attribute name="uuid" type="string">FBBFC2D5-CB61-419A-8CB5-EB3ED5A91547</attribute>
146
+ <attribute name="order" type="int64">0</attribute>
147
+ <attribute name="name" type="string">host</attribute>
148
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z139"></relationship>
149
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z142"></relationship>
150
+ </object>
151
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z142">
152
+ <attribute name="value" type="string">http://api.dama2.com:7766</attribute>
153
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z140"></relationship>
154
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z141"></relationship>
155
+ </object>
156
+ <object type="LMENVIRONMENTVARIABLE" id="z143">
157
+ <attribute name="uuid" type="string">14CD7C53-4EEA-4A91-997D-94C8AC30867B</attribute>
158
+ <attribute name="order" type="int64">0</attribute>
159
+ <attribute name="name" type="string">md5_password</attribute>
160
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
161
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z150"></relationship>
162
+ </object>
163
+ <object type="LMENVIRONMENTVARIABLE" id="z144">
164
+ <attribute name="uuid" type="string">295648E5-FC22-4DA5-BDBF-F1CC230CB8A0</attribute>
165
+ <attribute name="order" type="int64">1</attribute>
166
+ <attribute name="name" type="string">user</attribute>
167
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z139"></relationship>
168
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z153"></relationship>
169
+ </object>
170
+ <object type="LMENVIRONMENTDOMAIN" id="z145">
171
+ <attribute name="uuid" type="string">760CC47F-5C07-409F-B265-91740991C3A2</attribute>
172
+ <attribute name="order" type="int64">1</attribute>
173
+ <attribute name="name" type="string">打码兔加密</attribute>
174
+ <relationship name="environments" type="0/0" destination="LMENVIRONMENT" idrefs="z154"></relationship>
175
+ <relationship name="variables" type="0/0" destination="LMENVIRONMENTVARIABLE" idrefs="z175 z169 z197 z152 z143 z157 z158 z163 z179 z181 z199 z162"></relationship>
176
+ </object>
177
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z146">
178
+ <attribute name="value" type="string">lsm123</attribute>
179
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z140"></relationship>
180
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z147"></relationship>
181
+ </object>
182
+ <object type="LMENVIRONMENTVARIABLE" id="z147">
183
+ <attribute name="uuid" type="string">A9F3BF08-0D68-41FF-9EEE-B30C5B42C2BB</attribute>
184
+ <attribute name="order" type="int64">2</attribute>
185
+ <attribute name="name" type="string">password</attribute>
186
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z139"></relationship>
187
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z146"></relationship>
188
+ </object>
189
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z148">
190
+ <attribute name="value" type="string">[{"data":{"encoding":"Hexadecimal","hashType":2,"input":[{"data":{"environmentVariable":"295648E5-FC22-4DA5-BDBF-F1CC230CB8A0"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"}],"uppercase":0},"identifier":"com.luckymarmot.HashDynamicValue"}]</attribute>
191
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
192
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z152"></relationship>
193
+ </object>
194
+ <object type="LMENVIRONMENTVARIABLE" id="z149">
195
+ <attribute name="uuid" type="string">70D58A8C-0AC5-4ED2-B141-DB478F44348A</attribute>
196
+ <attribute name="order" type="int64">3</attribute>
197
+ <attribute name="name" type="string">app_key</attribute>
198
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z139"></relationship>
199
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z151"></relationship>
200
+ </object>
201
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z150">
202
+ <attribute name="value" type="string">[{"data":{"encoding":"Hexadecimal","hashType":2,"input":[{"data":{"environmentVariable":"A9F3BF08-0D68-41FF-9EEE-B30C5B42C2BB"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"}],"uppercase":0},"identifier":"com.luckymarmot.HashDynamicValue"}]</attribute>
203
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
204
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z143"></relationship>
205
+ </object>
206
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z151">
207
+ <attribute name="value" type="string">0f80784a5ff20d38df3977e461e3d82a</attribute>
208
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z140"></relationship>
209
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z149"></relationship>
210
+ </object>
211
+ <object type="LMENVIRONMENTVARIABLE" id="z152">
212
+ <attribute name="uuid" type="string">608F3431-FB19-48FC-AE15-996C7D44C3AB</attribute>
213
+ <attribute name="order" type="int64">1</attribute>
214
+ <attribute name="name" type="string">md5_user</attribute>
215
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
216
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z148"></relationship>
217
+ </object>
218
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z153">
219
+ <attribute name="value" type="string">seaify</attribute>
220
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z140"></relationship>
221
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z144"></relationship>
222
+ </object>
223
+ <object type="LMENVIRONMENT" id="z154">
224
+ <attribute name="uuid" type="string">B64D464F-9D2D-4014-8599-475C5D78DA4C</attribute>
225
+ <attribute name="order" type="int64">0</attribute>
226
+ <attribute name="name" type="string">Default Environment</attribute>
227
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
228
+ <relationship name="variablesvalues" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z176 z164 z182 z148 z150 z180 z198 z170 z155 z161 z156 z200"></relationship>
229
+ </object>
230
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z155">
231
+ <attribute name="value" type="string">[{"data":{"encoding":"Hexadecimal","hashType":2,"input":[{"data":{"environmentVariable":"70D58A8C-0AC5-4ED2-B141-DB478F44348A"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},{"data":{"environmentVariable":"B5458D8D-FB9B-41E6-B0C2-B483B7972D7B"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"}],"uppercase":0},"identifier":"com.luckymarmot.HashDynamicValue"}]</attribute>
232
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
233
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z157"></relationship>
234
+ </object>
235
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z156">
236
+ <attribute name="value" type="string">[{"data":{"environmentVariable":"608F3431-FB19-48FC-AE15-996C7D44C3AB"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},{"data":{"environmentVariable":"14CD7C53-4EEA-4A91-997D-94C8AC30867B"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"}]</attribute>
237
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
238
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z158"></relationship>
239
+ </object>
240
+ <object type="LMENVIRONMENTVARIABLE" id="z157">
241
+ <attribute name="uuid" type="string">CC6DE0A1-EC21-4D3F-AA1B-4C06006E4B45</attribute>
242
+ <attribute name="order" type="int64">2</attribute>
243
+ <attribute name="name" type="string">encrypet_password</attribute>
244
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
245
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z155"></relationship>
246
+ </object>
247
+ <object type="LMENVIRONMENTVARIABLE" id="z158">
248
+ <attribute name="uuid" type="string">C4DE684D-62FA-4F1B-99BA-6710468A4B2D</attribute>
249
+ <attribute name="order" type="int64">3</attribute>
250
+ <attribute name="name" type="string">user_password</attribute>
251
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
252
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z156"></relationship>
253
+ </object>
254
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z159">
255
+ <attribute name="value" type="string">41635</attribute>
256
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z140"></relationship>
257
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z160"></relationship>
258
+ </object>
259
+ <object type="LMENVIRONMENTVARIABLE" id="z160">
260
+ <attribute name="uuid" type="string">CE62BA1B-77E4-4ED0-B603-EFC8D7C20CB3</attribute>
261
+ <attribute name="order" type="int64">4</attribute>
262
+ <attribute name="name" type="string">app_id</attribute>
263
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z139"></relationship>
264
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z159"></relationship>
265
+ </object>
266
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z161">
267
+ <attribute name="value" type="string">[{"data":{"encoding":"Hexadecimal","hashType":2,"input":[{"data":{"environmentVariable":"C4DE684D-62FA-4F1B-99BA-6710468A4B2D"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"}],"uppercase":0},"identifier":"com.luckymarmot.HashDynamicValue"}]</attribute>
268
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
269
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z162"></relationship>
270
+ </object>
271
+ <object type="LMENVIRONMENTVARIABLE" id="z162">
272
+ <attribute name="uuid" type="string">B5458D8D-FB9B-41E6-B0C2-B483B7972D7B</attribute>
273
+ <attribute name="order" type="int64">4</attribute>
274
+ <attribute name="name" type="string">md5_user_password</attribute>
275
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
276
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z161"></relationship>
277
+ </object>
278
+ <object type="LMENVIRONMENTVARIABLE" id="z163">
279
+ <attribute name="uuid" type="string">BBC5024E-958D-4DEF-A9EA-90F64D090A8D</attribute>
280
+ <attribute name="order" type="int64">5</attribute>
281
+ <attribute name="name" type="string">balance_sign</attribute>
282
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
283
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z164"></relationship>
284
+ </object>
285
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z164">
286
+ <attribute name="value" type="string">[{"data":{"name":"slice","input":"[{\\"data\\":{\\"algorithm_name\\":\\"md5_bytes\\",\\"input\\":\\"[{\\\\\\"data\\\\\\":{\\\\\\"environmentVariable\\\\\\":\\\\\\"79085216-8474-42FD-B224-959C2BB34E84\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"com.luckymarmot.EnvironmentVariableDynamicValue\\\\\\"}]\\",\\"slice\\":\\"0,2\\"},\\"identifier\\":\\"com.seaify.algorithms\\"}]","slice":"0,8"},"identifier":"com.seaify.utils"}]</attribute>
287
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
288
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z163"></relationship>
289
+ </object>
290
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z165">
291
+ <attribute name="value" type="string">http://captcha.qq.com/getimage</attribute>
292
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z168"></relationship>
293
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z166"></relationship>
294
+ </object>
295
+ <object type="LMENVIRONMENTVARIABLE" id="z166">
296
+ <attribute name="uuid" type="string">C682DDFA-41C7-471A-BF2A-0D52C7BDBC94</attribute>
297
+ <attribute name="order" type="int64">0</attribute>
298
+ <attribute name="name" type="string">image_url</attribute>
299
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z167"></relationship>
300
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z165"></relationship>
301
+ </object>
302
+ <object type="LMENVIRONMENTDOMAIN" id="z167">
303
+ <attribute name="uuid" type="string">C7FDF687-E7D6-48C0-9BB4-12A661305A1A</attribute>
304
+ <attribute name="order" type="int64">2</attribute>
305
+ <attribute name="name" type="string">default</attribute>
306
+ <relationship name="environments" type="0/0" destination="LMENVIRONMENT" idrefs="z168"></relationship>
307
+ <relationship name="variables" type="0/0" destination="LMENVIRONMENTVARIABLE" idrefs="z201 z173 z203 z166"></relationship>
308
+ </object>
309
+ <object type="LMENVIRONMENT" id="z168">
310
+ <attribute name="uuid" type="string">B7BDE867-A008-41CF-9C01-EA8FAC1EB7C1</attribute>
311
+ <attribute name="order" type="int64">0</attribute>
312
+ <attribute name="name" type="string">Default Environment</attribute>
313
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z167"></relationship>
314
+ <relationship name="variablesvalues" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z174 z165 z204 z202"></relationship>
315
+ </object>
316
+ <object type="LMENVIRONMENTVARIABLE" id="z169">
317
+ <attribute name="uuid" type="string">3777C087-9325-40C3-AD9A-44291FAC0958</attribute>
318
+ <attribute name="order" type="int64">6</attribute>
319
+ <attribute name="name" type="string">post_sign</attribute>
320
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
321
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z170"></relationship>
322
+ </object>
323
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z170">
324
+ <attribute name="value" type="string">[{"data":{"name":"slice","input":"[{\\"data\\":{\\"algorithm_name\\":\\"md5_bytes\\",\\"input\\":\\"[{\\\\\\"data\\\\\\":{\\\\\\"environmentVariable\\\\\\":\\\\\\"79085216-8474-42FD-B224-959C2BB34E84\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"com.luckymarmot.EnvironmentVariableDynamicValue\\\\\\"},\\\\\\",\\\\\\",{\\\\\\"data\\\\\\":{\\\\\\"algorithm_name\\\\\\":\\\\\\"bytes\\\\\\",\\\\\\"input\\\\\\":\\\\\\"[{\\\\\\\\\\\\\\"data\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"environmentVariable\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"C682DDFA-41C7-471A-BF2A-0D52C7BDBC94\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"com.luckymarmot.EnvironmentVariableDynamicValue\\\\\\\\\\\\\\"}]\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"com.seaify.algorithms\\\\\\"}]\\"},\\"identifier\\":\\"com.seaify.algorithms\\"}]","slice":"0,8"},"identifier":"com.seaify.utils"}]</attribute>
325
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
326
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z169"></relationship>
327
+ </object>
328
+ <object type="LMKEYVALUE" id="z171">
329
+ <attribute name="value" type="string"></attribute>
330
+ <attribute name="order" type="int64">0</attribute>
331
+ <attribute name="name" type="string"></attribute>
332
+ <attribute name="enabled" type="bool">1</attribute>
333
+ <relationship name="groupforbodyparameters" type="0/1" destination="LMREQUESTGROUP"></relationship>
334
+ <relationship name="groupforheaders" type="0/1" destination="LMREQUESTGROUP"></relationship>
335
+ <relationship name="groupforurlparameters" type="0/1" destination="LMREQUESTGROUP"></relationship>
336
+ <relationship name="request" type="0/1" destination="LMREQUEST" idrefs="z172"></relationship>
337
+ </object>
338
+ <object type="LMREQUEST" id="z172">
339
+ <attribute name="uuid" type="string">0BBE0478-FC09-4D0E-B775-F8172D8E5C83</attribute>
340
+ <attribute name="url" type="string">[{"data":{"environmentVariable":"3F0E126E-80EB-42FC-948F-9BB3056D1789"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},{"data":{"environmentVariable":"FBBFC2D5-CB61-419A-8CB5-EB3ED5A91547"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\\/app\\/d2File?appID=",{"data":{"environmentVariable":"CE62BA1B-77E4-4ED0-B603-EFC8D7C20CB3"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600pwd=",{"data":{"environmentVariable":"CC6DE0A1-EC21-4D3F-AA1B-4C06006E4B45"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600user=",{"data":{"environmentVariable":"295648E5-FC22-4DA5-BDBF-F1CC230CB8A0"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600sign=",{"data":{"environmentVariable":"E5DB6E5E-AEA1-4EC5-8E65-CE93C3830923"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600type=200"]</attribute>
341
+ <attribute name="storecookies" type="bool">1</attribute>
342
+ <attribute name="sendcookies" type="bool">1</attribute>
343
+ <attribute name="redirectmethod" type="bool">0</attribute>
344
+ <attribute name="redirectauthorization" type="bool">0</attribute>
345
+ <attribute name="method" type="string">POST</attribute>
346
+ <attribute name="followredirects" type="bool">0</attribute>
347
+ <attribute name="body" type="string">[{"data":{"keyValues":[[["file"],[{"data":{"environmentVariable":"EAA39355-4AEE-4E2E-A045-F581429182EC"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"}],true]]},"identifier":"com.luckymarmot.BodyMultipartFormDataDynamicValue"}]</attribute>
348
+ <attribute name="order" type="int64">2</attribute>
349
+ <attribute name="name" type="string">上传本地图片</attribute>
350
+ <relationship name="parent" type="0/1" destination="LMREQUESTTREEITEM" idrefs="z111"></relationship>
351
+ <relationship name="children" type="0/0" destination="LMREQUESTTREEITEM"></relationship>
352
+ <relationship name="headers" type="0/0" destination="LMKEYVALUE" idrefs="z171"></relationship>
353
+ </object>
354
+ <object type="LMENVIRONMENTVARIABLE" id="z173">
355
+ <attribute name="uuid" type="string">EAA39355-4AEE-4E2E-A045-F581429182EC</attribute>
356
+ <attribute name="order" type="int64">1</attribute>
357
+ <attribute name="name" type="string">local_image</attribute>
358
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z167"></relationship>
359
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z174"></relationship>
360
+ </object>
361
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z174">
362
+ <attribute name="value" type="string">[{"data":{"bookmarkData":"Ym9vawwDAAAAAAQQMAAAADd0PQYQdOxQtgbG0fvrhs8X8AieUr+fzZ4+Vj\\/7j2o\\/CAIAAAQAAAADAwAAABgAKAUAAAABAQAAVXNlcnMAAAAFAAAAAQEAAGNodWNrAAAABgAAAAEBAABzZWFpZnkAAAQAAAABAQAAbWluZREAAAABAQAAY29uZmlybWF0aW9uX2NvZGUAAAAIAAAAAQEAADAzNDkuYm1wGAAAAAEGAAAQAAAAIAAAADAAAABAAAAATAAAAGgAAAAIAAAABAMAADAHEgAAAAAACAAAAAQDAABBBxIAAAAAAAgAAAAEAwAAJuMaAAAAAAAIAAAABAMAAC30HgAAAAAACAAAAAQDAAAPInIAAAAAAAgAAAAEAwAAjtG0AAAAAAAYAAAAAQYAAJgAAACoAAAAuAAAAMgAAADYAAAA6AAAAAgAAAAABAAAQboHMHYAAAAYAAAAAQIAAAEAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAgAAAAEAwAABAAAAAAAAAAEAAAAAwMAAPUBAAAIAAAAAQkAAGZpbGU6Ly8vDAAAAAEBAABNYWNpbnRvc2ggSEQIAAAABAMAAAAgiD06AAAACAAAAAAEAABBut2ozAAAACQAAAABAQAARTRDNjRCM0ItRjM0Ni0zNTE1LTlDODItQjQ3QzUxRjAwRUUwGAAAAAECAACBAAAAAQAAAO8TAAABAAAAAAAAAAAAAAABAAAAAQEAAC8AAAAAAAAAAQUAAMwAAAD+\\/\\/\\/\\/AQAAAAAAAAAQAAAABBAAAHgAAAAAAAAABRAAAPgAAAAAAAAAEBAAACgBAAAAAAAAQBAAABgBAAAAAAAAAiAAAPQBAAAAAAAABSAAAGQBAAAAAAAAECAAAHQBAAAAAAAAESAAAKgBAAAAAAAAEiAAAIgBAAAAAAAAEyAAAJgBAAAAAAAAICAAANQBAAAAAAAAMCAAAAACAAAAAAAAAcAAAEgBAAAAAAAAEcAAACAAAAAAAAAAEsAAAFgBAAAAAAAAENAAAAQAAAAAAAAA"},"identifier":"com.luckymarmot.FileContentDynamicValue"}]</attribute>
363
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z168"></relationship>
364
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z173"></relationship>
365
+ </object>
366
+ <object type="LMENVIRONMENTVARIABLE" id="z175">
367
+ <attribute name="uuid" type="string">E5DB6E5E-AEA1-4EC5-8E65-CE93C3830923</attribute>
368
+ <attribute name="order" type="int64">7</attribute>
369
+ <attribute name="name" type="string">local_image_sign</attribute>
370
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
371
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z176"></relationship>
372
+ </object>
373
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z176">
374
+ <attribute name="value" type="string">a63b2cb2</attribute>
375
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
376
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z175"></relationship>
377
+ </object>
378
+ <object type="LMKEYVALUE" id="z177">
379
+ <attribute name="value" type="string"></attribute>
380
+ <attribute name="order" type="int64">0</attribute>
381
+ <attribute name="name" type="string"></attribute>
382
+ <attribute name="enabled" type="bool">1</attribute>
383
+ <relationship name="groupforbodyparameters" type="0/1" destination="LMREQUESTGROUP"></relationship>
384
+ <relationship name="groupforheaders" type="0/1" destination="LMREQUESTGROUP"></relationship>
385
+ <relationship name="groupforurlparameters" type="0/1" destination="LMREQUESTGROUP"></relationship>
386
+ <relationship name="request" type="0/1" destination="LMREQUEST" idrefs="z178"></relationship>
387
+ </object>
388
+ <object type="LMREQUEST" id="z178">
389
+ <attribute name="uuid" type="string">25BD1B1C-CB27-4258-BB89-D5F0B4E9C8EB</attribute>
390
+ <attribute name="url" type="string">[{"data":{"environmentVariable":"3F0E126E-80EB-42FC-948F-9BB3056D1789"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},{"data":{"environmentVariable":"FBBFC2D5-CB61-419A-8CB5-EB3ED5A91547"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\\/app\\/d2ReportError?appID=",{"data":{"environmentVariable":"CE62BA1B-77E4-4ED0-B603-EFC8D7C20CB3"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600pwd=",{"data":{"environmentVariable":"CC6DE0A1-EC21-4D3F-AA1B-4C06006E4B45"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600user=",{"data":{"environmentVariable":"295648E5-FC22-4DA5-BDBF-F1CC230CB8A0"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"},"\u2600sign=",{"data":{"name":"slice","input":"[{\\"data\\":{\\"algorithm_name\\":\\"md5_bytes\\",\\"input\\":\\"[{\\\\\\"data\\\\\\":{\\\\\\"environmentVariable\\\\\\":\\\\\\"79085216-8474-42FD-B224-959C2BB34E84\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"com.luckymarmot.EnvironmentVariableDynamicValue\\\\\\"},\\\\\\",\\\\\\",{\\\\\\"data\\\\\\":{\\\\\\"algorithm_name\\\\\\":\\\\\\"bytes\\\\\\",\\\\\\"input\\\\\\":\\\\\\"[{\\\\\\\\\\\\\\"data\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"param\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"id\\\\\\\\\\\\\\"]},\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"com.luckymarmot.RequestURLParamDynamicValue\\\\\\\\\\\\\\"}]\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"com.seaify.algorithms\\\\\\"}]\\"},\\"identifier\\":\\"com.seaify.algorithms\\"}]","slice":"0,8"},"identifier":"com.seaify.utils"},"\u2600id=",{"data":{"request":"D920AAAA-8410-442D-853A-14A0B421DFE1","keyPath":["id"],"format":1},"identifier":"com.luckymarmot.ResponseBodyPathDynamicValue"}]</attribute>
391
+ <attribute name="storecookies" type="bool">1</attribute>
392
+ <attribute name="sendcookies" type="bool">1</attribute>
393
+ <attribute name="redirectmethod" type="bool">0</attribute>
394
+ <attribute name="redirectauthorization" type="bool">0</attribute>
395
+ <attribute name="method" type="string">POST</attribute>
396
+ <attribute name="followredirects" type="bool">0</attribute>
397
+ <attribute name="order" type="int64">3</attribute>
398
+ <attribute name="name" type="string">报告验证码错误</attribute>
399
+ <relationship name="parent" type="0/1" destination="LMREQUESTTREEITEM" idrefs="z111"></relationship>
400
+ <relationship name="children" type="0/0" destination="LMREQUESTTREEITEM"></relationship>
401
+ <relationship name="headers" type="0/0" destination="LMKEYVALUE" idrefs="z177"></relationship>
402
+ </object>
403
+ <object type="LMENVIRONMENTVARIABLE" id="z179">
404
+ <attribute name="uuid" type="string">A7EC29CE-ECD4-4238-9A9D-DAA9B7D9781E</attribute>
405
+ <attribute name="order" type="int64">8</attribute>
406
+ <attribute name="name" type="string">report_sign</attribute>
407
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
408
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z180"></relationship>
409
+ </object>
410
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z180">
411
+ <attribute name="value" type="string">4ae46be1</attribute>
412
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
413
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z179"></relationship>
414
+ </object>
415
+ <object type="LMENVIRONMENTVARIABLE" id="z181">
416
+ <attribute name="uuid" type="string">79085216-8474-42FD-B224-959C2BB34E84</attribute>
417
+ <attribute name="order" type="int64">9</attribute>
418
+ <attribute name="name" type="string">bytes_key_user</attribute>
419
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
420
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z182"></relationship>
421
+ </object>
422
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z182">
423
+ <attribute name="value" type="string">[{"data":{"algorithm_name":"bytes","input":"[{\\"data\\":{\\"environmentVariable\\":\\"70D58A8C-0AC5-4ED2-B141-DB478F44348A\\"},\\"identifier\\":\\"com.luckymarmot.EnvironmentVariableDynamicValue\\"}]"},"identifier":"com.seaify.algorithms"},",",{"data":{"algorithm_name":"bytes","input":"[{\\"data\\":{\\"environmentVariable\\":\\"295648E5-FC22-4DA5-BDBF-F1CC230CB8A0\\"},\\"identifier\\":\\"com.luckymarmot.EnvironmentVariableDynamicValue\\"}]"},"identifier":"com.seaify.algorithms"}]</attribute>
424
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
425
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z181"></relationship>
426
+ </object>
427
+ <object type="LMENVIRONMENTVARIABLE" id="z197">
428
+ <attribute name="uuid" type="string">0A9FC8FF-CCEF-439F-AA50-88F52F7C8E15</attribute>
429
+ <attribute name="order" type="int64">10</attribute>
430
+ <attribute name="name" type="string">post_sign1</attribute>
431
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
432
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z198"></relationship>
433
+ </object>
434
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z198">
435
+ <attribute name="value" type="string">[{"data":{"name":"slice","input":"[{\\"data\\":{\\"algorithm_name\\":\\"md5_bytes\\",\\"input\\":\\"[{\\\\\\"data\\\\\\":{\\\\\\"environmentVariable\\\\\\":\\\\\\"79085216-8474-42FD-B224-959C2BB34E84\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"com.luckymarmot.EnvironmentVariableDynamicValue\\\\\\"},\\\\\\",\\\\\\",{\\\\\\"data\\\\\\":{\\\\\\"algorithm_name\\\\\\":\\\\\\"bytes\\\\\\",\\\\\\"input\\\\\\":\\\\\\"[{\\\\\\\\\\\\\\"data\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"param\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"ffe\\\\\\\\\\\\\\"]},\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"com.luckymarmot.RequestURLParamDynamicValue\\\\\\\\\\\\\\"}]\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"com.seaify.algorithms\\\\\\"}]\\"},\\"identifier\\":\\"com.seaify.algorithms\\"}]","slice":"0,8"},"identifier":"com.seaify.utils"}]</attribute>
436
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
437
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z197"></relationship>
438
+ </object>
439
+ <object type="LMENVIRONMENTVARIABLE" id="z199">
440
+ <attribute name="uuid" type="string">1E2303CE-321C-4346-A163-86F0E30C6991</attribute>
441
+ <attribute name="order" type="int64">11</attribute>
442
+ <attribute name="name" type="string"></attribute>
443
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z145"></relationship>
444
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z200"></relationship>
445
+ </object>
446
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z200">
447
+ <attribute name="value" type="string"></attribute>
448
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z154"></relationship>
449
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z199"></relationship>
450
+ </object>
451
+ <object type="LMENVIRONMENTVARIABLE" id="z201">
452
+ <attribute name="uuid" type="string">D44B9442-5950-420A-8EB5-011C75F740D5</attribute>
453
+ <attribute name="order" type="int64">2</attribute>
454
+ <attribute name="name" type="string">encode_image_url</attribute>
455
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z167"></relationship>
456
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z202"></relationship>
457
+ </object>
458
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z202">
459
+ <attribute name="value" type="string">[{"data":{"input":[{"data":{"environmentVariable":"C682DDFA-41C7-471A-BF2A-0D52C7BDBC94"},"identifier":"com.luckymarmot.EnvironmentVariableDynamicValue"}],"mode":0,"charset":"utf-8"},"identifier":"com.luckymarmot.URLEncodingDynamicValue"}]</attribute>
460
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z168"></relationship>
461
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z201"></relationship>
462
+ </object>
463
+ <object type="LMENVIRONMENTVARIABLE" id="z203">
464
+ <attribute name="uuid" type="string">6FC18201-0A18-481A-8614-7311B605ED10</attribute>
465
+ <attribute name="order" type="int64">3</attribute>
466
+ <attribute name="name" type="string"></attribute>
467
+ <relationship name="domain" type="0/1" destination="LMENVIRONMENTDOMAIN" idrefs="z167"></relationship>
468
+ <relationship name="values" type="0/0" destination="LMENVIRONMENTVARIABLEVALUE" idrefs="z204"></relationship>
469
+ </object>
470
+ <object type="LMENVIRONMENTVARIABLEVALUE" id="z204">
471
+ <attribute name="value" type="string"></attribute>
472
+ <relationship name="environment" type="1/1" destination="LMENVIRONMENT" idrefs="z168"></relationship>
473
+ <relationship name="variable" type="1/1" destination="LMENVIRONMENTVARIABLE" idrefs="z203"></relationship>
474
+ </object>
475
+ </database>
@@ -0,0 +1,99 @@
1
+ require 'awesome_print'
2
+ require 'open-uri'
3
+ require 'httpclient'
4
+ require 'json'
5
+ require 'digest/md5'
6
+ require 'active_support/core_ext/hash'
7
+
8
+ module ConfirmationCode
9
+ module Service
10
+ module Damatu
11
+
12
+ extend self
13
+ include ConfirmationCode
14
+
15
+ HOST = 'http://api.dama2.com:7766'
16
+
17
+ UPLOAD_URL = File.join(HOST, 'app/d2Url?')
18
+ ACCOUNT_URL = File.join(HOST, 'app/d2Balance?')
19
+ RECOGNITION_ERROR_URL = File.join(HOST, 'app/d2ReportError?')
20
+
21
+ attr_reader :app_key, :app_id
22
+ @app_id = '41635'
23
+ @app_key = '0f80784a5ff20d38df3977e461e3d82a'
24
+
25
+
26
+ def set_extra_options(options)
27
+ @app_key = options[:app_key]
28
+ @app_id = options[:app_id]
29
+ end
30
+
31
+ def set_app_key(app_key)
32
+ @app_key = app_key
33
+ end
34
+
35
+ def client
36
+ @client ||= HTTPClient.new
37
+ end
38
+
39
+ def md5(value)
40
+ return Digest::MD5.hexdigest(value)
41
+ end
42
+
43
+ def get_pwd(user, pwd)
44
+ ap md5(user)
45
+ ap md5(pwd)
46
+ ap md5(md5(user) + md5(pwd))
47
+ return md5(@app_key + md5(md5(user) + md5(pwd)))
48
+ end
49
+
50
+ def sign(user, param = [])
51
+ encode_str = (@app_key.bytes + user.bytes + param).pack('c*')
52
+ return md5(encode_str)[0..7]
53
+ end
54
+
55
+ def upload(image_url, options = {})
56
+ upload_options = damatu_options(options)
57
+ upload_options['url'] = CGI::escape(image_url)
58
+ upload_options['sign'] = sign(upload_options['user'], image_url.bytes)
59
+ upload_options['type'] = 200 if upload_options['type'].nil?
60
+ response = client.get(UPLOAD_URL, upload_options)
61
+ result(JSON.parse(response.body))
62
+ end
63
+
64
+ def account(options = {})
65
+ account_options = damatu_options(options)
66
+ account_options['sign'] = sign(account_options['user'])
67
+ response = client.get(ACCOUNT_URL, account_options)
68
+ result(JSON.parse(response.body))
69
+ end
70
+
71
+ def recognition_error(ret_id, options = {})
72
+ recognition_options = damatu_options(options)
73
+ recognition_options['id'] = ret_id.to_s
74
+ recognition_options['sign'] = sign(recognition_options['user'], ret_id.to_s.bytes)
75
+ ap recognition_options
76
+ response = client.post(RECOGNITION_ERROR_URL, recognition_options)
77
+ ap response.body
78
+ result(JSON.parse(response.body))
79
+ end
80
+
81
+ def damatu_options(options)
82
+ damatu_options = {}
83
+ damatu_options['appID'] = @app_id
84
+ damatu_options['user'] = options[:user_name]
85
+ damatu_options['pwd'] = get_pwd(options[:user_name], options[:user_pw])
86
+ damatu_options['type'] = options[:type] unless options[:type].nil?
87
+ return damatu_options
88
+ end
89
+
90
+ def result(body)
91
+ {
92
+ "success" => body['ret'] == 0,
93
+ "data" => body.except('ret', 'sign', 'cookie')
94
+ }
95
+ end
96
+ end
97
+
98
+ end
99
+ end
@@ -18,29 +18,36 @@ module ConfirmationCode
18
18
  @client ||= HTTPClient.new
19
19
  end
20
20
 
21
+ def set_extra_options(options)
22
+
23
+ end
24
+
21
25
  def upload(image_url, options = {})
22
26
  File.open("code.jpeg", "wb") do |f|
23
27
  f.write open(image_url).read
24
28
  end
25
- options = default_options.merge options
29
+ options = lianzhong_options.merge options
26
30
  File.open('code.jpeg') do |file|
27
31
  options['upload'] = file
28
32
  response = client.post(UPLOAD_URL, options)
29
- JSON.parse(response.body)
33
+ result(JSON.parse(response.body))
30
34
  end
31
35
  end
32
36
 
33
37
  def account(options = {})
38
+ options = lianzhong_options.merge options
39
+ print options
34
40
  response = client.post(ACCOUNT_URL, options)
35
- JSON.parse(response.body)
41
+ result(JSON.parse(response.body))
36
42
  end
37
43
 
38
- def recognition_error(options = {})
44
+ def recognition_error(ret_id, options = {})
45
+ options['yzm_id'] = ret_id
39
46
  response = client.post(RECOGNITION_ERROR_URL, options)
40
- JSON.parse(response.body)
47
+ result(JSON.parse(response.body))
41
48
  end
42
49
 
43
- def default_options
50
+ def lianzhong_options
44
51
  {
45
52
  yzm_minlen: '4',
46
53
  yzm_maxlen: '6',
@@ -48,6 +55,13 @@ module ConfirmationCode
48
55
  zztool_token: '',
49
56
  }
50
57
  end
58
+
59
+ def result(body)
60
+ {
61
+ "success" => body['result'],
62
+ "data" => body['data']
63
+ }
64
+ end
51
65
  end
52
66
 
53
67
  end
@@ -1,3 +1,3 @@
1
1
  module ConfirmationCode
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -9,8 +9,9 @@ module ConfirmationCode
9
9
 
10
10
  attr_reader :username, :password
11
11
 
12
- def use(service, username, password)
12
+ def use(service, username, password, options = {})
13
13
  @service = ConfirmationCode::Service.const_get("#{service.to_s.capitalize}")
14
+ @service.set_extra_options(options)
14
15
  @username = username
15
16
  @password = password
16
17
  @service
@@ -25,10 +26,8 @@ module ConfirmationCode
25
26
  @service.account default_options if @service
26
27
  end
27
28
 
28
- def recognition_error(yzm_id, options = {})
29
- options['yzm_id'] = yzm_id
30
- options = default_options.merge options
31
- @service.recognition_error options if @service
29
+ def recognition_error(yzm_id)
30
+ @service.recognition_error yzm_id, default_options if @service
32
31
  end
33
32
 
34
33
  private
@@ -37,7 +36,6 @@ module ConfirmationCode
37
36
  {
38
37
  user_name: @username,
39
38
  user_pw: @password,
40
- source: 'ruby',
41
39
  }
42
40
  end
43
41
 
data/readme.md ADDED
@@ -0,0 +1,54 @@
1
+ # ConfirmationCode 验证码平台 Ruby 接口
2
+
3
+ ## 支持以下打码平台
4
+
5
+ * [联众](https://www.jsdati.com/)
6
+ * [打码兔](http://www.dama2.com/)
7
+
8
+ 还尝试过云打码, uusee, 挣码等,但都有一些问题,所以没有接入.
9
+
10
+ 云打码: 使用样例,验证码类型设置为了1-6位,识别出来少了1位.
11
+ uusee: api样例代码太复杂
12
+ 挣码: 给的http接口样例,域名都失效了
13
+
14
+ 尝试过的所有验证码平台, 官方网站+api都给人很不专业的感觉, 比云片网差太多了, 所以建议不要充值太多, 觉得也许容易跑路.
15
+
16
+ ## 安装
17
+
18
+ 加入以下代码到 Gemfile:
19
+
20
+ gem 'confirmation_code'
21
+
22
+ 然后执行:
23
+
24
+ $ bundle
25
+
26
+ 或者直接安装:
27
+
28
+ $ gem install confirmation_code
29
+
30
+ ## 使用
31
+
32
+ 代码风格上参照了china_sms
33
+ ```ruby
34
+ # 支持 :lianzhong, :damatu 验证码接口
35
+ ConfirmationCode.use :lianzhong, 'seaify', '67c86225'
36
+ result = ConfirmationCode.upload('http://captcha.qq.com/getimage')
37
+
38
+ # 第一个参数验证码平台类型, 目前支持:lianzhong, :damatu, 第二个参数是用户名, 第三个参数是密码
39
+ ConfirmationCode.use :lianzhong, 'seaify', '67c86225'
40
+
41
+ # 上传图片url到打码平台
42
+ result = ConfirmationCode.upload('http://captcha.qq.com/getimage')
43
+
44
+ # 上传本地图片到打码平台
45
+ 稍后更新
46
+
47
+ # 报告验证码识别结果有误
48
+ ap ConfirmationCode.recognition_error result['data']['id']
49
+ ```
50
+
51
+ ## 注意
52
+ 示例中的用户名,密码是我的账号, 只充值了1块.
53
+
54
+ 另外打码平台, 有软件分成的概念, 目前damatu默认使用的软件是我的一个软件, 后面更新时, 会提供接口, 供指定软件.
data/run.rb CHANGED
@@ -3,10 +3,17 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  require 'confirmation_code'
5
5
 
6
+ #result = ConfirmationCode.upload 'https://passport.58.com/validatecode?temp=123i1knr04o'
7
+
6
8
  ConfirmationCode.use :lianzhong, 'seaify', '67c86225'
7
9
  ap ConfirmationCode.account
8
- result = ConfirmationCode.upload 'https://passport.58.com/validatecode?temp=123i1knr04o'
10
+ result = ConfirmationCode.upload('http://captcha.qq.com/getimage')
9
11
  ap result
10
12
  ap ConfirmationCode.recognition_error result['data']['id']
11
- ap ConfirmationCode.account
13
+ return
12
14
 
15
+ ConfirmationCode.use :damatu, 'seaify', 'lsm123', {app_key: '0f80784a5ff20d38df3977e461e3d82a', app_id: '41635'}
16
+ ap ConfirmationCode.account
17
+ result = ConfirmationCode.upload('http://captcha.qq.com/getimage')
18
+ ap result
19
+ ap ConfirmationCode.recognition_error result['data']['id']
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: confirmation_code
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - seaify
@@ -10,6 +10,26 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2016-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.0.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '3.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 3.0.0
13
33
  - !ruby/object:Gem::Dependency
14
34
  name: httpclient
15
35
  requirement: !ruby/object:Gem::Requirement
@@ -49,9 +69,12 @@ files:
49
69
  - api.py
50
70
  - bin/confirmation_code
51
71
  - confirmation_code.gemspec
72
+ - damatu.paw
52
73
  - lib/confirmation_code.rb
74
+ - lib/confirmation_code/service/damatu.rb
53
75
  - lib/confirmation_code/service/lianzhong.rb
54
76
  - lib/confirmation_code/version.rb
77
+ - readme.md
55
78
  - run.rb
56
79
  homepage: https://github.com/seaify/confirmation_code
57
80
  licenses: