diff options
Diffstat (limited to 'index.ts')
-rw-r--r-- | index.ts | 25 |
1 files changed, 24 insertions, 1 deletions
@@ -1,4 +1,7 @@ import puppeteer from 'puppeteer'; +import cheerio from 'cheerio'; + +import { OptifineVersion } from './types'; var browser = await puppeteer.launch(); var page = await browser.newPage(); @@ -6,7 +9,27 @@ var page = await browser.newPage(); await page.goto("https://optifine.net/downloads", { waitUntil: 'domcontentloaded' }); var html = await page.content(); -console.log(html); await browser.close(); +var $ = cheerio.load(html); + +var versions: OptifineVersion[] = []; +$("td.content span.downloads .downloadLine").each((i, el) => { + var downloadLinkPre = $(el).find(".colMirror a").attr("href"); + var version: OptifineVersion = { + name: $(el).find(".colFile").text(), + minecraft: downloadLinkPre.match(/1\.\d{1,2}(\.\d{1,2})?/)[0], + forge: $(el).find(".colForge").text().toLowerCase().replace("forge", "").trim(), + date: $(el).find(".colDate").text(), + download: { + link: downloadLinkPre, + token: "", + filename: downloadLinkPre.match(/OptiFine.+?\.jar/).toString() + } + } + versions.push(version); +}); + +console.log(versions); + |