From 78af7fa28b1cb7504ef3fb0487732168505d696f Mon Sep 17 00:00:00 2001 From: Janne Mareike Koschinski <janne@kuschku.de> Date: Sun, 28 Feb 2021 22:13:06 +0100 Subject: [PATCH] Reorder sources --- .../protocol/models/HandshakeMessage.kt | 1 + .../protocol/models/{ => alias}/Alias.kt | 2 +- .../protocol/models/{ => alias}/Command.kt | 4 +- .../models/{ => dcc}/DccIpDetectionMode.kt | 2 +- .../models/{ => dcc}/DccPortSelectionMode.kt | 2 +- .../models/{ => dcc}/NetworkLayerProtocol.kt | 2 +- .../models/{ => dcc}/TransferDirection.kt | 2 +- .../models/{ => dcc}/TransferIdList.kt | 2 +- .../models/{ => dcc}/TransferStatus.kt | 2 +- .../models/{ => network}/ChannelModeType.kt | 2 +- .../models/{ => network}/ChannelModes.kt | 3 +- .../models/{ => network}/ConnectionState.kt | 2 +- .../models/{ => network}/NetworkInfo.kt | 2 +- .../models/{ => network}/NetworkProxy.kt | 2 +- .../models/{ => network}/NetworkServer.kt | 2 +- .../models/{ => network}/PortDefaults.kt | 2 +- .../models/{ => rules}/HighlightNickType.kt | 2 +- .../models/{ => rules}/HighlightRule.kt | 2 +- .../models/{ => setup}/BackendInfo.kt | 2 +- .../{ => setup}/BackendInfoSerializer.kt | 3 +- .../protocol/models/{ => setup}/SetupEntry.kt | 2 +- .../handshake/ClientInitAckSerializer.kt | 2 +- .../quassel/DccIpDetectionModeSerializer.kt | 2 +- .../quassel/DccPortSelectionModeSerializer.kt | 2 +- .../quassel/NetworkInfoSerializer.kt | 4 +- .../quassel/NetworkServerSerializer.kt | 6 +- .../quassel/QHostAddressSerializer.kt | 2 +- .../quassel/TransferDirectionSerializer.kt | 2 +- .../quassel/TransferIdListSerializer.kt | 2 +- .../quassel/TransferStatusSerializer.kt | 2 +- .../protocol/syncables/AliasManager.kt | 4 +- .../protocol/syncables/DccConfig.kt | 4 +- .../syncables/HighlightRuleManager.kt | 4 +- .../protocol/syncables/IgnoreListManager.kt | 185 ++++++++++++++++++ .../protocol/syncables/IrcChannel.kt | 4 +- .../libquassel/protocol/syncables/Network.kt | 6 +- .../syncables/state/AliasManagerState.kt | 4 +- .../syncables/state/DccConfigState.kt | 4 +- .../state/HighlightRuleManagerState.kt | 4 +- .../syncables/state/IrcChannelState.kt | 4 +- .../protocol/syncables/state/NetworkState.kt | 6 +- .../protocol/syncables/stubs/DccConfigStub.kt | 4 +- .../protocol/syncables/stubs/NetworkStub.kt | 2 +- .../syncables/stubs/RpcHandlerStub.kt | 2 +- .../syncables/stubs/TransferManagerStub.kt | 2 +- .../protocol/syncables/stubs/TransferStub.kt | 4 +- .../handshake/ClientInitAckSerializerTest.kt | 4 +- .../DccIpDetectionModeSerializerTest.kt | 2 +- .../DccPortSelectionModeSerializerTest.kt | 2 +- .../quassel/NetworkInfoSerializerTest.kt | 2 +- .../protocol/syncables/NetworkTest.kt | 73 +------ .../libquassel/protocol/testutil/Random.kt | 69 +++++++ 52 files changed, 326 insertions(+), 138 deletions(-) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => alias}/Alias.kt (87%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => alias}/Command.kt (77%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => dcc}/DccIpDetectionMode.kt (94%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => dcc}/DccPortSelectionMode.kt (94%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => dcc}/NetworkLayerProtocol.kt (95%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => dcc}/TransferDirection.kt (92%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => dcc}/TransferIdList.kt (89%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => dcc}/TransferStatus.kt (93%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => network}/ChannelModeType.kt (93%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => network}/ChannelModes.kt (95%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => network}/ConnectionState.kt (93%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => network}/NetworkInfo.kt (96%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => network}/NetworkProxy.kt (92%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => network}/NetworkServer.kt (92%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => network}/PortDefaults.kt (87%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => rules}/HighlightNickType.kt (92%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => rules}/HighlightRule.kt (95%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => setup}/BackendInfo.kt (94%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => setup}/BackendInfoSerializer.kt (95%) rename libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/{ => setup}/SetupEntry.kt (92%) diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HandshakeMessage.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HandshakeMessage.kt index d7203d8..e903e88 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HandshakeMessage.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HandshakeMessage.kt @@ -12,6 +12,7 @@ package de.justjanne.libquassel.protocol.models import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.setup.BackendInfo import de.justjanne.libquassel.protocol.variant.QVariantMap /** diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Alias.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Alias.kt similarity index 87% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Alias.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Alias.kt index 12b18d8..5e39197 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Alias.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Alias.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.alias data class Alias( val name: String?, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Command.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Command.kt similarity index 77% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Command.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Command.kt index a33196e..0045236 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Command.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Command.kt @@ -8,7 +8,9 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.alias + +import de.justjanne.libquassel.protocol.models.BufferInfo data class Command( val buffer: BufferInfo, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccIpDetectionMode.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccIpDetectionMode.kt similarity index 94% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccIpDetectionMode.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccIpDetectionMode.kt index 98da25b..91f8640 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccIpDetectionMode.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccIpDetectionMode.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc /** * Mode for detecting the outgoing IP diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccPortSelectionMode.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccPortSelectionMode.kt similarity index 94% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccPortSelectionMode.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccPortSelectionMode.kt index ac03669..b8de80c 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccPortSelectionMode.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccPortSelectionMode.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc /** * Mode for selecting the port range for DCC diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkLayerProtocol.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/NetworkLayerProtocol.kt similarity index 95% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkLayerProtocol.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/NetworkLayerProtocol.kt index b5b973b..5c571fe 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkLayerProtocol.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/NetworkLayerProtocol.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc /** * Network protocol version diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferDirection.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferDirection.kt similarity index 92% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferDirection.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferDirection.kt index 8f28f6e..c81943b 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferDirection.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferDirection.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc enum class TransferDirection( val value: Int, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferIdList.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferIdList.kt similarity index 89% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferIdList.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferIdList.kt index df0d64c..0eefbe5 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferIdList.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferIdList.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc import java.util.UUID diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferStatus.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferStatus.kt similarity index 93% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferStatus.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferStatus.kt index 5d90f13..7ef95f9 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferStatus.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferStatus.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc enum class TransferStatus( val value: Int, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModeType.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModeType.kt similarity index 93% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModeType.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModeType.kt index 6e0f662..7488fc9 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModeType.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModeType.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network enum class ChannelModeType( /** diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModes.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModes.kt similarity index 95% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModes.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModes.kt index cd07ccf..2b2ddab 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModes.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModes.kt @@ -8,8 +8,9 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network +import de.justjanne.libquassel.protocol.models.QStringList import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.variant.QVariantMap import de.justjanne.libquassel.protocol.variant.into diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ConnectionState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ConnectionState.kt similarity index 93% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ConnectionState.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ConnectionState.kt index a0bfc58..8176f81 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ConnectionState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ConnectionState.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network enum class ConnectionState( /** diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkInfo.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkInfo.kt similarity index 96% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkInfo.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkInfo.kt index efdda29..580fa93 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkInfo.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkInfo.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkProxy.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkProxy.kt similarity index 92% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkProxy.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkProxy.kt index bafa63f..92545a6 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkProxy.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkProxy.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network enum class NetworkProxy( val value: Int, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkServer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkServer.kt similarity index 92% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkServer.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkServer.kt index 953190b..8d5951f 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkServer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkServer.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network data class NetworkServer( val host: String, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/PortDefaults.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/PortDefaults.kt similarity index 87% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/PortDefaults.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/PortDefaults.kt index c7279a2..bcda869 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/PortDefaults.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/PortDefaults.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network enum class PortDefaults( val port: UInt diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightNickType.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightNickType.kt similarity index 92% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightNickType.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightNickType.kt index 8cf451b..01edde5 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightNickType.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightNickType.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.rules enum class HighlightNickType( val value: Int, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightRule.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightRule.kt similarity index 95% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightRule.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightRule.kt index af45a71..22acde7 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightRule.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightRule.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.rules import de.justjanne.libquassel.protocol.util.expression.ExpressionMatch diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfo.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfo.kt similarity index 94% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfo.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfo.kt index 7107355..8b33fe3 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfo.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfo.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.setup /** * Model for storage/authenticator backend configuration diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfoSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfoSerializer.kt similarity index 95% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfoSerializer.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfoSerializer.kt index 23d3086..53ab4ab 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfoSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfoSerializer.kt @@ -8,8 +8,9 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.setup +import de.justjanne.libquassel.protocol.models.QStringList import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.util.collections.triples import de.justjanne.libquassel.protocol.variant.QVariantList diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/SetupEntry.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/SetupEntry.kt similarity index 92% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/SetupEntry.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/SetupEntry.kt index e5ce295..2b7b112 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/SetupEntry.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/SetupEntry.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.setup import de.justjanne.libquassel.protocol.variant.QVariant_ diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializer.kt index 5366f5c..a9d6048 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializer.kt @@ -15,9 +15,9 @@ import de.justjanne.bitflags.toBits import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.features.LegacyFeature import de.justjanne.libquassel.protocol.features.QuasselFeatureName -import de.justjanne.libquassel.protocol.models.BackendInfoSerializer import de.justjanne.libquassel.protocol.models.HandshakeMessage import de.justjanne.libquassel.protocol.models.QStringList +import de.justjanne.libquassel.protocol.models.setup.BackendInfoSerializer import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.serializers.HandshakeSerializer import de.justjanne.libquassel.protocol.variant.QVariantList diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializer.kt index 90cb491..1c2ca33 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.DccIpDetectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccIpDetectionMode import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.UByteSerializer import java.nio.ByteBuffer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializer.kt index 01c9f5c..14a151d 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.DccPortSelectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccPortSelectionMode import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.UByteSerializer import java.nio.ByteBuffer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializer.kt index ebcb290..142fb76 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializer.kt @@ -12,11 +12,11 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.NetworkInfo -import de.justjanne.libquassel.protocol.models.NetworkServer import de.justjanne.libquassel.protocol.models.QStringList import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.NetworkInfo +import de.justjanne.libquassel.protocol.models.network.NetworkServer import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkServerSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkServerSerializer.kt index 4b1beac..70ca521 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkServerSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkServerSerializer.kt @@ -12,9 +12,9 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.NetworkProxy -import de.justjanne.libquassel.protocol.models.NetworkServer -import de.justjanne.libquassel.protocol.models.PortDefaults +import de.justjanne.libquassel.protocol.models.network.NetworkProxy +import de.justjanne.libquassel.protocol.models.network.NetworkServer +import de.justjanne.libquassel.protocol.models.network.PortDefaults import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.QVariantMapSerializer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/QHostAddressSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/QHostAddressSerializer.kt index 12970e1..f25f255 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/QHostAddressSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/QHostAddressSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.NetworkLayerProtocol +import de.justjanne.libquassel.protocol.models.dcc.NetworkLayerProtocol import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.UByteSerializer import java.net.Inet4Address diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferDirectionSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferDirectionSerializer.kt index 2cb8598..aa68d05 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferDirectionSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferDirectionSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.TransferDirection +import de.justjanne.libquassel.protocol.models.dcc.TransferDirection import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.IntSerializer import java.nio.ByteBuffer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferIdListSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferIdListSerializer.kt index 396109a..b7a97a0 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferIdListSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferIdListSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.TransferIdList +import de.justjanne.libquassel.protocol.models.dcc.TransferIdList import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.IntSerializer import de.justjanne.libquassel.protocol.serializers.qt.UuidSerializer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferStatusSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferStatusSerializer.kt index 9d93c21..e14adc1 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferStatusSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferStatusSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.TransferStatus +import de.justjanne.libquassel.protocol.models.dcc.TransferStatus import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.IntSerializer import java.nio.ByteBuffer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/AliasManager.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/AliasManager.kt index 957bb11..281c348 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/AliasManager.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/AliasManager.kt @@ -10,10 +10,10 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.Alias import de.justjanne.libquassel.protocol.models.BufferInfo -import de.justjanne.libquassel.protocol.models.Command import de.justjanne.libquassel.protocol.models.QStringList +import de.justjanne.libquassel.protocol.models.alias.Alias +import de.justjanne.libquassel.protocol.models.alias.Command import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.syncables.state.AliasManagerState import de.justjanne.libquassel.protocol.syncables.stubs.AliasManagerStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/DccConfig.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/DccConfig.kt index 0127d7c..8434fe2 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/DccConfig.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/DccConfig.kt @@ -10,8 +10,8 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.DccIpDetectionMode -import de.justjanne.libquassel.protocol.models.DccPortSelectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccIpDetectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccPortSelectionMode import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.state.DccConfigState diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/HighlightRuleManager.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/HighlightRuleManager.kt index a5fac79..17f695a 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/HighlightRuleManager.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/HighlightRuleManager.kt @@ -10,9 +10,9 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.HighlightNickType -import de.justjanne.libquassel.protocol.models.HighlightRule import de.justjanne.libquassel.protocol.models.QStringList +import de.justjanne.libquassel.protocol.models.rules.HighlightNickType +import de.justjanne.libquassel.protocol.models.rules.HighlightRule import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.syncables.state.HighlightRuleManagerState import de.justjanne.libquassel.protocol.syncables.stubs.HighlightRuleManagerStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IgnoreListManager.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IgnoreListManager.kt index 30254bc..5a309b6 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IgnoreListManager.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IgnoreListManager.kt @@ -9,3 +9,188 @@ */ package de.justjanne.libquassel.protocol.syncables + +import de.justjanne.libquassel.protocol.models.QStringList +import de.justjanne.libquassel.protocol.models.flags.MessageTypes +import de.justjanne.libquassel.protocol.models.rules.IgnoreRule +import de.justjanne.libquassel.protocol.models.rules.IgnoreType +import de.justjanne.libquassel.protocol.models.rules.ScopeType +import de.justjanne.libquassel.protocol.models.rules.StrictnessType +import de.justjanne.libquassel.protocol.models.types.QtType +import de.justjanne.libquassel.protocol.syncables.state.IgnoreListManagerState +import de.justjanne.libquassel.protocol.syncables.stubs.IgnoreListManagerStub +import de.justjanne.libquassel.protocol.util.update +import de.justjanne.libquassel.protocol.variant.QVariantList +import de.justjanne.libquassel.protocol.variant.QVariantMap +import de.justjanne.libquassel.protocol.variant.into +import de.justjanne.libquassel.protocol.variant.qVariant + +class IgnoreListManager( + session: Session? = null, + state: IgnoreListManagerState = IgnoreListManagerState() +) : StatefulSyncableObject<IgnoreListManagerState>(session, "IgnoreListManager", state), + IgnoreListManagerStub { + override fun toVariantMap() = mapOf( + "IgnoreList" to qVariant( + mapOf( + "ignoreType" to qVariant( + state().rules.map { + qVariant(it.type.value, QtType.Int) + }, + QtType.QVariantList + ), + "ignoreRule" to qVariant( + state().rules.map(IgnoreRule::ignoreRule), + QtType.QStringList + ), + "isRegEx" to qVariant( + state().rules.map { + qVariant(it.isRegEx, QtType.Bool) + }, + QtType.QVariantList + ), + "strictness" to qVariant( + state().rules.map { + qVariant(it.strictness.value, QtType.Int) + }, + QtType.QVariantList + ), + "scope" to qVariant( + state().rules.map { + qVariant(it.scope.value, QtType.Int) + }, + QtType.QVariantList + ), + "isActive" to qVariant( + state().rules.map { + qVariant(it.isEnabled, QtType.Bool) + }, + QtType.QVariantList + ), + "scopeRule" to qVariant( + state().rules.map(IgnoreRule::scopeRule), + QtType.QStringList + ), + ), + QtType.QVariantMap + ) + ) + + override fun fromVariantMap(properties: QVariantMap) { + val ignoreRules = properties["IgnoreList"].into<QVariantMap>().orEmpty() + + val ignoreTypeList = ignoreRules["ignoreType"].into<QVariantList>().orEmpty() + val ignoreRuleList = ignoreRules["ignoreRule"].into<QStringList>().orEmpty() + val isRegExList = ignoreRules["isRegEx"].into<QVariantList>().orEmpty() + val strictnessList = ignoreRules["strictness"].into<QVariantList>().orEmpty() + val isEnabledList = ignoreRules["isActive"].into<QVariantList>().orEmpty() + val scopeList = ignoreRules["scope"].into<QVariantList>().orEmpty() + val scopeRuleList = ignoreRules["scopeRule"].into<QStringList>().orEmpty() + + require(ignoreTypeList.size == ignoreRuleList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, ignoreRule=${ignoreRuleList.size}" + } + require(ignoreTypeList.size == isRegExList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, isRegExList=${isRegExList.size}" + } + require(ignoreTypeList.size == strictnessList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, strictnessList=${strictnessList.size}" + } + require(ignoreTypeList.size == isEnabledList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, isEnabledList=${isEnabledList.size}" + } + require(ignoreTypeList.size == scopeList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, scopeList=${scopeList.size}" + } + require(ignoreTypeList.size == scopeRuleList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, scopeRuleList=${scopeRuleList.size}" + } + + state.update { + copy( + rules = List(ignoreTypeList.size) { + IgnoreRule( + type = ignoreTypeList[it].into<Int>()?.let(IgnoreType::of) + ?: IgnoreType.SenderIgnore, + ignoreRule = ignoreRuleList[it] ?: "", + isRegEx = isRegExList[it].into(false), + strictness = strictnessList[it].into<Int>()?.let(StrictnessType::of) + ?: StrictnessType.UnmatchedStrictness, + isEnabled = isEnabledList[it].into(false), + scope = scopeList[it].into<Int>()?.let(ScopeType::of) + ?: ScopeType.GlobalScope, + scopeRule = scopeRuleList[it] ?: "", + ) + } + ) + } + } + + fun indexOf(ignoreRule: String?): Int = state().indexOf(ignoreRule) + fun contains(ignoreRule: String?) = state().contains(ignoreRule) + + fun isEmpty() = state().isEmpty() + fun count() = state().count() + fun removeAt(index: Int) { + state.update { + copy(rules = rules.drop(index)) + } + } + + override fun addIgnoreListItem( + type: Int, + ignoreRule: String?, + isRegEx: Boolean, + strictness: Int, + scope: Int, + scopeRule: String?, + isActive: Boolean + ) { + if (contains(ignoreRule)) { + return + } + + state.update { + copy( + rules = rules + IgnoreRule( + type = IgnoreType.of(type) ?: return, + ignoreRule = ignoreRule ?: "", + isRegEx = isRegEx, + strictness = StrictnessType.of(strictness) ?: return, + scope = ScopeType.of(scope) ?: return, + scopeRule = scopeRule ?: "", + isEnabled = isActive + ) + ) + } + + super.addIgnoreListItem(type, ignoreRule, isRegEx, strictness, scope, scopeRule, isActive) + } + + override fun removeIgnoreListItem(ignoreRule: String?) { + removeAt(indexOf(ignoreRule)) + + super.removeIgnoreListItem(ignoreRule) + } + + override fun toggleIgnoreRule(ignoreRule: String?) { + state.update { + copy( + rules = rules.map { + if (it.ignoreRule != ignoreRule) it + else it.copy(isEnabled = !it.isEnabled) + } + ) + } + + super.toggleIgnoreRule(ignoreRule) + } + + fun match( + msgContents: String, + msgSender: String, + msgType: MessageTypes, + network: String, + bufferName: String + ) = state().match(msgContents, msgSender, msgType, network, bufferName) +} diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IrcChannel.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IrcChannel.kt index 22b55ce..3b6eae0 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IrcChannel.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IrcChannel.kt @@ -10,9 +10,9 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.ChannelModeType -import de.justjanne.libquassel.protocol.models.ChannelModes import de.justjanne.libquassel.protocol.models.QStringList +import de.justjanne.libquassel.protocol.models.network.ChannelModeType +import de.justjanne.libquassel.protocol.models.network.ChannelModes import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.syncables.state.IrcChannelState import de.justjanne.libquassel.protocol.syncables.stubs.IrcChannelStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/Network.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/Network.kt index cee2ac6..16baabf 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/Network.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/Network.kt @@ -10,11 +10,11 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.ConnectionState -import de.justjanne.libquassel.protocol.models.NetworkInfo -import de.justjanne.libquassel.protocol.models.NetworkServer import de.justjanne.libquassel.protocol.models.QStringList import de.justjanne.libquassel.protocol.models.ids.IdentityId +import de.justjanne.libquassel.protocol.models.network.ConnectionState +import de.justjanne.libquassel.protocol.models.network.NetworkInfo +import de.justjanne.libquassel.protocol.models.network.NetworkServer import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.serializers.qt.StringSerializerUtf8 diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/AliasManagerState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/AliasManagerState.kt index 94054b6..9634cae 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/AliasManagerState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/AliasManagerState.kt @@ -10,9 +10,9 @@ package de.justjanne.libquassel.protocol.syncables.state -import de.justjanne.libquassel.protocol.models.Alias import de.justjanne.libquassel.protocol.models.BufferInfo -import de.justjanne.libquassel.protocol.models.Command +import de.justjanne.libquassel.protocol.models.alias.Alias +import de.justjanne.libquassel.protocol.models.alias.Command import de.justjanne.libquassel.protocol.util.expansion.Expansion data class AliasManagerState( diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/DccConfigState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/DccConfigState.kt index 09f14fd..8f6646f 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/DccConfigState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/DccConfigState.kt @@ -10,8 +10,8 @@ package de.justjanne.libquassel.protocol.syncables.state -import de.justjanne.libquassel.protocol.models.DccIpDetectionMode -import de.justjanne.libquassel.protocol.models.DccPortSelectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccIpDetectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccPortSelectionMode import java.net.InetAddress data class DccConfigState( diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/HighlightRuleManagerState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/HighlightRuleManagerState.kt index 6401a56..6a11d26 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/HighlightRuleManagerState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/HighlightRuleManagerState.kt @@ -10,12 +10,12 @@ package de.justjanne.libquassel.protocol.syncables.state -import de.justjanne.libquassel.protocol.models.HighlightNickType -import de.justjanne.libquassel.protocol.models.HighlightRule import de.justjanne.libquassel.protocol.models.flags.MessageFlag import de.justjanne.libquassel.protocol.models.flags.MessageFlags import de.justjanne.libquassel.protocol.models.flags.MessageType import de.justjanne.libquassel.protocol.models.flags.MessageTypes +import de.justjanne.libquassel.protocol.models.rules.HighlightNickType +import de.justjanne.libquassel.protocol.models.rules.HighlightRule import de.justjanne.libquassel.protocol.util.expression.ExpressionMatch import de.justjanne.libquassel.protocol.util.irc.IrcFormatDeserializer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/IrcChannelState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/IrcChannelState.kt index 06d6c03..f5b749a 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/IrcChannelState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/IrcChannelState.kt @@ -10,9 +10,9 @@ package de.justjanne.libquassel.protocol.syncables.state -import de.justjanne.libquassel.protocol.models.ChannelModeType -import de.justjanne.libquassel.protocol.models.ChannelModes import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.ChannelModeType +import de.justjanne.libquassel.protocol.models.network.ChannelModes data class IrcChannelState( val network: NetworkId, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/NetworkState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/NetworkState.kt index 6f5a7d8..1f765d8 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/NetworkState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/NetworkState.kt @@ -10,11 +10,11 @@ package de.justjanne.libquassel.protocol.syncables.state -import de.justjanne.libquassel.protocol.models.ChannelModeType -import de.justjanne.libquassel.protocol.models.ConnectionState -import de.justjanne.libquassel.protocol.models.NetworkServer import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.ChannelModeType +import de.justjanne.libquassel.protocol.models.network.ConnectionState +import de.justjanne.libquassel.protocol.models.network.NetworkServer import de.justjanne.libquassel.protocol.syncables.IrcChannel import de.justjanne.libquassel.protocol.syncables.IrcUser import de.justjanne.libquassel.protocol.util.irc.IrcCapability diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/DccConfigStub.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/DccConfigStub.kt index f9bb090..69ec5a8 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/DccConfigStub.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/DccConfigStub.kt @@ -13,8 +13,8 @@ package de.justjanne.libquassel.protocol.syncables.stubs import de.justjanne.libquassel.annotations.ProtocolSide import de.justjanne.libquassel.annotations.SyncedCall import de.justjanne.libquassel.annotations.SyncedObject -import de.justjanne.libquassel.protocol.models.DccIpDetectionMode -import de.justjanne.libquassel.protocol.models.DccPortSelectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccIpDetectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccPortSelectionMode import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.SyncableStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/NetworkStub.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/NetworkStub.kt index 5b54584..fe10389 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/NetworkStub.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/NetworkStub.kt @@ -13,9 +13,9 @@ package de.justjanne.libquassel.protocol.syncables.stubs import de.justjanne.libquassel.annotations.ProtocolSide import de.justjanne.libquassel.annotations.SyncedCall import de.justjanne.libquassel.annotations.SyncedObject -import de.justjanne.libquassel.protocol.models.NetworkInfo import de.justjanne.libquassel.protocol.models.QStringList import de.justjanne.libquassel.protocol.models.ids.IdentityId +import de.justjanne.libquassel.protocol.models.network.NetworkInfo import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.SyncableStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/RpcHandlerStub.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/RpcHandlerStub.kt index 4804e3a..eb4e39b 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/RpcHandlerStub.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/RpcHandlerStub.kt @@ -15,9 +15,9 @@ import de.justjanne.libquassel.annotations.SyncedCall import de.justjanne.libquassel.annotations.SyncedObject import de.justjanne.libquassel.protocol.models.BufferInfo import de.justjanne.libquassel.protocol.models.Message -import de.justjanne.libquassel.protocol.models.NetworkInfo import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.NetworkInfo import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.SyncableStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferManagerStub.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferManagerStub.kt index ac90362..6badb8a 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferManagerStub.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferManagerStub.kt @@ -13,7 +13,7 @@ package de.justjanne.libquassel.protocol.syncables.stubs import de.justjanne.libquassel.annotations.ProtocolSide import de.justjanne.libquassel.annotations.SyncedCall import de.justjanne.libquassel.annotations.SyncedObject -import de.justjanne.libquassel.protocol.models.TransferIdList +import de.justjanne.libquassel.protocol.models.dcc.TransferIdList import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.SyncableStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferStub.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferStub.kt index 4ea1831..7b8ee5e 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferStub.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferStub.kt @@ -13,8 +13,8 @@ package de.justjanne.libquassel.protocol.syncables.stubs import de.justjanne.libquassel.annotations.ProtocolSide import de.justjanne.libquassel.annotations.SyncedCall import de.justjanne.libquassel.annotations.SyncedObject -import de.justjanne.libquassel.protocol.models.TransferDirection -import de.justjanne.libquassel.protocol.models.TransferStatus +import de.justjanne.libquassel.protocol.models.dcc.TransferDirection +import de.justjanne.libquassel.protocol.models.dcc.TransferStatus import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.SyncableStub diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializerTest.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializerTest.kt index ae5fe8e..c01a225 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializerTest.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializerTest.kt @@ -19,9 +19,9 @@ package de.justjanne.libquassel.protocol.serializers.handshake import de.justjanne.libquassel.protocol.features.FeatureSet -import de.justjanne.libquassel.protocol.models.BackendInfo import de.justjanne.libquassel.protocol.models.HandshakeMessage -import de.justjanne.libquassel.protocol.models.SetupEntry +import de.justjanne.libquassel.protocol.models.setup.BackendInfo +import de.justjanne.libquassel.protocol.models.setup.SetupEntry import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.testutil.byteBufferOf import de.justjanne.libquassel.protocol.testutil.handshakeSerializerTest diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializerTest.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializerTest.kt index 674caa7..1176e0b 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializerTest.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializerTest.kt @@ -18,7 +18,7 @@ */ package de.justjanne.libquassel.protocol.serializers.quassel -import de.justjanne.libquassel.protocol.models.DccIpDetectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccIpDetectionMode import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.testutil.byteBufferOf import de.justjanne.libquassel.protocol.testutil.primitiveSerializerTest diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializerTest.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializerTest.kt index f478930..140cc2d 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializerTest.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializerTest.kt @@ -18,7 +18,7 @@ */ package de.justjanne.libquassel.protocol.serializers.quassel -import de.justjanne.libquassel.protocol.models.DccPortSelectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccPortSelectionMode import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.testutil.byteBufferOf import de.justjanne.libquassel.protocol.testutil.primitiveSerializerTest diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializerTest.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializerTest.kt index 9f28cd6..23938d5 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializerTest.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializerTest.kt @@ -18,8 +18,8 @@ */ package de.justjanne.libquassel.protocol.serializers.quassel -import de.justjanne.libquassel.protocol.models.NetworkInfo import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.NetworkInfo import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.testutil.byteBufferOf import de.justjanne.libquassel.protocol.testutil.primitiveSerializerTest diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/syncables/NetworkTest.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/syncables/NetworkTest.kt index acecf40..88d1094 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/syncables/NetworkTest.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/syncables/NetworkTest.kt @@ -10,18 +10,12 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.NetworkServer -import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId import de.justjanne.libquassel.protocol.syncables.state.NetworkState -import de.justjanne.libquassel.protocol.testutil.nextEnum -import de.justjanne.libquassel.protocol.testutil.nextIrcChannel -import de.justjanne.libquassel.protocol.testutil.nextIrcUser -import de.justjanne.libquassel.protocol.testutil.nextString +import de.justjanne.libquassel.protocol.testutil.nextNetwork import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test import kotlin.random.Random -import kotlin.random.nextUInt class NetworkTest { @Test @@ -37,68 +31,3 @@ class NetworkTest { assertEquals(expected, actual) } } - -fun Random.nextNetwork(networkId: NetworkId) = NetworkState( - networkId = networkId, - identity = IdentityId(nextInt()), - myNick = nextString(), - latency = nextInt(), - networkName = nextString(), - currentServer = nextString(), - connected = nextBoolean(), - connectionState = nextEnum(), - ircUsers = List(nextInt(20)) { - nextIrcUser(networkId) - }.associateBy(IrcUser::nick), - ircChannels = List(nextInt(20)) { - nextIrcChannel(networkId) - }.associateBy(IrcChannel::name), - supports = List(nextInt(20)) { - nextString() to nextString() - }.toMap(), - caps = List(nextInt(20)) { - nextString() to nextString() - }.toMap(), - capsEnabled = List(nextInt(20)) { - nextString() - }.toSet(), - serverList = List(nextInt(20)) { - nextNetworkServer() - }, - useRandomServer = nextBoolean(), - perform = List(nextInt(20)) { - nextString() - }, - useAutoIdentify = nextBoolean(), - autoIdentifyService = nextString(), - autoIdentifyPassword = nextString(), - useSasl = nextBoolean(), - saslAccount = nextString(), - saslPassword = nextString(), - useAutoReconnect = nextBoolean(), - autoReconnectInterval = nextUInt(), - autoReconnectRetries = nextUInt(UShort.MAX_VALUE.toUInt()).toUShort(), - unlimitedReconnectRetries = nextBoolean(), - rejoinChannels = nextBoolean(), - useCustomMessageRate = nextBoolean(), - messageRateBurstSize = nextUInt(), - messageRateDelay = nextUInt(), - codecForServer = nextString(), - codecForEncoding = nextString(), - codecForDecoding = nextString() -) - -fun Random.nextNetworkServer() = NetworkServer( - host = nextString(), - port = nextUInt(), - password = nextString(), - useSsl = nextBoolean(), - sslVerify = nextBoolean(), - sslVersion = nextInt(), - useProxy = nextBoolean(), - proxyType = nextEnum(), - proxyHost = nextString(), - proxyPort = nextUInt(), - proxyUser = nextString(), - proxyPass = nextString() -) diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/testutil/Random.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/testutil/Random.kt index 5cf9157..fb4947f 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/testutil/Random.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/testutil/Random.kt @@ -10,15 +10,19 @@ package de.justjanne.libquassel.protocol.testutil +import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.NetworkServer import de.justjanne.libquassel.protocol.syncables.IrcChannel import de.justjanne.libquassel.protocol.syncables.IrcUser import de.justjanne.libquassel.protocol.syncables.state.IrcChannelState import de.justjanne.libquassel.protocol.syncables.state.IrcUserState +import de.justjanne.libquassel.protocol.syncables.state.NetworkState import org.threeten.bp.Instant import java.util.EnumSet import java.util.UUID import kotlin.random.Random +import kotlin.random.nextUInt fun Random.nextString(): String { return UUID(nextLong(), nextLong()).toString() @@ -39,6 +43,71 @@ inline fun <reified T : Enum<T>> Random.nextEnum(): T { fun Random.nextInstant(): Instant = Instant.ofEpochMilli(nextLong()) +fun Random.nextNetwork(networkId: NetworkId) = NetworkState( + networkId = networkId, + identity = IdentityId(nextInt()), + myNick = nextString(), + latency = nextInt(), + networkName = nextString(), + currentServer = nextString(), + connected = nextBoolean(), + connectionState = nextEnum(), + ircUsers = List(nextInt(20)) { + nextIrcUser(networkId) + }.associateBy(IrcUser::nick), + ircChannels = List(nextInt(20)) { + nextIrcChannel(networkId) + }.associateBy(IrcChannel::name), + supports = List(nextInt(20)) { + nextString() to nextString() + }.toMap(), + caps = List(nextInt(20)) { + nextString() to nextString() + }.toMap(), + capsEnabled = List(nextInt(20)) { + nextString() + }.toSet(), + serverList = List(nextInt(20)) { + nextNetworkServer() + }, + useRandomServer = nextBoolean(), + perform = List(nextInt(20)) { + nextString() + }, + useAutoIdentify = nextBoolean(), + autoIdentifyService = nextString(), + autoIdentifyPassword = nextString(), + useSasl = nextBoolean(), + saslAccount = nextString(), + saslPassword = nextString(), + useAutoReconnect = nextBoolean(), + autoReconnectInterval = nextUInt(), + autoReconnectRetries = nextUInt(UShort.MAX_VALUE.toUInt()).toUShort(), + unlimitedReconnectRetries = nextBoolean(), + rejoinChannels = nextBoolean(), + useCustomMessageRate = nextBoolean(), + messageRateBurstSize = nextUInt(), + messageRateDelay = nextUInt(), + codecForServer = nextString(), + codecForEncoding = nextString(), + codecForDecoding = nextString() +) + +fun Random.nextNetworkServer() = NetworkServer( + host = nextString(), + port = nextUInt(), + password = nextString(), + useSsl = nextBoolean(), + sslVerify = nextBoolean(), + sslVersion = nextInt(), + useProxy = nextBoolean(), + proxyType = nextEnum(), + proxyHost = nextString(), + proxyPort = nextUInt(), + proxyUser = nextString(), + proxyPass = nextString() +) + fun Random.nextIrcUser( networkId: NetworkId = NetworkId(nextInt()) ) = IrcUser( -- GitLab