Skip to content

Instantly share code, notes, and snippets.

View mary-ext's full-sized avatar
💭
dreaming of bunnies

mary mary-ext

💭
dreaming of bunnies
View GitHub Profile
import { nanoid } from 'nanoid';
import { computed, onScopeDispose, shallowRef } from 'vue';
import { isNavigationFailure, useRouter } from 'vue-router';
import { defineStore } from '../stores';
export interface HistoryEntry {
id: string;
}
@mary-ext
mary-ext / bluesky-osa.md
Last active September 2, 2025 22:34
Bluesky's age assurance sucks, here's how to work around it.

Bluesky's age assurance sucks, here's how to work around it.

Bluesky has implemented age verification measures in response to regional laws that restrict access:

  • UK users are shown a banner for attempting identity verification through Epic Games' Kids Web Services before they could access adult content, following the Online Safety Act.

  • Mississippi users are completely blocked from acccessing Bluesky due to

import { effectScope, inject, type App, type EffectScope, type InjectionKey, type Plugin } from 'vue';
interface Store {
scope: EffectScope;
value: unknown;
setup: () => unknown;
}
interface StoreManager {
stores: Map<string, Store>;
We can make this file beautiful and searchable if this error is corrected: No commas found in this CSV file in line 0.
abacus
abdomen
abdominal
abide
abiding
ability
ablaze
able
abnormal
abrasion
import type { Identifier, LocalIdentifier } from './estree.ts';
const isLocalIdentifier = (ident: Identifier | LocalIdentifier): ident is LocalIdentifier => {
return 'preferredName' in ident;
};
interface RenameContext {
usedNames: Set<string>;
}
@mary-ext
mary-ext / protobuf.ts
Created June 15, 2025 15:58
kenmei export to mihon/tachiyomi backup
import { assert } from '@std/assert';
import * as p from '@mary/protobuf';
const Source = p.message({
id: p.int64(),
name: p.string(),
}, {
id: 2,
name: 1,
export class XRPCRatelimiter {
#limit = 2;
#duration = 1_000;
#remaining = this.#limit;
#resetTime = Date.now() + this.#duration * 1_000;
update(headers: Headers): void {
const limit = headers.get('ratelimit-limit');
const remaining = headers.get('ratelimit-remaining');
/**
* interface representing a cron schedule.
*/
export interface CronSchedule {
/** minute */
minute: number[];
/** hour */
hour: number[];
/** day of month */
dayOfMonth: number[];
@mary-ext
mary-ext / open-in-browser.sh
Last active April 11, 2025 11:57
fuzzel script for choosing which browser to open
#!/usr/bin/env bash
# display name to command mapping
declare -A browsers=(
["Firefox Developer Edition"]="firefox-developer-edition"
["Chrome Canary"]="google-chrome-canary"
["Brave"]="brave"
["Brave Nightly"]="brave-nightly"
)
@mary-ext
mary-ext / discord.txt
Last active August 21, 2025 22:28
make discord good ublock filter
! Hide top bar
discord.com##.visual-refresh:style(--custom-app-top-bar-height: 0px !important)
discord.com##.visual-refresh :is(.chat_f75fb0[data-has-border=true], .container__133bf, .container_a592e1):style(border-top: 0 !important)
discord.com##.visual-refresh :is(.sidebarListRounded_c48ade, .container__01ae2, .callContainer_cb9592):style(border-top: 0 !important; border-radius: 0 !important)
discord.com##.visual-refresh .scroller_ef3116:style(padding-block: var(--space-md) !important)
! Move the inbox button
discord.com##.bar_c38106:style(z-index: 1000 !important; overflow: hidden !important)
discord.com##.visual-refresh :is(.toolbar__9293f, .searchBar__1ac1c):style(margin-right: calc(var(--space-32) + var(--space-xs)) !important)
discord.com##.visual-refresh .recentsIcon_c99c29:style(position: fixed !important; top: var(--space-8) !important; right: var(--space-xs) !important)