public string GenFormatFactoid(string subject, string relation, object value, XmlNode templateNode) { string subj = Entify(subject); var dictionary = TheBot.GetDictionary(subj) as SettingsDictionary; bool noValue = Unifiable.IsNullOrEmpty(value); Unifiable formatter; { if (noValue) { // query mode formatter = GetDictValue(dictionary, relation, "format-query"); } else { // assert mode formatter = GetDictValue(dictionary, relation, "format-assert"); } } var formatterUpper = Unifiable.ToUpper(formatter); if (Unifiable.IsNullOrEmpty(formatter) || Unifiable.IsTrueOrYes(formatterUpper) || formatter == "default") { formatter = " {0} {1} is {2} "; } if (Unifiable.IsFalseOrNo(formatterUpper)) { return("false"); } return(ExpandFormat(subj, relation, value, noValue, dictionary, formatter, templateNode)); }
public string ExpandFormat(string subj, string relation, object value, bool isQuery, SettingsDictionary dictionary, Unifiable formatter, XmlNode templateNode) { string pred = Entify(relation); string botName = !IsBotRobot(subj) ? Entify(TheBot.BotUserID) : Entify(TheBot.LastUser.UserID); { var whword = GetDictValue(dictionary, relation, "format-whword"); if (!Unifiable.IsNullOrEmpty(whword) && isQuery) { value = whword; } var formatterUpper = Unifiable.ToUpper(formatter); if (Unifiable.IsFalseOrNo(formatterUpper)) { return("false"); } formatter = ReplaceWord(formatter, "$subject", "{0}"); formatter = ReplaceWord(formatter, "$verb", "{1}"); formatter = ReplaceWord(formatter, "$object", "{2}"); formatter = ReplaceWord(formatter, "$user", "{0}"); formatter = ReplaceWord(formatter, "$relation", "{1}"); formatter = ReplaceWord(formatter, "$value", "{2}"); formatter = ReplaceWord(formatter, "$predicate", pred); formatter = ReplaceWord(formatter, "$set-return", TheBot.RelationMetaProps.grabSetting(relation + "." + "set-return")); formatter = ReplaceWord(formatter, "$default", TheBot.DefaultPredicates.grabSetting(relation)); formatter = ReplaceWord(formatter, "$botname", botName); formatter = ReplaceWord(formatter, "$bot", botName); } string english = " " + String.Format(formatter, subj, pred, Entify(value)).Trim() + " "; english = ReplaceWord(english, "I", subj); english = ReplaceWord(english, "you", botName); english = english.Trim(); User user = TheBot.FindUser(subj); english = FixPronouns(english, user.grabSettingNoDebug); return(english); }