Warning: session_start(): open(/var/lib/php/sessions/sess_46gvt2bfmk2d5n15hsj53irk60, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
static long tokenTimeout = 60*60*1000; // one hour
p {
independentSmartBot();
}
static ExpiringHashMap tokensToPayload = new(tokenTimeout);
html {
if (eq(uri, "/tokens")) ret lstr(tokensToPayload);
S token = params.get("token");
S q = params.get("q");
Payload payload = null;
bool loaded = false;
if (nempty(token)) {
payload = tokensToPayload.get(token);
if (payload == null) {
payload = googleVerifyUserToken2(botCompanyGoogleSignInID(), token);
loaded = true;
mapPut(tokensToPayload, token, payload);
}
}
if (payload != null) {
long time = unixTime();
print("loaded=" + loaded + ", issued=" + (payload.getIssuedAtTimeSeconds()-time) + ", expiration=" + (payload.getExpirationTimeSeconds()-time));
}
S email = payload == null ? null : payload.getEmail();
if (nempty(q) && nempty(email))
post(email, "said", quote(q));
if (eq(uri, "/content-script")) {
S text = null;
bool again = false, de = false;
if (payload == null)
text = "You are not logged in.";
if (text == null) {
pnlStruct(payload);
again = post(email, "logged in", ".") == null;
if (!payload.getEmailVerified())
text = "Unverified email (huh?)";
}
if (text == null) {
de = cic((S) payload.get("locale"), "de");
S firstName = (S) payload.get("given_name");
text = p(htmlencode((de ? "Hallo " : "Hello ")
+ (again ? (de ? "mal wieder, " : "again ") : "")
+ firstName + "!"));
S pic = (S) payload.get("picture");
if (de && isURL(pic))
text += p(htmlencode("Was für ein hübsches Bild:"))
+ p(himg(pic, title := firstName + ", ein toller Mensch"));
}
S script =
[[$(".BUTTON_OUT").css('display', 'inline-block');
document.getElementById("content").innerHTML = ]] + jsQuote(text) + ";" +
[[
$("input[name=token]").val($TOKEN);
$("#inputdiv").show();
$("input[name=q]").focus();
]].replace("$TOKEN", jsQuote(token));
if (de) script += [[$("input[name=q]").attr('placeholder', 'Sprich mit mir');]];
print(script);
ret script;
}
ret hhtml(hhead(htitle("BotCompany.de")
+ loadJQuery()
+ googleSignIn_header()
+ hcss(andrzejButtonStyle())
+ hcookieconsent())
+ hbody(
(nempty(params.get("noworker")) ? "" : hSilentComputator())
+ hfullcenter(
googleSignIn_signInButton(relativeRawBotLink(programID(), "content-script"), [[
eval(data);
]], [[
$(".BUTTON_OUT").css('display', 'none');
document.getElementById("content").innerHTML = "";
]])
//+ hsmall(ahref(googleSignIn_signOutURL(), "Sign out"))
+ ahref(googleSignIn_signOutURL(), div("Sign out", class := "BUTTON_OUT", style := "display: none"))
+ "
"
+ div("", id := "content", style := "font-size: 30px")
+ hpostform(hhidden('token, "")
+ div(htextinput('q, style := "text-align: center", placeholder := "Tell me something", autofocus := 'autofocus) + " " + hsubmit("OK"), id := 'inputdiv, style := "display: none")
+ p(ahref("https://botcompany.de/chat", "more")))));
}