import {
getState,
setState,
} from "https://deno.land/x/windmill@v1.85.0/mod.ts";
const MAX_LOOKBACK = 100;
/**
* @param mentions Case **insensitive** phrases that should be searched for.
*/
export async function main(mentions: string[]) {
let lastState = await getState();
let maxItem = await getMaxItem();
if (!lastState) {
lastState = maxItem - MAX_LOOKBACK;
}
maxItem = Math.min(maxItem, lastState + MAX_LOOKBACK);
const items = [];
for (let i = lastState; i < maxItem; i++) {
const item = await getItem(i);
if (
mentions.find((mention) => {
if (!item.text) return false;
const m = mention.trim().toLowerCase();
return item.text.toLowerCase().includes(m);
})
) {
items.push(item);
}
}
await setState(maxItem);
return items;
}
export async function getMaxItem() {
const res = await fetch("https://hacker-news.firebaseio.com/v0/maxitem.json");
return Number(await res.text());
}
export async function getItem(id: number) {
const res = await fetch(
`https://hacker-news.firebaseio.com/v0/item/${id}.json`,
);
return res.json();
}
Submitted by admin 460 days ago
import { getState, setState } from "https://deno.land/x/windmill@v1.85.0/mod.ts";
const MAX_LOOKBACK = 100
/**
* @param mentions Case **insensitive** phrases that should be searched for.
*/
export async function main(mentions: string[]) {
let lastState = await getState();
let maxItem = await getMaxItem();
if (!lastState) {
lastState = maxItem - MAX_LOOKBACK;
}
maxItem = Math.min(maxItem, lastState + MAX_LOOKBACK)
const items = [];
for (let i = lastState; i < maxItem; i++) {
const item = await getItem(i)
if (mentions.find((mention) => {
if(!item.text) return false;
const m = mention.trim().toLowerCase()
return item.text.toLowerCase().includes(m)
})) {
items.push(item);
}
}
await setState(maxItem);
return items;
}
export async function getMaxItem() {
const res = await fetch("https://hacker-news.firebaseio.com/v0/maxitem.json");
return Number(await res.text());
}
export async function getItem(id: number) {
const res = await fetch(
`https://hacker-news.firebaseio.com/v0/item/${id}.json`,
);
return res.json();
}
Submitted by adam186 592 days ago
import { getState, setState } from "https://deno.land/x/windmill@v1.70.1/mod.ts";
const MAX_LOOKBACK = 100
/**
* @param mentions Case **insensitive** phrases that should be searched for.
*/
export async function main(mentions: string[]) {
let lastState = await getState();
let maxItem = await getMaxItem();
if (!lastState) {
lastState = maxItem - MAX_LOOKBACK;
}
maxItem = Math.min(maxItem, lastState + MAX_LOOKBACK)
const items = [];
for (let i = lastState; i < maxItem; i++) {
const item = await getItem(i)
if (mentions.find((mention) => {
if(!item.text) return false;
const m = mention.trim().toLowerCase()
return item.text.toLowerCase().includes(m)
})) {
items.push(item);
}
}
await setState(maxItem);
return items;
}
export async function getMaxItem() {
const res = await fetch("https://hacker-news.firebaseio.com/v0/maxitem.json");
return Number(await res.text());
}
export async function getItem(id: number) {
const res = await fetch(
`https://hacker-news.firebaseio.com/v0/item/${id}.json`,
);
return res.json();
}
Submitted by adam186 627 days ago
import { getState, setState } from "https://deno.land/x/windmill@v1.55.0/mod.ts";
const MAX_LOOKBACK = 100
/**
* @param mentions Case **insensitive** phrases that should be searched for.
*/
export async function main(mentions: string[]) {
let lastState = await getState();
let maxItem = await getMaxItem();
if (!lastState) {
lastState = maxItem - MAX_LOOKBACK;
}
maxItem = Math.min(maxItem, lastState + MAX_LOOKBACK)
const items = [];
for (let i = lastState; i < maxItem; i++) {
const item = await getItem(i)
if (mentions.find((mention) => {
if(!item.text) return false;
const m = mention.trim().toLowerCase()
return item.text.toLowerCase().includes(m)
})) {
items.push(item);
}
}
await setState(maxItem);
return items;
}
export async function getMaxItem() {
const res = await fetch("https://hacker-news.firebaseio.com/v0/maxitem.json");
return Number(await res.text());
}
export async function getItem(id: number) {
const res = await fetch(
`https://hacker-news.firebaseio.com/v0/item/${id}.json`,
);
return res.json();
}
Submitted by adam186 700 days ago
import { getState, setState } from "https://deno.land/x/windmill@v1.55.0/mod.ts";
const MAX_LOOKBACK = 100
export async function main(mentions: string[]) {
let lastState = await getState();
let maxItem = await getMaxItem();
if (!lastState) {
lastState = maxItem - MAX_LOOKBACK;
}
maxItem = Math.min(maxItem, lastState + MAX_LOOKBACK)
const items = [];
for (let i = lastState; i < maxItem; i++) {
const item = await getItem(i)
if (mentions.find((mention) => item.text?.includes(mention))) {
items.push(item);
}
}
await setState(maxItem);
return items;
}
export async function getMaxItem() {
const res = await fetch("https://hacker-news.firebaseio.com/v0/maxitem.json");
return Number(await res.text());
}
export async function getItem(id: number) {
const res = await fetch(
`https://hacker-news.firebaseio.com/v0/item/${id}.json`,
);
return res.json();
}
Submitted by adam186 701 days ago
import * as wmill from "https://deno.land/x/windmill@v1.25.0/mod.ts";
const MAX_LOOKBACK = 100
export async function main(mentions: string[]) {
console.log(wmill.getInternalStatePath());
let lastState = await wmill.getInternalState();
console.log(`lastState: ${lastState}`);
let maxItem = await getMaxItem();
console.log(`maxItem: ${maxItem}`);
if (!lastState) {
console.log(`First run of trigger, looking back to MAX_LOOKBACK (100) elements`);
lastState = maxItem - MAX_LOOKBACK;
}
maxItem = Math.min(maxItem, lastState + MAX_LOOKBACK)
const items = [];
for (let i = lastState; i < maxItem; i++) {
console.log(`fetching id: ${i}`);
const item = await getItem(i)
if (mentions.find((mention) => item.text?.includes(mention))) {
items.push(item);
}
}
await wmill.setInternalState(maxItem);
return items;
}
export async function getMaxItem() {
const res = await fetch("https://hacker-news.firebaseio.com/v0/maxitem.json");
return Number(await res.text());
}
export async function getItem(id: number) {
const res = await fetch(
`https://hacker-news.firebaseio.com/v0/item/${id}.json`,
);
return res.json();
}
Submitted by admin 834 days ago