Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

Commit 33297e2

Browse files
committed
Add raid events to the api and to tipeeestream
1 parent 835d3d6 commit 33297e2

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

src/main/scala/org/codeoverflow/chatoverflow/requirement/service/tipeeestream/TipeeestreamConnector.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,4 +95,5 @@ object TipeeestreamConnector {
9595
private[tipeeestream] case class DonationEventJSON(json: JSONObject) extends TipeeestreamEventJSON(json)
9696
private[tipeeestream] case class FollowEventJSON(json: JSONObject) extends TipeeestreamEventJSON(json)
9797
private[tipeeestream] case class CheerEventJSON(json: JSONObject) extends TipeeestreamEventJSON(json)
98+
private[tipeeestream] case class RaidEventJSON(json: JSONObject) extends TipeeestreamEventJSON(json)
9899
}

src/main/scala/org/codeoverflow/chatoverflow/requirement/service/tipeeestream/TipeeestreamListener.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class TipeeestreamListener extends EventManager {
1717
case "donation" => call(DonationEventJSON(event))
1818
case "follow" => call(FollowEventJSON(event))
1919
case "cheer" => call(CheerEventJSON(event))
20+
case "raid" => call(RaidEventJSON(event))
2021
case _ =>
2122
})
2223
}

src/main/scala/org/codeoverflow/chatoverflow/requirement/service/tipeeestream/impl/TipeeestreamEventInputImpl.scala

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class TipeeestreamEventInputImpl extends EventInputImpl[TipeeestreamEvent, Tipee
2626
sourceConnector.get.registerEventHandler(onSubscription _)
2727
sourceConnector.get.registerEventHandler(onDonation _)
2828
sourceConnector.get.registerEventHandler(onCheer _)
29+
sourceConnector.get.registerEventHandler(onRaid _)
2930
true
3031
}
3132

@@ -110,14 +111,35 @@ class TipeeestreamEventInputImpl extends EventInputImpl[TipeeestreamEvent, Tipee
110111
call(new TipeeestreamCheerEvent(cheer))
111112
} catch {
112113
case e: JSONException =>
113-
logger warn "Error while parsing follow json:"
114+
logger warn "Error while parsing cheer json:"
114115
logger warn s"${e.getClass.getName} - ${e.getMessage}"
115116
case e: IllegalArgumentException =>
116-
logger warn "Error while parsing follow json:"
117+
logger warn "Error while parsing cheer json:"
117118
logger warn s"${e.getClass.getName} - ${e.getMessage}"
118119
}
119120
}
120121

122+
private def onRaid(eventJson: RaidEventJSON): Unit = {
123+
try {
124+
val event = eventJson.json
125+
val parameter = event.getJSONObject("parameters")
126+
val user = new User(parameter.getString("username"))
127+
val time = OffsetDateTime.parse(event.getString("created_at"), DATE_FORMATTER)
128+
val message = parameter.getString("formattedMessage")
129+
val viewers = event.getInt("formattedAmount")
130+
val raid = new TipeeestreamRaid(user, message, viewers, time)
131+
call(new TipeeestreamRaidEvent(raid))
132+
} catch {
133+
case e: JSONException =>
134+
logger warn "Error while parsing raid json:"
135+
logger warn s"${e.getClass.getName} - ${e.getMessage}"
136+
case e: IllegalArgumentException =>
137+
logger warn "Error while parsing raid json:"
138+
logger warn s"${e.getClass.getName} - ${e.getMessage}"
139+
}
140+
}
141+
142+
121143
override def stop(): Boolean = {
122144
sourceConnector.get.unregisterAllEventListeners
123145
true

0 commit comments

Comments
 (0)