@aidarkezio/main-func
Version:
📦 It has my funcs
30 lines • 1.17 kB
JavaScript
import got from 'got';
import cheerio from 'cheerio';
import { ScraperError } from '../utils.js';
import { ChordArgsSchema, ChordSchema } from './types.js';
export async function chord(query) {
ChordArgsSchema.parse(arguments);
const search = await got(`https://www.gitagram.com/?s=${encodeURIComponent(query).replace(/%20/g, '+')}`);
const $ = cheerio.load(search.body);
const $url = $('table.table > tbody > tr').eq(0).find('td').eq(0).find('a').eq(0);
const url = $url.attr('href');
if (!url) {
throw new ScraperError(`No results for ${query}\n\n${search.body}`);
}
const song = await got(url);
const $song = cheerio.load(song.body);
const $hcontent = $song('div.hcontent');
const artist = $hcontent.find('div > a > span.subtitle').text().trim();
const artistUrl = $hcontent.find('div > a').attr('href');
const title = $hcontent.find('h1.title').text().trim();
const chord = $song('div.content > pre').text().trim();
const res = {
url: song.url,
artist,
artistUrl,
title,
chord
};
return ChordSchema.parse(res);
}
//# sourceMappingURL=chord.js.map