steemkr
Version:
스팀잇 기반 CLI 툴 : CLI(Command Line Interface) Tool for steemit.
40 lines (33 loc) • 1.47 kB
JavaScript
const {removeSpace2} = require('../../util/wstring');
const {getUrlValues} = require('../../util/wstring');
let fn = {};
/*
* 파서 - infoq.com/news, /minibooks, /presentations
* @param $ cheerio
* @param _url 링크 주소
* @param tags 기본 태그
* @param bodyCut 본문내용 cut
* @param uniqueCut 고유주소 생성용 cut
* @return 파싱된 JSON 개체정보
*/
module.exports = ($, _url, tags, bodyCut, uniqueCut)=>{
let image = $(`meta[property='og:image']`).attr('content'); // open graph
let url = _url.split('?')[0];
let unique = getUrlValues(url, true).substr(0,uniqueCut);
let title;
let body;
// 앞에서 필터링된 경로 정보만 사용할 수 있음
if(url.indexOf('/news')>0){
title = `[NEWS] `+$(`meta[property='og:title']`).attr('content'); // open graph
body = $("div.text_info").text().substr(0,bodyCut).trim();
}else if(url.indexOf('/minibooks')>0){
title = `[EBOOK] `+removeSpace2($('#content').find('h1.general').text()).trim(); // open graph
body = $("div.ebook").find('div.txt').text().substr(0,bodyCut).trim();
}else if(url.indexOf('/presentations')>0){
title = `[PT] `+$(`meta[property='og:title']`).attr('content'); // open graph
body = $(`meta[property='og:description']`).attr('content'); // open graph
}
tags = removeSpace2(tags).split(','); // string => array
tags.push('infoq');
return {title:title, body:body, url:url, tags:tags, image:image, unique:unique?unique:'err'};
}