hiphople-news
Version:
hiphople news crawler
143 lines (118 loc) • 4.87 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var _regeneratorRuntime = require('@babel/runtime/regenerator');
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
var cheerio = require('cheerio');
var constants = require('./lib/constants.js');
var crawl = require('./lib/crawl.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
var cheerio__default = /*#__PURE__*/_interopDefaultLegacy(cheerio);
var getURL = function getURL(type) {
var url = '';
switch (type) {
case 'world':
url = constants.HIPHOPLE_NEWS_WORLD_URL;
break;
case 'korea':
url = constants.HIPHOPLE_NEWS_KOREA_URL;
break;
}
return url;
};
var getLatestHiphopleNews = /*#__PURE__*/function () {
var _ref = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(type) {
var result;
return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
_context.next = 3;
return getHiphopleNews(type);
case 3:
result = _context.sent;
if (result) {
_context.next = 6;
break;
}
return _context.abrupt("return", null);
case 6:
if (!(result.length > 0)) {
_context.next = 8;
break;
}
return _context.abrupt("return", result[0]);
case 8:
return _context.abrupt("return", null);
case 11:
_context.prev = 11;
_context.t0 = _context["catch"](0);
return _context.abrupt("return", null);
case 14:
case "end":
return _context.stop();
}
}
}, _callee, null, [[0, 11]]);
}));
return function getLatestHiphopleNews(_x) {
return _ref.apply(this, arguments);
};
}();
var getHiphopleNews = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(type) {
var url, body, $, newsList, result;
return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.prev = 0;
url = getURL(type);
_context2.next = 4;
return crawl.crawl(url);
case 4:
body = _context2.sent;
$ = cheerio__default['default'].load(body, {
xmlMode: true
});
newsList = $('.clear.ab-webzine').find('.wz-item');
result = newsList.map(function (_, element) {
var _$$find$attr;
var inner = $(element).find('.wz-item-inner.clear.thumbnail-left');
var href = (_$$find$attr = $(element).find('.ab-link').attr('href')) === null || _$$find$attr === void 0 ? void 0 : _$$find$attr.toString();
var thumbnailWrapper = inner.find('.wz-item-thumbnail').find('.thumbwrap');
var contentsWrapper = inner.find('.wz-item-content');
var titleHeader = contentsWrapper.find('.wz-item-header');
var title = titleHeader.find('a').find('span.title').text();
var metaWrapper = inner.find('.wz-item-meta.oloi');
var date = metaWrapper.find('span.date').text();
var view = metaWrapper.find('span.view').children();
return {
id: href === null || href === void 0 ? void 0 : href.split('/')[(href === null || href === void 0 ? void 0 : href.split('/').length) - 1],
href: "".concat(url).concat(href),
backgroundImage: thumbnailWrapper.children().css('background-image'),
title: title,
date: date,
view: $(view[1]).text()
};
}).toArray();
return _context2.abrupt("return", result);
case 11:
_context2.prev = 11;
_context2.t0 = _context2["catch"](0);
return _context2.abrupt("return", null);
case 14:
case "end":
return _context2.stop();
}
}
}, _callee2, null, [[0, 11]]);
}));
return function getHiphopleNews(_x2) {
return _ref2.apply(this, arguments);
};
}();
exports.getHiphopleNews = getHiphopleNews;
exports.getLatestHiphopleNews = getLatestHiphopleNews;