Skip to content

Instantly share code, notes, and snippets.

View boehs's full-sized avatar

Evan Boehs boehs

View GitHub Profile
boehs / fr24.ts
Created October 30, 2023 15:56
FlightRadar24 scrapper for tracking specific flights (used in 2023 Lewiston, Maine Shootings Wikipedia article)
View fr24.ts
//[...document.querySelectorAll('a[data-flight-duration]')].map(e => e.getAttribute('data-flight-hex'))
interface FlightPlaybackPoints {
latitude: number
longitude: number
timestamp: number
type FlightPlaybackResponse = {
flight: {
boehs / parser.ts
Created September 7, 2023 13:28 times to sheet (for desmos)
View parser.ts
[...temp1.querySelectorAll('[_ngcontent-ng-c2304734222]')].map(e => e.textContent).filter(t => t.match(/^\d\d:\d\d/)).map((t,i) => {
let [m,s] = t.split(':')
return i + ',' + (Number(m) + (Number(s) * (100/60) / 100))
boehs / instagram-export-parser.ts
Created August 27, 2023 02:55
instagram data export profile parser
View instagram-export-parser.ts
[...document.querySelectorAll('a')].map(a => a.textContent).sort().join('\n')
boehs / owid.ts
Created July 5, 2023 17:25
OWID helper
View owid.ts
let global: {
[entity: string]: {
[year: number]: {
[col: string]: string
} = {}
async function pCSV(fName: string) {
const f: string[][] = (await Bun.file(fName + ".csv").text()).split("\n").map(l => l.split(','));
boehs / file.js
Last active June 23, 2023 02:55
(quizlet| to seperated words
View file.js
let words = document.querySelectorAll('.SetPageTerm-wordText');
[...document.querySelectorAll('.SetPageTerm-definitionText')].map((def,index) => def.textContent + " " + words[index].textContent).join('\n')
View annoy.js
let weights = Object.fromEntries("IJ​IJ ij​ij LJ​LJ Lj​Lj lj​lj NJ​NJ Nj​Nj nj​nj DZ​DZ Dz​Dz dz​dz Rs​₨ No​№ SM​℠ TEL​℡ TM​™ FAX​℻ ll​Ⅱ II​Ⅱ III​Ⅲ IV​Ⅳ VI​Ⅵ VII​Ⅶ VIII​Ⅷ IX​Ⅸ XI​Ⅺ XII​Ⅻ ii​ⅱ iii​ⅲ iv​ⅳ vi​ⅵ vii​ⅶ viii​ⅷ ix​ⅸ xi​ⅺ xii​ⅻ hPa​㍱ da​㍲ AU​㍳ bar​㍴ oV​㍵ pc​㍶ pA​㎀ nA​㎁ mA​㎃ kA​㎄ KB​㎅ MB​㎆ GB​㎇ cal​㎈ kcal​㎉ pF​㎊ nF​㎋ mg​㎎ kg​㎏ Hz​㎐ kHz​㎑ MHz​㎒ GHz​㎓ THz​㎔ ml​㎖ dl​㎗ kl​㎘ fm​㎙ nm​㎚ mm​㎜ cm​㎝ km​㎞ Pa​㎩ kPa​㎪ MPa​㎫ GPa​㎬ rad​㎭ ps​㎰ ns​㎱ ms​㎳ pV​㎴ nV​㎵ mV​㎷ kV​㎸ MV​㎹ pW​㎺ nW​㎻ mW​㎽ kW​㎾ MW​㎿ Bq​㏃ cc​㏄ cd​㏅ dB​㏈ db​ȸ ls​ʪ Is​ʪ lz​ʫ Iz​ʫ Gy​㏉ ha​㏊ HP​㏋ in​㏌ KK​㏍ KM​㏎ kt​㏏ lm​㏐ ln​㏑ log​㏒ lx​㏓ mb​㏔ mil​㏕ mol​㏖ PH​㏗ PPM​㏙ PR​㏚ sr​㏛ Sv​㏜ Wb​㏝ ff​ff fi​fi fl​fl ffi​ffi ffl​ffl st​st WC​🅏 MC​🅪 MD​🅫 NUL​␀ SOH​␁ STX​␂ ETX​␃ EOT​␄ ENQ​␅ ACK​␆ BEL​␇ BS​␈ HT​␉ LF​␊ VT​␋ FF​␌ CR​␍ DLE​␐ DC1​␑ DC2​␒ DC3​␓ DC4​␔ NAK​␕ SYN​␖ ETB​␗ CAN​␘ EM​␙ SUB​␚ ESC​␛ FS​␜ GS​␝ RS​␞ US​␟ AA​Ꜳ aa​ꜳ AE​Æ ae​æ AO​Ꜵ ao​ꜵ au​ꜷ AV​Ꜹ av​ꜹ AY​Ꜽ ay​ꜽ OE​Œ oe​œ OO​Ꝏ oo​ꝏ CE​₠ ue​ᵫ VY​Ꝡ vy​ꝡ 10​⒑ 11​⒒ 12​⒓ 13​⒔ 14​⒕ 15​⒖ 16​⒗ 17​⒘ 18​⒙ 19​⒚ 20​⒛ qp​ȹ ts​ʦ fff​🝝 sss​
View enable-canvas-totals.js
// ==UserScript==
// @name Bypass "Calculation of totals has been disabled" for canvas
// @namespace
// @match https://**/grades
// @grant none
// @version 1.1.0
// @author Evan Boehs
// @description Calculates totals when canvas doesn't want to
// @supportURL
// @license GPL-3.0-only
boehs /
Created August 26, 2022 20:00
Make discord think you have spotify premium

Spotify premium discord features free

Discord has a number of features related to music streaming that are "exclusively" available for spotify premium members. Notably, listening parties. To restrict these features to spotify premium, discord runs a few premium checks that we can overwrite.


Why does this work? Shouldn't discord not have these permissions for non premium members, just like every other app?

Discord has the ability to control the playback of music for non premium members so they can pause the music on spotify if they are talking too long in a voice call. Spotify could have exclusively granted permission to pause music, instead of playing, pausing, changing songs, etc, but they did not, presumably because they did not have the fine grained control and did not care enough to implement it.

View ublock scriptlets.js
// plotARoutePremium.js
document.addEventListener("DOMContentLoaded", () => {
console.log('if you are seeing this, everything went well')
boehs / getyourselfbanned.js
Last active October 28, 2021 03:51
View getyourselfbanned.js
const apiPrefix = ''
var delay = ms => new Promise(res => setTimeout(res, ms))
var qs = obj =>
.map(([k, v]) => `${k}=${v}`)
const apiCall = (apiPath, body, method = 'GET') => {