AmMail EmailTemplate::getEmail(const EmailTmplDict& dict) const { try { return AmMail(replaceVars(from,dict), replaceVars(subject,dict), replaceVars(to,dict), replaceVars(body,dict), replaceVars(header,dict)); } catch(const string& err){ throw string("EmailTemplate: error in template '" + tmpl_file + "': " + err); } }
static void instantiateRule(const std::string &inputRegex, const std::string &inputLine, const std::string &outputLine, const std::string &buffer, std::unordered_map<std::string, std::string> &localVars, const std::vector<std::pair<std::string, std::vector<std::string>>> &args, std::vector<Rule *> &rules) { if (args.empty()) { std::unordered_map<std::string, std::string> escapedVars; for (auto p : localVars) { escapedVars[p.first] = RE2::QuoteMeta(p.second); } rules.push_back(new Rule(replaceVars(inputRegex, escapedVars), inputLine, outputLine, buffer, localVars)); } else { auto argc = args; auto p = argc.back(); argc.pop_back(); for (auto s : p.second) { localVars[p.first] = s; instantiateRule(inputRegex, inputLine, outputLine, buffer, localVars, argc, rules); } } }
void ChatTab::chatInput(const std::string &message) { std::string msg = message; trim(msg); if (msg.empty()) return; replaceItemLinks(msg); replaceVars(msg); switch (msg[0]) { case '/': handleCommandStr(std::string(msg, 1)); break; case '?': if (msg.size() > 1 && msg[1] != '!' && msg[1] != '?' && msg[1] != '.' && msg[1] != ' ' && msg[1] != ',') { handleHelp(std::string(msg, 1)); } else { handleInput(msg); } break; default: handleInput(msg); break; } }