Skip to content

Instantly share code, notes, and snippets.

@baptx
baptx / facebook_display_load_all.js
Last active May 13, 2021
Display and load all Facebook posts / comments
View facebook_display_load_all.js
/* This script will allow you to use the Ctrl+F search function of your web browser to search text in all posts / comments
* (without sending your search requests to Facebook and the HTML page can be saved with Ctrl+S as a backup for offline use).
* It is also useful if you want to save the content of a Facebook group that requires you to renew a paid membership to remain a member
* (video / audio / image and other files should be downloaded separately) */
// replace with your language translation if needed (case-sensitive)
var moreCommentText = "^View 1 more comment$"; // if the text is only "comment", script will click on unintended links containing the word "comment" in the page title
var moreCommentsText = "^View [0-9]+ more comments$";
var previousCommentsText = "^View previous comments$";
var moreReplyText = "^View 1 more reply$";
@baptx
baptx / twitter_archive_to_csv.htm
Last active Aug 4, 2020
Twitter archive to CSV
View twitter_archive_to_csv.htm
<script>
// copy tweets variable from tweets.js file of your Twitter archive
var tweets = [];
// Open this HTML file and execute the following JavaScript code in the web console (F12 or Ctrl+Shift+K shortcut)
// A textarea will appear so you can copy/paste to save data as a CSV file
/*
var out = [];
var length = tweets.length;
for (var i = 0; i < length; ++i) {
@baptx
baptx / freelancer_country_filter.user.js
Last active Jul 1, 2020
freelancer.com country filter
View freelancer_country_filter.user.js
// ==UserScript==
// @name freelancer.com country filter
// @namespace https://drawcode.eu/
// @include https://www.freelancer.com/projects/*
// @version 1
// @grant none
// ==/UserScript==
// Commented script needs to run in web console on a job search page (e.g. in a separate Firefox profile to avoid new tab focus and tabs overflow)
// You need to be logged in because the logged out page is different and displays less jobs
@baptx
baptx / facebook_friends_people_search_backup.js
Last active Jul 11, 2021
Facebook friends / people search / group members backup in web browser
View facebook_friends_people_search_backup.js
/* Facebook friends / people search / group members backup in web browser
* Scroll down to your friends page or a people search page to load all profiles
* Copy-paste the script below in a web browser console (F12 key or Ctrl+Shift+K shortcut in a browser like Firefox) and execute the desired function, for example by typing FacebookFriendsBackup() in the console and pressing enter
* A textarea will appear at the end of the page so you can copy the data and paste it in a text file before saving it as a CSV file
* You can then view your backup in a spreadsheet editor like LibreOffice Calc
* You can also compare the backup with another one to see who removed you from their friends list or who appeared in a new search (e.g. with the Linux diff command or awk for column diff https://unix.stackexchange.com/questions/174599/using-diff-on-a-specific-column-in-a-file/174603#174603)
* If the friend changed their name or profile URL, you can still find them with their profile ID which is backed up in the last colu
@baptx
baptx / instagram-api_send_message.js
Last active Jul 21, 2021
Instagram API: send direct messages from a web browser
View instagram-api_send_message.js
/*
Instagram API: send direct messages from a web browser
Since April 2020, Instagram has a web version to send and read direct messages so my Instagram scripts are not longer needed and I would not recommend using them unless you really need it, to avoid being banned
(never happened to me with Instagram but WhatsApp is owned by Facebook also and they did it to users registering from an unofficial app like yowsup: https://github.com/tgalal/yowsup/commit/88b8ad9581fa22dac330ee3a05fec4e485dfa634#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5)
For browser setup, see script instagram-api_direct_messages_backup.js
Instagram web version sessionid cookie does not allow sending messages so we need to log in manually
Signature should match signed_body data (using HMAC-SHA256 with private key) but wrong signature or key may work also.
@baptx
baptx / instagram-api_direct_messages_backup.js
Last active May 14, 2021
Instagram API: view and backup direct messages from a web browser
View instagram-api_direct_messages_backup.js
/*
Instagram API: view and backup direct messages from a web browser
Since April 2020, Instagram has a web version to send and read direct messages so my Instagram scripts are not longer needed and I would not recommend using them unless you really need it, to avoid being banned
(never happened to me with Instagram but WhatsApp is owned by Facebook also and they did it to users registering from an unofficial app like yowsup: https://github.com/tgalal/yowsup/commit/88b8ad9581fa22dac330ee3a05fec4e485dfa634#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5)
1) Log in on Instagram web version and go to your profile page
(the home page will not work because it loads data when scrolling down and the direct messages will be displayed at the bottom of the page)
2) Modify HTTP headers with a browser addon like Header Editor (https://addons.mozilla.org/en-US/firefox/addon/header-editor/)
@baptx
baptx / facebook_graph_api.js
Last active Dec 4, 2020
Facebook Graph API groups members intersection (deprecated)
View facebook_graph_api.js
/*
* config
*/
var token = "XXX";
var limit = 5000;
var id1 = "XXX";
var id2 = "XXX";
@baptx
baptx / francetv_get_m3u8.user.js
Last active Dec 7, 2020
Get M3U8 streaming URL from France TV info replay website
View francetv_get_m3u8.user.js
// ==UserScript==
// @name get_m3u8
// @namespace francetvinfo
// @include http://www.francetvinfo.fr/*
// @version 1
// @grant none
// ==/UserScript==
/* Using Content Script Injection (window.functionName) to make function available outside GreaseMonkey scope
Page reload is needed if using existing function _jsonp_loader_callback_request_0. */
@baptx
baptx / 2letters_domains_available.node.js
Last active Apr 30, 2018
List available 2 letters domain names in JavaScript using Node.js / JXcore
View 2letters_domains_available.node.js
var https = require("https");
var fs = require("fs");
var ws = fs.createWriteStream("2letters_domains_available.txt");
var domain = "aa.lc"; // format: aa.tld
var numbers = false; // include numbers
function apiParse(body)
{
var status = JSON.parse(body)[0].available;
@baptx
baptx / twitter_api_1.1_backup.js
Last active Jul 7, 2021
Twitter API 1.1 tweets / favorites (likes) / following / followers backup in web browser
View twitter_api_1.1_backup.js
/* Twitter API 1.1 tweets / favorites (likes) / following / followers backup in web browser
* Get your access keys to use Twitter API 1.1: https://dev.twitter.com/docs/auth/tokens-devtwittercom
* You can change Twitter API URL and Twitter screen_name, then execute script from a trusted web page without CSP protection like about:blank in a web browser console (F12 or Ctrl+Shift+K shortcut)
* A textarea will appear so you can copy/paste to save data as a CSV file or search tweets / users in your web browser (Ctrl+F shortcut)
* You can then view your backup in a spreadsheet editor like LibreOffice Calc
* You can also compare the backup with another one to see who unfollowed you, who changed their Twitter username by looking at the user ID or which tweet you retweeted / favorited was deleted (e.g. with the Linux diff command)
*
* Note about the tweets backup:
* Usually you will search tweets that you retweeted using Twitter web version (https://twitter.com/search) with a search like "from:your_username f