You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.5 KiB
62 lines
1.5 KiB
import { writable } from "svelte/store";
|
|
import type { HydrusClient } from "./hydrus";
|
|
import type { Booru } from "./thirdeye";
|
|
|
|
export const localLoad = <T>(key: string, def: T) =>
|
|
('__pee__' + key) in localStorage
|
|
? JSON.parse(localStorage.getItem('__pee__' + key)!) as T
|
|
: def;
|
|
|
|
const localSet = (key: string, value: any) =>
|
|
localStorage.setItem('__pee__' + key, JSON.stringify(value));
|
|
|
|
export const initial_settings = localLoad('settingsv2', {
|
|
...localLoad('settings', {}),
|
|
loop: true,
|
|
dh: false,
|
|
xpv: false,
|
|
xpi: false,
|
|
hyd: false,
|
|
notcata: false,
|
|
ak: '',
|
|
auto_embed: 0,
|
|
auto_tags: '',
|
|
te: false,
|
|
eye: false,
|
|
ca: false,
|
|
pre: false,
|
|
prev: false,
|
|
sh: false,
|
|
ep: false,
|
|
tm: false,
|
|
dvc: false,
|
|
expte: false,
|
|
mdist: -1,
|
|
phash: false,
|
|
hotlink: false,
|
|
jpeg: false,
|
|
vercheck: false,
|
|
cache: undefined as (boolean | undefined), // meaning defaults to false, except on b4k
|
|
fhost: 0,
|
|
maxe: 5,
|
|
conc: 8,
|
|
ho: false,
|
|
blacklist: [] as string[],
|
|
rsources: [] as (Omit<Booru, 'quirks'> & {view: string, disabled?: boolean})[],
|
|
...localLoad('settingsv2', {}),
|
|
});
|
|
|
|
export const settings = writable(initial_settings);
|
|
|
|
export const appState = writable({
|
|
isCatalog: false,
|
|
is4chanX: false,
|
|
akValid: false,
|
|
herror: '' as string | undefined,
|
|
client: null as HydrusClient | null,
|
|
foundPosts: [] as HTMLElement[]
|
|
});
|
|
|
|
settings.subscribe(newVal => {
|
|
localSet('settingsv2', newVal);
|
|
});
|
|
|