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

Commit 1f20259

Browse files
author
Jonas
committed
Implement serial and twitch test. Closes codeoverflow-org/chatoverflow#42
1 parent fa9e584 commit 1f20259

File tree

6 files changed

+82
-16
lines changed

6 files changed

+82
-16
lines changed

discordtest/src/main/scala/discordTestPlugin.scala

Whitespace-only changes.

testall/src/main/scala/org/codeoverflow/plugins/testall/testallPlugin.scala

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,28 @@
11
package org.codeoverflow.plugins.testall
22

33
import org.codeoverflow.chatoverflow.api.plugin.{PluginImpl, PluginManager}
4-
import org.codeoverflow.plugins.testall.tests.{discordtest, filetest}
4+
import org.codeoverflow.plugins.testall.tests.{discordtest, filetest, serialtest, twitchtest}
55

66

77
class testallPlugin(manager: PluginManager) extends PluginImpl(manager) {
88

99
private val tests: Seq[test] = Seq(
1010
new discordtest(this,
11-
require.input.discordChat("reqDiscordIn", "Discord input", true),
12-
require.output.discordChat("reqDiscordOut", "Discord output", true),
13-
require.parameter.string("reqDiscordChannel", "The id of the channel to which the bot should connect", true)
11+
require.input.discordChat("discordIn", "Discord input", true),
12+
require.output.discordChat("discordOut", "Discord output", true),
13+
require.parameter.string("discordChannel", "The id of the channel to which the bot should connect", true)
1414
),
1515
new filetest(this,
1616
require.input.file("fileIn", "File input", true),
1717
require.output.file("fileOut", "File output", true)
18+
),
19+
new serialtest(this,
20+
require.input.serial("serialIn", "Serial Port input", true),
21+
require.output.serial("serialOut", "Serial Port output", true)
22+
),
23+
new twitchtest(this,
24+
require.input.twitchChat("twitchIn", "Twitch chat input #skate702", true),
25+
require.output.twitchChat("twitchOut", "Twitch chat output #skate702", true)
1826
)
1927
//Add more tests here!
2028
)

testall/src/main/scala/org/codeoverflow/plugins/testall/tests/discordtest.scala

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ package org.codeoverflow.plugins.testall.tests
22

33
import java.awt.Color
44

5-
import org.codeoverflow.chatoverflow.api.io.dto.chat.discord.{DiscordChatMessage, DiscordEmbed}
5+
import org.codeoverflow.chatoverflow.api.io.dto.chat.discord.DiscordEmbed
6+
import org.codeoverflow.chatoverflow.api.io.event.chat.discord.{DiscordChatMessageDeleteEvent, DiscordChatMessageEditEvent, DiscordChatMessageReceiveEvent}
67
import org.codeoverflow.chatoverflow.api.io.input.chat.DiscordChatInput
78
import org.codeoverflow.chatoverflow.api.io.output.chat.DiscordChatOutput
89
import org.codeoverflow.chatoverflow.api.io.parameter.StringParameter
@@ -18,7 +19,7 @@ import scala.collection.JavaConverters._
1819
class discordtest(val plugin: testallPlugin,
1920
val in: Requirement[DiscordChatInput],
2021
val out: Requirement[DiscordChatOutput],
21-
val channel: Requirement[StringParameter]) extends test(plugin, in, out) {
22+
val channel: Requirement[StringParameter]) extends test(plugin, in, out, channel) {
2223

2324
override def name: String = "Discord test"
2425

@@ -27,9 +28,9 @@ class discordtest(val plugin: testallPlugin,
2728
out.get.setChannel(channel.get.get)
2829
println(s"Input connected to channel ${in.get().getChannelId}")
2930
println(s"Output connected to channel ${out.get().getChannelId}")
30-
in.get.registerMessageHandler(onMessage)
31-
in.get.registerMessageEditHandler(onMessageEdit)
32-
in.get.registerMessageDeleteHandler(onMessageDelete)
31+
in.get.registerEventHandler(onMessage, classOf[DiscordChatMessageReceiveEvent])
32+
in.get.registerChatMessageEditEventHandler(onMessageEdit)
33+
in.get.registerChatMessageDeleteEventHandler(onMessageDelete)
3334
out.get.sendChatMessage("Hey I'm working! \uD83C\uDF89")
3435
out.get().sendFile("../config/config.xml")
3536
out.get().sendFile("allowed_file.png")
@@ -41,8 +42,8 @@ class discordtest(val plugin: testallPlugin,
4142
log("Started successfully")
4243
}
4344

44-
def onMessage(message: DiscordChatMessage): Unit = {
45-
if (message.getMessage == "/messages") {
45+
def onMessage(event: DiscordChatMessageReceiveEvent): Unit = {
46+
if (event.getMessage.getMessage == "/messages") {
4647
var s = "**Recent messages:**\n"
4748
s += in.get.getLastMessages(1000*60).asScala.mkString("\n")
4849
s += "\n\n**Recent private messages:**\n"
@@ -52,12 +53,12 @@ class discordtest(val plugin: testallPlugin,
5253
}
5354

5455

55-
def onMessageEdit(oldMessage: DiscordChatMessage, newMessage: DiscordChatMessage): Unit = {
56-
log("Message #${oldMessage.getId} was edited from '$oldMessage' to '$newMessage'")
56+
def onMessageEdit(event: DiscordChatMessageEditEvent): Unit = {
57+
log(s"Message #${event.getMessage.getId} was edited from '${event.getOldMessage.getMessage}' to '${event.getMessage.getMessage}'")
5758
}
5859

59-
def onMessageDelete(message: DiscordChatMessage): Unit = {
60-
log("Message #${message.getId} was deleted (content: $message)")
60+
def onMessageDelete(event: DiscordChatMessageDeleteEvent): Unit = {
61+
log(s"Message #${event.getMessage.getId} was deleted (content: ${event.getMessage.getMessage})")
6162
}
6263

6364
override def loop(): Unit = {}

testall/src/main/scala/org/codeoverflow/plugins/testall/tests/filetest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,5 @@ class filetest(val plugin: testallPlugin, val in: Requirement[FileInput], val ou
5656

5757
override def loop(): Unit = {}
5858

59-
override def shutdown(): Unit = {}
59+
override def shutdown(): Unit = log("Stopped")
6060
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.codeoverflow.plugins.testall.tests
2+
3+
import org.codeoverflow.chatoverflow.api.io.input.SerialInput
4+
import org.codeoverflow.chatoverflow.api.io.output.SerialOutput
5+
import org.codeoverflow.chatoverflow.api.plugin.configuration.Requirement
6+
import org.codeoverflow.plugins.testall.{test, testallPlugin}
7+
8+
class serialtest(val plugin: testallPlugin,
9+
val in: Requirement[SerialInput],
10+
val out: Requirement[SerialOutput]) extends test(plugin, in, out) {
11+
12+
override def name: String = "Serial Connection test"
13+
14+
override def setup(): Unit = {
15+
in.get().registerDataAvailableEventHandler(e => log(e.getAsString))
16+
out.get().getPrintStream.println("#Hello World!")
17+
}
18+
19+
override def loop(): Unit = {}
20+
21+
override def shutdown(): Unit = log("Stopped")
22+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.codeoverflow.plugins.testall.tests
2+
3+
import org.codeoverflow.chatoverflow.api.io.event.chat.twitch.TwitchChatMessageReceiveEvent
4+
import org.codeoverflow.chatoverflow.api.io.input.chat.TwitchChatInput
5+
import org.codeoverflow.chatoverflow.api.io.output.chat.TwitchChatOutput
6+
import org.codeoverflow.chatoverflow.api.plugin.configuration.Requirement
7+
import org.codeoverflow.plugins.testall.{test, testallPlugin}
8+
9+
class twitchtest(val plugin: testallPlugin,
10+
val in: Requirement[TwitchChatInput],
11+
val out: Requirement[TwitchChatOutput]) extends test(plugin, in, out) {
12+
13+
override def name: String = "Twitch test"
14+
15+
override def setup(): Unit = {
16+
in.get.setChannel("skate702")
17+
out.get.setChannel("skate702")
18+
in.get.registerChatMessageReceiveEventHandler(onMessage)
19+
out.get.sendChatMessage("Say hi to codeoverflow!")
20+
}
21+
22+
private def onMessage(event: TwitchChatMessageReceiveEvent): Unit = {
23+
val msg = event.getMessage
24+
if (msg.getMessage.toLowerCase.contains("chatoverflow")) {
25+
out.get().sendChatMessage(s"Hi ${msg.getAuthor.getDisplayName}!")
26+
}
27+
}
28+
29+
override def loop(): Unit = {
30+
in.get.getLastMessages(plugin.getLoopInterval)
31+
.forEach(msg => log(s"${msg.getAuthor}: ${msg.getMessage}"))
32+
}
33+
34+
override def shutdown(): Unit = log("Stopped")
35+
}

0 commit comments

Comments
 (0)