/** * Scrapes skill order from a League of Graphs page * @param {cheerio} $ - The cheerio object */ scrapeSkillOrder($) { return $('h3:contains(Skill Orders)').parent().find('.championSpellLetter').toArray().map(x => i18n.__('key-' + $(x).text().trim())).join(' => '); }
$('[tabid="01"] input[type="hidden"]').toArray().map(k => { if ($(k).attr('name')) { form[$(k).attr('name')] = $(k).attr('value') } else if ($(k).attr('id')) { form[$(k).attr('id')] = $(k).attr('value') } })
describe('Article Page',function () { it('Verify page content',function (done) { request.get('/article') .expect(200) .expect(function (res) { var $ = cheerio.load(res.text); if ($("#article tbody tr td").eq(0).text().length < 1) { throw new Error("article title don't exist."); } if (!($("#article tbody tr").toArray().length == 20)) throw new Error("There is not 20 articles."); }) .end(done); }); });
/** * Scrapes summoner spells from a League of Graphs page * @param {cheerio} $ - The cheerio object */ scrapeSummonerSpells($) { if (Mana.gameClient.locale !== 'en_GB' && Mana.gameClient.locale !== 'en_US') { console.log(2, `[ProviderHandler] [League of Graphs] Summoner spells are not supported because you're not using the english language in League`); return []; } return $('h3:contains(Summoner Spells)').parent().find('img').toArray().filter(x => Object.values(Mana.gameClient.summonerSpells).find(z => z.name === x.attribs.alt)).map(x => Object.values(Mana.gameClient.summonerSpells).find(z => z.name === x.attribs.alt).id); }
/** * Scrapes perks from a League of Graphs page * @param {cheerio} $ - The cheerio object */ scrapePerks($, role) { let page = { suffixName: `(${UI.stylize(role)})`, selectedPerkIds: [] }; $('.perksTableOverview').find('tr').each(function(i, elem) { let images = $(this).find('img[src^="//cdn.leagueofgraphs.com/img/perks/"]').toArray().filter(x => $(x.parentNode).css('opacity') != 0.2); if (i === 0 || i === 5) page[i === 0 ? 'primaryStyleId' : 'subStyleId'] = images[0].attribs.src.slice(-8, -4); else if (images.length > 0) page.selectedPerkIds.push(images[0].attribs.src.slice(-8, -4)); }); return [page]; }
/** * Get URL-referenced images in a GMail message * @param message The GMail message to extract images from * @returns A list of image URLs */ const _getImageUrls = (message) => { const unpack = (x) => { return Buffer.from(x.body.data || '', 'base64').toString(); }; // Get message's HTML let rawHtml = message.payload.parts.map( p => unpack(p) ).join(''); rawHtml += unpack(message.payload); // Return image URLs return cheerio.load(rawHtml)('img') .toArray() .map(image => image.attribs.src); }
$('#table4 tr').eq(1).find('td').toArray().map(td => { return $(td).text().trim().replace(/&[0-9A-Za-z];/g, '') })
$('#txtxq option').toArray().map(k => $(k)) .find(k => re.test(k.text()))
Promise.all($('#table2 tr').toArray().slice(1).map(async tr => { let [semester, cid, courseName, credit, score, scoreType, courseType] = $(tr).find('td').toArray().slice(1).map(td => { return $(td).text().trim().replace(/&[0-9A-Za-z];/g, '') }) // 折合百分制成绩 let equivalentScore = calculateEquivalentScore(score) // 计算出国成绩 let foreignScore = calculateEquivalentForeignScore(score) === 0 ? score : calculateEquivalentForeignScore(score) // 是否通过 // 获得学分的条件是首次通过,这里先计算是否通过,留给最后一起计算是否首次通过 let isPassed = equivalentScore >= 60 // 学分解析为浮点数 credit = parseFloat(credit) // isFirstPassed 和 isHighestPassed 留给后面计算 return { cid, semester, courseName, courseType, credit, score, foreignScore, equivalentScore, isPassed, isFirstPassed: false, isHighestPassed: false, scoreType } }))
describe('User Page',function () { it('Get page content',function (done) { request.get('/user') .expect(200) .expect(function (res) { var $ = cheerio.load(res.text); if (!($("#user tbody tr td").eq(2).text() > 0)) { throw new Error("The follower is smaller than 0 ????"); } if (!($("#user tbody tr").toArray().length == 20)) { throw new Error("There is not 20 users."); } }) .end(done); }); });
$('pgterms\\:agent pgterms\\:name') .toArray().map(elem => $(elem).text())
$('[rdf\\:resource$="/LCSH"]') .parent().find('rdf\\:value') .toArray().map(elem => $(elem).text())
$('input[name="__VIEWSTATE"]').toArray().map(k => $(k)).map(k => { data[k.attr('name')] = k.attr('value') })
describe('Collection Page',function () { it('Verify page content',function (done) { request.get('/collections') .expect(200) .expect(function (res) { var $ = cheerio.load(res.text); if ($("#collections tbody tr td").eq(0).text().length < 1) { throw new Error("Collections title don't exist."); } if (!($("#collections tbody tr").toArray().length == 20)) throw new Error("There is not 20 collections."); }) .end(done); }); });
$('input[name="__VIEWSTATE"]').toArray().map(k => $(k)).map(k => { data[k.attr('name')] = k.attr('value') })