Skip to content

Instantly share code, notes, and snippets.

View matyasfodor's full-sized avatar
🦕

Mátyás Fodor matyasfodor

🦕
  • BenevolentAI
  • London
View GitHub Profile
(function () {
// Monkey patch `webkitRequestFileSystem` to call success callback even if the request failed
(function(webkitRequestFileSystem) {
window.webkitRequestFileSystem = function(type, size, successCallback, errorCallback) {
webkitRequestFileSystem(type, size, successCallback, successCallback);
}
})(window.webkitRequestFileSystem);
})();
@matyasfodor
matyasfodor / incognitoTrick.js
Created December 27, 2017 04:43
Tampermonkey script to fake incognito check
// ==UserScript==
// @name Incognito trick
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Prevent sites detecting if you're in incognito by calling the success callback of webkitRequestFileSystem even if it's failing.
// @author You
// @run-at document-start
// @match *://*/*
// @grant none
// ==/UserScript==
function detectWebkitRequestFileSystem(e, t) {
return new Promise(function(e) {
if (!window.webkitRequestFileSystem)
return e(null);
window.webkitRequestFileSystem(window.TEMPORARY, 1, e.bind(null, !1), e.bind(null, !0))
}
)
}
MIT License
Copyright (c) 2017 Mátyás Fodor
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
@matyasfodor
matyasfodor / zip.js
Last active September 30, 2023 05:50
ES6 Zip functions: zipShort and zipLong
function _zip(func, args) {
const iterators = args.map(arr => arr[Symbol.iterator]());
let iterateInstances = iterators.map((i) => i.next());
ret = []
while(iterateInstances[func](it => !it.done)) {
ret.push(iterateInstances.map(it => it.value));
iterateInstances = iterators.map((i) => i.next());
}
return ret;
}
@matyasfodor
matyasfodor / perfTest_forEach_vs_Map.js
Created January 31, 2018 15:08
Comparison of forEach and map
function arr(n) {
return Array(n+1).join(1).split('');
}
const a = arr(1000000)
a[100] = 2
a[1000] = 2
a[10000] = 2
const sizedArray = (n) => Array(n).fill();
const times = (n, cb) => {
while (0 < n--) {
cb();
}
}
const fillWithCb = (n, cb) => sizedArray(n).map(cb);
// ==UserScript==
// @name Trello TODO list
// @namespace Trello
// @version 0.1
// @description Fit 5 columns into a 13" Macbook screen
// @author Matyas Fodor
// @match https://trello.com/*
// @grant none
// ==/UserScript==
@matyasfodor
matyasfodor / sortSoAnswers.js
Created March 22, 2018 08:10
Tampermonkey script that sorts SO answers in descending order by vote count. The accepted answer is the first one.
// ==UserScript==
// @name Sort Answers
// @namespace TBD
// @version 1.0.0.1
// @description sorts SO answers in descending order by vote count. The accepted answer is the first one.
// @author matyasfodor
// @include /https?:\/\/(meta\.)?stackoverflow\.com/questions/.*/
// @grant none
// ==/UserScript==
/* jshint -W097 */
@matyasfodor
matyasfodor / fb-apps-remover.js
Created April 6, 2018 07:11
These are the commands I used to remove the apps added to my facebook. I didn't have time to wrap it up, so use it as an inspiration, but It's likely that it won't work as it is.
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = "//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";
head.appendChild(script);
var a = $('span.rfloat');