persistable sclass Gazelle_GrabPostsLoop { S _user, _botToken; Set fields = litset("text"); long changedAfter; double delay = 5.0; bool verbose; !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); if (verbose) print(+_result); 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)); for (GazellePost p : posts2) pcall { handlePost(p); } } transient swappable void handlePost(GazellePost post) { } }