mirror of
https://github.com/twisterarmy/twister-core.git
synced 2025-01-22 20:44:56 +00:00
Merge pull request #298 from dryabov/patch-7
Support double hashtags (and double mentions) in newpostmsg
This commit is contained in:
commit
da7a099f04
@ -1797,18 +1797,28 @@ Value newpostmsg(const Array& params, bool fHelp)
|
|||||||
boost::algorithm::token_compress_on);
|
boost::algorithm::token_compress_on);
|
||||||
BOOST_FOREACH(string const& token, tokens) {
|
BOOST_FOREACH(string const& token, tokens) {
|
||||||
if( token.length() >= 2 ) {
|
if( token.length() >= 2 ) {
|
||||||
|
char delim = token.at(0);
|
||||||
|
if( delim != '#' && delim != '@' ) continue;
|
||||||
|
string target = (delim == '#') ? "hashtag" : "mention";
|
||||||
string word = token.substr(1);
|
string word = token.substr(1);
|
||||||
#ifdef HAVE_BOOST_LOCALE
|
#ifdef HAVE_BOOST_LOCALE
|
||||||
word = boost::locale::to_lower(word);
|
word = boost::locale::to_lower(word);
|
||||||
#else
|
#else
|
||||||
boost::algorithm::to_lower(word);
|
boost::algorithm::to_lower(word);
|
||||||
#endif
|
#endif
|
||||||
if( token.at(0) == '#') {
|
if( word.find(delim) == string::npos ) {
|
||||||
dhtPutData(word, "hashtag", true,
|
dhtPutData(word, target, true,
|
||||||
v, strUsername, GetAdjustedTime(), 0);
|
|
||||||
} else if( token.at(0) == '@') {
|
|
||||||
dhtPutData(word, "mention", true,
|
|
||||||
v, strUsername, GetAdjustedTime(), 0);
|
v, strUsername, GetAdjustedTime(), 0);
|
||||||
|
} else {
|
||||||
|
vector<string> subtokens;
|
||||||
|
boost::algorithm::split(subtokens,word,std::bind1st(std::equal_to<char>(),delim),
|
||||||
|
boost::algorithm::token_compress_on);
|
||||||
|
BOOST_FOREACH(string const& word, subtokens) {
|
||||||
|
if( word.length() ) {
|
||||||
|
dhtPutData(word, target, true,
|
||||||
|
v, strUsername, GetAdjustedTime(), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user