!7
p { ai_spec_init(); }
html {
bool authed = creatorAuthed();
S _topic = params.get("topic");
if (empty(_topic))
_topic = ai_randomString();
else {
// post user's answers (verified or unverified)
S newCat = params.get("new-cat"), newValue = params.get("new-value");
if (nempty(newCat)) {
S verb = ai_matrix_answerToVerb(newValue);
if (nempty(verb))
post(topic, verb, newCat);
else
post(quote(newCat), " is a matrix category for", topic);
params.set("cat-" + urlencode(newCat));
}
for (S key : keysStartingWith2(params, "cat-")) {
S value = params.get(key);
continue if empty(value);
S verb = ai_matrix_answerToVerb(value);
continue if empty(verb);
S cat = urldecode(dropPrefix("cat-", key));
temp tempSetThreadLocal(ai_postTriple_verified, authed);
post(_topic, verb, cat);
}
}
fS topic = _topic;
final L answers = concatLists(ll(""), ai_matrix_standardAnswers());
Set options = ai_matrix_categoriesForTopic(topic);
options.addAll(ai_matrix_standardCategories());
L