Browse Source

More documentation and tidying

tags/v0.2.1
Chris Smith 5 years ago
parent
commit
580a351dda
30 changed files with 46 additions and 37 deletions
  1. 1
    1
      build.gradle.kts
  2. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/events/CapabilitiesHandler.kt
  3. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/events/ChannelStateHandler.kt
  4. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/events/EventHandler.kt
  5. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/events/EventUtils.kt
  6. 2
    1
      src/main/kotlin/com/dmdirc/ktirc/events/Events.kt
  7. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/events/PingHandler.kt
  8. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/events/ServerStateHandler.kt
  9. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/events/UserStateHandler.kt
  10. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/io/CaseMapping.kt
  11. 2
    2
      src/main/kotlin/com/dmdirc/ktirc/io/LineBufferedSocket.kt
  12. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/io/MessageHandler.kt
  13. 2
    2
      src/main/kotlin/com/dmdirc/ktirc/io/MessageParser.kt
  14. 2
    2
      src/main/kotlin/com/dmdirc/ktirc/messages/CapabilityProcessor.kt
  15. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/messages/ISupportProcessor.kt
  16. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/messages/JoinProcessor.kt
  17. 13
    5
      src/main/kotlin/com/dmdirc/ktirc/messages/MessageBuilders.kt
  18. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/messages/MessageProcessor.kt
  19. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/messages/PartProcessor.kt
  20. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/messages/PingProcessor.kt
  21. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/messages/PrivmsgProcessor.kt
  22. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/messages/QuitProcessor.kt
  23. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/messages/WelcomeProcessor.kt
  24. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/model/CaseInsensitiveSet.kt
  25. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/model/IrcMessage.kt
  26. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/model/Server.kt
  27. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/model/ServerState.kt
  28. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/model/User.kt
  29. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/model/UserState.kt
  30. 1
    1
      src/main/kotlin/com/dmdirc/ktirc/util/Logging.kt

+ 1
- 1
build.gradle.kts View File

@@ -141,4 +141,4 @@ bintray {
141 141
         setLicenses("MIT")
142 142
         vcsUrl = "https://g.c5h.io/public/ktirc"
143 143
     }
144
-}
144
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/events/CapabilitiesHandler.kt View File

@@ -51,4 +51,4 @@ internal class CapabilitiesHandler : EventHandler {
51 51
         }
52 52
     }
53 53
 
54
-}
54
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/events/ChannelStateHandler.kt View File

@@ -64,4 +64,4 @@ internal class ChannelStateHandler : EventHandler {
64 64
         client.channelState.forEach { it.users -= event.user.nickname }
65 65
     }
66 66
 
67
-}
67
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/events/EventHandler.kt View File

@@ -15,4 +15,4 @@ internal val eventHandlers = listOf(
15 15
         PingHandler(),
16 16
         ServerStateHandler(),
17 17
         UserStateHandler()
18
-)
18
+)

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/events/EventUtils.kt View File

@@ -8,7 +8,7 @@ internal fun ChannelNamesReceived.toModesAndUsers(client: IrcClient) = sequence
8 8
     val modePrefixes = client.serverState.features[ServerFeature.ModePrefixes]!!
9 9
     for (user in names) {
10 10
         user.takeWhile { modePrefixes.isPrefix(it) }.let { prefix ->
11
-            yield(Pair(modePrefixes.getModes(prefix), user.substring(prefix.length).asUser()))
11
+            yield(modePrefixes.getModes(prefix) to user.substring(prefix.length).asUser())
12 12
         }
13 13
     }
14 14
 }.toList()

+ 2
- 1
src/main/kotlin/com/dmdirc/ktirc/events/Events.kt View File

@@ -5,6 +5,7 @@ import com.dmdirc.ktirc.model.ServerFeatureMap
5 5
 import com.dmdirc.ktirc.model.User
6 6
 import java.time.LocalDateTime
7 7
 
8
+/** Base class for all events. */
8 9
 sealed class IrcEvent(val time: LocalDateTime)
9 10
 
10 11
 /** Raised when the server initially welcomes us to the IRC network. */
@@ -45,4 +46,4 @@ class ServerCapabilitiesReceived(time: LocalDateTime, val capabilities: Map<Capa
45 46
 class ServerCapabilitiesAcknowledged(time: LocalDateTime, val capabilities: Map<Capability, String>) : IrcEvent(time)
46 47
 
47 48
 /** Raised when the server has finished sending us capabilities. */
48
-class ServerCapabilitiesFinished(time: LocalDateTime) : IrcEvent(time)
49
+class ServerCapabilitiesFinished(time: LocalDateTime) : IrcEvent(time)

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/events/PingHandler.kt View File

@@ -11,4 +11,4 @@ internal class PingHandler : EventHandler {
11 11
         }
12 12
     }
13 13
 
14
-}
14
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/events/ServerStateHandler.kt View File

@@ -11,4 +11,4 @@ internal class ServerStateHandler : EventHandler {
11 11
         }
12 12
     }
13 13
 
14
-}
14
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/events/UserStateHandler.kt View File

@@ -45,4 +45,4 @@ internal class UserStateHandler : EventHandler {
45 45
         state -= event.user
46 46
     }
47 47
 
48
-}
48
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/io/CaseMapping.kt View File

@@ -23,4 +23,4 @@ enum class CaseMapping(private val lowerToUpperMapping: Pair<IntRange, IntRange>
23 23
     private fun areEquivalent(char1: Char, char2: Char) = char1 == char2 || char1.toUpper() == char2.toUpper()
24 24
     private fun Char.toUpper() = this + if (this.toInt() in lowerToUpperMapping.first) lowerToUpperMapping.second.start - lowerToUpperMapping.first.start else 0
25 25
 
26
-}
26
+}

+ 2
- 2
src/main/kotlin/com/dmdirc/ktirc/io/LineBufferedSocket.kt View File

@@ -42,7 +42,7 @@ internal class KtorLineBufferedSocket(private val host: String, private val port
42 42
         const val LINE_FEED = '\n'.toByte()
43 43
     }
44 44
 
45
-    public var tlsTrustManager: X509TrustManager? = null
45
+    var tlsTrustManager: X509TrustManager? = null
46 46
 
47 47
     private val log by logger()
48 48
 
@@ -100,4 +100,4 @@ internal class KtorLineBufferedSocket(private val host: String, private val port
100 100
             index = count + index - start
101 101
         }
102 102
     }
103
-}
103
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/io/MessageHandler.kt View File

@@ -28,4 +28,4 @@ internal class MessageHandler(private val processors: List<MessageProcessor>, va
28 28
         null
29 29
     }
30 30
 
31
-}
31
+}

+ 2
- 2
src/main/kotlin/com/dmdirc/ktirc/io/MessageParser.kt View File

@@ -89,7 +89,7 @@ internal class MessageParser {
89 89
             val index = tag.indexOf('=')
90 90
             val name = if (index == -1) tag else tag.substring(0 until index)
91 91
             messageTags[name]?.let {
92
-                yield(Pair(it, if (index == -1) "" else tag.substring(index + 1).unescapeTagValue()))
92
+                yield(it to if (index == -1) "" else tag.substring(index + 1).unescapeTagValue())
93 93
             } ?: log.severe { "Unknown message tag: $name"}
94 94
         }
95 95
     }.toMap()
@@ -175,4 +175,4 @@ internal class CursorByteArray(private val data: ByteArray, var cursor: Int = 0)
175 175
         return cursor
176 176
     }
177 177
 
178
-}
178
+}

+ 2
- 2
src/main/kotlin/com/dmdirc/ktirc/messages/CapabilityProcessor.kt View File

@@ -41,8 +41,8 @@ internal class CapabilityProcessor : MessageProcessor {
41 41
             val index = cap.indexOf('=')
42 42
             val name = if (index == -1) cap else cap.substring(0 until index)
43 43
             val value = if (index == -1) "" else cap.substring(index + 1)
44
-            capabilities[name]?.let { yield(Pair(it, value)) } ?: log.info { "Unknown capability: $name (value: $value)" }
44
+            capabilities[name]?.let { yield(it to value) } ?: log.info { "Unknown capability: $name (value: $value)" }
45 45
         }
46 46
     }.toMap()
47 47
 
48
-}
48
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/messages/ISupportProcessor.kt View File

@@ -68,4 +68,4 @@ internal class ISupportProcessor : MessageProcessor {
68 68
         }
69 69
     }
70 70
 
71
-}
71
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/messages/JoinProcessor.kt View File

@@ -20,4 +20,4 @@ internal class JoinProcessor : MessageProcessor {
20 20
         }
21 21
     }
22 22
 
23
-}
23
+}

+ 13
- 5
src/main/kotlin/com/dmdirc/ktirc/messages/MessageBuilders.kt View File

@@ -1,10 +1,18 @@
1 1
 package com.dmdirc.ktirc.messages
2 2
 
3
-fun capabilityEndMessage() = "CAP END"
4
-fun capabilityRequestMessage(capabilities: List<String>) = "CAP REQ :${capabilities.joinToString(" ")}"
3
+/** Construct a message indicating the end of capability negotiation. */
4
+internal fun capabilityEndMessage() = "CAP END"
5
+/** Construct a message requesting the specified caps are enabled. */
6
+internal fun capabilityRequestMessage(capabilities: List<String>) = "CAP REQ :${capabilities.joinToString(" ")}"
7
+/** Construct a message to join the given channel. */
5 8
 fun joinMessage(channel: String) = "JOIN :$channel"
9
+/** Construct a message to change to the given nickname. */
6 10
 fun nickMessage(nick: String) = "NICK :$nick"
7
-fun passwordMessage(password: String) = "PASS :$password"
8
-fun pongMessage(nonce: ByteArray) = "PONG :${String(nonce)}"
11
+/** Construct a message to provide the connection password to the server. */
12
+internal fun passwordMessage(password: String) = "PASS :$password"
13
+/** Construct a message to reply to a PING event. */
14
+internal fun pongMessage(nonce: ByteArray) = "PONG :${String(nonce)}"
15
+/** Construct a message to send a private message to a user or channel. */
9 16
 fun privmsgMessage(target: String, message: String) = "PRIVMSG $target :$message"
10
-fun userMessage(userName: String, localHostName: String, serverHostName: String, realName: String) = "USER $userName $localHostName $serverHostName :$realName"
17
+/** Construct a message to register a user with the server. */
18
+internal fun userMessage(userName: String, localHostName: String, serverHostName: String, realName: String) = "USER $userName $localHostName $serverHostName :$realName"

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/messages/MessageProcessor.kt View File

@@ -27,4 +27,4 @@ internal val messageProcessors = setOf(
27 27
         PrivmsgProcessor(),
28 28
         QuitProcessor(),
29 29
         WelcomeProcessor()
30
-)
30
+)

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/messages/PartProcessor.kt View File

@@ -17,4 +17,4 @@ internal class PartProcessor : MessageProcessor {
17 17
     private val IrcMessage.reason
18 18
         get() = if (params.size > 1) String(params[1]) else ""
19 19
 
20
-}
20
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/messages/PingProcessor.kt View File

@@ -9,4 +9,4 @@ internal class PingProcessor : MessageProcessor {
9 9
 
10 10
     override fun process(message: IrcMessage) = listOf(PingReceived(message.time, message.params[0]))
11 11
 
12
-}
12
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/messages/PrivmsgProcessor.kt View File

@@ -11,4 +11,4 @@ internal class PrivmsgProcessor : MessageProcessor {
11 11
         listOf(MessageReceived(message.time, user, String(message.params[0]), String(message.params[1])))
12 12
     } ?: emptyList()
13 13
 
14
-}
14
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/messages/QuitProcessor.kt View File

@@ -14,4 +14,4 @@ internal class QuitProcessor : MessageProcessor {
14 14
     private val IrcMessage.reason
15 15
         get() = if (params.isNotEmpty()) String(params[0]) else ""
16 16
 
17
-}
17
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/messages/WelcomeProcessor.kt View File

@@ -9,4 +9,4 @@ internal class WelcomeProcessor : MessageProcessor {
9 9
 
10 10
     override fun process(message: IrcMessage) = listOf(ServerWelcome(message.time, String(message.params[0])))
11 11
 
12
-}
12
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/model/CaseInsensitiveSet.kt View File

@@ -28,4 +28,4 @@ class CaseInsensitiveSet(private val caseMappingProvider: () -> CaseMapping) : I
28 28
 
29 29
     fun isEmpty() = items.isEmpty()
30 30
 
31
-}
31
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/model/IrcMessage.kt View File

@@ -32,4 +32,4 @@ sealed class MessageTag(val name: String) {
32 32
 
33 33
 internal val messageTags: Map<String, MessageTag> by lazy {
34 34
     MessageTag::class.nestedClasses.map { it.objectInstance as MessageTag }.associateBy { it.name }
35
-}
35
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/model/Server.kt View File

@@ -1,3 +1,3 @@
1 1
 package com.dmdirc.ktirc.model
2 2
 
3
-data class Server(val host: String, val port: Int, val tls: Boolean = false, val password: String? = null)
3
+data class Server(val host: String, val port: Int, val tls: Boolean = false, val password: String? = null)

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/model/ServerState.kt View File

@@ -47,4 +47,4 @@ sealed class ServerFeature<T : Any>(val name: String, val type: KClass<T>, val d
47 47
 
48 48
 internal val serverFeatures: Map<String, ServerFeature<*>> by lazy {
49 49
     ServerFeature::class.nestedClasses.map { it.objectInstance as ServerFeature<*> }.associateBy { it.name }
50
-}
50
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/model/User.kt View File

@@ -32,4 +32,4 @@ internal fun String.asUser(): User {
32 32
     } else {
33 33
         User(this)
34 34
     }
35
-}
35
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/model/UserState.kt View File

@@ -38,4 +38,4 @@ class KnownUser(caseMappingProvider: () -> CaseMapping, val details: User) {
38 38
     operator fun minusAssign(channel: String) { channels -= channel }
39 39
     operator fun contains(channel: String) = channel in channels
40 40
 
41
-}
41
+}

+ 1
- 1
src/main/kotlin/com/dmdirc/ktirc/util/Logging.kt View File

@@ -9,4 +9,4 @@ private fun <T: Any> logger(forClass: KClass<T>): Logger {
9 9
 
10 10
 internal fun <R : Any> R.logger(): Lazy<Logger> {
11 11
     return lazy { logger(this::class) }
12
-}
12
+}

Loading…
Cancel
Save