diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2018-08-30 17:01:03 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2018-08-30 17:01:03 +0900 |
commit | 657e64e22adc0a9583cc548e5f2097aa1bcba427 (patch) | |
tree | 034eeb215c86eaf17a96b309282b41527565b40d | |
parent | 723c92644d85ad8a7f1e468a29d9baf40ebd239b (diff) | |
download | SmileEssence-657e64e22adc0a9583cc548e5f2097aa1bcba427.tar.gz |
poepoestreaming fix2018-08-30
-rw-r--r-- | app/src/main/java/net/lacolaco/smileessence/twitter/PoePoeStreaming.kt | 85 |
1 files changed, 48 insertions, 37 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/PoePoeStreaming.kt b/app/src/main/java/net/lacolaco/smileessence/twitter/PoePoeStreaming.kt index 928036cd..5f3c7db8 100644 --- a/app/src/main/java/net/lacolaco/smileessence/twitter/PoePoeStreaming.kt +++ b/app/src/main/java/net/lacolaco/smileessence/twitter/PoePoeStreaming.kt @@ -65,44 +65,55 @@ class PoePoeStreaming(private val world: World) { esr = EventStreamReader(response!!.asStream()) esr.subscribe { event, data -> - when (event) { - "tweet_create_events" -> onTweets(JSONArray(data)) - "favorite_events" -> { - val obj = JSONObject(data) - val tweet = getTweet(obj.getJSONObject("favorited_status")) - val source = getUser(obj.getJSONObject("user")) - tweet.favoriters += source.id - if (tweet.user === world.user) - addToHistory(Event(Event.EnumEvent.FAVORITED, source, tweet)) + try { + when (event) { + "tweet_create_events" -> onTweets(JSONArray(data)) + "favorite_events" -> { + val ary = JSONArray(data) + for (i in 0 until ary.length()) { + val obj = ary.getJSONObject(i) + val tweet = getTweet(obj.getJSONObject("favorited_status")) + val source = getUser(obj.getJSONObject("user")) + tweet.favoriters += source.id + if (tweet.user === world.user) + addToHistory(Event(Event.EnumEvent.FAVORITED, source, tweet)) + } + } + "follow_events" -> { + val ary = JSONArray(data) + for (i in 0 until ary.length()) { + val obj = ary.getJSONObject(i) + val target = getUser(obj.getJSONObject("target")) + val source = getUser(obj.getJSONObject("source")) + if (target === world.user && source !== world.user) + addToHistory(Event(Event.EnumEvent.FOLLOWED, source)) + } + } + "block_events" -> { + // TODO + } + "mute_events" -> { + // TODO + } + "direct_message_events" -> { + // TODO + } + "direct_message_indicate_typing_events" -> { + // TODO + } + "direct_message_mark_read_events" -> { + // TODO + } + "tweet_delete_events" -> { + // TODO + } + "twitter_event_stream_home_timeline" -> onTweets(JSONArray(data)) + "twitter_event_stream_message" -> Logger.warn("usp_message: $data") + else -> Logger.debug("unknown message type: $event=$data") } - "follow_events" -> { - val obj = JSONObject(data) - val target = getUser(obj.getJSONObject("target")) - val source = getUser(obj.getJSONObject("source")) - if (target === world.user && source !== world.user) - addToHistory(Event(Event.EnumEvent.FOLLOWED, source)) - } - "block_events" -> { - // TODO - } - "mute_events" -> { - // TODO - } - "direct_message_events" -> { - // TODO - } - "direct_message_indicate_typing_events" -> { - // TODO - } - "direct_message_mark_read_events" -> { - // TODO - } - "tweet_delete_events" -> { - // TODO - } - "twitter_event_stream_home_timeline" -> onTweets(JSONArray(data)) - "twitter_event_stream_message" -> Logger.warn("usp_message: $data") - else -> Logger.debug("unknown message type: $event=$data") + } catch (e: Exception) { + Logger.debug("failed to process message: $event=$data") + e.printStackTrace() } } } catch (e: Exception) { |