Code style fixes 2 - reduce size of import sections
authorLaniusTrolling <lanius@laniustrolling.dev>
Sun, 11 May 2025 19:30:14 +0000 (15:30 -0400)
committerLaniusTrolling <lanius@laniustrolling.dev>
Sun, 11 May 2025 19:30:14 +0000 (15:30 -0400)
68 files changed:
src/main/kotlin/info/mechyrdia/Configuration.kt
src/main/kotlin/info/mechyrdia/Factbooks.kt
src/main/kotlin/info/mechyrdia/JSON.kt
src/main/kotlin/info/mechyrdia/auth/NationStates.kt
src/main/kotlin/info/mechyrdia/auth/PasswordHashers.kt
src/main/kotlin/info/mechyrdia/auth/SessionStorage.kt
src/main/kotlin/info/mechyrdia/auth/Sessions.kt
src/main/kotlin/info/mechyrdia/auth/ViewsLogin.kt
src/main/kotlin/info/mechyrdia/auth/WebDav.kt
src/main/kotlin/info/mechyrdia/data/Bson.kt
src/main/kotlin/info/mechyrdia/data/Comments.kt
src/main/kotlin/info/mechyrdia/data/Data.kt
src/main/kotlin/info/mechyrdia/data/DataFiles.kt
src/main/kotlin/info/mechyrdia/data/MigrateFiles.kt
src/main/kotlin/info/mechyrdia/data/Nations.kt
src/main/kotlin/info/mechyrdia/data/ViewComments.kt
src/main/kotlin/info/mechyrdia/data/ViewsComment.kt
src/main/kotlin/info/mechyrdia/data/ViewsFiles.kt
src/main/kotlin/info/mechyrdia/data/ViewsUser.kt
src/main/kotlin/info/mechyrdia/data/Visits.kt
src/main/kotlin/info/mechyrdia/data/Xml.kt
src/main/kotlin/info/mechyrdia/lore/April1st.kt
src/main/kotlin/info/mechyrdia/lore/ArticleListing.kt
src/main/kotlin/info/mechyrdia/lore/ArticleTitles.kt
src/main/kotlin/info/mechyrdia/lore/AssetCaching.kt
src/main/kotlin/info/mechyrdia/lore/AssetCompression.kt
src/main/kotlin/info/mechyrdia/lore/AssetHashing.kt
src/main/kotlin/info/mechyrdia/lore/FileData.kt
src/main/kotlin/info/mechyrdia/lore/FontAssets.kt
src/main/kotlin/info/mechyrdia/lore/FontDrawing.kt
src/main/kotlin/info/mechyrdia/lore/HttpUtils.kt
src/main/kotlin/info/mechyrdia/lore/ParserBuilder.kt
src/main/kotlin/info/mechyrdia/lore/ParserHtml.kt
src/main/kotlin/info/mechyrdia/lore/ParserPlain.kt
src/main/kotlin/info/mechyrdia/lore/ParserPreprocess.kt
src/main/kotlin/info/mechyrdia/lore/ParserPreprocessInclude.kt
src/main/kotlin/info/mechyrdia/lore/ParserPreprocessJson.kt
src/main/kotlin/info/mechyrdia/lore/ParserPreprocessMath.kt
src/main/kotlin/info/mechyrdia/lore/ParserPreprocessVocab.kt
src/main/kotlin/info/mechyrdia/lore/ParserRaw.kt
src/main/kotlin/info/mechyrdia/lore/ParserRobot.kt
src/main/kotlin/info/mechyrdia/lore/ViewBar.kt
src/main/kotlin/info/mechyrdia/lore/ViewMap.kt
src/main/kotlin/info/mechyrdia/lore/ViewNav.kt
src/main/kotlin/info/mechyrdia/lore/ViewOg.kt
src/main/kotlin/info/mechyrdia/lore/ViewTpl.kt
src/main/kotlin/info/mechyrdia/lore/ViewsError.kt
src/main/kotlin/info/mechyrdia/lore/ViewsLore.kt
src/main/kotlin/info/mechyrdia/lore/ViewsMesh.kt
src/main/kotlin/info/mechyrdia/lore/ViewsPrefs.kt
src/main/kotlin/info/mechyrdia/lore/ViewsQuote.kt
src/main/kotlin/info/mechyrdia/lore/ViewsRobots.kt
src/main/kotlin/info/mechyrdia/lore/ViewsRss.kt
src/main/kotlin/info/mechyrdia/robot/RobotApi.kt
src/main/kotlin/info/mechyrdia/robot/RobotCodec.kt
src/main/kotlin/info/mechyrdia/robot/RobotFiles.kt
src/main/kotlin/info/mechyrdia/robot/RobotRateLimiter.kt
src/main/kotlin/info/mechyrdia/robot/RobotSchema.kt
src/main/kotlin/info/mechyrdia/robot/RobotService.kt
src/main/kotlin/info/mechyrdia/robot/RobotUserLimiter.kt
src/main/kotlin/info/mechyrdia/robot/ViewsRobot.kt
src/main/kotlin/info/mechyrdia/route/ResourceBodies.kt
src/main/kotlin/info/mechyrdia/route/ResourceCsrf.kt
src/main/kotlin/info/mechyrdia/route/ResourceHandler.kt
src/main/kotlin/info/mechyrdia/route/ResourceLimiter.kt
src/main/kotlin/info/mechyrdia/route/ResourceMultipart.kt
src/main/kotlin/info/mechyrdia/route/ResourceTypes.kt
src/main/kotlin/info/mechyrdia/route/ResourceWebDav.kt

index 413fd54168d4e3678d9bc17ccb6c557e00ddaad4..486c2f48a19e413584d9ac88f78ac2f806f86cfd 100644 (file)
@@ -1,24 +1,14 @@
 package info.mechyrdia
 
-import info.mechyrdia.auth.Argon2Hasher
-import info.mechyrdia.data.Id
-import info.mechyrdia.data.NationData
-import info.mechyrdia.data.NationUrlSlug
-import kotlinx.serialization.ExperimentalSerializationApi
-import kotlinx.serialization.InternalSerializationApi
-import kotlinx.serialization.KSerializer
-import kotlinx.serialization.SerialName
+import info.mechyrdia.auth.*
+import info.mechyrdia.data.*
+import kotlinx.serialization.*
 import kotlinx.serialization.Serializable
-import kotlinx.serialization.descriptors.PolymorphicKind
-import kotlinx.serialization.descriptors.SerialDescriptor
-import kotlinx.serialization.descriptors.buildSerialDescriptor
-import kotlinx.serialization.encoding.Decoder
-import kotlinx.serialization.encoding.Encoder
-import kotlinx.serialization.json.JsonDecoder
-import kotlinx.serialization.json.JsonEncoder
-import kotlinx.serialization.json.JsonPrimitive
-import java.io.File
-import java.nio.charset.Charset
+import kotlinx.serialization.descriptors.*
+import kotlinx.serialization.encoding.*
+import kotlinx.serialization.json.*
+import java.io.*
+import java.nio.charset.*
 
 @Serializable
 sealed class FileStorageConfig {
index c4094a370f3836ea9eb4a36ae6c22161a7fa4465..f8fe6ef4de6029ebc9b456db6593369ba7dc7588 100644 (file)
@@ -2,62 +2,29 @@
 
 package info.mechyrdia
 
-import info.mechyrdia.auth.ForbiddenException
-import info.mechyrdia.auth.PageDoNotCacheAttributeKey
-import info.mechyrdia.auth.SessionStorageMongoDB
-import info.mechyrdia.auth.UserSession
-import info.mechyrdia.data.ConnectionHolder
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.Id
-import info.mechyrdia.lore.HttpRedirectException
-import info.mechyrdia.lore.error400
-import info.mechyrdia.lore.error403
-import info.mechyrdia.lore.error403PageExpired
-import info.mechyrdia.lore.error404
-import info.mechyrdia.lore.error409
-import info.mechyrdia.lore.error500
-import info.mechyrdia.lore.getVersionHeaders
-import info.mechyrdia.robot.JsonRobotCodec
-import info.mechyrdia.robot.RobotService
-import info.mechyrdia.route.CsrfFailedException
-import info.mechyrdia.route.FormUrlEncodedFormat
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.WebDavAuthRequired
-import info.mechyrdia.route.get
-import info.mechyrdia.route.installWebDav
-import info.mechyrdia.route.isWebDav
-import info.mechyrdia.route.post
-import info.mechyrdia.route.postMultipart
-import info.mechyrdia.route.ws
-import io.ktor.http.CacheControl
-import io.ktor.http.ContentType
-import io.ktor.http.HttpHeaders
-import io.ktor.http.HttpStatusCode
-import io.ktor.http.content.CachingOptions
-import io.ktor.serialization.kotlinx.KotlinxSerializationConverter
-import io.ktor.serialization.kotlinx.KotlinxWebsocketSerializationConverter
-import io.ktor.server.application.Application
-import io.ktor.server.application.install
-import io.ktor.server.application.log
-import io.ktor.server.cio.CIO
-import io.ktor.server.engine.embeddedServer
-import io.ktor.server.html.respondHtml
-import io.ktor.server.http.content.CompressedFileType
-import io.ktor.server.http.content.JarFileContent
-import io.ktor.server.http.content.staticResources
-import io.ktor.server.plugins.MissingRequestParameterException
-import io.ktor.server.plugins.autohead.AutoHeadResponse
-import io.ktor.server.plugins.cachingheaders.CachingHeaders
-import io.ktor.server.plugins.callid.CallId
-import io.ktor.server.plugins.callid.callId
-import io.ktor.server.plugins.callid.callIdMdc
-import io.ktor.server.plugins.calllogging.CallLogging
-import io.ktor.server.plugins.conditionalheaders.ConditionalHeaders
-import io.ktor.server.plugins.contentnegotiation.ContentNegotiation
-import io.ktor.server.plugins.defaultheaders.DefaultHeaders
-import io.ktor.server.plugins.forwardedheaders.XForwardedHeaders
-import io.ktor.server.plugins.origin
-import io.ktor.server.plugins.statuspages.StatusPages
+import info.mechyrdia.auth.*
+import info.mechyrdia.data.*
+import info.mechyrdia.lore.*
+import info.mechyrdia.robot.*
+import info.mechyrdia.route.*
+import io.ktor.http.*
+import io.ktor.http.content.*
+import io.ktor.serialization.kotlinx.*
+import io.ktor.server.application.*
+import io.ktor.server.cio.*
+import io.ktor.server.engine.*
+import io.ktor.server.html.*
+import io.ktor.server.http.content.*
+import io.ktor.server.plugins.*
+import io.ktor.server.plugins.autohead.*
+import io.ktor.server.plugins.cachingheaders.*
+import io.ktor.server.plugins.callid.*
+import io.ktor.server.plugins.calllogging.*
+import io.ktor.server.plugins.conditionalheaders.*
+import io.ktor.server.plugins.contentnegotiation.*
+import io.ktor.server.plugins.defaultheaders.*
+import io.ktor.server.plugins.forwardedheaders.*
+import io.ktor.server.plugins.statuspages.*
 import io.ktor.server.request.*
 import io.ktor.server.resources.*
 import io.ktor.server.response.*
@@ -65,12 +32,11 @@ import io.ktor.server.routing.*
 import io.ktor.server.sessions.*
 import io.ktor.server.sessions.serialization.*
 import io.ktor.server.websocket.*
-import kotlinx.serialization.json.buildJsonObject
-import kotlinx.serialization.json.put
-import org.slf4j.event.Level
-import java.io.IOException
-import java.util.concurrent.atomic.AtomicLong
-import kotlin.random.Random
+import kotlinx.serialization.json.*
+import org.slf4j.event.*
+import java.io.*
+import java.util.concurrent.atomic.*
+import kotlin.random.*
 import kotlin.time.Duration.Companion.hours
 
 fun main() {
index af271f6cb387151aac3486324149e3ffaffef243..67a6d9add90a95a7bc57f8301f1cb0c9264c82e3 100644 (file)
@@ -1,7 +1,7 @@
 package info.mechyrdia
 
-import kotlinx.serialization.ExperimentalSerializationApi
-import kotlinx.serialization.json.Json
+import kotlinx.serialization.*
+import kotlinx.serialization.json.*
 
 val JsonFileCodec = Json {
        prettyPrint = true
index 9b6b29ac59dc86c2c60d5f2f278eb4090ceb8c6e..23557c83ef3a34bfea7fe4ac845543978382a65c 100644 (file)
@@ -1,13 +1,10 @@
 package info.mechyrdia.auth
 
-import com.github.agadar.nationstates.DefaultNationStatesImpl
-import com.github.agadar.nationstates.NationStates
-import com.github.agadar.nationstates.exception.NationStatesResourceNotFoundException
-import com.github.agadar.nationstates.query.APIQuery
-import info.mechyrdia.data.NationUrlSlug
-import info.mechyrdia.data.nanoId
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.runInterruptible
+import com.github.agadar.nationstates.*
+import com.github.agadar.nationstates.exception.*
+import com.github.agadar.nationstates.query.*
+import info.mechyrdia.data.*
+import kotlinx.coroutines.*
 
 val NSAPI: NationStates = DefaultNationStatesImpl("Mechyrdia Factbooks <samfrancis00@gmail.com>")
 
index fe103507efa781eb8b715b7bbae26bcfd0960599..5381c4431e5f3286dbde959b2ead6499fd394bc2 100644 (file)
@@ -1,9 +1,7 @@
 package info.mechyrdia.auth
 
-import de.mkammerer.argon2.Argon2
-import de.mkammerer.argon2.Argon2Advanced
-import de.mkammerer.argon2.Argon2Factory
-import info.mechyrdia.Utf8
+import de.mkammerer.argon2.*
+import info.mechyrdia.*
 
 private val argon2Instance = Argon2Factory.createAdvanced()
 
index 96451424ae88be4e1d7b708cc7e51a3394391f01..38f390b55d3bc53605e082b6c153c0e868d2e940 100644 (file)
@@ -1,16 +1,10 @@
 package info.mechyrdia.auth
 
-import info.mechyrdia.JsonStorageCodec
-import info.mechyrdia.data.DataDocument
-import info.mechyrdia.data.DocumentTable
-import info.mechyrdia.data.Id
-import info.mechyrdia.data.InstantSerializer
-import info.mechyrdia.data.MONGODB_ID_KEY
-import info.mechyrdia.data.TableHolder
-import io.ktor.server.sessions.SessionStorage
-import kotlinx.serialization.SerialName
-import kotlinx.serialization.Serializable
-import java.time.Instant
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import io.ktor.server.sessions.*
+import kotlinx.serialization.*
+import java.time.*
 
 object SessionStorageMongoDB : SessionStorage {
        override suspend fun invalidate(id: String) {
index 5df063d9ebe864f1867125ad648e767e7250eda9..c731a844c0d3c10557f4d1dadb85b91a6c9cde3a 100644 (file)
@@ -1,19 +1,12 @@
 package info.mechyrdia.auth
 
-import info.mechyrdia.data.Id
-import info.mechyrdia.data.InstantSerializer
-import info.mechyrdia.data.NationData
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.plugins.origin
-import io.ktor.server.sessions.TooLateSessionSetException
-import io.ktor.server.sessions.get
-import io.ktor.server.sessions.sessionId
-import io.ktor.server.sessions.sessions
-import io.ktor.server.sessions.set
-import kotlinx.serialization.Serializable
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-import java.time.Instant
+import info.mechyrdia.data.*
+import io.ktor.server.application.*
+import io.ktor.server.plugins.*
+import io.ktor.server.sessions.*
+import kotlinx.serialization.*
+import org.slf4j.*
+import java.time.*
 
 private val SessionsLogger: Logger = LoggerFactory.getLogger("info.mechyrdia.auth.SessionsKt")
 
index 847d8ace8815b64376851de8900267cf1a083259..d0d4d95df4e149184e9921649bb0cc1de71b4d89 100644 (file)
@@ -1,44 +1,16 @@
 package info.mechyrdia.auth
 
-import info.mechyrdia.data.DataDocument
-import info.mechyrdia.data.DocumentTable
-import info.mechyrdia.data.Id
-import info.mechyrdia.data.InstantSerializer
-import info.mechyrdia.data.MONGODB_ID_KEY
-import info.mechyrdia.data.NationData
-import info.mechyrdia.data.NationVerifyResult
-import info.mechyrdia.data.TableHolder
-import info.mechyrdia.lore.page
-import info.mechyrdia.lore.redirectHref
-import info.mechyrdia.lore.redirectHrefWithError
-import info.mechyrdia.lore.standardNavBar
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.href
-import info.mechyrdia.route.installCsrfToken
-import io.ktor.http.HttpStatusCode
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.plugins.MissingRequestParameterException
-import io.ktor.server.sessions.clear
-import io.ktor.server.sessions.sessions
-import io.ktor.server.sessions.set
-import io.ktor.util.AttributeKey
-import kotlinx.html.FormMethod
-import kotlinx.html.HTML
-import kotlinx.html.br
-import kotlinx.html.button
-import kotlinx.html.form
-import kotlinx.html.h1
-import kotlinx.html.hiddenInput
-import kotlinx.html.label
-import kotlinx.html.p
-import kotlinx.html.section
-import kotlinx.html.style
-import kotlinx.html.submitInput
-import kotlinx.html.textInput
-import kotlinx.serialization.SerialName
-import kotlinx.serialization.Serializable
-import java.time.Instant
-import kotlin.collections.set
+import info.mechyrdia.data.*
+import info.mechyrdia.lore.*
+import info.mechyrdia.route.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import io.ktor.server.plugins.*
+import io.ktor.server.sessions.*
+import io.ktor.util.*
+import kotlinx.html.*
+import kotlinx.serialization.*
+import java.time.*
 
 val PageDoNotCacheAttributeKey = AttributeKey<Boolean>("Mechyrdia.PageDoNotCache")
 
index e9a51b0bc18c9a535e3198aa10684a4c4a4dca2c..f01c35f3be244c128d2954bb2b611bc0c9c9aaf0 100644 (file)
@@ -1,30 +1,15 @@
 package info.mechyrdia.auth
 
-import com.mongodb.client.model.Filters
-import info.mechyrdia.data.DataDocument
-import info.mechyrdia.data.DocumentTable
-import info.mechyrdia.data.Id
-import info.mechyrdia.data.InstantSerializer
-import info.mechyrdia.data.MONGODB_ID_KEY
-import info.mechyrdia.data.NationData
-import info.mechyrdia.data.TableHolder
-import info.mechyrdia.data.ascending
-import info.mechyrdia.data.currentNation
-import info.mechyrdia.data.serialName
-import info.mechyrdia.lore.adminPage
-import info.mechyrdia.lore.dateTime
-import info.mechyrdia.lore.redirectHref
-import info.mechyrdia.lore.redirectHrefWithError
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.href
-import info.mechyrdia.route.installCsrfToken
-import io.ktor.http.HttpStatusCode
-import io.ktor.server.application.ApplicationCall
-import kotlinx.coroutines.flow.toList
+import com.mongodb.client.model.*
+import info.mechyrdia.data.*
+import info.mechyrdia.lore.*
+import info.mechyrdia.route.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import kotlinx.coroutines.flow.*
 import kotlinx.html.*
-import kotlinx.serialization.SerialName
-import kotlinx.serialization.Serializable
-import java.time.Instant
+import kotlinx.serialization.*
+import java.time.*
 
 @Serializable
 data class WebDavToken(
index f56d9d5214099f07abe1b47347b2314c21fd601a..2c19602bc2d9beb7debf84da50193d420b7a456f 100644 (file)
@@ -2,28 +2,18 @@
 
 package info.mechyrdia.data
 
-import kotlinx.serialization.ExperimentalSerializationApi
-import kotlinx.serialization.KSerializer
-import kotlinx.serialization.SerializationException
-import kotlinx.serialization.builtins.nullable
-import kotlinx.serialization.descriptors.PrimitiveKind
-import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
-import kotlinx.serialization.descriptors.SerialDescriptor
+import kotlinx.serialization.*
+import kotlinx.serialization.builtins.*
+import kotlinx.serialization.descriptors.*
 import kotlinx.serialization.encoding.Decoder
 import kotlinx.serialization.encoding.Encoder
-import org.bson.BsonDateTime
-import org.bson.BsonReader
-import org.bson.BsonWriter
-import org.bson.codecs.Codec
-import org.bson.codecs.DecoderContext
-import org.bson.codecs.EncoderContext
-import org.bson.codecs.configuration.CodecProvider
-import org.bson.codecs.configuration.CodecRegistry
-import org.bson.codecs.kotlinx.BsonDecoder
-import org.bson.codecs.kotlinx.BsonEncoder
-import org.bson.types.ObjectId
-import java.time.Instant
-import kotlin.math.absoluteValue
+import org.bson.*
+import org.bson.codecs.*
+import org.bson.codecs.configuration.*
+import org.bson.codecs.kotlinx.*
+import org.bson.types.*
+import java.time.*
+import kotlin.math.*
 
 object IdCodec : Codec<Id<*>> {
        override fun getEncoderClass(): Class<Id<*>> {
index 37262ab5ad092a4f1317eda14e0e1edc7bea83e6..4517903d80ca362e5aded5f5dc63a738f1eacd77 100644 (file)
@@ -1,16 +1,10 @@
 package info.mechyrdia.data
 
-import com.mongodb.client.model.Filters
-import com.mongodb.client.model.Sorts
-import com.mongodb.client.model.UpdateOneModel
-import com.mongodb.client.model.UpdateOptions
-import com.mongodb.client.model.Updates
-import info.mechyrdia.concat
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.toList
-import kotlinx.serialization.SerialName
-import kotlinx.serialization.Serializable
-import java.time.Instant
+import com.mongodb.client.model.*
+import info.mechyrdia.*
+import kotlinx.coroutines.flow.*
+import kotlinx.serialization.*
+import java.time.*
 
 @Serializable
 data class Comment(
index df709b2e2f20149bcc341928328be4edf8185040..f2905938b25daba60a8d5cbc8762bd69125c27a7 100644 (file)
@@ -1,48 +1,26 @@
 package info.mechyrdia.data
 
-import com.aventrix.jnanoid.jnanoid.NanoIdUtils
-import com.mongodb.ConnectionString
-import com.mongodb.MongoClientSettings
-import com.mongodb.MongoDriverInformation
-import com.mongodb.client.model.BulkWriteOptions
-import com.mongodb.client.model.Filters
-import com.mongodb.client.model.IndexOptions
-import com.mongodb.client.model.Indexes
-import com.mongodb.client.model.ReplaceOneModel
-import com.mongodb.client.model.ReplaceOptions
-import com.mongodb.client.model.UpdateOptions
-import com.mongodb.client.model.WriteModel
+import com.aventrix.jnanoid.jnanoid.*
+import com.mongodb.*
+import com.mongodb.client.model.*
+import com.mongodb.kotlin.client.coroutine.*
 import com.mongodb.kotlin.client.coroutine.MongoDatabase
-import com.mongodb.kotlin.client.coroutine.expireAfter
-import com.mongodb.reactivestreams.client.MongoClients
-import com.mongodb.reactivestreams.client.gridfs.GridFSBucket
-import com.mongodb.reactivestreams.client.gridfs.GridFSBuckets
-import info.mechyrdia.auth.NsStoredToken
-import info.mechyrdia.auth.SessionStorageDoc
-import info.mechyrdia.auth.WebDavToken
-import info.mechyrdia.robot.RobotGlobals
-import kotlinx.coroutines.CompletableDeferred
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.singleOrNull
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.runBlocking
-import kotlinx.serialization.KSerializer
-import kotlinx.serialization.SerialName
-import kotlinx.serialization.Serializable
-import kotlinx.serialization.descriptors.PrimitiveKind
-import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
-import kotlinx.serialization.descriptors.SerialDescriptor
-import kotlinx.serialization.encoding.Decoder
-import kotlinx.serialization.encoding.Encoder
-import org.bson.codecs.configuration.CodecRegistries
-import org.bson.codecs.kotlinx.KotlinSerializerCodecProvider
-import org.bson.conversions.Bson
-import java.security.SecureRandom
-import java.time.Instant
-import kotlin.reflect.KClass
-import kotlin.reflect.KProperty
-import kotlin.reflect.KProperty1
-import kotlin.reflect.full.findAnnotations
+import com.mongodb.reactivestreams.client.*
+import com.mongodb.reactivestreams.client.gridfs.*
+import info.mechyrdia.auth.*
+import info.mechyrdia.robot.*
+import kotlinx.coroutines.*
+import kotlinx.coroutines.flow.*
+import kotlinx.serialization.*
+import kotlinx.serialization.descriptors.*
+import kotlinx.serialization.encoding.*
+import org.bson.codecs.configuration.*
+import org.bson.codecs.kotlinx.*
+import org.bson.conversions.*
+import java.security.*
+import java.time.*
+import kotlin.reflect.*
+import kotlin.reflect.full.*
 import com.mongodb.reactivestreams.client.MongoDatabase as JMongoDatabase
 
 @Serializable(IdSerializer::class)
index 6813dfa9c22aa3ab9583f42e5a585af8e53f481a..8ac12c9c3f3b713c5b1ca3ef9b9272b4bfa313cc 100644 (file)
@@ -1,51 +1,24 @@
 package info.mechyrdia.data
 
-import com.mongodb.client.model.Filters
-import com.mongodb.client.model.Updates
-import com.mongodb.reactivestreams.client.gridfs.GridFSBucket
-import info.mechyrdia.Configuration
-import info.mechyrdia.FileStorageConfig
-import info.mechyrdia.concat
-import info.mechyrdia.lore.StoragePathAttributeKey
-import info.mechyrdia.lore.forEachSuspend
-import io.ktor.http.ContentType
-import io.ktor.http.HttpStatusCode
-import io.ktor.http.defaultForFileExtension
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.response.respond
-import io.ktor.server.response.respondBytes
-import io.ktor.util.combineSafe
-import io.ktor.util.moveToByteArray
-import kotlinx.coroutines.CoroutineName
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.SupervisorJob
-import kotlinx.coroutines.currentCoroutineContext
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.flow.flow
-import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.flow.toList
-import kotlinx.coroutines.flow.toSet
-import kotlinx.coroutines.job
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.reactive.asFlow
-import kotlinx.coroutines.reactive.asPublisher
-import kotlinx.coroutines.reactive.awaitFirst
-import kotlinx.coroutines.reactive.awaitFirstOrNull
-import kotlinx.coroutines.runBlocking
-import kotlinx.coroutines.runInterruptible
-import kotlinx.coroutines.withContext
-import kotlinx.serialization.SerialName
+import com.mongodb.client.model.*
+import com.mongodb.reactivestreams.client.gridfs.*
+import info.mechyrdia.*
+import info.mechyrdia.lore.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import io.ktor.server.response.*
+import io.ktor.util.*
+import kotlinx.coroutines.*
+import kotlinx.coroutines.flow.*
+import kotlinx.coroutines.reactive.*
+import kotlinx.serialization.*
 import kotlinx.serialization.Serializable
-import org.bson.types.ObjectId
-import java.io.ByteArrayOutputStream
-import java.io.File
-import java.nio.ByteBuffer
-import java.nio.file.FileAlreadyExistsException
-import java.nio.file.Files
-import java.nio.file.attribute.BasicFileAttributes
-import java.time.Instant
-import kotlin.String
+import org.bson.types.*
+import java.io.*
+import java.nio.*
+import java.nio.file.*
+import java.nio.file.attribute.*
+import java.time.*
 import kotlin.time.Duration.Companion.hours
 
 val StoragePath.contentType: ContentType
index ffad7e9a254477189197aa7878a4b1bfbedce0d7..dc8ac7d610bda3e7fed2ebe2ebb97b5ec6f8a83d 100644 (file)
@@ -2,11 +2,10 @@
 
 package info.mechyrdia.data
 
-import info.mechyrdia.Configuration
-import info.mechyrdia.FileStorageConfig
-import info.mechyrdia.lore.mapSuspend
-import kotlinx.coroutines.runBlocking
-import kotlin.system.exitProcess
+import info.mechyrdia.*
+import info.mechyrdia.lore.*
+import kotlinx.coroutines.*
+import kotlin.system.*
 
 fun printUsage(): Nothing {
        println("Usage: <FROM> <TO>")
index 5f177f848a87ddcdfe4a3310ee70fe94f5f2901f..13ddd3e00ea46801002b64dfbab41c14fcbc2b96 100644 (file)
@@ -1,24 +1,17 @@
 package info.mechyrdia.data
 
-import com.github.agadar.nationstates.domain.nation.Nation
-import com.github.agadar.nationstates.domain.nation.NationVerification
-import com.github.agadar.nationstates.query.ShardQuery
-import com.github.agadar.nationstates.shard.NationShard
-import com.mongodb.client.model.Filters
-import info.mechyrdia.Configuration
-import info.mechyrdia.OwnerNationId
-import info.mechyrdia.auth.NSAPI
-import info.mechyrdia.auth.UserSession
-import info.mechyrdia.auth.executeSuspend
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.sessions.get
-import io.ktor.server.sessions.sessions
-import io.ktor.util.AttributeKey
-import kotlinx.serialization.SerialName
-import kotlinx.serialization.Serializable
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-import java.util.concurrent.ConcurrentHashMap
+import com.github.agadar.nationstates.domain.nation.*
+import com.github.agadar.nationstates.query.*
+import com.github.agadar.nationstates.shard.*
+import com.mongodb.client.model.*
+import info.mechyrdia.*
+import info.mechyrdia.auth.*
+import io.ktor.server.application.*
+import io.ktor.server.sessions.*
+import io.ktor.util.*
+import kotlinx.serialization.*
+import org.slf4j.*
+import java.util.concurrent.*
 
 private val NationsLogger: Logger = LoggerFactory.getLogger("info.mechyrdia.data.NationsKt")
 
index e6a9610bc21b4a8d42133f64ae9daa1cb878d8e2..1aec50af3ed6b467d83db3d4908f8d25a90a4216 100644 (file)
@@ -1,22 +1,12 @@
 package info.mechyrdia.data
 
-import info.mechyrdia.MainDomainName
-import info.mechyrdia.OwnerNationId
-import info.mechyrdia.lore.ParserTree
-import info.mechyrdia.lore.append
-import info.mechyrdia.lore.dateTime
-import info.mechyrdia.lore.mapSuspend
-import info.mechyrdia.lore.parseAs
-import info.mechyrdia.lore.toCommentHtml
-import info.mechyrdia.lore.toFriendlyPathTitle
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.href
-import info.mechyrdia.route.installCsrfToken
-import io.ktor.server.application.ApplicationCall
-import kotlinx.coroutines.async
-import kotlinx.coroutines.coroutineScope
+import info.mechyrdia.*
+import info.mechyrdia.lore.*
+import info.mechyrdia.route.*
+import io.ktor.server.application.*
+import kotlinx.coroutines.*
 import kotlinx.html.*
-import java.time.Instant
+import java.time.*
 
 data class CommentRenderData(
        val id: Id<Comment>,
index 174a48ec977c8a11c578d8248d3e8751f65df2ea..c859a9eec00b7ed27023283ea348b3490c3a429d 100644 (file)
@@ -1,31 +1,15 @@
 package info.mechyrdia.data
 
-import com.mongodb.client.model.Sorts
-import info.mechyrdia.OwnerNationId
-import info.mechyrdia.auth.ForbiddenException
-import info.mechyrdia.concat
-import info.mechyrdia.lore.ParserTree
-import info.mechyrdia.lore.PokhwalishAlphabetFont
-import info.mechyrdia.lore.TylanAlphabetFont
-import info.mechyrdia.lore.append
-import info.mechyrdia.lore.getImageSizeStyleValue
-import info.mechyrdia.lore.getReplies
-import info.mechyrdia.lore.page
-import info.mechyrdia.lore.parseAs
-import info.mechyrdia.lore.redirectHref
-import info.mechyrdia.lore.redirectHrefWithError
-import info.mechyrdia.lore.standardNavBar
-import info.mechyrdia.lore.toCommentHtml
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.href
-import info.mechyrdia.route.installCsrfToken
-import io.ktor.http.HttpStatusCode
-import io.ktor.server.application.ApplicationCall
-import kotlinx.coroutines.flow.filterNot
-import kotlinx.coroutines.flow.take
-import kotlinx.coroutines.flow.toList
+import com.mongodb.client.model.*
+import info.mechyrdia.*
+import info.mechyrdia.auth.*
+import info.mechyrdia.lore.*
+import info.mechyrdia.route.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import kotlinx.coroutines.flow.*
 import kotlinx.html.*
-import java.time.Instant
+import java.time.*
 
 suspend fun ApplicationCall.recentCommentsPage(limit: Int?): HTML.() -> Unit {
        limit ?: redirectHref(Root.Comments.RecentPage(10), HttpStatusCode.Found)
index 2de8a3b15513be6108851aaebfcb1e7173dd5cf8..8d310a604c7b006397564d0cd61c32905e7d5af8 100644 (file)
@@ -1,22 +1,13 @@
 package info.mechyrdia.data
 
-import info.mechyrdia.auth.PageDoNotCacheAttributeKey
-import info.mechyrdia.lore.adminPage
-import info.mechyrdia.lore.dateTime
-import info.mechyrdia.lore.mapSuspend
-import info.mechyrdia.lore.redirectHref
-import info.mechyrdia.route.MultiPartPayloadPart
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.href
-import info.mechyrdia.route.installCsrfToken
-import io.ktor.http.ContentType
-import io.ktor.http.HttpStatusCode
-import io.ktor.http.defaultForFileExtension
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.html.respondHtml
-import io.ktor.server.plugins.MissingRequestParameterException
-import io.ktor.server.response.respond
-import io.ktor.server.response.respondBytes
+import info.mechyrdia.auth.*
+import info.mechyrdia.lore.*
+import info.mechyrdia.route.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import io.ktor.server.html.*
+import io.ktor.server.plugins.*
+import io.ktor.server.response.*
 import kotlinx.html.*
 
 fun Map<String, StoredFileType>.sortedAsFiles() = toList()
index 5d48b69e5b23864ce738c31a5deedfc34fc58cb0..3132fea82ef0c4c2a50660e50af050f1ebaa01e2 100644 (file)
@@ -1,23 +1,13 @@
 package info.mechyrdia.data
 
-import com.mongodb.client.model.Updates
-import info.mechyrdia.OwnerNationId
-import info.mechyrdia.lore.NationProfileSidebar
-import info.mechyrdia.lore.page
-import info.mechyrdia.lore.redirectHref
-import info.mechyrdia.lore.standardNavBar
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.href
-import info.mechyrdia.route.installCsrfToken
-import io.ktor.http.HttpStatusCode
-import io.ktor.server.application.ApplicationCall
-import kotlinx.coroutines.flow.toList
-import kotlinx.html.HTML
-import kotlinx.html.a
-import kotlinx.html.h1
-import kotlinx.html.id
-import kotlinx.html.p
-import kotlinx.html.section
+import com.mongodb.client.model.*
+import info.mechyrdia.*
+import info.mechyrdia.lore.*
+import info.mechyrdia.route.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import kotlinx.coroutines.flow.*
+import kotlinx.html.*
 
 suspend fun ApplicationCall.currentUserPage(): Nothing {
        val currNation = currentNation()
index 42b70a26a49e8da6cc4f043085e0b021ab213e0b..85b17aeb67fb6f47e02dd38451dad7539c4b219c 100644 (file)
@@ -1,21 +1,16 @@
 package info.mechyrdia.data
 
-import com.mongodb.client.model.Accumulators
-import com.mongodb.client.model.Aggregates
-import com.mongodb.client.model.Filters
-import com.mongodb.client.model.Updates
-import info.mechyrdia.auth.UserSession
-import info.mechyrdia.lore.dateTime
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.request.path
-import io.ktor.server.request.userAgent
-import io.ktor.server.sessions.sessionId
-import kotlinx.coroutines.flow.firstOrNull
+import com.mongodb.client.model.*
+import info.mechyrdia.auth.*
+import info.mechyrdia.lore.*
+import io.ktor.server.application.*
+import io.ktor.server.request.*
+import io.ktor.server.sessions.*
+import kotlinx.coroutines.flow.*
 import kotlinx.html.*
-import kotlinx.serialization.SerialName
-import kotlinx.serialization.Serializable
-import org.intellij.lang.annotations.Language
-import java.time.Instant
+import kotlinx.serialization.*
+import org.intellij.lang.annotations.*
+import java.time.*
 
 @Serializable
 data class PageVisitTotals(
index c04f9a7cc58462531d17352ab169e02c6140a17c..2e6c77389093f9833814d8082b9bd2e68f47b8b7 100644 (file)
@@ -1,18 +1,16 @@
 package info.mechyrdia.data
 
-import info.mechyrdia.Utf8
-import io.ktor.http.ContentType
-import io.ktor.http.HttpStatusCode
-import io.ktor.http.withCharsetIfNeeded
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.response.respondText
+import info.mechyrdia.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import io.ktor.server.response.*
 import kotlinx.html.*
 import kotlinx.html.consumers.*
 import kotlinx.html.dom.*
 import kotlinx.html.impl.*
 import kotlinx.html.org.w3c.dom.events.*
 import kotlinx.html.stream.*
-import org.w3c.dom.Document
+import org.w3c.dom.*
 
 @DslMarker
 annotation class XmlTagMarker
index 3905766a0480ec863ee8762286e70ace5ffae9b1..66d4e40c465b57677ef10a9722189ffa7365a1ab 100644 (file)
@@ -1,11 +1,8 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import io.ktor.server.application.ApplicationCall
-import java.time.Instant
-import java.time.Month
-import java.time.ZoneId
+import info.mechyrdia.data.*
+import io.ktor.server.application.*
+import java.time.*
 
 val MyTimeZone: ZoneId = ZoneId.of("America/New_York")
 
index ccef46cf7cd044a69b2d1082e7c06af0d4cd5cef..d86d0d710e3d585b71b83f69543d82abda306a2a 100644 (file)
@@ -1,19 +1,14 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.Configuration
-import info.mechyrdia.OwnerNationId
-import info.mechyrdia.auth.UserSession
-import info.mechyrdia.concat
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.href
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.sessions.get
-import io.ktor.server.sessions.sessions
+import info.mechyrdia.*
+import info.mechyrdia.auth.*
+import info.mechyrdia.data.*
+import info.mechyrdia.route.*
+import io.ktor.server.application.*
+import io.ktor.server.sessions.*
 import kotlinx.html.*
-import java.text.Collator
-import java.util.Locale
+import java.text.*
+import java.util.*
 
 data class ArticleNode(val name: String, val title: ArticleTitle, val subNodes: List<ArticleNode>?)
 
index 63e3eef9c0c76bace60db5ec59681cc3d1599b0f..8f72f4f1992143c1dbadc45d6b8a10c288cf2b37 100644 (file)
@@ -1,7 +1,7 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.concat
-import info.mechyrdia.data.StoragePath
+import info.mechyrdia.*
+import info.mechyrdia.data.*
 
 data class ArticleTitle(val title: String, val css: String = "")
 
index 65bd140746e5a24bf982827b06b79952b44f9332..3b864bb92eb17a62ddd50342a69da37cda03d3e9 100644 (file)
@@ -1,12 +1,10 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import io.ktor.util.AttributeKey
-import kotlinx.coroutines.sync.Mutex
-import kotlinx.coroutines.sync.withLock
-import java.time.Instant
-import java.util.concurrent.ConcurrentHashMap
+import info.mechyrdia.data.*
+import io.ktor.util.*
+import kotlinx.coroutines.sync.*
+import java.time.*
+import java.util.concurrent.*
 
 val StoragePathAttributeKey = AttributeKey<StoragePath>("Mechyrdia.StoragePath")
 
index 7aec26996ee9beb4d0c103c2d76bbd7780a23364..512ba822dc58c77f1a91e4b65e3eb77f2cb66cef 100644 (file)
@@ -1,22 +1,13 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import info.mechyrdia.data.respondStoredFile
-import io.ktor.http.HttpHeaders
-import io.ktor.http.HttpStatusCode
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.request.acceptEncodingItems
-import io.ktor.server.response.header
-import io.ktor.server.response.respond
-import io.ktor.server.response.respondBytes
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.withContext
-import java.io.ByteArrayOutputStream
-import java.io.FilterOutputStream
-import java.io.OutputStream
-import java.util.zip.DeflaterOutputStream
-import java.util.zip.GZIPOutputStream
+import info.mechyrdia.data.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import io.ktor.server.request.*
+import io.ktor.server.response.*
+import kotlinx.coroutines.*
+import java.io.*
+import java.util.zip.*
 
 private val gzippedCache = CompressedCache("gzip", ::GZIPOutputStream)
 private val deflatedCache = CompressedCache("deflate", ::DeflaterOutputStream)
index b7702b32cf51e1a2ac7345a9a5ed6654d13ddd3f..185f3b53c59fda5fbeab1a5668b6d01c69bf6d1a 100644 (file)
@@ -1,20 +1,13 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import io.ktor.http.content.EntityTagVersion
-import io.ktor.http.content.Version
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.http.content.LastModifiedVersion
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.async
-import kotlinx.coroutines.awaitAll
-import kotlinx.coroutines.coroutineScope
-import kotlinx.coroutines.withContext
-import java.io.IOException
-import java.io.OutputStream
-import java.security.MessageDigest
-import java.util.Base64
+import info.mechyrdia.data.*
+import io.ktor.http.content.*
+import io.ktor.server.application.*
+import io.ktor.server.http.content.*
+import kotlinx.coroutines.*
+import java.io.*
+import java.security.*
+import java.util.*
 
 private class DigestingOutputStream(stomach: MessageDigest) : OutputStream() {
        private var stomachStore: MessageDigest? = stomach
index 42a887d260a72f5102db8d09829b7a4f487dcd04..b957bc57d993f24951f7fed2c3f93862c68c434a 100644 (file)
@@ -1,12 +1,10 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import kotlinx.coroutines.sync.Mutex
-import kotlinx.coroutines.sync.withLock
-import java.time.Instant
-import kotlin.properties.ReadOnlyProperty
-import kotlin.reflect.KProperty
+import info.mechyrdia.data.*
+import kotlinx.coroutines.sync.*
+import java.time.*
+import kotlin.properties.*
+import kotlin.reflect.*
 
 fun <T : Any> storedData(path: StoragePath, loader: suspend (StoragePath) -> T?): ReadOnlyProperty<Any?, suspend () -> T?> = object : ReadOnlyProperty<Any?, suspend () -> T?> {
        private var loadedValue: T? = null
index e9f0f41ff6db256d9036dd9cfb5666de7fb2803d..25bd6a0b3d45142950e2df8865c2374d1175d4e8 100644 (file)
@@ -1,13 +1,9 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.JsonFileCodec
-import info.mechyrdia.Utf8
-import info.mechyrdia.concatenated
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import kotlinx.serialization.Serializable
-import kotlinx.serialization.builtins.MapSerializer
-import kotlinx.serialization.builtins.serializer
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import kotlinx.serialization.*
+import kotlinx.serialization.builtins.*
 
 @Serializable
 data class FontAssetSrc(
index 5face4f7c232ca94dccc1ecd4e9af840f820f677..7052312989016e7c33ee0b9f56444a5c293d3708 100644 (file)
@@ -1,33 +1,21 @@
 package info.mechyrdia.lore
 
-import com.jaredrummler.fontreader.truetype.FontFileReader
-import com.jaredrummler.fontreader.truetype.TTFFile
-import com.jaredrummler.fontreader.util.GlyphSequence
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import info.mechyrdia.route.KeyedEnumSerializer
-import info.mechyrdia.yieldThread
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.runInterruptible
-import kotlinx.coroutines.withContext
+import com.jaredrummler.fontreader.truetype.*
+import com.jaredrummler.fontreader.util.*
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import info.mechyrdia.route.*
+import kotlinx.coroutines.*
 import kotlinx.serialization.Serializable
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-import java.awt.AlphaComposite
-import java.awt.Color
-import java.awt.Font
-import java.awt.RenderingHints
-import java.awt.geom.AffineTransform
-import java.awt.geom.GeneralPath
-import java.awt.image.BufferedImage
-import java.io.ByteArrayInputStream
-import java.io.ByteArrayOutputStream
-import java.io.IOException
-import java.nio.IntBuffer
-import javax.imageio.ImageIO
-import kotlin.math.ceil
-import kotlin.math.roundToInt
-import kotlin.properties.ReadOnlyProperty
+import org.slf4j.*
+import java.awt.*
+import java.awt.geom.*
+import java.awt.image.*
+import java.io.*
+import java.nio.*
+import javax.imageio.*
+import kotlin.math.*
+import kotlin.properties.*
 
 private val FontsLogger: Logger = LoggerFactory.getLogger("info.mechyrdia.lore.FontsKt")
 
index 8796f77efb1f847cf4505c6cf151daf1672f12d6..193bb92a8fee69e367dbcfc4aab313ed2fa6ff0f 100644 (file)
@@ -1,9 +1,8 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.route.ErrorMessageCookieName
-import info.mechyrdia.route.href
-import io.ktor.http.HttpStatusCode
-import io.ktor.server.application.ApplicationCall
+import info.mechyrdia.route.*
+import io.ktor.http.*
+import io.ktor.server.application.*
 
 data class HttpRedirectException(val url: String, val status: HttpStatusCode) : RuntimeException()
 
index 2e7204ab9f1e1626c999301119fdc480e8b8777e..a03e7110446d5f71ea5c57897923cbbc8b5278a9 100644 (file)
@@ -1,9 +1,7 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.MainDomainName
-import info.mechyrdia.concat
-import info.mechyrdia.data.Comment
-import info.mechyrdia.data.Id
+import info.mechyrdia.*
+import info.mechyrdia.data.*
 
 abstract class BuilderLexerProcessor<TContext> : LexerTagFallback<TContext, Unit>, LexerTextProcessor<TContext, Unit>, LexerLineBreakProcessor<TContext, Unit>, LexerCombiner<TContext, Unit> {
        override fun processInvalidTag(env: LexerTagEnvironment<TContext, Unit>, tag: String, param: String?, subNodes: ParserTree) {
index dee7ff7ea42afefb92fcfef90ad72861cd7af9c5..c066afb9caef4d4fdec381034d8e4f4a803c0172 100644 (file)
@@ -1,11 +1,10 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.JsonStorageCodec
-import info.mechyrdia.concat
+import info.mechyrdia.*
 import kotlinx.html.*
 import kotlinx.html.org.w3c.dom.events.*
 import kotlinx.html.stream.*
-import java.time.Instant
+import java.time.*
 
 typealias HtmlBuilderContext = Unit
 typealias HtmlBuilderSubject = TagConsumer<*>.() -> Any?
index 0c1b6971ee6e4d89fd87fb7c8077d1f36def8671..2271241a80efc59a7da933b6057245c12c688957 100644 (file)
@@ -1,6 +1,6 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.concat
+import info.mechyrdia.*
 
 typealias PlainTextBuilderContext = Unit
 typealias PlainTextBuilderSubject = String
index 0b934f9953e01ad78f6810a9003bef838cc6c683..4c5e7ae2af90df28dd7c8fa9c7b9692d073a7cb3 100644 (file)
@@ -1,15 +1,10 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.JsonStorageCodec
-import info.mechyrdia.concat
-import info.mechyrdia.data.StoragePath
-import kotlinx.coroutines.async
-import kotlinx.coroutines.awaitAll
-import kotlinx.coroutines.coroutineScope
-import kotlinx.coroutines.joinAll
-import kotlinx.coroutines.launch
-import java.time.Instant
-import kotlin.math.roundToInt
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import kotlinx.coroutines.*
+import java.time.*
+import kotlin.math.*
 
 class PreProcessorContext private constructor(
        val variables: MutableMap<String, ParserTree>,
index e2ae272b712c974309a19c39ac165f4d56203d79..d1edff46f094ffd0b60a0c8a1be7e08972e64ae1 100644 (file)
@@ -1,35 +1,17 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.JsonStorageCodec
-import info.mechyrdia.Utf8
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import io.ktor.util.hex
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.runInterruptible
-import kotlinx.coroutines.suspendCancellableCoroutine
-import kotlinx.serialization.json.JsonArray
-import kotlinx.serialization.json.JsonElement
-import kotlinx.serialization.json.JsonNull
-import kotlinx.serialization.json.JsonObject
-import kotlinx.serialization.json.JsonPrimitive
-import kotlinx.serialization.json.booleanOrNull
-import kotlinx.serialization.json.double
-import kotlinx.serialization.json.intOrNull
-import java.security.MessageDigest
-import java.util.concurrent.ConcurrentHashMap
-import java.util.concurrent.locks.ReentrantLock
-import java.util.function.Consumer
-import javax.script.Compilable
-import javax.script.CompiledScript
-import javax.script.ScriptEngineManager
-import javax.script.SimpleBindings
-import kotlin.concurrent.withLock
-import kotlin.coroutines.Continuation
-import kotlin.coroutines.CoroutineContext
-import kotlin.coroutines.resume
-import kotlin.coroutines.resumeWithException
-import kotlin.coroutines.startCoroutine
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import io.ktor.util.*
+import kotlinx.coroutines.*
+import kotlinx.serialization.json.*
+import java.security.*
+import java.util.concurrent.*
+import java.util.concurrent.locks.*
+import java.util.function.*
+import javax.script.*
+import kotlin.concurrent.*
+import kotlin.coroutines.*
 
 object PreProcessorTemplateLoader {
        suspend fun loadTemplate(name: String): ParserTree {
index 8c7d0f4605017d2381ff7fe2b73d238d3445a820..07d4c429544f65b833cb2e0fcc43a11ffb246d84 100644 (file)
@@ -1,15 +1,8 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.JsonStorageCodec
-import info.mechyrdia.Utf8
-import info.mechyrdia.concat
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import kotlinx.serialization.json.JsonArray
-import kotlinx.serialization.json.JsonElement
-import kotlinx.serialization.json.JsonNull
-import kotlinx.serialization.json.JsonObject
-import kotlinx.serialization.json.JsonPrimitive
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import kotlinx.serialization.json.*
 
 fun JsonElement.toPreProcessTree(): ParserTree = when (this) {
        JsonNull -> emptyList()
index 89cfd44fe153cd05aea8ae7a2735afd7a0fe1e91..7251d7d533e132c4671978c462ccedfdf3478780 100644 (file)
@@ -1,24 +1,7 @@
 package info.mechyrdia.lore
 
-import java.time.Instant
-import kotlin.math.acos
-import kotlin.math.asin
-import kotlin.math.atan
-import kotlin.math.atan2
-import kotlin.math.cbrt
-import kotlin.math.ceil
-import kotlin.math.cos
-import kotlin.math.floor
-import kotlin.math.hypot
-import kotlin.math.log
-import kotlin.math.max
-import kotlin.math.min
-import kotlin.math.pow
-import kotlin.math.round
-import kotlin.math.sin
-import kotlin.math.sqrt
-import kotlin.math.tan
-import kotlin.math.truncate
+import java.time.*
+import kotlin.math.*
 
 fun <T : Number> ParserTree.treeToNumberOrNull(convert: String.() -> T?) = treeToText().convert()
 
index 12d0137f14b951c0e34c06e3655b0fed4663c252..645e7938a4a35edbba526e8d585cb16883e85159 100644 (file)
@@ -1,14 +1,9 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.JsonStorageCodec
-import kotlinx.html.div
-import kotlinx.html.form
-import kotlinx.html.span
-import kotlinx.serialization.DeserializationStrategy
-import kotlinx.serialization.Serializable
-import kotlinx.serialization.json.JsonContentPolymorphicSerializer
-import kotlinx.serialization.json.JsonElement
-import kotlinx.serialization.json.JsonPrimitive
+import info.mechyrdia.*
+import kotlinx.html.*
+import kotlinx.serialization.*
+import kotlinx.serialization.json.*
 
 @Serializable
 data class LangVocabInputWordType(
index c0b5b3975ee09acd08968118699402cf7eceda6b..76e9d7dc0623af4d9e07fe3fa18c4c423eac3f7e 100644 (file)
@@ -1,7 +1,7 @@
 package info.mechyrdia.lore
 
 import kotlinx.html.*
-import java.time.Instant
+import java.time.*
 
 fun String.toRawLink() = substringBeforeLast('#').sanitizeLink().toInternalUrl() + "?format=raw"
 
index e72a20b4490d38a4a811d9690e28839dbde1c981..58e17fd00416fa689fc742017a3392d240c25b34 100644 (file)
@@ -1,8 +1,8 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.concat
-import info.mechyrdia.robot.toOpenAiName
-import java.time.Instant
+import info.mechyrdia.*
+import info.mechyrdia.robot.*
+import java.time.*
 
 fun String.toRobotUrl(context: RobotTextContext): String {
        val filePath = if (startsWith("/"))
index 0f415fe39a861f8e7e3999af655abf0c5899f5b4..8578ed0adb71b31991215a9f2e142f8a8fdcbed1 100644 (file)
@@ -1,6 +1,6 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.data.NationData
+import info.mechyrdia.data.*
 import kotlinx.html.*
 
 abstract class Sidebar {
index 141257bb80050f0adcdefd57a9450379e6aa237d..d71ceea45e3514714dcb6de8b4733967b7d813d4 100644 (file)
@@ -1,6 +1,6 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.data.StoragePath
+import info.mechyrdia.data.*
 import io.ktor.server.application.*
 
 fun ApplicationCall.galaxyMapPage(): StoragePath {
index ea7f749a6009c6cb66f7a856548c8cda9a89438b..85515f6d79677434a91718f4bea4512f0dcc9903 100644 (file)
@@ -1,23 +1,14 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.JsonFileCodec
-import info.mechyrdia.OwnerNationId
-import info.mechyrdia.Utf8
-import info.mechyrdia.auth.createCsrfToken
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import info.mechyrdia.data.currentNation
-import info.mechyrdia.robot.RobotService
-import info.mechyrdia.robot.RobotServiceStatus
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.href
-import io.ktor.server.application.ApplicationCall
+import info.mechyrdia.*
+import info.mechyrdia.auth.*
+import info.mechyrdia.data.*
+import info.mechyrdia.robot.*
+import info.mechyrdia.route.*
+import io.ktor.server.application.*
 import kotlinx.html.*
-import kotlinx.serialization.Serializable
-import kotlinx.serialization.builtins.ListSerializer
-import kotlin.collections.component1
-import kotlin.collections.component2
-import kotlin.collections.set
+import kotlinx.serialization.*
+import kotlinx.serialization.builtins.*
 
 @Serializable
 private data class ExternalLink(
index 2e22be2d4373986d73c03e96166445752685c5e1..ebe0a4da3b8e2d388a55efea47a658331af31ea2 100644 (file)
@@ -1,10 +1,10 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.MainDomainName
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.request.path
+import info.mechyrdia.*
+import io.ktor.server.application.*
+import io.ktor.server.request.*
 import kotlinx.html.*
-import kotlinx.serialization.Serializable
+import kotlinx.serialization.*
 
 @Serializable
 data class OpenGraphData(
index 7e0c4ccbfef40ae8e5ddedaeaa1dadecd86d97d8..1a04627edfbde84106af47aa881a9ef23added2b 100644 (file)
@@ -1,11 +1,8 @@
 package info.mechyrdia.lore
 
-import io.ktor.server.application.ApplicationCall
+import io.ktor.server.application.*
 import kotlinx.html.*
-import java.time.Instant
-import kotlin.collections.List
-import kotlin.collections.listOf
-import kotlin.collections.set
+import java.time.*
 
 private val preloadFonts = listOf(
        "DejaVuSans-Bold.woff",
index f649fee0175d35835e8ac7200922458ecee936e8..7b33bf9a12a625f93f81f70c0f57bd24af090880 100644 (file)
@@ -1,14 +1,11 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.OwnerNationId
-import info.mechyrdia.data.currentNation
-import info.mechyrdia.route.CsrfProtectedResourcePayload
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.href
-import io.ktor.http.HttpHeaders
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.request.header
-import io.ktor.server.request.uri
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import info.mechyrdia.route.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import io.ktor.server.request.*
 import kotlinx.html.*
 
 suspend fun ApplicationCall.errorPage(title: String, body: FlowContent.() -> Unit): HTML.() -> Unit {
index bc999cebaf6eb1ede6302fcdeee6572d1be98b41..1bc47f58bde5f988d2fcafa533c4f6debac3f520 100644 (file)
@@ -1,27 +1,13 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.JsonFileCodec
-import info.mechyrdia.data.Comment
-import info.mechyrdia.data.CommentRenderData
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.NationData
-import info.mechyrdia.data.PageVisitTotals
-import info.mechyrdia.data.StoragePath
-import info.mechyrdia.data.commentBox
-import info.mechyrdia.data.commentInput
-import info.mechyrdia.data.currentNation
-import info.mechyrdia.data.guestbook
-import info.mechyrdia.data.nationCache
-import info.mechyrdia.data.processGuestbook
-import info.mechyrdia.route.KeyedEnumSerializer
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.href
-import io.ktor.server.application.ApplicationCall
-import kotlinx.coroutines.async
-import kotlinx.coroutines.coroutineScope
-import kotlinx.coroutines.flow.toList
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import info.mechyrdia.route.*
+import io.ktor.server.application.*
+import kotlinx.coroutines.*
+import kotlinx.coroutines.flow.*
 import kotlinx.html.*
-import kotlinx.serialization.Serializable
+import kotlinx.serialization.*
 
 @Serializable
 data class IntroMetaData(
index c94f2d1de22f0cdbe1f2ca159aefb0d68c4713f0..dfdfc0f9b3bde82584a70d2bf3504521c8d9ccc3 100644 (file)
@@ -1,11 +1,9 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.MainDomainName
-import info.mechyrdia.Utf8
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.request.path
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import io.ktor.server.application.*
+import io.ktor.server.request.*
 import kotlinx.html.*
 
 private val meshDir = StoragePath.assetDir / "meshes"
index e122e88c35616bbce4ff3b1fd2e3eeaf0c9c4a99..8b90a68415cb8961bc0f3d1c03295618c0c1c926 100644 (file)
@@ -1,11 +1,10 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.auth.PageDoNotCacheAttributeKey
-import info.mechyrdia.route.KeyedEnumSerializer
-import io.ktor.server.application.ApplicationCall
+import info.mechyrdia.auth.*
+import info.mechyrdia.route.*
+import io.ktor.server.application.*
 import kotlinx.html.*
-import kotlinx.serialization.Serializable
-import kotlinx.serialization.serializer
+import kotlinx.serialization.*
 
 @Serializable(PageThemeSerializer::class)
 enum class PageTheme(val attributeValue: String?) {
index 50ccbdf9737da1c59792a62111b37afadcc26de1..87d82868ecef9ad228fdd6a6dc6f91d6bacfccb3 100644 (file)
@@ -1,35 +1,16 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.JsonFileCodec
-import info.mechyrdia.MainDomainName
-import info.mechyrdia.Utf8
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import info.mechyrdia.data.XmlTagConsumer
-import info.mechyrdia.data.declaration
-import info.mechyrdia.data.respondXml
-import info.mechyrdia.data.root
-import info.mechyrdia.route.KeyedEnumSerializer
-import io.ktor.http.ContentType
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.html.respondHtml
-import io.ktor.server.response.respondText
-import kotlinx.html.Entities
-import kotlinx.html.FlowContent
-import kotlinx.html.HTML
-import kotlinx.html.a
-import kotlinx.html.blockQuote
-import kotlinx.html.h1
-import kotlinx.html.id
-import kotlinx.html.img
-import kotlinx.html.p
-import kotlinx.html.section
-import kotlinx.html.style
-import kotlinx.html.unsafe
-import kotlinx.serialization.Serializable
-import kotlinx.serialization.builtins.ListSerializer
-import kotlinx.serialization.json.buildJsonObject
-import kotlinx.serialization.json.put
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import info.mechyrdia.route.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import io.ktor.server.html.*
+import io.ktor.server.response.*
+import kotlinx.html.*
+import kotlinx.serialization.*
+import kotlinx.serialization.builtins.*
+import kotlinx.serialization.json.*
 
 @Serializable
 data class Quote(
index 0706e900685ac3b341919310ff25fabfc0b8fa6a..8bc0c5b8d190869934e05d3742b6991deebfaeef 100644 (file)
@@ -1,17 +1,10 @@
 package info.mechyrdia.lore
 
-import info.mechyrdia.MainDomainName
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import info.mechyrdia.data.XmlInsertable
-import info.mechyrdia.data.XmlTag
-import info.mechyrdia.data.XmlTagConsumer
-import info.mechyrdia.data.declaration
-import info.mechyrdia.data.root
-import io.ktor.server.application.ApplicationCall
-import java.time.Instant
-import java.time.ZoneId
-import java.time.format.DateTimeFormatter
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import io.ktor.server.application.*
+import java.time.*
+import java.time.format.*
 
 private val AVERAGE_FACTBOOK_INTRO_CHANGEFREQ = SitemapChangeFrequency.DAILY
 private val AVERAGE_FACTBOOK_PAGE_CHANGEFREQ = SitemapChangeFrequency.HOURLY
index 3a7b6f36f762f48b6d6abbd74e7020fd925d8f4f..511cf37aedc74214d8816a96874be56809b50819 100644 (file)
@@ -1,33 +1,13 @@
 package info.mechyrdia.lore
 
-import com.mongodb.client.model.Sorts
-import info.mechyrdia.MainDomainName
-import info.mechyrdia.OwnerNationId
-import info.mechyrdia.concat
-import info.mechyrdia.data.Comment
-import info.mechyrdia.data.CommentRenderData
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.StoragePath
-import info.mechyrdia.data.StoredFileStats
-import info.mechyrdia.data.XmlInsertable
-import info.mechyrdia.data.XmlTag
-import info.mechyrdia.data.XmlTagConsumer
-import info.mechyrdia.data.currentNation
-import info.mechyrdia.data.declaration
-import info.mechyrdia.data.nationCache
-import info.mechyrdia.data.respondXml
-import info.mechyrdia.data.root
-import info.mechyrdia.data.serialName
-import io.ktor.http.ContentType
-import io.ktor.http.HttpStatusCode
-import io.ktor.http.defaultForFileExtension
-import io.ktor.server.application.ApplicationCall
-import kotlinx.coroutines.flow.filterNot
-import kotlinx.coroutines.flow.take
-import kotlinx.coroutines.flow.toList
-import java.time.Instant
-import java.time.ZoneOffset
-import java.time.format.DateTimeFormatter
+import com.mongodb.client.model.*
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import kotlinx.coroutines.flow.*
+import java.time.*
+import java.time.format.*
 
 suspend fun ApplicationCall.respondRss(rss: RssChannel) {
        respondXml(contentType = ContentType.Application.Rss) { rss(rss) }
index 8e9506db0c4901c4507fcb447aa59f85e979ef22..3d44665a848f413aa7994e562a6907294c9b5ad6 100644 (file)
@@ -1,26 +1,14 @@
 package info.mechyrdia.robot
 
-import io.ktor.client.HttpClient
-import io.ktor.client.call.body
-import io.ktor.client.plugins.sse.sse
-import io.ktor.client.request.HttpRequestBuilder
-import io.ktor.client.request.delete
-import io.ktor.client.request.forms.formData
-import io.ktor.client.request.forms.submitFormWithBinaryData
-import io.ktor.client.request.get
-import io.ktor.client.request.post
-import io.ktor.client.request.setBody
-import io.ktor.http.ContentType
-import io.ktor.http.contentType
-import io.ktor.http.parameters
-import io.ktor.sse.ServerSentEvent
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.currentCoroutineContext
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.SharingStarted
-import kotlinx.coroutines.flow.flow
-import kotlinx.coroutines.flow.shareIn
+import io.ktor.client.*
+import io.ktor.client.call.*
+import io.ktor.client.plugins.sse.*
+import io.ktor.client.request.*
+import io.ktor.client.request.forms.*
+import io.ktor.http.*
+import io.ktor.sse.*
+import kotlinx.coroutines.*
+import kotlinx.coroutines.flow.*
 
 @JvmInline
 value class RobotClient(
index a9895116ef3dcb29a0db5ddc646d49fa63de8a50..6f53232d3907e6403b7d4830222938bc1e9b35d0 100644 (file)
@@ -1,9 +1,8 @@
 package info.mechyrdia.robot
 
-import io.ktor.http.Parameters
-import io.ktor.http.formUrlEncode
-import kotlinx.serialization.ExperimentalSerializationApi
-import kotlinx.serialization.json.Json
+import io.ktor.http.*
+import kotlinx.serialization.*
+import kotlinx.serialization.json.*
 
 @OptIn(ExperimentalSerializationApi::class)
 val JsonRobotCodec = Json {
index 34a0a9d598316f621e02c9e75fab800501506927..58a74b0e0b5385fcc2112f1a8bd30ac1b1832f2e 100644 (file)
@@ -1,11 +1,8 @@
 package info.mechyrdia.robot
 
-import info.mechyrdia.Utf8
-import io.ktor.client.request.forms.FormBuilder
-import io.ktor.http.ContentType
-import io.ktor.http.Headers
-import io.ktor.http.HttpHeaders
-import io.ktor.http.append
+import info.mechyrdia.*
+import io.ktor.client.request.forms.*
+import io.ktor.http.*
 
 class FileUpload(
        val content: ByteArray,
index c3e0e3349627686a9782308afb6dc43a4c5c7d36..f5388d9a399beb37467ab180d8a5bdfffcccbd00 100644 (file)
@@ -1,13 +1,11 @@
 package info.mechyrdia.robot
 
-import io.ktor.client.plugins.api.createClientPlugin
-import io.ktor.util.AttributeKey
-import io.ktor.util.Attributes
-import kotlinx.coroutines.delay
-import java.time.Instant
-import java.util.concurrent.atomic.AtomicInteger
-import java.util.concurrent.atomic.AtomicLong
-import kotlin.random.Random
+import io.ktor.client.plugins.api.*
+import io.ktor.util.*
+import kotlinx.coroutines.*
+import java.time.*
+import java.util.concurrent.atomic.*
+import kotlin.random.*
 import kotlin.time.Duration.Companion.seconds
 
 private val DurationRegex = Regex("([0-9]+h)?([0-9]+m)?([0-9]+s)?")
index 63e244d2c42297b620a6190bf0b0e396431af10c..c5acd441a14112c499b53cfaf535669b69829559 100644 (file)
@@ -1,7 +1,6 @@
 package info.mechyrdia.robot
 
-import kotlinx.serialization.SerialName
-import kotlinx.serialization.Serializable
+import kotlinx.serialization.*
 
 @Serializable
 @JvmInline
index a3501d0846c97e8bebbd41cdc344875a66047faf..9d7eaeb2068cbe3d075455de77e6bc5b885e086d 100644 (file)
@@ -1,61 +1,25 @@
 package info.mechyrdia.robot
 
-import com.aallam.ktoken.Encoding
-import com.aallam.ktoken.Tokenizer
-import info.mechyrdia.Configuration
-import info.mechyrdia.MainDomainName
-import info.mechyrdia.OpenAiConfig
-import info.mechyrdia.Utf8
-import info.mechyrdia.concat
-import info.mechyrdia.data.DataDocument
-import info.mechyrdia.data.DocumentTable
-import info.mechyrdia.data.Id
-import info.mechyrdia.data.InstantNullableSerializer
-import info.mechyrdia.data.MONGODB_ID_KEY
-import info.mechyrdia.data.NationData
-import info.mechyrdia.data.TableHolder
-import info.mechyrdia.lore.RobotFactbookLoader
-import io.ktor.client.HttpClient
-import io.ktor.client.engine.java.Java
-import io.ktor.client.plugins.ClientRequestException
-import io.ktor.client.plugins.HttpRequestRetry
-import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
-import io.ktor.client.plugins.defaultRequest
-import io.ktor.client.plugins.logging.LogLevel
-import io.ktor.client.plugins.logging.Logging
-import io.ktor.client.plugins.sse.SSE
-import io.ktor.client.request.header
-import io.ktor.http.ContentType
-import io.ktor.http.HttpHeaders
-import io.ktor.http.withCharset
-import io.ktor.serialization.kotlinx.json.json
-import kotlinx.coroutines.CoroutineName
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Deferred
-import kotlinx.coroutines.Job
-import kotlinx.coroutines.SupervisorJob
-import kotlinx.coroutines.async
-import kotlinx.coroutines.awaitAll
-import kotlinx.coroutines.currentCoroutineContext
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.filter
-import kotlinx.coroutines.flow.flow
-import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.flow.mapNotNull
-import kotlinx.coroutines.flow.onCompletion
-import kotlinx.coroutines.flow.onEach
-import kotlinx.coroutines.job
-import kotlinx.coroutines.launch
-import kotlinx.serialization.SerialName
-import kotlinx.serialization.Serializable
+import com.aallam.ktoken.*
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import info.mechyrdia.lore.*
+import io.ktor.client.*
+import io.ktor.client.engine.java.*
+import io.ktor.client.plugins.*
+import io.ktor.client.plugins.contentnegotiation.*
+import io.ktor.client.plugins.logging.*
+import io.ktor.client.plugins.sse.*
+import io.ktor.client.request.*
+import io.ktor.http.*
+import io.ktor.serialization.kotlinx.json.*
+import kotlinx.coroutines.*
+import kotlinx.coroutines.flow.*
+import kotlinx.serialization.*
+import org.slf4j.*
 import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-import java.time.Instant
-import kotlin.collections.component1
-import kotlin.collections.component2
-import kotlin.collections.set
-import kotlin.random.Random
+import java.time.*
+import kotlin.random.*
 import kotlin.time.Duration.Companion.minutes
 
 private val RobotServiceLogger: Logger = LoggerFactory.getLogger("info.mechyrdia.robot.RobotServiceKt")
index c1a5ff1f4bfb832aa04b2414c7e274b890a5d15b..e46a5fe810eb94e8f48f61d3f9bc765ecd11d026 100644 (file)
@@ -1,20 +1,11 @@
 package info.mechyrdia.robot
 
-import com.mongodb.client.model.Filters
-import com.mongodb.client.model.Updates
-import info.mechyrdia.OwnerNationId
-import info.mechyrdia.data.DataDocument
-import info.mechyrdia.data.DocumentTable
-import info.mechyrdia.data.Id
-import info.mechyrdia.data.MONGODB_ID_KEY
-import info.mechyrdia.data.NationData
-import info.mechyrdia.data.TableHolder
-import info.mechyrdia.data.ascending
-import info.mechyrdia.data.serialName
-import info.mechyrdia.lore.MyTimeZone
-import kotlinx.serialization.SerialName
-import kotlinx.serialization.Serializable
-import java.time.Instant
+import com.mongodb.client.model.*
+import info.mechyrdia.*
+import info.mechyrdia.data.*
+import info.mechyrdia.lore.*
+import kotlinx.serialization.*
+import java.time.*
 
 @Serializable
 data class RobotUser(
index 1e36cae5934cdea4a2f63eb6d50c12b8b3d06244..c847a83d220e08e1d067374c3d6dede4f7dc3d48 100644 (file)
@@ -1,24 +1,13 @@
 package info.mechyrdia.robot
 
-import info.mechyrdia.auth.createCsrfToken
-import info.mechyrdia.data.currentNation
-import info.mechyrdia.lore.adminPage
-import info.mechyrdia.lore.page
-import info.mechyrdia.lore.redirectHrefWithError
-import info.mechyrdia.lore.standardNavBar
-import info.mechyrdia.route.Root
-import info.mechyrdia.route.checkCsrfToken
-import info.mechyrdia.route.href
-import info.mechyrdia.route.installCsrfToken
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.websocket.DefaultWebSocketServerSession
-import io.ktor.server.websocket.sendSerialized
-import io.ktor.websocket.CloseReason
-import io.ktor.websocket.CloseReason.Codes
-import io.ktor.websocket.Frame
-import io.ktor.websocket.WebSocketSession
-import io.ktor.websocket.close
-import io.ktor.websocket.readText
+import info.mechyrdia.auth.*
+import info.mechyrdia.data.*
+import info.mechyrdia.lore.*
+import info.mechyrdia.route.*
+import io.ktor.server.application.*
+import io.ktor.server.websocket.*
+import io.ktor.websocket.*
+import io.ktor.websocket.CloseReason.*
 import kotlinx.html.*
 
 suspend fun ApplicationCall.robotPage(): HTML.() -> Unit {
index 1a43760cab7d7d7e48145c28f9c67fb01624f46f..66063c72a30d64042075f8ef53fa93267d4e83b0 100644 (file)
@@ -1,10 +1,10 @@
 package info.mechyrdia.route
 
-import info.mechyrdia.auth.WebDavToken
-import info.mechyrdia.data.Id
-import info.mechyrdia.lore.TextAlignment
+import info.mechyrdia.auth.*
+import info.mechyrdia.data.*
+import info.mechyrdia.lore.*
 import kotlinx.html.*
-import kotlinx.serialization.Serializable
+import kotlinx.serialization.*
 
 @Serializable
 class LoginPayload(override val csrfToken: String? = null, val nation: String, val checksum: String, val tokenId: String) : CsrfProtectedResourcePayload
index d9e633077431adc86b36fd219eb7f6c2014c3d89..b7694351f2418a5348598a94241466b88781f8ed 100644 (file)
@@ -1,12 +1,10 @@
 package info.mechyrdia.route
 
-import info.mechyrdia.auth.createCsrfToken
-import info.mechyrdia.auth.retrieveCsrfToken
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.request.uri
+import info.mechyrdia.auth.*
+import io.ktor.server.application.*
+import io.ktor.server.request.*
 import kotlinx.html.*
-import java.time.Instant
-import kotlin.collections.set
+import java.time.*
 
 data class CsrfFailedException(override val message: String, val payload: CsrfProtectedResourcePayload?) : RuntimeException(message)
 
index f8ed9afa61cc0de4c1aaf9353ec51a3358a15ee0..dafa43b124d912ef72b8fe2289c1e3fc0851e44f 100644 (file)
@@ -1,50 +1,25 @@
 package info.mechyrdia.route
 
-import io.ktor.http.URLBuilder
-import io.ktor.http.formUrlEncode
-import io.ktor.http.fullPath
-import io.ktor.http.parseUrlEncodedParameters
-import io.ktor.resources.serialization.ResourcesFormat
-import io.ktor.server.application.Application
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.application.ApplicationCallPipeline
-import io.ktor.server.application.application
+import io.ktor.http.*
+import io.ktor.resources.serialization.*
+import io.ktor.server.application.*
 import io.ktor.server.application.call
-import io.ktor.server.application.createRouteScopedPlugin
-import io.ktor.server.application.hooks.CallSetup
-import io.ktor.server.application.plugin
-import io.ktor.server.plugins.BadRequestException
-import io.ktor.server.request.receiveMultipart
-import io.ktor.server.request.uri
-import io.ktor.server.resources.Resources
-import io.ktor.server.resources.get
-import io.ktor.server.resources.href
+import io.ktor.server.application.hooks.*
+import io.ktor.server.plugins.*
+import io.ktor.server.request.*
+import io.ktor.server.resources.*
 import io.ktor.server.resources.post
-import io.ktor.server.resources.resource
 import io.ktor.server.routing.Route
 import io.ktor.server.routing.RoutingContext
-import io.ktor.server.routing.application
-import io.ktor.server.routing.intercept
-import io.ktor.server.websocket.DefaultWebSocketServerSession
-import io.ktor.server.websocket.WebSocketServerSession
-import io.ktor.server.websocket.application
-import io.ktor.server.websocket.webSocket
-import io.ktor.util.AttributeKey
-import io.ktor.util.pipeline.PipelineContext
-import kotlinx.serialization.DeserializationStrategy
-import kotlinx.serialization.KSerializer
-import kotlinx.serialization.SerializationStrategy
-import kotlinx.serialization.StringFormat
-import kotlinx.serialization.builtins.nullable
-import kotlinx.serialization.builtins.serializer
-import kotlinx.serialization.descriptors.PrimitiveKind
-import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
-import kotlinx.serialization.descriptors.SerialDescriptor
-import kotlinx.serialization.encoding.Decoder
+import io.ktor.server.websocket.*
+import io.ktor.util.*
+import kotlinx.serialization.*
+import kotlinx.serialization.builtins.*
+import kotlinx.serialization.descriptors.*
+import kotlinx.serialization.encoding.*
 import kotlinx.serialization.encoding.Encoder
-import kotlinx.serialization.modules.SerializersModule
-import kotlinx.serialization.serializer
-import kotlin.enums.EnumEntries
+import kotlinx.serialization.modules.*
+import kotlin.enums.*
 
 interface ResourceHandler {
        suspend fun RoutingContext.handleCall()
index a47174d585d8176dadb3b67c941695dd19b60257..ab2045a78e08b958c8540e6f4c8b1edb63651412 100644 (file)
@@ -1,15 +1,8 @@
 package info.mechyrdia.route
 
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.DelicateCoroutinesApi
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.GlobalScope
-import kotlinx.coroutines.channels.Channel
-import kotlinx.coroutines.channels.produce
-import kotlinx.coroutines.currentCoroutineContext
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.isActive
-import kotlin.time.Duration
+import kotlinx.coroutines.*
+import kotlinx.coroutines.channels.*
+import kotlin.time.*
 import kotlin.time.Duration.Companion.milliseconds
 
 class TickingLimiter @OptIn(DelicateCoroutinesApi::class) constructor(interval: Duration, scope: CoroutineScope = GlobalScope) {
index 2257e5d0fecb35bb697bcddc51ac242318ca3485..6d97e9cf97964506dc3055bcd78b4b51d2497937 100644 (file)
@@ -1,14 +1,9 @@
 package info.mechyrdia.route
 
-import io.ktor.http.ContentDisposition
-import io.ktor.http.ContentType
-import io.ktor.http.Headers
-import io.ktor.http.HttpHeaders
-import io.ktor.http.content.MultiPartData
-import io.ktor.http.content.PartData
-import io.ktor.http.content.forEachPart
-import io.ktor.utils.io.toByteArray
-import kotlin.reflect.full.companionObjectInstance
+import io.ktor.http.*
+import io.ktor.http.content.*
+import io.ktor.utils.io.*
+import kotlin.reflect.full.*
 
 interface MultiPartPayload : AutoCloseable {
        val payload: List<MultiPartPayloadPart>
index e21440f3e7b350989824caae5f3ff66c1cf721aa..ee8c4baad0e464fd0758f0a321e29fb4a5e35463 100644 (file)
@@ -1,83 +1,19 @@
 package info.mechyrdia.route
 
-import info.mechyrdia.auth.adminDeleteWebDavToken
-import info.mechyrdia.auth.adminObtainWebDavToken
-import info.mechyrdia.auth.adminRequestWebDavToken
-import info.mechyrdia.auth.loginPage
-import info.mechyrdia.auth.loginRoute
-import info.mechyrdia.auth.logoutRoute
-import info.mechyrdia.concat
-import info.mechyrdia.data.Comment
-import info.mechyrdia.data.Id
-import info.mechyrdia.data.NationUrlSlug
-import info.mechyrdia.data.StoragePath
-import info.mechyrdia.data.adminBanUserRoute
-import info.mechyrdia.data.adminConfirmDeleteFile
-import info.mechyrdia.data.adminConfirmRemoveDirectory
-import info.mechyrdia.data.adminDeleteFile
-import info.mechyrdia.data.adminDoCopyFile
-import info.mechyrdia.data.adminMakeDirectory
-import info.mechyrdia.data.adminNationOnly
-import info.mechyrdia.data.adminOverwriteFile
-import info.mechyrdia.data.adminPreviewFile
-import info.mechyrdia.data.adminRemoveDirectory
-import info.mechyrdia.data.adminShowCopyFile
-import info.mechyrdia.data.adminUnbanUserRoute
-import info.mechyrdia.data.adminUploadFile
-import info.mechyrdia.data.adminViewVfs
-import info.mechyrdia.data.commentHelpPage
-import info.mechyrdia.data.currentUserPage
-import info.mechyrdia.data.deleteCommentPage
-import info.mechyrdia.data.deleteCommentRoute
-import info.mechyrdia.data.editCommentRoute
-import info.mechyrdia.data.newCommentRoute
-import info.mechyrdia.data.recentCommentsPage
-import info.mechyrdia.data.respondStoredFile
-import info.mechyrdia.data.respondXml
-import info.mechyrdia.data.userPage
-import info.mechyrdia.data.viewCommentRoute
-import info.mechyrdia.lore.LoreArticleFormat
-import info.mechyrdia.lore.MechyrdiaSansFont
-import info.mechyrdia.lore.ParserTree
-import info.mechyrdia.lore.PokhwalishAlphabetFont
-import info.mechyrdia.lore.QuoteFormat
-import info.mechyrdia.lore.TylanAlphabetFont
-import info.mechyrdia.lore.buildSitemap
-import info.mechyrdia.lore.clientSettingsPage
-import info.mechyrdia.lore.galaxyMapPage
-import info.mechyrdia.lore.generateRecentPageEdits
-import info.mechyrdia.lore.loadFontsJson
-import info.mechyrdia.lore.loreArticlePage
-import info.mechyrdia.lore.loreIntroPage
-import info.mechyrdia.lore.meshView
-import info.mechyrdia.lore.parseAs
-import info.mechyrdia.lore.randomQuote
-import info.mechyrdia.lore.recentCommentsRssFeedGenerator
-import info.mechyrdia.lore.redirectHref
-import info.mechyrdia.lore.respondAsset
-import info.mechyrdia.lore.respondQuote
-import info.mechyrdia.lore.respondRss
-import info.mechyrdia.lore.sitemap
-import info.mechyrdia.lore.toCommentHtml
-import info.mechyrdia.lore.toFragmentString
-import info.mechyrdia.robot.RobotService
-import info.mechyrdia.robot.robotConversation
-import info.mechyrdia.robot.robotManagementPage
-import info.mechyrdia.robot.robotPage
-import io.ktor.http.ContentType
-import io.ktor.http.HttpHeaders
-import io.ktor.http.HttpStatusCode
-import io.ktor.resources.Resource
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.html.respondHtml
-import io.ktor.server.plugins.MissingRequestParameterException
-import io.ktor.server.response.header
-import io.ktor.server.response.respondBytes
-import io.ktor.server.response.respondText
-import io.ktor.server.response.respondTextWriter
-import io.ktor.server.routing.RoutingContext
-import io.ktor.server.websocket.DefaultWebSocketServerSession
-import io.ktor.util.AttributeKey
+import info.mechyrdia.*
+import info.mechyrdia.auth.*
+import info.mechyrdia.data.*
+import info.mechyrdia.lore.*
+import info.mechyrdia.robot.*
+import io.ktor.http.*
+import io.ktor.resources.*
+import io.ktor.server.application.*
+import io.ktor.server.html.*
+import io.ktor.server.plugins.*
+import io.ktor.server.response.*
+import io.ktor.server.routing.*
+import io.ktor.server.websocket.*
+import io.ktor.util.*
 
 const val ErrorMessageCookieName = "ERROR_MSG"
 
index 8ba94ff01c320a7588cb1a7a17090da2f5a87fb0..69e5dd035de9ebeff40eb6567e362881018de353 100644 (file)
@@ -1,47 +1,21 @@
 package info.mechyrdia.route
 
-import info.mechyrdia.Utf8
-import info.mechyrdia.auth.Argon2Hasher
-import info.mechyrdia.auth.WebDavToken
-import info.mechyrdia.concat
-import info.mechyrdia.data.FileStorage
-import info.mechyrdia.data.Id
-import info.mechyrdia.data.StoragePath
-import info.mechyrdia.data.StoredFileType
-import info.mechyrdia.data.XmlInsertable
-import info.mechyrdia.data.XmlTag
-import info.mechyrdia.data.XmlTagConsumer
-import info.mechyrdia.data.contentType
-import info.mechyrdia.data.declaration
-import info.mechyrdia.data.respondXml
-import info.mechyrdia.data.root
-import info.mechyrdia.data.sortedAsFiles
-import info.mechyrdia.lore.mapSuspend
-import io.ktor.http.ContentType
-import io.ktor.http.HttpHeaders
-import io.ktor.http.HttpMethod
-import io.ktor.http.HttpStatusCode
-import io.ktor.server.application.ApplicationCall
-import io.ktor.server.html.respondHtml
-import io.ktor.server.request.ApplicationRequest
-import io.ktor.server.request.authorization
-import io.ktor.server.request.header
-import io.ktor.server.request.receive
-import io.ktor.server.request.receiveText
-import io.ktor.server.response.header
-import io.ktor.server.response.respond
-import io.ktor.server.response.respondBytes
-import io.ktor.server.routing.Route
-import io.ktor.server.routing.method
-import io.ktor.server.routing.route
-import io.ktor.util.AttributeKey
+import info.mechyrdia.*
+import info.mechyrdia.auth.*
+import info.mechyrdia.data.*
+import info.mechyrdia.lore.*
+import io.ktor.http.*
+import io.ktor.server.application.*
+import io.ktor.server.html.*
+import io.ktor.server.request.*
+import io.ktor.server.response.*
+import io.ktor.server.routing.*
+import io.ktor.util.*
 import kotlinx.html.*
-import java.net.URI
-import java.time.Instant
-import java.time.ZoneOffset
-import java.time.ZonedDateTime
-import java.time.format.DateTimeFormatter
-import java.util.Base64
+import java.net.*
+import java.time.*
+import java.time.format.*
+import java.util.*
 
 const val WebDavDomainName = "https://dav.mechyrdia.info"