diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml
index d0fbcc9..33a9f22 100644
--- a/config/detekt/baseline.xml
+++ b/config/detekt/baseline.xml
@@ -86,6 +86,7 @@
ThrowsCount:WolframAlpha.kt$WolframAlpha.Companion$@JvmStatic @Throws(ModuleException::class) fun queryWolfram(query: String, units: String = IMPERIAL, appId: String?): String
TooGenericExceptionCaught:StockQuote.kt$StockQuote.Companion$e: NullPointerException
TooGenericExceptionCaught:Weather2.kt$Weather2.Companion$e: NullPointerException
+ TooManyFunctions:EntryLink.kt$EntryLink : Serializable
TooManyFunctions:Mobibot.kt$Mobibot : ListenerAdapter
TooManyFunctions:Tell.kt$Tell : AbstractCommand
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/Addons.kt b/src/main/kotlin/net/thauvin/erik/mobibot/Addons.kt
index db5fb25..8720e95 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/Addons.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/Addons.kt
@@ -46,8 +46,8 @@ import java.util.Properties
*/
class Addons(private val props: Properties) {
private val logger: Logger = LoggerFactory.getLogger(Addons::class.java)
- private val disabledModules = props.getProperty("disabled-modules", "").split(LinksManager.TAG_MATCH.toRegex())
- private val disableCommands = props.getProperty("disabled-commands", "").split(LinksManager.TAG_MATCH.toRegex())
+ private val disabledModules = props.getProperty("disabled-modules", "").split(LinksManager.TAG_MATCH)
+ private val disableCommands = props.getProperty("disabled-commands", "").split(LinksManager.TAG_MATCH)
val commands: MutableList = mutableListOf()
val modules: MutableList = mutableListOf()
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/Pinboard.kt b/src/main/kotlin/net/thauvin/erik/mobibot/Pinboard.kt
index 9d46188..ee9b020 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/Pinboard.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/Pinboard.kt
@@ -55,13 +55,9 @@ class Pinboard {
if (poster.apiToken.isNotBlank()) {
runBlocking {
launch {
- poster.addPin(
- entry.link,
- entry.title,
- entry.postedBy(ircServer),
- entry.pinboardTags,
- entry.date.toTimestamp()
- )
+ with(entry) {
+ poster.addPin(link, title, postedBy(ircServer), formatTags(), date.toTimestamp())
+ }
}
}
}
@@ -98,7 +94,7 @@ class Pinboard {
if (oldUrl != link) {
poster.deletePin(oldUrl)
}
- poster.addPin(link, title, entry.postedBy(ircServer), pinboardTags, date.toTimestamp())
+ poster.addPin(link, title, postedBy(ircServer), formatTags(), date.toTimestamp())
}
}
}
@@ -106,7 +102,7 @@ class Pinboard {
}
/**
- * Format a date to a UTC timestamp.
+ * Formats a date to a UTC timestamp.
*/
private fun Date.toTimestamp(): String {
return ZonedDateTime.ofInstant(
@@ -115,6 +111,13 @@ class Pinboard {
).format(DateTimeFormatter.ISO_INSTANT)
}
+ /**
+ * Formats the tags for pinboard.
+ */
+ private fun EntryLink.formatTags(): String {
+ return nick + formatTags(",", ",")
+ }
+
/**
* Returns the pinboard.in extended attribution line.
*/
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/commands/Ignore.kt b/src/main/kotlin/net/thauvin/erik/mobibot/commands/Ignore.kt
index 7306cea..5d03cb8 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/commands/Ignore.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/commands/Ignore.kt
@@ -141,7 +141,7 @@ class Ignore : AbstractCommand() {
override fun setProperty(key: String, value: String) {
super.setProperty(key, value)
if (IGNORE_PROP == key) {
- ignored.addAll(value.split(LinksManager.TAG_MATCH.toRegex()))
+ ignored.addAll(value.split(LinksManager.TAG_MATCH)
}
}
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Comment.kt b/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Comment.kt
index e60955a..5a09836 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Comment.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Comment.kt
@@ -38,7 +38,7 @@ import net.thauvin.erik.mobibot.Utils.helpFormat
import net.thauvin.erik.mobibot.Utils.isChannelOp
import net.thauvin.erik.mobibot.Utils.sendMessage
import net.thauvin.erik.mobibot.commands.AbstractCommand
-import net.thauvin.erik.mobibot.entries.EntriesUtils.buildComment
+import net.thauvin.erik.mobibot.entries.EntriesUtils.printComment
import net.thauvin.erik.mobibot.entries.EntriesUtils.toLinkLabel
import net.thauvin.erik.mobibot.entries.EntryLink
import org.pircbotx.hooks.types.GenericMessageEvent
@@ -111,7 +111,7 @@ class Comment : AbstractCommand() {
if (event.isChannelOp(channel) && cmd.length > 1) {
val comment = entry.getComment(commentIndex)
comment.nick = cmd.substring(1)
- event.sendMessage(buildComment(entryIndex, commentIndex, comment))
+ event.sendMessage(printComment(entryIndex, commentIndex, comment))
LinksManager.entries.save()
} else {
event.sendMessage("Please ask a channel op to change the author of this comment for you.")
@@ -142,11 +142,11 @@ class Comment : AbstractCommand() {
event: GenericMessageEvent
) {
entry.setComment(commentIndex, cmd, event.user.nick)
- event.sendMessage(buildComment(entryIndex, commentIndex, entry.getComment(commentIndex)))
+ event.sendMessage(printComment(entryIndex, commentIndex, entry.getComment(commentIndex)))
LinksManager.entries.save()
}
private fun showComment(entry: EntryLink, entryIndex: Int, commentIndex: Int, event: GenericMessageEvent) {
- event.sendMessage(buildComment(entryIndex, commentIndex, entry.getComment(commentIndex)))
+ event.sendMessage(printComment(entryIndex, commentIndex, entry.getComment(commentIndex)))
}
}
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/LinksManager.kt b/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/LinksManager.kt
index d0c9769..af6adf4 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/LinksManager.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/LinksManager.kt
@@ -42,7 +42,7 @@ import net.thauvin.erik.mobibot.Utils.today
import net.thauvin.erik.mobibot.commands.AbstractCommand
import net.thauvin.erik.mobibot.commands.Ignore.Companion.isNotIgnored
import net.thauvin.erik.mobibot.entries.Entries
-import net.thauvin.erik.mobibot.entries.EntriesUtils.buildLink
+import net.thauvin.erik.mobibot.entries.EntriesUtils.printLink
import net.thauvin.erik.mobibot.entries.EntriesUtils.toLinkLabel
import net.thauvin.erik.mobibot.entries.EntryLink
import net.thauvin.erik.mobibot.social.SocialManager
@@ -65,10 +65,10 @@ class LinksManager : AbstractCommand() {
}
companion object {
- const val LINK_MATCH = "^[hH][tT][tT][pP](|[sS])://.*"
+ val LINK_MATCH = "^[hH][tT][tT][pP](|[sS])://.*".toRegex()
const val KEYWORDS_PROP = "tags-keywords"
const val TAGS_PROP = "tags"
- const val TAG_MATCH = ", *| +"
+ val TAG_MATCH = ", *| +".toRegex()
/**
* Entries array
@@ -116,7 +116,7 @@ class LinksManager : AbstractCommand() {
val data = cmds[1].trim().split("${Tags.COMMAND}:", limit = 2)
title = data[0].trim()
if (data.size > 1) {
- tags.addAll(data[1].split(TAG_MATCH.toRegex()))
+ tags.addAll(data[1].split(TAG_MATCH))
}
}
@@ -136,7 +136,7 @@ class LinksManager : AbstractCommand() {
val entry = EntryLink(link, title, sender, login, channel, tags)
entries.links.add(entry)
val index = entries.links.lastIndexOf(entry)
- event.sendMessage(buildLink(index, entry))
+ event.sendMessage(printLink(index, entry))
pinboard.addPin(event.bot().serverHostname, entry)
@@ -156,7 +156,7 @@ class LinksManager : AbstractCommand() {
override fun helpResponse(channel: String, topic: String, event: GenericMessageEvent): Boolean = false
override fun matches(message: String): Boolean {
- return message.matches(LINK_MATCH.toRegex())
+ return message.matches(LINK_MATCH)
}
internal fun fetchTitle(link: String): String {
@@ -179,7 +179,7 @@ class LinksManager : AbstractCommand() {
return try {
val match = entries.links.single { it.link == link }
event.sendMessage(
- "Duplicate".bold() + " >> " + buildLink(entries.links.indexOf(match), match)
+ "Duplicate".bold() + " >> " + printLink(entries.links.indexOf(match), match)
)
true
} catch (ignore: NoSuchElementException) {
@@ -200,9 +200,9 @@ class LinksManager : AbstractCommand() {
override fun setProperty(key: String, value: String) {
super.setProperty(key, value)
if (KEYWORDS_PROP == key) {
- keywords.addAll(value.split(TAG_MATCH.toRegex()))
+ keywords.addAll(value.split(TAG_MATCH))
} else if (TAGS_PROP == key) {
- defaultTags.addAll(value.split(TAG_MATCH.toRegex()))
+ defaultTags.addAll(value.split(TAG_MATCH))
}
}
}
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Posting.kt b/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Posting.kt
index a0224b9..9368d37 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Posting.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Posting.kt
@@ -94,7 +94,7 @@ class Posting : AbstractCommand() {
val entry: EntryLink = entries.links[entryIndex]
val commentIndex = entry.addComment(cmd, event.user.nick)
val comment = entry.getComment(commentIndex)
- event.sendMessage(EntriesUtils.buildComment(entryIndex, commentIndex, comment))
+ event.sendMessage(EntriesUtils.printComment(entryIndex, commentIndex, comment))
entries.save()
}
@@ -103,7 +103,7 @@ class Posting : AbstractCommand() {
val entry: EntryLink = entries.links[entryIndex]
entry.title = cmd.substring(1).trim()
LinksManager.pinboard.updatePin(event.bot().serverHostname, entry.link, entry)
- event.sendMessage(EntriesUtils.buildLink(entryIndex, entry))
+ event.sendMessage(EntriesUtils.printLink(entryIndex, entry))
entries.save()
}
}
@@ -112,11 +112,11 @@ class Posting : AbstractCommand() {
val entry: EntryLink = entries.links[entryIndex]
if (entry.login == event.user.login || event.isChannelOp(channel)) {
val link = cmd.substring(1)
- if (link.matches(LinksManager.LINK_MATCH.toRegex())) {
+ if (link.matches(LinksManager.LINK_MATCH)) {
val oldLink = entry.link
entry.link = link
LinksManager.pinboard.updatePin(event.bot().serverHostname, oldLink, entry)
- event.sendMessage(EntriesUtils.buildLink(entryIndex, entry))
+ event.sendMessage(EntriesUtils.printLink(entryIndex, entry))
entries.save()
}
}
@@ -128,7 +128,7 @@ class Posting : AbstractCommand() {
val entry: EntryLink = entries.links[index]
entry.nick = cmd.substring(1)
LinksManager.pinboard.updatePin(event.bot().serverHostname, entry.link, entry)
- event.sendMessage(EntriesUtils.buildLink(index, entry))
+ event.sendMessage(EntriesUtils.printLink(index, entry))
entries.save()
}
} else {
@@ -151,14 +151,14 @@ class Posting : AbstractCommand() {
private fun showEntry(index: Int, event: GenericMessageEvent) {
val entry: EntryLink = entries.links[index]
- event.sendMessage(EntriesUtils.buildLink(index, entry))
+ event.sendMessage(EntriesUtils.printLink(index, entry))
if (entry.tags.isNotEmpty()) {
- event.sendMessage(EntriesUtils.buildTags(index, entry))
+ event.sendMessage(EntriesUtils.printTags(index, entry))
}
if (entry.comments.isNotEmpty()) {
val comments = entry.comments
for (i in comments.indices) {
- event.sendMessage(EntriesUtils.buildComment(index, i, comments[i]))
+ event.sendMessage(EntriesUtils.printComment(index, i, comments[i]))
}
}
}
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Tags.kt b/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Tags.kt
index 8146e88..785e3a0 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Tags.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/Tags.kt
@@ -67,14 +67,14 @@ class Tags : AbstractCommand() {
if (entry.login == event.user.login || event.isChannelOp(channel)) {
entry.setTags(cmd)
LinksManager.pinboard.updatePin(event.bot().serverHostname, entry.link, entry)
- event.sendMessage(EntriesUtils.buildTags(index, entry))
+ event.sendMessage(EntriesUtils.printTags(index, entry))
LinksManager.entries.save()
} else {
event.sendMessage("Please ask a channel op to change the tags for you.")
}
} else {
if (entry.tags.isNotEmpty()) {
- event.sendMessage(EntriesUtils.buildTags(index, entry))
+ event.sendMessage(EntriesUtils.printTags(index, entry))
} else {
event.sendMessage("The entry has no tags. Why don't add some?")
}
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/View.kt b/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/View.kt
index ee817a0..008ccad 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/View.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/commands/links/View.kt
@@ -97,11 +97,11 @@ class View : AbstractCommand() {
entry = entries.links[index]
if (query.isNotBlank()) {
if (entry.matches(query)) {
- event.sendMessage(EntriesUtils.buildLink(index, entry, true))
+ event.sendMessage(EntriesUtils.printLink(index, entry, true))
sent++
}
} else {
- event.sendMessage(EntriesUtils.buildLink(index, entry, true))
+ event.sendMessage(EntriesUtils.printLink(index, entry, true))
sent++
}
index++
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/entries/EntriesUtils.kt b/src/main/kotlin/net/thauvin/erik/mobibot/entries/EntriesUtils.kt
index 2b96dac..ac2c259 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/entries/EntriesUtils.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/entries/EntriesUtils.kt
@@ -40,18 +40,18 @@ import net.thauvin.erik.mobibot.Utils.green
*/
object EntriesUtils {
/**
- * Builds an entry's comment for display on the channel.
+ * Prints an entry's comment for display on the channel.
*/
@JvmStatic
- fun buildComment(entryIndex: Int, commentIndex: Int, comment: EntryComment): String =
+ fun printComment(entryIndex: Int, commentIndex: Int, comment: EntryComment): String =
("${entryIndex.toLinkLabel()}.${commentIndex + 1}: [${comment.nick}] ${comment.comment}")
/**
- * Builds an entry's link for display on the channel.
+ * Prints an entry's link for display on the channel.
*/
@JvmStatic
@JvmOverloads
- fun buildLink(entryIndex: Int, entry: EntryLink, isView: Boolean = false): String {
+ fun printLink(entryIndex: Int, entry: EntryLink, isView: Boolean = false): String {
val buff = StringBuilder().append(entryIndex.toLinkLabel()).append(": ")
.append('[').append(entry.nick).append(']')
if (isView && entry.comments.isNotEmpty()) {
@@ -70,14 +70,14 @@ object EntriesUtils {
}
/**
- * Build an entry's tags/categories for display on the channel.
+ * Prints an entry's tags/categories for display on the channel. e.g. L1T: tag1, tag2
*/
@JvmStatic
- fun buildTags(entryIndex: Int, entry: EntryLink): String =
- entryIndex.toLinkLabel() + "${Constants.TAG_CMD}: " + entry.pinboardTags.replace(",", ", ")
+ fun printTags(entryIndex: Int, entry: EntryLink): String =
+ entryIndex.toLinkLabel() + "${Constants.TAG_CMD}: " + entry.formatTags(", ")
/**
- * Build link label based on its index. e.g: L1
+ * Builds link label based on its index. e.g: L1
*/
@JvmStatic
fun Int.toLinkLabel(): String = Constants.LINK_CMD + (this + 1)
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/entries/EntryLink.kt b/src/main/kotlin/net/thauvin/erik/mobibot/entries/EntryLink.kt
index b70fa9d..59f4e73 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/entries/EntryLink.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/entries/EntryLink.kt
@@ -127,24 +127,18 @@ class EntryLink(
return comments.remove(entryComment)
}
+ /**
+ * Formats the tags.
+ */
+ fun formatTags(sep: String, prefix: String = "") : String {
+ return tags.joinToString(separator = sep, prefix = prefix){it.name}
+ }
+
/**
* Returns a comment.
*/
fun getComment(index: Int): EntryComment = comments[index]
- /**
- * Returns the tags formatted for pinboard.in
- */
- val pinboardTags: String
- get() {
- val pinboardTags = StringBuilder(nick)
- for (tag in tags) {
- pinboardTags.append(',')
- pinboardTags.append(tag.name)
- }
- return pinboardTags.toString()
- }
-
/**
* Returns true if a string is contained in the link, title, or nick.
*/
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/entries/FeedsManager.kt b/src/main/kotlin/net/thauvin/erik/mobibot/entries/FeedsManager.kt
index 32ba16d..1ae2690 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/entries/FeedsManager.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/entries/FeedsManager.kt
@@ -160,7 +160,7 @@ class FeedsManager private constructor() {
item.description = SyndContentImpl().apply { value = buff.toString() }
item.title = title
item.publishedDate = date
- item.author = "${channel.substring(1)}@${entries.ircServer} ($nick)"
+ item.author = "${channel.removePrefix("#")}@${entries.ircServer} ($nick)"
item.categories = tags
items.add(item)
}
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/modules/AbstractModule.kt b/src/main/kotlin/net/thauvin/erik/mobibot/modules/AbstractModule.kt
index 83eafcf..61e2eaf 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/modules/AbstractModule.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/modules/AbstractModule.kt
@@ -113,7 +113,7 @@ abstract class AbstractModule {
*/
open val isValidProperties: Boolean
get() {
- for (s in propertyKeys) {
+ for (s in properties.keys) {
if (properties[s].isNullOrBlank()) {
return false
}
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/modules/Mastodon.kt b/src/main/kotlin/net/thauvin/erik/mobibot/modules/Mastodon.kt
index 41de68e..b355fdc 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/modules/Mastodon.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/modules/Mastodon.kt
@@ -52,22 +52,21 @@ class Mastodon : SocialModule() {
get() = properties[HANDLE_PROP]
override val isAutoPost: Boolean
+ get() = isEnabled && properties[AUTO_POST_PROP].toBoolean()
override val isValidProperties: Boolean
- get() {
- for (s in propertyKeys) {
- if (AUTO_POST_PROP != s && HANDLE_PROP != s && properties[s].isNullOrBlank()) {
- return false
- }
- }
- return true
- }
+ get() = !(properties[INSTANCE_PROP].isNullOrBlank() || properties[ACCESS_TOKEN_PROP].isNullOrBlank())
/**
* Formats the entry for posting.
*/
override fun formatEntry(entry: EntryLink): String {
- return "${entry.title} via ${entry.nick} on ${entry.channel}\n\n${entry.link}"
+ return "${entry.title} (via ${entry.nick} on ${entry.channel})${formatTags(entry)}\n\n${entry.link}"
+ }
+
+ private fun formatTags(entry: EntryLink): String {
+ return entry.tags.filter { !it.name.equals(entry.channel.removePrefix("#"), true) }
+ .joinToString(separator = " ", prefix = "\n\n") { "#${it.name}" }
}
/**
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/modules/Twitter.kt b/src/main/kotlin/net/thauvin/erik/mobibot/modules/Twitter.kt
index 91cca2a..2253494 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/modules/Twitter.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/modules/Twitter.kt
@@ -49,14 +49,8 @@ class Twitter : SocialModule() {
get() = isEnabled && properties[AUTO_POST_PROP].toBoolean()
override val isValidProperties: Boolean
- get() {
- for (s in propertyKeys) {
- if (AUTO_POST_PROP != s && HANDLE_PROP != s && properties[s].isNullOrBlank()) {
- return false
- }
- }
- return true
- }
+ get() = !(properties[CONSUMER_KEY_PROP].isNullOrBlank() || properties[CONSUMER_SECRET_PROP].isNullOrBlank()
+ || properties[TOKEN_PROP].isNullOrBlank() || properties[TOKEN_SECRET_PROP].isNullOrBlank())
/**
* Formats the entry for posting.
diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntriesUtilsTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntriesUtilsTest.kt
index 0de9d5e..23ba01e 100644
--- a/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntriesUtilsTest.kt
+++ b/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntriesUtilsTest.kt
@@ -36,9 +36,9 @@ import assertk.assertThat
import assertk.assertions.contains
import assertk.assertions.isEqualTo
import net.thauvin.erik.mobibot.Constants
-import net.thauvin.erik.mobibot.entries.EntriesUtils.buildComment
-import net.thauvin.erik.mobibot.entries.EntriesUtils.buildLink
-import net.thauvin.erik.mobibot.entries.EntriesUtils.buildTags
+import net.thauvin.erik.mobibot.entries.EntriesUtils.printComment
+import net.thauvin.erik.mobibot.entries.EntriesUtils.printLink
+import net.thauvin.erik.mobibot.entries.EntriesUtils.printTags
import net.thauvin.erik.mobibot.entries.EntriesUtils.toLinkLabel
import org.testng.annotations.Test
@@ -60,33 +60,33 @@ class EntriesUtilsTest {
}
@Test(groups = ["entries"])
- fun buildLinkLabelTest() {
- assertThat(1.toLinkLabel()).isEqualTo("${Constants.LINK_CMD}2")
+ fun printCommentTest() {
+ assertThat(printComment(0, 0, comment)).isEqualTo("${Constants.LINK_CMD}1.1: [nick] comment")
}
@Test(groups = ["entries"])
- fun buildCommentTest() {
- assertThat(buildComment(0, 0, comment)).isEqualTo("${Constants.LINK_CMD}1.1: [nick] comment")
- }
-
- @Test(groups = ["entries"])
- fun buildLinkTest() {
+ fun printLinkTest() {
for (i in links.indices) {
assertThat(
- buildLink(i - 1, links[i]), "link $i"
+ printLink(i - 1, links[i]), "link $i"
).isEqualTo("L$i: [Skynx$i] \u0002Mobitopia$i\u0002 ( \u000303https://www.mobitopia.org/$i\u000F )")
}
assertThat(links.first().addComment(comment), "addComment()").isEqualTo(0)
- assertThat(buildLink(0, links.first(), isView = true), "buildLink(isView=true)").contains("[+1]")
+ assertThat(printLink(0, links.first(), isView = true), "printLink(isView=true)").contains("[+1]")
}
@Test(groups = ["entries"])
- fun buildTagsTest() {
+ fun printTagsTest() {
for (i in links.indices) {
assertThat(
- buildTags(i - 1, links[i]), "tag $i"
- ).isEqualTo("L${i}T: Skynx$i, tag1, tag2, tag3, tag4, tag5")
+ printTags(i - 1, links[i]), "tag $i"
+ ).isEqualTo("L${i}T: tag1, tag2, tag3, tag4, tag5")
}
}
+
+ @Test(groups = ["entries"])
+ fun toLinkLabelTest() {
+ assertThat(1.toLinkLabel()).isEqualTo("${Constants.LINK_CMD}2")
+ }
}
diff --git a/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntryLinkTest.kt b/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntryLinkTest.kt
index 5c9ef99..b36d167 100644
--- a/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntryLinkTest.kt
+++ b/src/test/kotlin/net/thauvin/erik/mobibot/entries/EntryLinkTest.kt
@@ -40,6 +40,7 @@ import assertk.assertions.isFalse
import assertk.assertions.isTrue
import assertk.assertions.prop
import assertk.assertions.size
+import assertk.assertions.startsWith
import com.rometools.rome.feed.synd.SyndCategory
import com.rometools.rome.feed.synd.SyndCategoryImpl
import org.testng.annotations.Test
@@ -94,13 +95,11 @@ class EntryLinkTest {
@Test(groups = ["entries"])
fun testConstructor() {
- val tag = "test"
- val tags = listOf(SyndCategoryImpl().apply { name = tag })
+ val tags = listOf(SyndCategoryImpl().apply { name = "tag1" }, SyndCategoryImpl().apply { name = "tag2" })
val link = EntryLink("link", "title", "nick", "channel", Date(), tags)
assertThat(link, "link").all {
prop(EntryLink::tags).size().isEqualTo(tags.size)
- prop(EntryLink::tags).index(0).prop(SyndCategory::getName).isEqualTo(tag)
- prop(EntryLink::pinboardTags).isEqualTo("nick,$tag")
+ prop(EntryLink::tags).index(0).prop(SyndCategory::getName).isEqualTo("tag1")
}
}
@@ -122,11 +121,17 @@ class EntryLinkTest {
assertThat(tag.name, "tag.name($i)").isEqualTo("tag${i + 1}")
}
assertThat(entryLink::tags).size().isEqualTo(5)
- entryLink.setTags("-tag5")
+ entryLink.setTags("-tag5, tag4")
entryLink.setTags("+mobitopia")
- entryLink.setTags("tag4")
entryLink.setTags("-mobitopia")
- assertThat(entryLink::pinboardTags).isEqualTo(entryLink.nick + ",tag1,tag2,tag3,tag4,mobitopia")
+ assertThat(
+ entryLink.formatTags(","),
+ "formatTags(',')"
+ ).isEqualTo("tag1,tag2,tag3,tag4,mobitopia")
+ entryLink.setTags("-tag4 tag5")
+ assertThat(
+ entryLink.formatTags(" ", ","), "formatTag(' ',',')"
+ ).isEqualTo(",tag1 tag2 tag3 mobitopia tag5")
val size = entryLink.tags.size
entryLink.setTags("")
assertThat(entryLink.tags, "setTags('')").size().isEqualTo(size)
diff --git a/version.properties b/version.properties
index d91b88d..edb9391 100644
--- a/version.properties
+++ b/version.properties
@@ -1,9 +1,9 @@
#Generated by the Semver Plugin for Gradle
-#Mon Dec 05 21:57:24 PST 2022
-version.buildmeta=814
+#Wed Dec 07 02:53:01 PST 2022
+version.buildmeta=857
version.major=0
version.minor=8
version.patch=0
version.prerelease=rc
version.project=mobibot
-version.semver=0.8.0-rc+814
+version.semver=0.8.0-rc+857