Skip to content

Instantly share code, notes, and snippets.

@rominirani
Created October 21, 2018 14:35
Show Gist options
  • Save rominirani/01f3e8746d9f0919e6ec6e0a2ce62045 to your computer and use it in GitHub Desktop.
Save rominirani/01f3e8746d9f0919e6ec6e0a2ce62045 to your computer and use it in GitHub Desktop.
Love Is Comic Google Cloud Function
let LoveIsComic_HTMLTemplate = (
url
) => {
return `
<!DOCTYPE html>
<html>
<head>
<title>Love Is Comic</title>
</head>
<body>
<img src="${url}"></img>
</body>
</html>`;
}
/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
exports.sendComic = (req, res) => {
const puppeteer = require('puppeteer');
function run () {
return new Promise(async (resolve, reject) => {
try {
const browser = await puppeteer.launch({args: ['--no-sandbox']});
const page = await browser.newPage();
await page.goto("https://loveiscomix.com/random");
let imageurl = await page.evaluate(() => {
let item = document.querySelector('#primary > main > article > div > div.cellcomic > a > img');
return 'https://loveiscomix.com/' + item.getAttribute('src');
})
browser.close();
return resolve(imageurl);
} catch (e) {
return reject(e);
}
})
}
run()
.then(url => {
console.log("Random LoveIs Comic from the following url: " + url);
res.set('Content-Type', 'text/html');
res.status(200).send(LoveIsComic_HTMLTemplate(url));
})
.catch(err => {
console.error(err);
res.status(500).send("An Error occured" + err);
})
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment