Skip to content
This repository has been archived by the owner on Oct 20, 2023. It is now read-only.

Commit

Permalink
Merge pull request #304 from Colerar/dev
Browse files Browse the repository at this point in the history
Recognize year and month but fallback.
  • Loading branch information
StarWishsama authored Aug 16, 2021
2 parents 5339fa5 + 6d0dac1 commit 25b7170
Showing 1 changed file with 12 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -80,17 +80,25 @@ object MuteService {
}

var banTime: Long
// 30*24*60*60, a month
val maxBanTime: Long = 2592000

val yearRegex = Regex("""(\d{1,2})[yY年]""")
val monRegex = Regex("""(\d{1,2})(月|mon|Mon)""")
val dayRegex = Regex("""(\d{1,2})[dD天]""")
val hourRegex = Regex("""(\d{1,2})(h|H|小时|时)""")
val minRegex = Regex("""(\d{1,2})(分钟|分|m|M)""")
val secRegex = Regex("""(\d{1,7})(分钟|分|m|M)""")
val hourRegex = Regex("""(\d{1,2})(小时|时|h|H)""")
val minRegex = Regex("""(\d{1,2})(分钟|分|m|M)(?!on)""")
val secRegex = Regex("""(\d{1,7})(秒钟|秒|s|S)""")

banTime = dayRegex.find(message)?.groups?.get(1)?.value?.toLong()?.times(24 * 60 * 60) ?: 0L
banTime = yearRegex.find(message)?.groups?.get(1)?.value?.toLong()?.times(365 * 24 * 60 * 60) ?: 0L
banTime += monRegex.find(message)?.groups?.get(1)?.value?.toLong()?.times(30 * 24 * 60 * 60) ?: 0L
banTime += dayRegex.find(message)?.groups?.get(1)?.value?.toLong()?.times(24 * 60 * 60) ?: 0L
banTime += hourRegex.find(message)?.groups?.get(1)?.value?.toLong()?.times(60 * 60) ?: 0L
banTime += minRegex.find(message)?.groups?.get(1)?.value?.toLong()?.times(60) ?: 0L
banTime += secRegex.find(message)?.groups?.get(1)?.value?.toLong() ?: 0L

if (banTime > maxBanTime) banTime = maxBanTime

return banTime.toInt()
}
}

0 comments on commit 25b7170

Please sign in to comment.