Skip to content

Instantly share code, notes, and snippets.

View BananaAcid's full-sized avatar

Nabil Redmann BananaAcid

View GitHub Profile
@BananaAcid
BananaAcid / loadDependency.await.js
Created October 15, 2022 23:41
loads a script/css/img/video and awaits
/**
* Nabil Redmann (BananaAcid), License MIT
*/
async function loadDependency(url, elementName, urlAttribute, attributes = {}, append = true) {
// check if it was added already
const prevElements = document.querySelectorAll(`${elementName}[${urlAttribute}="${url}"]`);
if (prevElements.length) return append ? true : prevElements[0];
// load if missing
let dep = document.createElement(elementName);
@BananaAcid
BananaAcid / loadScript.await.js
Last active January 6, 2023 15:45
laod a script and await until it is loaded, superseeded by loadDependency.await.js
/**
* Nabil Redmann (BananaAcid), License MIT
*/
async function loadScript(url) {
// check if it was added already
if (document.querySelectorAll(`script[src="${url}"]`).length) return true;
// load if missing
let script = document.createElement('script');
script.src = url;
@BananaAcid
BananaAcid / browser-access-dir-and-create-append-file.js
Last active January 6, 2023 15:44
IN BROWSER: shows a directory picker, then gets all files from a local folder - How to
async function getDir() {
const dirHandle = await window.showDirectoryPicker({id: 'rememberMyLastSelected', mode: 'readwrite', 'startIn': 'documents'}); // https://developer.mozilla.org/en-US/docs/Web/API/Window/showDirectoryPicker#parameters
console.log('Opened file system: ', dirHandle);
// simple file list
for await (const entry of dirHandle.values()) {
console.log(entry.kind, entry.name);
}
@BananaAcid
BananaAcid / schule.hessen.de - Easy Login.user.js
Created September 4, 2022 20:08
remember username + fix/remove spaces in inserted 2FA key
// ==UserScript==
// @name schule.hessen.de - Fixes
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Remember User name, and fix spacings in inserted one-time-passwords (copied from Authy)
// @author Nabil Redmann
// @match https://owa.hessen.de/logon/LogonPoint/tmindex.html
// @icon https://www.google.com/s2/favicons?domain=hessen.de
// @grant none
// ==/UserScript==
// ==UserScript==
// @name PhotoPea full width
// @namespace http://tampermonkey.net/
// @version 1.1
// @description Use full width - move the ad outside the viewport
// @author BananaAcid
// @match https://www.photopea.com/
// @icon https://www.google.com/s2/favicons?sz=64&domain=photopea.com
// @updateURL https://gist.github.com/BananaAcid/920a0af587367101a95a30c546d0162d/raw/PhotoPea%2520full%2520width.user.js
// @downloadURL https://gist.github.com/BananaAcid/920a0af587367101a95a30c546d0162d/raw/PhotoPea%2520full%2520width.user.js
@BananaAcid
BananaAcid / _package_cmds_only.json
Last active May 30, 2023 15:52
package json commands for dokku and deployment
{
"name": "project_abc",
"private": true,
"config": {
"host": "hosting.server.tld",
"domain": "abc-project.tld"
},
"scripts": {
"local:createSshKey": "ssh-keygen -t rsa",
# add user cert to root
ssh-keygen -t rsa
ssh root@server.tld "touch /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys"
cat ~/.ssh/id_rsa.pub | ssh root@server.tld "cat - >> /root/.ssh/authorized_keys"
# add user to dokku for git+push
cat ~/.ssh/id_rsa.pub | ssh root@server.tld "sudo sshcommand acl-add dokku $USER"
@BananaAcid
BananaAcid / add.js
Created September 1, 2022 13:12
add sripts and style and wait for them async to be loaded
let add = (tag, url) => new Promise( (resolve) => {
let el = document.createElement(tag);
if (tag === 'link') { el.rel = 'stylesheet'; }
if (tag === 'link') {
el.href = url;
}
else if (tag === 'script') {
el.src = url;
}
@BananaAcid
BananaAcid / tunnel example.txt
Created August 22, 2022 21:02
Example on using a tunnel
having nodeJs installed allready ...
run each command on a new terminal
npx node-infopage
npx localtunnel --port 4567 --subdomain testitest
# npx ngrok http 4567
npx open-cli https://testitest.loca.lt/
@BananaAcid
BananaAcid / super-async-load.js
Created August 18, 2022 12:56
Load css & script with promises and wait till loaded
let add = (tag, url) => new Promise( (resolve) => {
let el = document.createElement(tag);
if (tag === 'link') {
el.rel = 'stylesheet';
el.href = url;
}
else if (tag === 'script') {
el.src = url;
}