Skip to content

Instantly share code, notes, and snippets.

View boehs's full-sized avatar
🐕‍🦺
woof

Evan Boehs boehs

🐕‍🦺
woof
View GitHub Profile
@boehs
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
boehs / parser.ts
Created September 7, 2023 13:28
athletic.net 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))
}).join('\n')
@boehs
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
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
boehs / file.js
Last active June 23, 2023 02:55
(quizlet|vocabulary.com) 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 https://boehs.org
// @match https://*.instructure.com/courses/*/grades
// @grant none
// @version 1.1.0
// @author Evan Boehs
// @description Calculates totals when canvas doesn't want to
// @supportURL https://gist.github.com/boehs/883fda113facb902ac440cab26b09cb9
// @license GPL-3.0-only
@boehs
boehs / README.md
Created August 26, 2022 20:00
Make discord think you have spotify premium
View README.md

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.

F&Q

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
// www.plotaroute.com##+js(plotARoutePremium)
document.addEventListener("DOMContentLoaded", () => {
enablePremFeat()
console.log('if you are seeing this, everything went well')
})
@boehs
boehs / getyourselfbanned.js
Last active October 28, 2021 03:51
ban'd
View getyourselfbanned.js
{
const apiPrefix = 'https://discord.com/api/v9'
var delay = ms => new Promise(res => setTimeout(res, ms))
var qs = obj =>
Object.entries(obj)
.map(([k, v]) => `${k}=${v}`)
.join('&')
const apiCall = (apiPath, body, method = 'GET') => {