Skip to content

Instantly share code, notes, and snippets.

@ar-android
Last active October 23, 2017 07:49
Show Gist options
  • Save ar-android/def844d7eca4beb6b44e64d3a12319e2 to your computer and use it in GitHub Desktop.
Save ar-android/def844d7eca4beb6b44e64d3a12319e2 to your computer and use it in GitHub Desktop.
// Contoh object promise untuk scrapping sebuah website
recentMovie: async function(page){
return new Promise((res, err) => {
var url = '/'
if (page) {
url = '/page/' + page
}
scraper.scrape(url, function(err, $) {
if (err) {
console.log(err);
return;
}
var data = []
$('div.moviefilm').each(function(i, el) {
var title = $(el).find('img').attr('alt')
var img = $(el).find('img').attr('src')
var rate = $(el).find('div.imdb > p').text().split(" ")
var url = $(el).find('a').eq(1).attr('href')
url = url.replace("https://sitess.com/nonton/", "");
url = url.replace("-movietube", "")
data[i] = {
title: title,
picture: img,
rate:rate[2],
url:url
}
});
var page = []
String.prototype.isNumber = function(){return /^\d+$/.test(this);}
$('div.wp-pagenavi > a').each((i, el) => {
var text = $(el).text()
if (text.isNumber()) {
var text = {
text: $(el).text(),
link: $(el).attr('href')
}
page.push(text)
}
})
var isSucces = data.length != 0
var result = {
isSucces:isSucces,
data: data,
page: page
}
res(result)
})
})
}
}
// Contoh eksekusi dari object promise dengan async await.
home: async(ctx, next) => {
var page = ctx.query.page;
var data = await movie.recentMovie(page)
await ctx.render('index', {
data
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment