Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var colorizer = require('colorizer').create('Colorizer');
- var casper = require('casper').create({
- pageSettings: {
- loadImages: false,
- loadPlugins: false
- }
- });
- var xenforoUrl = ''; //fill with your own
- var user = {
- 'name': '', //fill with your own
- 'password': '' //fill with your own
- };
- var threadUrl = ''; //fill with your own
- casper.start(xenforoUrl, function() {
- console.log(colorizer.format(xenforoUrl,
- {bg: 'black', fg: 'white', bold: true}
- ));
- });
- casper.on('remote.message', function(msg) {
- var ignoreRegExs = [
- /^XenForo/,
- /^Unsafe JavaScript attempt to access frame/,
- /^FB.getLoginStatus/,
- /^flash url/,
- /^Attachments/,
- /^PageNav/
- ];
- var ignore = false;
- this.each(ignoreRegExs, function(self, RegEx) {
- if(RegEx.test(msg)){
- ignore = true;
- }
- });
- if (!ignore) {
- this.echo('[remote] ' + msg);
- }
- });
- casper.waitFor(function check() {
- return this.evaluate(function() {
- return $('label[for=LoginControl]').click();
- });
- }, function then(){
- this.evaluate(function(user) {
- $('input#LoginControl').val(user.name);
- $('input#ctrl_password').val(user.password);
- $('form#login').submit();
- }, user);
- });
- casper.then(function(){
- var currentUrl = this.getCurrentUrl();
- if (/\/login$/.test(currentUrl)){
- this.evaluate(function() {
- console.error( $('.errorPanel').text().trim() );
- });
- }
- else {
- this.echo(' login succesful ', 'INFO_BAR')
- }
- });
- casper.thenOpen(threadUrl);
- var pagesArr = [];
- var currentPage = 1;
- casper.then(function() {
- var pages;
- pages = this.evaluate(function() {
- return $('div.PageNav').attr('data-last');
- });
- if (pages == null){
- pagesArr.push(1);
- }
- else{
- for (var i = 1; i<=pages; i++){
- pagesArr.push(i);
- }
- }
- });
- casper.then(function(){
- this.echo(
- colorizer.colorize(' number of pages ', 'GREEN_BAR')
- +
- colorizer.format(' : ' + pagesArr.length,
- {fg: 'green', bold: true}
- )
- );
- });
- var likeAllPostsInPage = function(){
- var likesArr = [];
- casper.then(function(){
- var likesN = this.evaluate(function(){
- return $('span.LikeLabel').length;
- });
- for (var i = 1; i<=likesN; i++){
- likesArr.push(i);
- }
- this.each(likesArr, function(self, like) {
- self.waitFor(function check() {
- return this.evaluate(function(like){
- console.log('liked: ' + like); //this.echo kills it!
- return $('span.LikeLabel').eq(like-1).click();
- }, like)
- }, function then(){
- }, function timeout(){
- this.echo('liking number: ' + like + ' timed out', 'WARNING');
- },
- 5000);
- });
- });
- };
- casper.then(function(){
- casper.each(pagesArr, function(self, page) {
- //console.log(page);
- self.waitFor(function check() {
- return 1;
- }, function then() {
- this.echo('page: ' + page, 'INFO');
- self.open(threadUrl+'page-'+page);
- likeAllPostsInPage();
- //go to next page
- });
- });
- });
- casper.then(function(){
- this.capture('casper.png');
- });
- casper.run(function(){
- this.echo(' ' +
- colorizer.format(' Done. ',
- {fg: 'white', bold: true}
- )).exit();
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement