Пример #1
0
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);
    }
}
Пример #2
0
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);
    }
  }
}
Пример #3
0
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;
    }
}