mirror of
				https://github.com/TheAnachronism/docspell.git
				synced 2025-10-31 09:30:12 +00:00 
			
		
		
		
	
							
								
								
									
										13
									
								
								.scalafix.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.scalafix.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| rules = [ | ||||
|       ProcedureSyntax | ||||
|       OrganizeImports | ||||
| ] | ||||
| OrganizeImports { | ||||
|   coalesceToWildcardImportThreshold = 3 | ||||
|   expandRelative = true | ||||
|   groupedImports = Keep | ||||
|   importsOrder = Ascii | ||||
|   groups = ["re:javax?\\.", "scala.", "re:(cats|fs2)\\.", "docspell.", "*"] | ||||
|   importSelectorsOrder = Ascii | ||||
|   removeUnused = true | ||||
| } | ||||
| @@ -11,6 +11,12 @@ val elmCompileMode = settingKey[ElmCompileMode]("How to compile elm sources") | ||||
|  | ||||
| // --- Settings | ||||
|  | ||||
| val scalafixSettings = Seq( | ||||
|   semanticdbEnabled := true, // enable SemanticDB | ||||
|   semanticdbVersion := scalafixSemanticdb.revision, //"4.3.10", // use Scalafix compatible version | ||||
|   ThisBuild / scalafixDependencies ++= Dependencies.organizeImports | ||||
| ) | ||||
|  | ||||
| val sharedSettings = Seq( | ||||
|   organization := "com.github.eikek", | ||||
|   scalaVersion := "2.13.2", | ||||
| @@ -37,7 +43,7 @@ val sharedSettings = Seq( | ||||
|     (scalacOptions.value.filter(o => !o.contains("Xlint")) ++ Seq("-Xlint:_,-unused")), | ||||
|   scalacOptions in (Test, console) := | ||||
|     (scalacOptions.value.filter(o => !o.contains("Xlint")) ++ Seq("-Xlint:_,-unused")) | ||||
| ) | ||||
| ) ++ scalafixSettings | ||||
|  | ||||
| val testSettings = Seq( | ||||
|   testFrameworks += new TestFramework("minitest.runner.Framework"), | ||||
| @@ -143,7 +149,6 @@ val openapiScalaSettings = Seq( | ||||
| ) | ||||
|  | ||||
|  | ||||
|  | ||||
| // --- Modules | ||||
|  | ||||
| // Base module, everything depends on this – including restapi and | ||||
|   | ||||
| @@ -2,6 +2,7 @@ package docspell.analysis | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.analysis.contact.Contact | ||||
| import docspell.analysis.date.DateFind | ||||
| import docspell.analysis.nlp.StanfordNerClassifier | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| package docspell.analysis.contact | ||||
|  | ||||
| import fs2.Stream | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.analysis.split._ | ||||
| import docspell.common._ | ||||
|  | ||||
| object Contact { | ||||
|   private[this] val protocols = Set("ftp", "http", "https") | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package docspell.analysis.contact | ||||
|  | ||||
| import cats.data.NonEmptyList | ||||
|  | ||||
| import docspell.common.LenientUri | ||||
|  | ||||
| case class Domain(labels: NonEmptyList[String], tld: String) { | ||||
|   | ||||
| @@ -2,12 +2,13 @@ package docspell.analysis.date | ||||
|  | ||||
| import java.time.LocalDate | ||||
|  | ||||
| import fs2.{Pure, Stream} | ||||
| import docspell.common._ | ||||
| import docspell.analysis.split._ | ||||
|  | ||||
| import scala.util.Try | ||||
|  | ||||
| import fs2.{Pure, Stream} | ||||
|  | ||||
| import docspell.analysis.split._ | ||||
| import docspell.common._ | ||||
|  | ||||
| object DateFind { | ||||
|  | ||||
|   def findDates(text: String, lang: Language): Stream[Pure, NerDateLabel] = | ||||
|   | ||||
| @@ -3,16 +3,16 @@ package docspell.analysis.nlp | ||||
| import java.net.URL | ||||
| import java.util.zip.GZIPInputStream | ||||
|  | ||||
| import scala.jdk.CollectionConverters._ | ||||
| import scala.util.Using | ||||
|  | ||||
| import docspell.common._ | ||||
|  | ||||
| import edu.stanford.nlp.ie.AbstractSequenceClassifier | ||||
| import edu.stanford.nlp.ie.crf.CRFClassifier | ||||
| import edu.stanford.nlp.ling.{CoreAnnotations, CoreLabel} | ||||
| import org.log4s.getLogger | ||||
|  | ||||
| import docspell.common._ | ||||
|  | ||||
| import scala.util.Using | ||||
| import scala.jdk.CollectionConverters._ | ||||
|  | ||||
| object StanfordNerClassifier { | ||||
|   private[this] val logger = getLogger | ||||
|  | ||||
|   | ||||
| @@ -1,20 +1,21 @@ | ||||
| package docspell.backend | ||||
|  | ||||
| import cats.effect.{Blocker, ConcurrentEffect, ContextShift, Resource} | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.client.blaze.BlazeClientBuilder | ||||
| import scala.concurrent.ExecutionContext | ||||
|  | ||||
| import cats.effect._ | ||||
|  | ||||
| import docspell.backend.auth.Login | ||||
| import docspell.backend.ops._ | ||||
| import docspell.backend.signup.OSignup | ||||
| import docspell.ftsclient.FtsClient | ||||
| import docspell.joexapi.client.JoexClient | ||||
| import docspell.store.Store | ||||
| import docspell.store.queue.JobQueue | ||||
| import docspell.store.usertask.UserTaskStore | ||||
| import docspell.ftsclient.FtsClient | ||||
|  | ||||
| import scala.concurrent.ExecutionContext | ||||
| import emil.javamail.{JavaMailEmil, Settings} | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.client.blaze.BlazeClientBuilder | ||||
|  | ||||
| trait BackendApp[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package docspell.backend | ||||
|  | ||||
| import cats.effect._ | ||||
|  | ||||
| import org.mindrot.jbcrypt.BCrypt | ||||
|  | ||||
| object Common { | ||||
|   | ||||
| @@ -2,6 +2,7 @@ package docspell.backend | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.store.records.RJob | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package docspell.backend | ||||
|  | ||||
| import docspell.common.Password | ||||
|  | ||||
| import org.mindrot.jbcrypt.BCrypt | ||||
|  | ||||
| object PasswordCrypt { | ||||
|   | ||||
| @@ -1,17 +1,18 @@ | ||||
| package docspell.backend.auth | ||||
|  | ||||
| import java.time.Instant | ||||
| import javax.crypto.Mac | ||||
| import javax.crypto.spec.SecretKeySpec | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import java.time.Instant | ||||
|  | ||||
| import javax.crypto.Mac | ||||
| import javax.crypto.spec.SecretKeySpec | ||||
| import scodec.bits.ByteVector | ||||
|  | ||||
| import docspell.backend.Common | ||||
| import AuthToken._ | ||||
| import docspell.backend.auth.AuthToken._ | ||||
| import docspell.common._ | ||||
|  | ||||
| import scodec.bits.ByteVector | ||||
|  | ||||
| case class AuthToken(millis: Long, account: AccountId, salt: String, sig: String) { | ||||
|   def asString = s"$millis-${b64enc(account.asString)}-$salt-$sig" | ||||
|  | ||||
|   | ||||
| @@ -2,14 +2,16 @@ package docspell.backend.auth | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import Login._ | ||||
|  | ||||
| import docspell.backend.auth.Login._ | ||||
| import docspell.common._ | ||||
| import docspell.store.Store | ||||
| import docspell.store.queries.QLogin | ||||
| import docspell.store.records.RUser | ||||
|  | ||||
| import org.log4s._ | ||||
| import org.mindrot.jbcrypt.BCrypt | ||||
| import scodec.bits.ByteVector | ||||
| import org.log4s._ | ||||
|  | ||||
| trait Login[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,14 +1,15 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import fs2.Stream | ||||
| import cats.implicits._ | ||||
| import cats.effect.{Effect, Resource} | ||||
| import docspell.common._ | ||||
| import docspell.store.{AddResult, Store} | ||||
| import docspell.store.records.{RCollective, RContact, RUser} | ||||
| import OCollective._ | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.backend.PasswordCrypt | ||||
| import docspell.backend.ops.OCollective._ | ||||
| import docspell.common._ | ||||
| import docspell.store.queries.QCollective | ||||
| import docspell.store.records.{RCollective, RContact, RUser} | ||||
| import docspell.store.{AddResult, Store} | ||||
|  | ||||
| trait OCollective[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,10 +1,11 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect.{Effect, Resource} | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.common.{AccountId, Ident} | ||||
| import docspell.store.{AddResult, Store} | ||||
| import docspell.store.records.{REquipment, RItem} | ||||
| import docspell.store.{AddResult, Store} | ||||
|  | ||||
| trait OEquipment[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -3,14 +3,15 @@ package docspell.backend.ops | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.backend.JobFactory | ||||
| import docspell.backend.ops.OItemSearch._ | ||||
| import docspell.common._ | ||||
| import docspell.ftsclient._ | ||||
| import docspell.backend.JobFactory | ||||
| import docspell.store.Store | ||||
| import docspell.store.records.RJob | ||||
| import docspell.store.queue.JobQueue | ||||
| import docspell.store.queries.QItem | ||||
| import OItemSearch.{Batch, ListItem, ListItemWithTags, Query} | ||||
| import docspell.store.queue.JobQueue | ||||
| import docspell.store.records.RJob | ||||
|  | ||||
| trait OFulltext[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,16 +1,18 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import cats.data.OptionT | ||||
| import cats.implicits._ | ||||
| import cats.effect.{Effect, Resource} | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.ftsclient.FtsClient | ||||
| import docspell.store.queries.{QAttachment, QItem} | ||||
| import docspell.store.records._ | ||||
| import docspell.store.{AddResult, Store} | ||||
|  | ||||
| import doobie._ | ||||
| import doobie.implicits._ | ||||
| import org.log4s.getLogger | ||||
| import docspell.store.{AddResult, Store} | ||||
| import docspell.store.queries.{QAttachment, QItem} | ||||
| import docspell.common._ | ||||
| import docspell.store.records._ | ||||
| import docspell.ftsclient.FtsClient | ||||
|  | ||||
| trait OItem[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,26 +1,19 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import fs2.Stream | ||||
| import cats.data.OptionT | ||||
| import cats.implicits._ | ||||
| import cats.effect.{Effect, Resource} | ||||
| import doobie.implicits._ | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.backend.ops.OItemSearch._ | ||||
| import docspell.common._ | ||||
| import docspell.store.Store | ||||
| import docspell.store.queries.{QAttachment, QItem} | ||||
| import OItemSearch.{ | ||||
|   AttachmentArchiveData, | ||||
|   AttachmentData, | ||||
|   AttachmentSourceData, | ||||
|   Batch, | ||||
|   ItemData, | ||||
|   ListItem, | ||||
|   ListItemWithTags, | ||||
|   Query | ||||
| } | ||||
| import bitpeace.{FileMeta, RangeDef} | ||||
| import docspell.common._ | ||||
| import docspell.store.records._ | ||||
|  | ||||
| import bitpeace.{FileMeta, RangeDef} | ||||
| import doobie.implicits._ | ||||
|  | ||||
| trait OItemSearch[F[_]] { | ||||
|   def findItem(id: Ident, collective: Ident): F[Option[ItemData]] | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,9 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect._ | ||||
| import cats.data.OptionT | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.backend.ops.OJob.{CollectiveQueueState, JobCancelResult} | ||||
| import docspell.common.{Ident, JobState} | ||||
| import docspell.store.Store | ||||
|   | ||||
| @@ -1,15 +1,16 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect._ | ||||
| import scala.concurrent.ExecutionContext | ||||
|  | ||||
| import cats.data.OptionT | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.common.{Ident, NodeType} | ||||
| import docspell.joexapi.client.JoexClient | ||||
| import docspell.store.Store | ||||
| import docspell.store.records.RNode | ||||
|  | ||||
| import scala.concurrent.ExecutionContext | ||||
|  | ||||
| trait OJoex[F[_]] { | ||||
|  | ||||
|   def notifyAllNodes: F[Unit] | ||||
|   | ||||
| @@ -1,18 +1,19 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import fs2.Stream | ||||
| import cats.data.OptionT | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import cats.data.OptionT | ||||
| import emil._ | ||||
| import bitpeace.{FileMeta, RangeDef} | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.backend.ops.OMail._ | ||||
| import docspell.common._ | ||||
| import docspell.store._ | ||||
| import docspell.store.syntax.MimeTypes._ | ||||
| import docspell.store.records._ | ||||
| import docspell.store.queries.QMails | ||||
| import OMail.{ImapSettings, ItemMail, Sent, SmtpSettings} | ||||
| import docspell.store.records._ | ||||
| import docspell.store.syntax.MimeTypes._ | ||||
|  | ||||
| import bitpeace.{FileMeta, RangeDef} | ||||
| import emil._ | ||||
|  | ||||
| trait OMail[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -2,10 +2,12 @@ package docspell.backend.ops | ||||
|  | ||||
| import cats.effect.{Effect, Resource} | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.common.syntax.all._ | ||||
| import docspell.common.{Ident, LenientUri, NodeType} | ||||
| import docspell.store.Store | ||||
| import docspell.store.records.RNode | ||||
|  | ||||
| import org.log4s._ | ||||
|  | ||||
| trait ONode[F[_]] { | ||||
|   | ||||
| @@ -1,12 +1,13 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect.{Effect, Resource} | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.backend.ops.OOrganization._ | ||||
| import docspell.common._ | ||||
| import docspell.store._ | ||||
| import docspell.store.records._ | ||||
| import OOrganization._ | ||||
| import docspell.store.queries.QOrganization | ||||
| import docspell.store.records._ | ||||
|  | ||||
| trait OOrganization[F[_]] { | ||||
|   def findAllOrg(account: AccountId, query: Option[String]): F[Vector[OrgAndContacts]] | ||||
|   | ||||
| @@ -1,10 +1,11 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect.{Effect, Resource} | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.common.{AccountId, Ident} | ||||
| import docspell.store.{AddResult, Store} | ||||
| import docspell.store.records.RSource | ||||
| import docspell.store.{AddResult, Store} | ||||
|  | ||||
| trait OSource[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,10 +1,11 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect.{Effect, Resource} | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.common.{AccountId, Ident} | ||||
| import docspell.store.{AddResult, Store} | ||||
| import docspell.store.records.{RTag, RTagItem} | ||||
| import docspell.store.{AddResult, Store} | ||||
|  | ||||
| trait OTag[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,17 +1,19 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import bitpeace.MimetypeHint | ||||
| import cats.Functor | ||||
| import cats.data.{EitherT, OptionT} | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import docspell.backend.{Config, JobFactory} | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.backend.{Config, JobFactory} | ||||
| import docspell.common._ | ||||
| import docspell.common.syntax.all._ | ||||
| import docspell.store.Store | ||||
| import docspell.store.queue.JobQueue | ||||
| import docspell.store.records._ | ||||
|  | ||||
| import bitpeace.MimetypeHint | ||||
| import org.log4s._ | ||||
|  | ||||
| trait OUpload[F[_]] { | ||||
|   | ||||
| @@ -1,14 +1,15 @@ | ||||
| package docspell.backend.ops | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect._ | ||||
| import cats.data.OptionT | ||||
| import io.circe.Encoder | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.store.queue.JobQueue | ||||
| import docspell.store.usertask._ | ||||
| import docspell.common._ | ||||
|  | ||||
| import io.circe.Encoder | ||||
|  | ||||
| trait OUserTask[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package docspell.backend.signup | ||||
|  | ||||
| import docspell.common.{Duration, Password} | ||||
|  | ||||
| import io.circe._ | ||||
|  | ||||
| case class Config(mode: Config.Mode, newInvitePassword: Password, inviteTime: Duration) | ||||
|   | ||||
| @@ -1,13 +1,15 @@ | ||||
| package docspell.backend.signup | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect.{Effect, Resource} | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.backend.PasswordCrypt | ||||
| import docspell.backend.ops.OCollective.RegisterData | ||||
| import docspell.common.syntax.all._ | ||||
| import docspell.common._ | ||||
| import docspell.store.{AddResult, Store} | ||||
| import docspell.common.syntax.all._ | ||||
| import docspell.store.records.{RCollective, RInvitation, RUser} | ||||
| import docspell.store.{AddResult, Store} | ||||
|  | ||||
| import doobie.free.connection.ConnectionIO | ||||
| import org.log4s.getLogger | ||||
|  | ||||
|   | ||||
| @@ -1,9 +1,11 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import java.nio.charset.Charset | ||||
| import java.nio.charset.StandardCharsets | ||||
|  | ||||
| import cats.effect._ | ||||
| import fs2.{Chunk, Pipe, Stream} | ||||
| import java.nio.charset.Charset | ||||
| import java.nio.charset.StandardCharsets | ||||
|  | ||||
| import scodec.bits.ByteVector | ||||
|  | ||||
| final case class Binary[F[_]](name: String, mime: MimeType, data: Stream[F, Byte]) { | ||||
|   | ||||
| @@ -1,11 +1,14 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import cats.implicits._ | ||||
| import scala.concurrent.duration.{FiniteDuration, Duration => SDur} | ||||
| import java.time.{Duration => JDur} | ||||
| import java.util.concurrent.TimeUnit | ||||
| import io.circe._ | ||||
|  | ||||
| import scala.concurrent.duration.{Duration => SDur, FiniteDuration} | ||||
|  | ||||
| import cats.effect.Sync | ||||
| import cats.implicits._ | ||||
|  | ||||
| import io.circe._ | ||||
|  | ||||
| case class Duration(nanos: Long) { | ||||
|  | ||||
|   | ||||
| @@ -1,14 +1,15 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import java.io.IOException | ||||
| import java.nio.file._ | ||||
| import java.nio.file.attribute.BasicFileAttributes | ||||
| import java.nio.file.{FileVisitResult, Files, Path, SimpleFileVisitor} | ||||
| import java.util.concurrent.atomic.AtomicInteger | ||||
|  | ||||
| import scala.jdk.CollectionConverters._ | ||||
| import fs2.Stream | ||||
| import cats.implicits._ | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| object File { | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,9 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import scodec.bits.ByteVector | ||||
| import java.nio.charset.StandardCharsets | ||||
|  | ||||
| import scodec.bits.ByteVector | ||||
|  | ||||
| final class Hash(bytes: ByteVector) { | ||||
|  | ||||
|   private def digest(name: String): String = | ||||
|   | ||||
| @@ -4,8 +4,9 @@ import java.security.SecureRandom | ||||
| import java.util.UUID | ||||
|  | ||||
| import cats.Eq | ||||
| import cats.implicits._ | ||||
| import cats.effect.Sync | ||||
| import cats.implicits._ | ||||
|  | ||||
| import io.circe.{Decoder, Encoder} | ||||
| import scodec.bits.ByteVector | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,9 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import io.circe.{Decoder, Encoder} | ||||
| import cats.data.NonEmptyList | ||||
|  | ||||
| import io.circe.{Decoder, Encoder} | ||||
|  | ||||
| sealed trait ItemState { self: Product => | ||||
|  | ||||
|   final def name: String = | ||||
|   | ||||
| @@ -1,17 +1,19 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import java.net.URL | ||||
|  | ||||
| import fs2.Stream | ||||
| import cats.implicits._ | ||||
| import cats.data.NonEmptyList | ||||
| import cats.effect.{Blocker, ContextShift, Sync} | ||||
| import docspell.common.LenientUri.Path | ||||
| import io.circe.{Decoder, Encoder} | ||||
| import java.net.URLEncoder | ||||
| import scodec.bits.ByteVector | ||||
| import cats.effect.Resource | ||||
| import java.net.HttpURLConnection | ||||
| import java.net.URL | ||||
| import java.net.URLEncoder | ||||
|  | ||||
| import cats.data.NonEmptyList | ||||
| import cats.effect.Resource | ||||
| import cats.effect.{Blocker, ContextShift, Sync} | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common.LenientUri.Path | ||||
|  | ||||
| import io.circe.{Decoder, Encoder} | ||||
| import scodec.bits.ByteVector | ||||
|  | ||||
| /** A URI. | ||||
|   * | ||||
|   | ||||
| @@ -1,7 +1,9 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import cats.effect.Sync | ||||
|  | ||||
| import docspell.common.syntax.all._ | ||||
|  | ||||
| import org.log4s.{Logger => Log4sLogger} | ||||
|  | ||||
| trait Logger[F[_]] { | ||||
|   | ||||
| @@ -1,13 +1,16 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import cats.implicits._ | ||||
| import java.time.LocalDate | ||||
|  | ||||
| import cats.data.NonEmptyList | ||||
| import docspell.common._ | ||||
| import cats.implicits._ | ||||
| import cats.kernel.Order | ||||
|  | ||||
| import docspell.common.MetaProposal.Candidate | ||||
| import docspell.common._ | ||||
|  | ||||
| import io.circe._ | ||||
| import io.circe.generic.semiauto._ | ||||
| import java.time.LocalDate | ||||
| import cats.kernel.Order | ||||
|  | ||||
| /** A proposed meta data to an item. | ||||
|   * | ||||
|   | ||||
| @@ -2,7 +2,9 @@ package docspell.common | ||||
|  | ||||
| import cats.data.NonEmptyList | ||||
| import cats.kernel.Monoid | ||||
|  | ||||
| import docspell.common.MetaProposal.Candidate | ||||
|  | ||||
| import io.circe._ | ||||
| import io.circe.generic.semiauto._ | ||||
|  | ||||
|   | ||||
| @@ -1,11 +1,14 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import docspell.common.syntax.all._ | ||||
| import io.circe.{Decoder, Encoder} | ||||
| import java.nio.charset.StandardCharsets | ||||
| import java.nio.charset.Charset | ||||
| import java.nio.charset.StandardCharsets | ||||
|  | ||||
| import cats.data.NonEmptyList | ||||
|  | ||||
| import docspell.common.syntax.all._ | ||||
|  | ||||
| import io.circe.{Decoder, Encoder} | ||||
|  | ||||
| /** A MIME Type impl with just enough features for the use here. | ||||
|   */ | ||||
| case class MimeType(primary: String, sub: String, params: Map[String, String]) { | ||||
|   | ||||
| @@ -1,8 +1,10 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import io.circe._, io.circe.generic.semiauto._ | ||||
| import docspell.common.syntax.all._ | ||||
|  | ||||
| import io.circe._ | ||||
| import io.circe.generic.semiauto._ | ||||
|  | ||||
| /** Arguments to the notification task. | ||||
|   * | ||||
|   * This tasks queries items with a due date and informs the user via | ||||
|   | ||||
| @@ -1,8 +1,9 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import cats.effect._ | ||||
| import scala.concurrent.ExecutionContext | ||||
|  | ||||
| import cats.effect._ | ||||
|  | ||||
| /** Captures thread pools to use in an application. | ||||
|   */ | ||||
| case class Pools( | ||||
|   | ||||
| @@ -1,7 +1,8 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.Order | ||||
| import cats.implicits._ | ||||
|  | ||||
| import io.circe.{Decoder, Encoder} | ||||
|  | ||||
| sealed trait Priority { self: Product => | ||||
|   | ||||
| @@ -1,8 +1,10 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import io.circe._, io.circe.generic.semiauto._ | ||||
| import docspell.common.ProcessItemArgs._ | ||||
| import docspell.common.syntax.all._ | ||||
| import ProcessItemArgs._ | ||||
|  | ||||
| import io.circe._ | ||||
| import io.circe.generic.semiauto._ | ||||
|  | ||||
| /** Arguments to the process-item task. | ||||
|   * | ||||
|   | ||||
| @@ -1,8 +1,10 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import io.circe._, io.circe.generic.semiauto._ | ||||
| import docspell.common.syntax.all._ | ||||
|  | ||||
| import io.circe._ | ||||
| import io.circe.generic.semiauto._ | ||||
|  | ||||
| /** Arguments to the poll-mailbox task. | ||||
|   * | ||||
|   * This tasks queries user mailboxes and pushes found mails into | ||||
|   | ||||
| @@ -5,12 +5,12 @@ import java.lang.ProcessBuilder.Redirect | ||||
| import java.nio.file.Path | ||||
| import java.util.concurrent.TimeUnit | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect.{Blocker, ContextShift, Sync} | ||||
| import fs2.{Stream, io, text} | ||||
|  | ||||
| import scala.jdk.CollectionConverters._ | ||||
|  | ||||
| import cats.effect.{Blocker, ContextShift, Sync} | ||||
| import cats.implicits._ | ||||
| import fs2.{Stream, io, text} | ||||
|  | ||||
| object SystemCommand { | ||||
|  | ||||
|   final case class Config(program: String, args: Seq[String], timeout: Duration) { | ||||
|   | ||||
| @@ -1,12 +1,14 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import java.util.concurrent.atomic.AtomicLong | ||||
| import java.util.concurrent.{Executors, ThreadFactory} | ||||
| import cats.effect._ | ||||
| import scala.concurrent._ | ||||
| import java.util.concurrent.ForkJoinPool | ||||
| import java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory | ||||
| import java.util.concurrent.ForkJoinWorkerThread | ||||
| import java.util.concurrent.atomic.AtomicLong | ||||
| import java.util.concurrent.{Executors, ThreadFactory} | ||||
|  | ||||
| import scala.concurrent._ | ||||
|  | ||||
| import cats.effect._ | ||||
|  | ||||
| object ThreadFactories { | ||||
|  | ||||
|   | ||||
| @@ -1,12 +1,13 @@ | ||||
| package docspell.common | ||||
|  | ||||
| import java.time.LocalDateTime | ||||
| import java.time.ZonedDateTime | ||||
| import java.time.temporal.ChronoUnit | ||||
| import java.time.{Instant, LocalDate, ZoneId} | ||||
|  | ||||
| import cats.effect.Sync | ||||
|  | ||||
| import io.circe.{Decoder, Encoder} | ||||
| import java.time.temporal.ChronoUnit | ||||
| import java.time.LocalDateTime | ||||
| import java.time.ZonedDateTime | ||||
|  | ||||
| case class Timestamp(value: Instant) { | ||||
|  | ||||
|   | ||||
| @@ -1,12 +1,13 @@ | ||||
| package docspell.common.config | ||||
|  | ||||
| import scala.reflect.ClassTag | ||||
|  | ||||
| import docspell.common._ | ||||
|  | ||||
| import com.github.eikek.calev.CalEvent | ||||
| import pureconfig._ | ||||
| import pureconfig.error.{CannotConvert, FailureReason} | ||||
| import scodec.bits.ByteVector | ||||
| import com.github.eikek.calev.CalEvent | ||||
|  | ||||
| import scala.reflect.ClassTag | ||||
|  | ||||
| object Implicits { | ||||
|   implicit val lenientUriReader: ConfigReader[LenientUri] = | ||||
|   | ||||
| @@ -2,6 +2,7 @@ package docspell.common.syntax | ||||
|  | ||||
| import cats.effect.Sync | ||||
| import fs2.Stream | ||||
|  | ||||
| import org.log4s.Logger | ||||
|  | ||||
| trait LoggerSyntax { | ||||
|   | ||||
| @@ -1,8 +1,9 @@ | ||||
| package docspell.common.syntax | ||||
|  | ||||
| import cats.effect.Sync | ||||
| import fs2.Stream | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import io.circe._ | ||||
| import io.circe.parser._ | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package docspell.common.syntax | ||||
|  | ||||
| import cats.implicits._ | ||||
|  | ||||
| import io.circe.Decoder | ||||
| import io.circe.parser._ | ||||
|  | ||||
|   | ||||
| @@ -2,9 +2,10 @@ package docspell.convert | ||||
|  | ||||
| import java.nio.charset.StandardCharsets | ||||
|  | ||||
| import fs2._ | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2._ | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.convert.ConversionResult.Handler | ||||
| import docspell.convert.extern.{Tesseract, Unoconv, WkHtmlPdf} | ||||
|   | ||||
| @@ -2,6 +2,7 @@ package docspell.convert | ||||
|  | ||||
| import cats.data.Kleisli | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common.MimeType | ||||
|  | ||||
| sealed trait ConversionResult[F[_]] { | ||||
|   | ||||
| @@ -1,7 +1,8 @@ | ||||
| package docspell.convert | ||||
| import scodec.bits.ByteVector | ||||
| import java.nio.charset.Charset | ||||
|  | ||||
| import scodec.bits.ByteVector | ||||
|  | ||||
| @FunctionalInterface | ||||
| trait SanitizeHtml { | ||||
|  | ||||
|   | ||||
| @@ -2,9 +2,10 @@ package docspell.convert.extern | ||||
|  | ||||
| import java.nio.file.Path | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.{Pipe, Stream} | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.convert.ConversionResult | ||||
| import docspell.convert.ConversionResult.{Handler, successPdf, successPdfTxt} | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import java.nio.file.Path | ||||
|  | ||||
| import cats.effect._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.convert.ConversionResult | ||||
| import docspell.convert.ConversionResult.Handler | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import java.nio.file.Path | ||||
|  | ||||
| import cats.effect._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.convert.ConversionResult | ||||
| import docspell.convert.ConversionResult.Handler | ||||
|   | ||||
| @@ -1,14 +1,15 @@ | ||||
| package docspell.convert.extern | ||||
|  | ||||
| import java.nio.charset.Charset | ||||
| import java.nio.file.Path | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.{Chunk, Stream} | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.convert.{ConversionResult, SanitizeHtml} | ||||
| import docspell.convert.ConversionResult.Handler | ||||
| import java.nio.charset.Charset | ||||
| import docspell.convert.{ConversionResult, SanitizeHtml} | ||||
|  | ||||
| object WkHtmlPdf { | ||||
|  | ||||
|   | ||||
| @@ -3,18 +3,20 @@ package docspell.convert.flexmark | ||||
| import java.io.{InputStream, InputStreamReader} | ||||
| import java.nio.charset.Charset | ||||
| import java.util | ||||
|  | ||||
| import scala.util.Try | ||||
|  | ||||
| import cats.effect.Sync | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
|  | ||||
| import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughExtension | ||||
| import com.vladsch.flexmark.ext.tables.TablesExtension | ||||
| import com.vladsch.flexmark.html.HtmlRenderer | ||||
| import com.vladsch.flexmark.parser.Parser | ||||
| import com.vladsch.flexmark.util.data.{DataKey, MutableDataSet} | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
|  | ||||
| object Markdown { | ||||
|  | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| package docspell.extract | ||||
|  | ||||
| import docspell.common.MimeType | ||||
|  | ||||
| import scala.util.Try | ||||
|  | ||||
| import docspell.common.MimeType | ||||
|  | ||||
| sealed trait ExtractResult { | ||||
|  | ||||
|   def textOption: Option[String] | ||||
|   | ||||
| @@ -2,15 +2,16 @@ package docspell.extract | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.extract.internal.Text | ||||
| import docspell.extract.ocr.{OcrType, TextExtract} | ||||
| import docspell.extract.odf.{OdfExtract, OdfType} | ||||
| import docspell.extract.poi.{PoiExtract, PoiType} | ||||
| import docspell.extract.rtf.RtfExtract | ||||
| import docspell.extract.internal.Text | ||||
| import fs2.Stream | ||||
| import docspell.files.TikaMimetype | ||||
| import docspell.files.ImageSize | ||||
| import docspell.files.TikaMimetype | ||||
|  | ||||
| trait Extraction[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,12 +1,13 @@ | ||||
| package docspell.extract | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common.{Language, Logger} | ||||
| import docspell.extract.internal.Text | ||||
| import docspell.extract.ocr.{OcrConfig, TextExtract} | ||||
| import docspell.extract.pdfbox.PdfboxExtract | ||||
| import docspell.extract.internal.Text | ||||
|  | ||||
| object PdfExtract { | ||||
|  | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import java.nio.file.Path | ||||
|  | ||||
| import cats.effect.{Blocker, ContextShift, Sync} | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
|  | ||||
| object Ocr { | ||||
|   | ||||
| @@ -1,11 +1,12 @@ | ||||
| package docspell.extract.ocr | ||||
|  | ||||
| import cats.effect.{Blocker, ContextShift, Sync} | ||||
| import docspell.common._ | ||||
| import docspell.files._ | ||||
| import docspell.extract.internal.Text | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.extract.internal.Text | ||||
| import docspell.files._ | ||||
|  | ||||
| object TextExtract { | ||||
|  | ||||
|   def extract[F[_]: Sync: ContextShift]( | ||||
|   | ||||
| @@ -1,18 +1,20 @@ | ||||
| package docspell.extract.odf | ||||
|  | ||||
| import java.io.{ByteArrayInputStream, InputStream} | ||||
|  | ||||
| import scala.util.Try | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
| import java.io.{ByteArrayInputStream, InputStream} | ||||
|  | ||||
| import docspell.extract.internal.Text | ||||
|  | ||||
| import org.apache.tika.metadata.Metadata | ||||
| import org.apache.tika.parser.ParseContext | ||||
| import org.apache.tika.parser.odf.OpenDocumentParser | ||||
| import org.apache.tika.sax.BodyContentHandler | ||||
|  | ||||
| import scala.util.Try | ||||
| import docspell.extract.internal.Text | ||||
|  | ||||
| object OdfExtract { | ||||
|  | ||||
|   def get[F[_]: Sync](data: Stream[F, Byte]): F[Either[Throwable, Text]] = | ||||
|   | ||||
| @@ -3,15 +3,17 @@ package docspell.extract.pdfbox | ||||
| import java.io.InputStream | ||||
| import java.nio.file.Path | ||||
|  | ||||
| import cats.implicits._ | ||||
| import scala.util.{Try, Using} | ||||
|  | ||||
| import cats.effect.Sync | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.extract.internal.Text | ||||
|  | ||||
| import org.apache.pdfbox.pdmodel.PDDocument | ||||
| import org.apache.pdfbox.text.PDFTextStripper | ||||
|  | ||||
| import scala.util.{Try, Using} | ||||
| import fs2.Stream | ||||
| import docspell.extract.internal.Text | ||||
|  | ||||
| object PdfboxExtract { | ||||
|  | ||||
|   def get[F[_]: Sync](data: Stream[F, Byte]): F[Either[Throwable, Text]] = | ||||
|   | ||||
| @@ -2,9 +2,17 @@ package docspell.extract.poi | ||||
|  | ||||
| import java.io.{ByteArrayInputStream, InputStream} | ||||
|  | ||||
| import scala.util.Try | ||||
|  | ||||
| import cats.data.EitherT | ||||
| import cats.implicits._ | ||||
| import cats.effect.Sync | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.extract.internal.Text | ||||
| import docspell.files.TikaMimetype | ||||
|  | ||||
| import org.apache.poi.hssf.extractor.ExcelExtractor | ||||
| import org.apache.poi.hssf.usermodel.HSSFWorkbook | ||||
| import org.apache.poi.hwpf.extractor.WordExtractor | ||||
| @@ -12,12 +20,6 @@ import org.apache.poi.xssf.extractor.XSSFExcelExtractor | ||||
| import org.apache.poi.xssf.usermodel.XSSFWorkbook | ||||
| import org.apache.poi.xwpf.extractor.XWPFWordExtractor | ||||
| import org.apache.poi.xwpf.usermodel.XWPFDocument | ||||
| import fs2.Stream | ||||
|  | ||||
| import scala.util.Try | ||||
| import docspell.common._ | ||||
| import docspell.files.TikaMimetype | ||||
| import docspell.extract.internal.Text | ||||
|  | ||||
| object PoiExtract { | ||||
|  | ||||
|   | ||||
| @@ -1,16 +1,17 @@ | ||||
| package docspell.extract.rtf | ||||
|  | ||||
| import java.io.{ByteArrayInputStream, InputStream} | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect.Sync | ||||
| import docspell.common.MimeType | ||||
| import docspell.extract.internal.Text | ||||
| import fs2.Stream | ||||
| import javax.swing.text.rtf.RTFEditorKit | ||||
|  | ||||
| import scala.util.Try | ||||
|  | ||||
| import cats.effect.Sync | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common.MimeType | ||||
| import docspell.extract.internal.Text | ||||
|  | ||||
| object RtfExtract { | ||||
|  | ||||
|   val rtfType = MimeType.application("rtf") | ||||
|   | ||||
| @@ -2,16 +2,16 @@ package docspell.files | ||||
|  | ||||
| import java.io.{ByteArrayInputStream, InputStream} | ||||
| import java.nio.file.Path | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect._ | ||||
| import fs2.Stream | ||||
| import javax.imageio.stream.{FileImageInputStream, ImageInputStream} | ||||
| import javax.imageio.{ImageIO, ImageReader} | ||||
|  | ||||
| import scala.jdk.CollectionConverters._ | ||||
| import scala.util.{Try, Using} | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| object ImageSize { | ||||
|  | ||||
|   /** Return the image size from its header without reading | ||||
|   | ||||
| @@ -1,19 +1,22 @@ | ||||
| package docspell.files | ||||
|  | ||||
| import java.io.BufferedInputStream | ||||
| import java.nio.file.{Files, Path} | ||||
| import java.nio.charset.Charset | ||||
| import java.nio.file.{Files, Path} | ||||
|  | ||||
| import scala.jdk.CollectionConverters._ | ||||
| import scala.util.Using | ||||
| import cats.implicits._ | ||||
|  | ||||
| import cats.effect.Sync | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
|  | ||||
| import org.apache.tika.config.TikaConfig | ||||
| import org.apache.tika.metadata.{HttpHeaders, Metadata, TikaMetadataKeys} | ||||
| import org.apache.tika.mime.MediaType | ||||
| import org.apache.tika.parser.txt.Icu4jEncodingDetector | ||||
| import docspell.common._ | ||||
|  | ||||
| object TikaMimetype { | ||||
|   private val tika = new TikaConfig().getDetector | ||||
|   | ||||
| @@ -1,11 +1,13 @@ | ||||
| package docspell.files | ||||
|  | ||||
| import java.io.InputStream | ||||
| import java.nio.file.Paths | ||||
| import java.util.zip.ZipInputStream | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.{Pipe, Stream} | ||||
| import java.io.InputStream | ||||
| import java.util.zip.ZipInputStream | ||||
| import java.nio.file.Paths | ||||
|  | ||||
| import docspell.common.Binary | ||||
|  | ||||
| object Zip { | ||||
|   | ||||
| @@ -1,11 +1,13 @@ | ||||
| package docspell.ftsclient | ||||
|  | ||||
| import fs2.Stream | ||||
| import cats.implicits._ | ||||
| import cats.effect._ | ||||
| import org.log4s.getLogger | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
|  | ||||
| import org.log4s.getLogger | ||||
|  | ||||
| /** The fts client is the interface for docspell to a fulltext search | ||||
|   * engine. | ||||
|   * | ||||
|   | ||||
| @@ -1,8 +1,7 @@ | ||||
| package docspell.ftsclient | ||||
|  | ||||
| import docspell.common._ | ||||
|  | ||||
| import FtsResult.ItemMatch | ||||
| import docspell.ftsclient.FtsResult.ItemMatch | ||||
|  | ||||
| final case class FtsResult( | ||||
|     qtime: Duration, | ||||
|   | ||||
| @@ -1,8 +1,9 @@ | ||||
| package docspell.ftssolr | ||||
|  | ||||
| import io.circe._ | ||||
| import docspell.common._ | ||||
|  | ||||
| import io.circe._ | ||||
|  | ||||
| final class Field(val name: String) extends AnyVal { | ||||
|  | ||||
|   override def toString(): String = s"Field($name)" | ||||
|   | ||||
| @@ -1,9 +1,10 @@ | ||||
| package docspell.ftssolr | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.ftsclient._ | ||||
|  | ||||
| import io.circe._ | ||||
| import io.circe.syntax._ | ||||
| import docspell.common._ | ||||
| import docspell.ftsclient._ | ||||
|  | ||||
| trait JsonCodec { | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,9 @@ | ||||
| package docspell.ftssolr | ||||
|  | ||||
| import docspell.ftsclient.FtsQuery | ||||
|  | ||||
| import io.circe._ | ||||
| import io.circe.generic.semiauto._ | ||||
| import docspell.ftsclient.FtsQuery | ||||
|  | ||||
| final case class QueryData( | ||||
|     query: String, | ||||
|   | ||||
| @@ -1,15 +1,16 @@ | ||||
| package docspell.ftssolr | ||||
|  | ||||
| import fs2.Stream | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.client.middleware.Logger | ||||
| import org.log4s.getLogger | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.ftsclient._ | ||||
|  | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.client.middleware.Logger | ||||
| import org.log4s.getLogger | ||||
|  | ||||
| final class SolrFtsClient[F[_]: Effect]( | ||||
|     solrUpdate: SolrUpdate[F], | ||||
|     solrSetup: SolrSetup[F], | ||||
|   | ||||
| @@ -1,15 +1,16 @@ | ||||
| package docspell.ftssolr | ||||
|  | ||||
| import cats.effect._ | ||||
| import org.http4s._ | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.circe._ | ||||
| import org.http4s.circe.CirceEntityDecoder._ | ||||
| import org.http4s.client.dsl.Http4sClientDsl | ||||
| import _root_.io.circe.syntax._ | ||||
|  | ||||
| import docspell.ftsclient._ | ||||
| import JsonCodec._ | ||||
| import docspell.ftssolr.JsonCodec._ | ||||
|  | ||||
| import _root_.io.circe.syntax._ | ||||
| import org.http4s._ | ||||
| import org.http4s.circe.CirceEntityDecoder._ | ||||
| import org.http4s.circe._ | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.client.dsl.Http4sClientDsl | ||||
|  | ||||
| trait SolrQuery[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,15 +1,17 @@ | ||||
| package docspell.ftssolr | ||||
|  | ||||
| import cats.effect._ | ||||
| import org.http4s._ | ||||
| import cats.implicits._ | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.circe._ | ||||
| import org.http4s.client.dsl.Http4sClientDsl | ||||
| import _root_.io.circe.syntax._ | ||||
|  | ||||
| import docspell.common._ | ||||
|  | ||||
| import _root_.io.circe._ | ||||
| import _root_.io.circe.generic.semiauto._ | ||||
| import docspell.common._ | ||||
| import _root_.io.circe.syntax._ | ||||
| import org.http4s._ | ||||
| import org.http4s.circe._ | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.client.dsl.Http4sClientDsl | ||||
|  | ||||
| trait SolrSetup[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,15 +1,16 @@ | ||||
| package docspell.ftssolr | ||||
|  | ||||
| import cats.effect._ | ||||
| import org.http4s._ | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.circe._ | ||||
| import org.http4s.client.dsl.Http4sClientDsl | ||||
| import _root_.io.circe._ | ||||
| import _root_.io.circe.syntax._ | ||||
|  | ||||
| import docspell.ftsclient._ | ||||
| import JsonCodec._ | ||||
| import docspell.ftssolr.JsonCodec._ | ||||
|  | ||||
| import _root_.io.circe._ | ||||
| import _root_.io.circe.syntax._ | ||||
| import org.http4s._ | ||||
| import org.http4s.circe._ | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.client.dsl.Http4sClientDsl | ||||
|  | ||||
| trait SolrUpdate[F[_]] { | ||||
|  | ||||
|   | ||||
| @@ -1,14 +1,14 @@ | ||||
| package docspell.joex | ||||
|  | ||||
| import docspell.analysis.TextAnalysisConfig | ||||
| import docspell.backend.Config.Files | ||||
| import docspell.common._ | ||||
| import docspell.joex.scheduler.{PeriodicSchedulerConfig, SchedulerConfig} | ||||
| import docspell.store.JdbcConfig | ||||
| import docspell.convert.ConvertConfig | ||||
| import docspell.extract.ExtractConfig | ||||
| import docspell.joex.hk.HouseKeepingConfig | ||||
| import docspell.backend.Config.Files | ||||
| import docspell.ftssolr.SolrConfig | ||||
| import docspell.joex.hk.HouseKeepingConfig | ||||
| import docspell.joex.scheduler.{PeriodicSchedulerConfig, SchedulerConfig} | ||||
| import docspell.store.JdbcConfig | ||||
|  | ||||
| case class Config( | ||||
|     appId: Ident, | ||||
|   | ||||
| @@ -1,9 +1,10 @@ | ||||
| package docspell.joex | ||||
|  | ||||
| import docspell.common.config.Implicits._ | ||||
| import docspell.joex.scheduler.CountingScheme | ||||
|  | ||||
| import pureconfig._ | ||||
| import pureconfig.generic.auto._ | ||||
| import docspell.joex.scheduler.CountingScheme | ||||
|  | ||||
| object ConfigFile { | ||||
|   import Implicits._ | ||||
|   | ||||
| @@ -1,26 +1,29 @@ | ||||
| package docspell.joex | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect._ | ||||
| import emil.javamail._ | ||||
| import fs2.concurrent.SignallingRef | ||||
| import scala.concurrent.ExecutionContext | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.client.blaze.BlazeClientBuilder | ||||
| import docspell.common._ | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.concurrent.SignallingRef | ||||
|  | ||||
| import docspell.backend.ops._ | ||||
| import docspell.common._ | ||||
| import docspell.ftsclient.FtsClient | ||||
| import docspell.ftssolr.SolrFtsClient | ||||
| import docspell.joex.fts.{MigrationTask, ReIndexTask} | ||||
| import docspell.joex.hk._ | ||||
| import docspell.joex.notify._ | ||||
| import docspell.joex.fts.{MigrationTask, ReIndexTask} | ||||
| import docspell.joex.scanmailbox._ | ||||
| import docspell.joex.process.ItemHandler | ||||
| import docspell.joex.scanmailbox._ | ||||
| import docspell.joex.scheduler._ | ||||
| import docspell.joexapi.client.JoexClient | ||||
| import docspell.store.Store | ||||
| import docspell.store.queue._ | ||||
| import docspell.store.records.RJobLog | ||||
| import docspell.ftsclient.FtsClient | ||||
| import docspell.ftssolr.SolrFtsClient | ||||
|  | ||||
| import emil.javamail._ | ||||
| import org.http4s.client.Client | ||||
| import org.http4s.client.blaze.BlazeClientBuilder | ||||
|  | ||||
| final class JoexAppImpl[F[_]: ConcurrentEffect: ContextShift: Timer]( | ||||
|     cfg: Config, | ||||
|   | ||||
| @@ -2,15 +2,17 @@ package docspell.joex | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.effect.concurrent.Ref | ||||
| import docspell.common.Pools | ||||
| import docspell.joex.routes._ | ||||
| import org.http4s.server.blaze.BlazeServerBuilder | ||||
| import org.http4s.implicits._ | ||||
| import fs2.Stream | ||||
| import fs2.concurrent.SignallingRef | ||||
|  | ||||
| import docspell.common.Pools | ||||
| import docspell.joex.routes._ | ||||
|  | ||||
| import org.http4s.HttpApp | ||||
| import org.http4s.server.middleware.Logger | ||||
| import org.http4s.implicits._ | ||||
| import org.http4s.server.Router | ||||
| import org.http4s.server.blaze.BlazeServerBuilder | ||||
| import org.http4s.server.middleware.Logger | ||||
|  | ||||
| object JoexServer { | ||||
|  | ||||
|   | ||||
| @@ -1,11 +1,12 @@ | ||||
| package docspell.joex | ||||
|  | ||||
| import cats.effect.{Blocker, ExitCode, IO, IOApp} | ||||
| import cats.implicits._ | ||||
|  | ||||
| import java.nio.file.{Files, Paths} | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.common.{Banner, Pools, ThreadFactories} | ||||
|  | ||||
| import org.log4s._ | ||||
|  | ||||
| object Main extends IOApp { | ||||
|   | ||||
| @@ -1,9 +1,10 @@ | ||||
| package docspell.joex.extract | ||||
|  | ||||
| import java.nio.charset.Charset | ||||
|  | ||||
| import emil.BodyContent | ||||
| import emil.jsoup._ | ||||
| import scodec.bits.ByteVector | ||||
| import java.nio.charset.Charset | ||||
|  | ||||
| object JsoupSanitizer { | ||||
|  | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| package docspell.joex.fts | ||||
|  | ||||
| import docspell.common.Logger | ||||
| import docspell.ftsclient.FtsClient | ||||
| import docspell.joex.Config | ||||
| import docspell.joex.scheduler.Context | ||||
| import docspell.store.Store | ||||
| import docspell.ftsclient.FtsClient | ||||
|  | ||||
| case class FtsContext[F[_]]( | ||||
|     cfg: Config.FullTextSearch, | ||||
|   | ||||
| @@ -1,13 +1,14 @@ | ||||
| package docspell.joex.fts | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.data.{Kleisli, NonEmptyList} | ||||
| import cats.{ApplicativeError, FlatMap, Semigroup} | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import cats.{ApplicativeError, FlatMap, Semigroup} | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.ftsclient._ | ||||
| import docspell.joex.scheduler.Context | ||||
| import docspell.joex.Config | ||||
| import docspell.joex.scheduler.Context | ||||
| import docspell.store.queries.{QAttachment, QItem} | ||||
|  | ||||
| object FtsWork { | ||||
|   | ||||
| @@ -1,14 +1,15 @@ | ||||
| package docspell.joex.fts | ||||
|  | ||||
| import cats.Traverse | ||||
| import cats.data.{Kleisli, OptionT} | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import cats.data.{Kleisli, OptionT} | ||||
| import cats.Traverse | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.joex.Config | ||||
| import docspell.store.{AddResult, Store} | ||||
| import docspell.store.records.RFtsMigration | ||||
| import docspell.ftsclient._ | ||||
| import docspell.joex.Config | ||||
| import docspell.store.records.RFtsMigration | ||||
| import docspell.store.{AddResult, Store} | ||||
|  | ||||
| case class Migration[F[_]]( | ||||
|     version: Int, | ||||
|   | ||||
| @@ -2,10 +2,11 @@ package docspell.joex.fts | ||||
|  | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.ftsclient._ | ||||
| import docspell.joex.Config | ||||
| import docspell.joex.scheduler.Task | ||||
| import docspell.ftsclient._ | ||||
| import docspell.store.records.RJob | ||||
|  | ||||
| object MigrationTask { | ||||
|   | ||||
| @@ -1,11 +1,12 @@ | ||||
| package docspell.joex.fts | ||||
|  | ||||
| import cats.effect._ | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.joex.Config | ||||
| import docspell.joex.scheduler.Task | ||||
| import docspell.ftsclient._ | ||||
| import FtsWork.syntax._ | ||||
| import docspell.joex.Config | ||||
| import docspell.joex.fts.FtsWork.syntax._ | ||||
| import docspell.joex.scheduler.Task | ||||
|  | ||||
| object ReIndexTask { | ||||
|   type Args = ReIndexTaskArgs | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| package docspell.joex.hk | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.joex.scheduler.Task | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| package docspell.joex.hk | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.Stream | ||||
|  | ||||
| import docspell.common._ | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| package docspell.joex.hk | ||||
|  | ||||
| import com.github.eikek.calev.CalEvent | ||||
| import docspell.common._ | ||||
| import docspell.joex.hk.HouseKeepingConfig._ | ||||
|  | ||||
| import HouseKeepingConfig._ | ||||
| import com.github.eikek.calev.CalEvent | ||||
|  | ||||
| case class HouseKeepingConfig( | ||||
|     schedule: CalEvent, | ||||
|   | ||||
| @@ -1,14 +1,15 @@ | ||||
| package docspell.joex.hk | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.effect._ | ||||
| import com.github.eikek.calev._ | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.joex.Config | ||||
| import docspell.joex.scheduler.Task | ||||
| import docspell.store.records._ | ||||
|  | ||||
| import com.github.eikek.calev._ | ||||
|  | ||||
| object HouseKeepingTask { | ||||
|   private val periodicId = Ident.unsafe("docspell-houskeeping") | ||||
|  | ||||
|   | ||||
| @@ -3,15 +3,16 @@ package docspell.joex.mail | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
| import fs2.{Pipe, Stream} | ||||
| import emil.{MimeType => _, _} | ||||
| import emil.javamail.syntax._ | ||||
| import emil.tnef.TnefExtract | ||||
| import emil.markdown._ | ||||
| import emil.jsoup._ | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.store.syntax.MimeTypes._ | ||||
|  | ||||
| import emil.javamail.syntax._ | ||||
| import emil.jsoup._ | ||||
| import emil.markdown._ | ||||
| import emil.tnef.TnefExtract | ||||
| import emil.{MimeType => _, _} | ||||
|  | ||||
| object ReadMail { | ||||
|  | ||||
|   def readBytesP[F[_]: ConcurrentEffect: ContextShift]( | ||||
|   | ||||
| @@ -1,12 +1,12 @@ | ||||
| package docspell.joex.notify | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.joex.notify.YamuscaConverter._ | ||||
| import docspell.store.queries.QItem | ||||
|  | ||||
| import yamusca.implicits._ | ||||
| import yamusca.imports._ | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.store.queries.QItem | ||||
| import docspell.joex.notify.YamuscaConverter._ | ||||
|  | ||||
| /** The context for rendering the e-mail template. */ | ||||
| case class MailContext( | ||||
|     items: List[MailContext.ItemData], | ||||
|   | ||||
| @@ -1,19 +1,20 @@ | ||||
| package docspell.joex.notify | ||||
|  | ||||
| import cats.implicits._ | ||||
| import cats.data.OptionT | ||||
| import cats.effect._ | ||||
| import cats.implicits._ | ||||
|  | ||||
| import docspell.backend.ops.OItemSearch.Batch | ||||
| import docspell.common._ | ||||
| import docspell.joex.mail.EmilHeader | ||||
| import docspell.joex.scheduler.{Context, Task} | ||||
| import docspell.store.queries.QItem | ||||
| import docspell.store.records._ | ||||
|  | ||||
| import emil._ | ||||
| import emil.builder._ | ||||
| import emil.markdown._ | ||||
| import emil.javamail.syntax._ | ||||
|  | ||||
| import docspell.common._ | ||||
| import docspell.backend.ops.OItemSearch.Batch | ||||
| import docspell.store.records._ | ||||
| import docspell.store.queries.QItem | ||||
| import docspell.joex.scheduler.{Context, Task} | ||||
| import cats.data.OptionT | ||||
| import docspell.joex.mail.EmilHeader | ||||
| import emil.markdown._ | ||||
|  | ||||
| object NotifyDueItemsTask { | ||||
|   val maxItems: Int = 7 | ||||
|   | ||||
| @@ -1,9 +1,10 @@ | ||||
| package docspell.joex.notify | ||||
|  | ||||
| import yamusca.imports._ | ||||
| import yamusca.implicits._ | ||||
| import docspell.common._ | ||||
|  | ||||
| import yamusca.implicits._ | ||||
| import yamusca.imports._ | ||||
|  | ||||
| trait YamuscaConverter { | ||||
|  | ||||
|   implicit val uriConverter: ValueConverter[LenientUri] = | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user