persistable sclass Gazelle_GrabPostsLoop { S _user, _botToken; Set fields = litset("text"); long changedAfter; double delay = 5.0; !include #1028121 // setField + change() run { pcall { grab(); } sleepSeconds(delay); } void grab { Map _result = cast postJSONPage("https://gazelle.rocks/bot/listPosts", +_user, +_botToken, fields := joinWithSpace(fields), +changedAfter); L posts = cast _result.get("result"); print("Found " + n2(posts, "new post")); L posts2 = map(posts, p -> GazellePost(p)); for (GazellePost p : posts2) setField(changedAfter := max(changedAfter, p.modified)); handlePosts(posts2); } transient swappable void handlePosts(L posts) { } }