!7 cmodule2 BEALogIn { S user, botToken, status; bool loggedIn; visual jCenteredSection("Log-in to bea.gazelle.rocks", makeForm3( "User name", dm_textField user(), "Bot token", dm_passwordField botToken(), "Status", dm_label status(), "", dm_button check())); start-thread { check(); } void check { try { S user = trim(this.user), botToken = trim(this.botToken); Map data = cast postJSONPage("https://bea.gazelle.rocks/bot/beaList", _user := user, _botToken := botToken, changedAfter := now()+60000); L list = cast data.get("result"); if (list != null) setFields(status := "Logged in as " + user, loggedIn := true); else setFields(status := "Error: " + str(data.get("error")), loggedIn := false); } catch print e { setFields(status := "Error: " + exceptionToStringShort(e), loggedIn := false); } } // API bool loggedIn() { ret loggedIn; } PairS userAndBotToken() { ret pair(user, botToken); } }