Change submodule to directory

This commit is contained in:
Glenn Y. Rolland 2022-08-16 21:20:07 +02:00
parent e20f32d1c8
commit e7cc3c947f
4 changed files with 230 additions and 1 deletions

@ -1 +0,0 @@
Subproject commit 4c8d5d5e2b5be46aeeb56f96fbc47b000b81805c

View File

@ -0,0 +1,136 @@
// ==UserScript==
// @name Facebook Ticker Filter
// @namespace com.facebook.tickerfilter
// @description Add a fild for filtering ticker events
// @include https://www.facebook.com/*
// @include http://www.facebook.com/*
// @include https://*/facebook.com/*
// @include http://*.facebook.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js
// @version 1
// @grant none
// ==/UserScript==
//
/*jslint browser:true*/
(function () {
var downcount = 0;
var targetIDs = [
'cecile.tostivint.9', // target
'camillebriant', // target
'lise.duchatelet', // target
'BlandineSdAsterya', // target
'perrine.bouveret.9', // target relative (cecile.tostivint.9)
'peeters7', // interest
'c.grusondaniel', // interest
'gayane.adourian', // interest
'amelie.valentin.75', // relative (cecile.tostivint.9)
'jessehaug', // relative (cecile.tostivint.9)
'sanjarbek.khodjaev', // relative (cecile.tostivint.9)
'morgane\.parma', // relative (cecile.tostivint.9)
];
var targetRE = new RegExp('/(' + targetIDs.join('|') + ')');
//var targetRE = /\/(cecile\.tostivint\.9)/;
var scrollTicker;
scrollTicker = function () {
var ticker;
var evt;
var scroll;
//ticker = document.getElementById('pagelet_ticker');
ticker = document.getElementsByClassName('ticker_container').item(0).children.item(0).children.item(0);
console.log(ticker);
ticker.style.background = 'red';
console.log('begin com.facebook.scrollTicker');
downcount += 1;
downcount = downcount % 100;
scroll = 20;
if (downcount === 0) {
scroll *= -1;
}
evt = document.createEvent('UIEvents');
// creates a scroll event that bubbles, can be cancelled,
// and with its view and detail property initialized to window and 1,
// respectively
evt.initUIEvent('scroll', true, true, window, scroll);
ticker.dispatchEvent(evt);
console.log('debug1 com.facebook.scrollTicker');
/*
evt = document.createEvent('MouseEvents');
evt.initMouseEvent('DOMMouseScroll', // in DOMString typeArg,
true, // in boolean canBubbleArg,
true, // in boolean cancelableArg,
window, // in views::AbstractView viewArg,
10, // in long detailArg,
0, // in long screenXArg,
0, // in long screenYArg,
0, // in long clientXArg,
0, // in long clientYArg,
0, // in boolean ctrlKeyArg,
0, // in boolean altKeyArg,
0, // in boolean shiftKeyArg,
0, // in boolean metaKeyArg,
0, // in unsigned short buttonArg,
null
// in EventTarget relatedTargetArg
);
ticker.dispatchEvent(evt);
console.log('debug2 com.facebook.scrollTicker');
*/
/*
evt = document.createEvent('MouseEvents');
evt.initEvent('mousewheel', true, true);
evt.wheelDelta = scroll;
ticker.dispatchEvent(evt);
*/
console.log('end com.facebook.scrollTicker');
};
function cleanStory(story, protection) {
var hidden = 0;
var storyLink;
storyLink = story.children.item(0);
if (targetRE.test(storyLink.href)) {
console.log(storyLink.href);
hidden = 1;
} else if (story.style.display !== 'none') {
// we must decide either to hide or to count
if (!protection) {
story.style.display = 'none';
} else {
hidden = 1;
}
}
return hidden;
}
// magic filtering
function cleanTicker() {
//var ticker = document.getElementById('pagelet_ticker');
var tickerStories;
var story_idx;
var story;
var visibleCount;
var tickerLimit;
tickerLimit = 11;
visibleCount = 0;
console.log('begin com.facebook.cleanticker');
tickerStories = document.getElementsByClassName('fbFeedTickerStory');
for (story_idx = tickerStories.length - 1; story_idx >= 0; story_idx--) {
story = tickerStories.item(story_idx); //.children[0];
visibleCount += cleanStory(story, (visibleCount >= tickerLimit));
}
//for (story_idx = 0 ; story_idx < tickerStories.length; story_idx++) {
//story = tickerStories.item(story_idx); //.children[0];
//
//visibleCount += cleanStory(story, (visibleCount >= tickerLimit));
//}
//console.log('end com.facebook.tickerfilter.cleanTicker');
// send scrolldown events to ticker...
console.log('end com.facebook.cleanticker');
}
window.setInterval(cleanTicker, 1000);
window.setInterval(scrollTicker, 300);
}());

View File

@ -0,0 +1,4 @@
{
"email": "xxx",
"pass": "yyy",
}

View File

@ -0,0 +1,90 @@
/*jslint node:true,browser:true*/
var fs = require('fs');
var cookieFile = 'cookies.json';
var credentialFile = 'credential.json';
var casper = require('casper').create({
pageSettings: {
loadImages: false,//The script is much faster when this field is set to false
loadPlugins: false,
userAgent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'
}
});
function loadCredentials() {
var credentials;
var txt;
console.log("loadCredential");
if (fs.exists(credentialFile)) {
txt = fs.read(credentialFile);
credentials = JSON.parse(txt);
}
console.log("/loadCredential");
return credentials;
}
function readCookies(page) {
console.log("readCookies");
var cookies = JSON.parse(fs.read(cookieFile));
page.cookies = cookies;
console.log(cookies);
}
function saveCookies(page) {
console.log("saveCookies");
var cookies = JSON.stringify(page.cookies);
console.log(cookies);
fs.write(cookieFile, cookies, 'w');
}
//First step is to open Facebook
casper.start().thenOpen("https://facebook.com", function() {
readCookies(this.page);
console.log("Facebook website opened");
saveCookies(this.page);
});
//Now we have to populate username and password, and submit the form
casper.then(function(){
var credentials;
credentials = loadCredentials();
readCookies(this.page);
console.log("Login using username " + credentials.email + " and password");
this.evaluate(function(credentials){
document.getElementById("email").value = credentials.email;
document.getElementById("pass").value = credentials.pass;
document.getElementById("loginbutton").children[0].click();
}, credentials);
saveCookies(this.page);
});
//Wait to be redirected to the Home page, and then make a screenshot
casper.then(function(){
console.log("Make a screenshot and save it as AfterLogin.png");
this.wait(6000);//Wait a bit so page loads (there are a lot of ajax calls and that is why we are waiting 6 seconds)
this.capture('AfterLogin.png');
});
/*
//Get all images greater than 100x100 pixels
casper.then(function(){
var images = this.evaluate(function(){
var facebookImages = document.getElementsByTagName('img');
var allSrc = [];
var i;
for(i = 0; i < facebookImages.length; i++) {
if(facebookImages[i].height >= 100 && facebookImages[i].width >= 100){
allSrc.push(facebookImages[i].src);
}
}
return JSON.stringify(allSrc);
});
console.log(images);
});
*/
casper.run();