Skip to content

Instantly share code, notes, and snippets.

@lylejantzi3rd
lylejantzi3rd / flatten.js
Last active April 17, 2024 14:49
Flatten Substack Comments
const postId = window._preloads.post.id;
const url = window._preloads.post.canonical_url;
async function getComments() {
const response = await fetch(`https://sigmagame.substack.com/api/v1/post/${postId}/comments?token=&all_comments=true&sort=most_recent_first`);
const result = await response.json();
return result?.comments;
}
function getAllChildren(children, acc = []) {
for(const child of children) {
@lylejantzi3rd
lylejantzi3rd / light-mode.css
Created February 22, 2024 14:29
forced light mode css
* {
background:white !important;
color:black !important;
}
:link, :link * {
color:#0000EE !important;
}
:visited, :visited * {
@lylejantzi3rd
lylejantzi3rd / twitter-adblock.js
Created November 11, 2023 20:58
Block ads on Twitter as they appear
const targetNode = document.querySelector('div[aria-label*="Timeline: Conversation"]')
const config = { attributes: false, childList: true, subtree: true }
function getElementByXpath(path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}
const callback = (mutationList, observer) => {
// We don't care what was mutated. The Xpath has to run at the document level anyway
const foundElement = getElementByXpath("//span[contains (text(), 'Ad')]//ancestor::article")
function getElementByXpath(path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}
getElementByXpath("//span[contains (text(), 'Ad')]//ancestor::article").remove()
// bookmarklet_title: UnfuckSlack
// bookmarklet_about: idonotknowwhy
javascript:(function() { localStorage.setItem("localConfig_v2", localStorage.getItem("localConfig_v2").replace(/\"is_unified_user_client_enabled\":true/g, '\"is_unified_user_client_enabled\":false')); location.reload(); })();
@lylejantzi3rd
lylejantzi3rd / ScopeStackDemo.cpp
Created October 27, 2022 09:34 — forked from jhaberstro/ScopeStackDemo.cpp
ScopeStack implementation stolen from Andreas Fredriksson's DICE presentation on Scope Stack Allocation.
// Simplified scope stack implementation
#include <new>
#include <cstdio>
#include <cassert>
typedef unsigned char u8;
class LinearAllocator {
public:
@lylejantzi3rd
lylejantzi3rd / shader.hlsl
Created June 17, 2021 10:44 — forked from mmozeiko/shader.hlsl
compute shader for rendering monospaced glyphs in grid
struct TermCell
{
uint GlyphIndex; // index into GlyphMapping buffer
uint Foreground;
uint Background;
};
cbuffer ConstBuffer : register(b0)
{
uint2 CellSize;
Jobs
Jobs List
New Job -> New Job
Click on Job -> Job Details
Sort Column -> Jobs List
Filter Column -> Jobs List
Change Status Dropdown -> Jobs List
Job
Job Details
Edit -> Edit Job
@lylejantzi3rd
lylejantzi3rd / ctrlTap.lua
Created July 11, 2018 01:27 — forked from kbussell/ctrlTap.lua
Send escape key if the ctrl key is tapped. (Used along side remapping my Caps Lock key to ctrl) Thanks to @asmagill 's examples for a starting point.
local alert = require("hs.alert")
local timer = require("hs.timer")
local eventtap = require("hs.eventtap")
local events = eventtap.event.types
local module = {}
-- timeout for ctrol key
module.timeFrame = .25
@lylejantzi3rd
lylejantzi3rd / hn_seach.js
Last active August 6, 2017 23:36 — forked from meiamsome/hn_search.js
hn job query search
// takes arguments and produces an array of functions that accept context
function handle_args() {
var args = Array.prototype.slice.call(arguments);
return args.map(function(arg) {
if(arg instanceof Function) return arg; // Presumably already a contex-accepting function.
if(arg instanceof Array) return and.apply(this, arg); // make arrays behave as and.
// Presuming a string, build a function to check.
var my_regex = new RegExp(arg.toString(), 'i');
return function(context) {
return context.search(my_regex) > -1;