import { email } from "https://esm.town/v/std/email?v=9";
import { set } from "https://esm.town/v/std/set?v=11";
let { checkRedditState } = await import("https://esm.town/v/bnorick/checkRedditState");
import { reddit_matches } from "https://esm.town/v/bnorick/reddit_matches";
import { toggleSubreddits } from "https://esm.town/v/bnorick/toggleSubreddits";
export let check_reddit = async ({ check = null, toggle = null }) => {
if (check) {
check = Object.assign({
fetch_limit: 10,
force: false,
enable_toggle: Boolean(toggleSubreddits),
}, check);
let result = await reddit_matches({
username: check.username,
last_run_at_utc: check.last_run_at_utc,
filters: check.filters,
current_state: checkRedditState,
fetch_limit: check.fetch_limit,
enable_toggle: check.enable_toggle,
force: check.force,
});
checkRedditState = result.state;
await set(
"checkRedditState",
checkRedditState,
);
if (result.email)
await email({
text: result.email.text,
subject: result.email.subject,
});
return result;
}
if (toggle) {
if (!checkRedditState) {
await set(
"checkRedditState",
checkRedditState,
);
return {};
}
if (typeof toggle === "string") {
toggle = [toggle];
}
let result = {};
for (let subreddit of toggle) {
let state = checkRedditState[subreddit];
if (state) {
state.disabled = !state.disabled;
}
result[subreddit] = state.disabled;
}
await set(
"checkRedditState",
checkRedditState,
);
return result;
}
};