UNPKG

10.1 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = exports.WebshareIoProvider = void 0;
9
10var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
14var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
16var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
18var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
20var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
22var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
24var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
26var _err = _interopRequireDefault(require("@lskjs/err"));
27
28var _axios = _interopRequireDefault(require("axios"));
29
30var _ProxyProvider2 = require("../ProxyProvider");
31
32function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
33
34function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
36/**
37 * API docs: https://proxy.webshare.io/docs
38 */
39var WebshareIoProvider = /*#__PURE__*/function (_ProxyProvider) {
40 (0, _inherits2["default"])(WebshareIoProvider, _ProxyProvider);
41
42 var _super = _createSuper(WebshareIoProvider);
43
44 function WebshareIoProvider() {
45 var _this;
46
47 (0, _classCallCheck2["default"])(this, WebshareIoProvider);
48
49 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
50 args[_key] = arguments[_key];
51 }
52
53 _this = _super.call.apply(_super, [this].concat(args));
54 _this.provider = 'webshareio';
55 _this.baseURL = 'https://proxy.webshare.io/api';
56 return _this;
57 }
58
59 (0, _createClass2["default"])(WebshareIoProvider, [{
60 key: "createClient",
61 value: function () {
62 var _createClient = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
63 return _regenerator["default"].wrap(function _callee$(_context) {
64 while (1) {
65 switch (_context.prev = _context.next) {
66 case 0:
67 if (this.config.apiKey) {
68 _context.next = 2;
69 break;
70 }
71
72 throw new _err["default"]('!config.apiKey');
73
74 case 2:
75 return _context.abrupt("return", _axios["default"].create({
76 baseURL: this.baseURL,
77 headers: {
78 Authorization: "Token ".concat(this.config.apiKey)
79 }
80 }));
81
82 case 3:
83 case "end":
84 return _context.stop();
85 }
86 }
87 }, _callee, this);
88 }));
89
90 function createClient() {
91 return _createClient.apply(this, arguments);
92 }
93
94 return createClient;
95 }()
96 }, {
97 key: "checkErr",
98 value: function () {
99 var _checkErr = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(res) {
100 return _regenerator["default"].wrap(function _callee2$(_context2) {
101 while (1) {
102 switch (_context2.prev = _context2.next) {
103 case 0:
104 case "end":
105 return _context2.stop();
106 }
107 }
108 }, _callee2);
109 }));
110
111 function checkErr(_x) {
112 return _checkErr.apply(this, arguments);
113 }
114
115 return checkErr;
116 }()
117 }, {
118 key: "fetchListRaw",
119 value: function () {
120 var _fetchListRaw = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
121 var params,
122 res,
123 _args3 = arguments;
124 return _regenerator["default"].wrap(function _callee3$(_context3) {
125 while (1) {
126 switch (_context3.prev = _context3.next) {
127 case 0:
128 params = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};
129 _context3.next = 3;
130 return this.client.get('/proxy/list', {
131 params: params
132 });
133
134 case 3:
135 res = _context3.sent;
136 _context3.next = 6;
137 return this.checkErr(res);
138
139 case 6:
140 return _context3.abrupt("return", res.data);
141
142 case 7:
143 case "end":
144 return _context3.stop();
145 }
146 }
147 }, _callee3, this);
148 }));
149
150 function fetchListRaw() {
151 return _fetchListRaw.apply(this, arguments);
152 }
153
154 return fetchListRaw;
155 }()
156 }, {
157 key: "fetchList",
158 value: function () {
159 var _fetchList = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
160 var _data0$results,
161 _this2 = this;
162
163 var proxies, data0, maxCount, pageCount, maxPage, page, data, list;
164 return _regenerator["default"].wrap(function _callee4$(_context4) {
165 while (1) {
166 switch (_context4.prev = _context4.next) {
167 case 0:
168 proxies = [];
169 _context4.next = 3;
170 return this.fetchListRaw();
171
172 case 3:
173 data0 = _context4.sent;
174 maxCount = data0 === null || data0 === void 0 ? void 0 : data0.count;
175 pageCount = (data0 === null || data0 === void 0 ? void 0 : (_data0$results = data0.results) === null || _data0$results === void 0 ? void 0 : _data0$results.length) || 1;
176 maxPage = maxCount / pageCount;
177 page = 1;
178
179 case 8:
180 if (!(page <= maxPage)) {
181 _context4.next = 17;
182 break;
183 }
184
185 _context4.next = 11;
186 return this.fetchListRaw({
187 page: page
188 });
189
190 case 11:
191 data = _context4.sent;
192 list = Object.values(data.results);
193 proxies = [].concat((0, _toConsumableArray2["default"])(proxies), (0, _toConsumableArray2["default"])(list.filter(function (item) {
194 return item.valid;
195 }).map(function (item) {
196 return _this2.createProxy({
197 host: item.proxy_address,
198 port: +item.ports.http,
199 user: item.username,
200 password: item.password,
201 type: 'http',
202 ip: item.proxy_address,
203 tags: {
204 country: String(item.country_code).toLowerCase(),
205 ipv: 4,
206 comment: item.city_name ? String(item.city_name) : undefined
207 }
208 });
209 })));
210
211 case 14:
212 page += 1;
213 _context4.next = 8;
214 break;
215
216 case 17:
217 return _context4.abrupt("return", proxies);
218
219 case 18:
220 case "end":
221 return _context4.stop();
222 }
223 }
224 }, _callee4, this);
225 }));
226
227 function fetchList() {
228 return _fetchList.apply(this, arguments);
229 }
230
231 return fetchList;
232 }()
233 }, {
234 key: "fetchOptions",
235 value: function () {
236 var _fetchOptions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
237 return _regenerator["default"].wrap(function _callee5$(_context5) {
238 while (1) {
239 switch (_context5.prev = _context5.next) {
240 case 0:
241 return _context5.abrupt("return", {});
242
243 case 1:
244 case "end":
245 return _context5.stop();
246 }
247 }
248 }, _callee5);
249 }));
250
251 function fetchOptions() {
252 return _fetchOptions.apply(this, arguments);
253 }
254
255 return fetchOptions;
256 }()
257 }, {
258 key: "getBuyListProps",
259 value: function getBuyListProps() {
260 var countries = [];
261 return countries.map(function (country) {
262 return {
263 country: country
264 };
265 });
266 }
267 }, {
268 key: "buy",
269 value: function () {
270 var _buy = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(_ref) {
271 var country;
272 return _regenerator["default"].wrap(function _callee6$(_context6) {
273 while (1) {
274 switch (_context6.prev = _context6.next) {
275 case 0:
276 country = _ref.country;
277 return _context6.abrupt("return", []);
278
279 case 2:
280 case "end":
281 return _context6.stop();
282 }
283 }
284 }, _callee6);
285 }));
286
287 function buy(_x2) {
288 return _buy.apply(this, arguments);
289 }
290
291 return buy;
292 }()
293 }]);
294 return WebshareIoProvider;
295}(_ProxyProvider2.ProxyProvider);
296
297exports.WebshareIoProvider = WebshareIoProvider;
298var _default = WebshareIoProvider;
299exports["default"] = _default;
300//# sourceMappingURL=WebshareIoProvider.js.map
\No newline at end of file