confirmation_code 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +5 -0
- data/confirmation_code.gemspec +1 -0
- data/damatu.paw +475 -0
- data/lib/confirmation_code/service/damatu.rb +99 -0
- data/lib/confirmation_code/service/lianzhong.rb +20 -6
- data/lib/confirmation_code/version.rb +1 -1
- data/lib/confirmation_code.rb +4 -6
- data/readme.md +54 -0
- data/run.rb +9 -2
- metadata +24 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 277868ac26cb91b3bc21850e3a4221294acbf91e
|
4
|
+
data.tar.gz: cc8c2d032231a41da55a26c7ed01e137c76fcc46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e58658fe790f6827afa2d2b2130ec0a631a2dfc42c038e8f48d0432c1950990cd519d348bfcb7cff03690a4eea62343c2ae3d5f9b4ac6f1081b10c6a4ba5fd34
|
7
|
+
data.tar.gz: 6404e4b19e56032f08a6fc6c11f252ffc7831858fc1cf7afb46e894a7cbe21db43a90e7e97ecb0465d24eada9f3ab123f9428b0655fc4afde63320d48af9f180
|
data/.gitignore
CHANGED
data/confirmation_code.gemspec
CHANGED
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 =
|
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
|
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
|
data/lib/confirmation_code.rb
CHANGED
@@ -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
|
29
|
-
|
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
|
10
|
+
result = ConfirmationCode.upload('http://captcha.qq.com/getimage')
|
9
11
|
ap result
|
10
12
|
ap ConfirmationCode.recognition_error result['data']['id']
|
11
|
-
|
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
|
+
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:
|