summaryrefslogtreecommitdiff
path: root/protocols/FacebookRM/src/json.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/FacebookRM/src/json.cpp')
-rw-r--r--protocols/FacebookRM/src/json.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/protocols/FacebookRM/src/json.cpp b/protocols/FacebookRM/src/json.cpp
index cd954ed1af..2ab50f0590 100644
--- a/protocols/FacebookRM/src/json.cpp
+++ b/protocols/FacebookRM/src/json.cpp
@@ -3,7 +3,7 @@
Facebook plugin for Miranda Instant Messenger
_____________________________________________
-Copyright © 2009-11 Michal Zelinka, 2011-15 Robert Pösel
+Copyright � 2009-11 Michal Zelinka, 2011-15 Robert P�sel
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -731,20 +731,26 @@ int facebook_json_parser::parse_messages(std::string *data, std::vector< faceboo
continue;
} else if (t == "ticker_update:home") {
JSONNODE *actor_ = json_get(it, "actor");
- JSONNODE *time_ = json_get(it, "time");
+ JSONNODE *time_ = json_get(it, "story_time");
JSONNODE *story_ = json_get(it, "story_xhp");
std::string text = json_as_pstring(story_);
- text = utils::text::slashu_to_utf8(text);
+ text = utils::text::html_entities_decode(utils::text::slashu_to_utf8(text));
- text = utils::text::trim(
- utils::text::html_entities_decode(
- utils::text::source_get_value(&text, 3, "<h5", ">", "</h5>")));
+ std::string url = utils::text::source_get_value(&text, 3, "\"tickerStoryLink\"", "href=\"", "\"");
+ std::string story_type = utils::text::source_get_value2(&text, "\"type\":\"", "\"");
+ std::string story_class = utils::text::source_get_value2(&text, "\"entstory_class\":\"", "\"");
- // TODO: notify ticker updates
- /* if (!text.empty()) {
- proto->NotifyEvent()
- }*/
+ text = utils::text::trim(utils::text::remove_html(text));
+
+ std::string userId = (actor_ != NULL ? json_as_pstring(actor_) : "");
+
+ MCONTACT hContact = proto->ContactIDToHContact(userId);
+
+ proto->debugLogA("+++ Got ticker type='%s' class='%s'", story_type.c_str(), story_class.c_str());
+
+ if (!text.empty())
+ proto->NotifyEvent(proto->m_tszUserName, ptrT(mir_utf8decodeT(text.c_str())), hContact, FACEBOOK_EVENT_TICKER, &url);
}
else if (t == "mercury") {
// rename multi user chat, video call, ...