Facebook-Events-iCal-Converter/lib/crawler.js

48 lines
1.1 KiB
JavaScript
Raw Normal View History

const request = require('request')
const { checkURLFormat, checkNumberURLParameter } = require('./utils')
2019-10-15 09:22:08 +02:00
const useMobileURL = (originalURL) => {
const urlWithProtocol = originalURL.includes('http') ?
originalURL :
`https://${originalURL}`
const url = new URL(urlWithProtocol)
2019-10-15 09:22:08 +02:00
return `${url.protocol}//mobile.facebook.com${url.port}${url.pathname}${url.hash}`
}
2019-10-15 09:22:08 +02:00
const createURL = (originalURL) => {
if (checkURLFormat(originalURL)) {
return originalURL
}
if (checkNumberURLParameter(originalURL)) {
return `https://facebook.com/events/${originalURL}`
}
return ''
}
const crawl = async (originalURL) => {
const url = useMobileURL(createURL(originalURL))
return new Promise((resolve, reject) => {
console.info(`Started request for URL: ${url}`)
request({
url,
headers: {
'Accept-Language': 'en-US, en',
'User-Agent': 'request',
},
}, (err, res, body) => {
if (err) {
reject(err)
return
}
2019-10-16 08:59:47 +02:00
console.info(`Finished request for URL: ${url}`)
resolve(body)
})
})
2019-10-15 09:22:08 +02:00
}
module.exports = crawl