mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-21 18:08:25 +00:00
Update scalafmt to 2.5.1 + scalafmtAll
This commit is contained in:
@ -28,8 +28,9 @@ object JoexServer {
|
||||
val app = for {
|
||||
signal <- Resource.liftF(SignallingRef[F, Boolean](false))
|
||||
exitCode <- Resource.liftF(Ref[F].of(ExitCode.Success))
|
||||
joexApp <- JoexAppImpl
|
||||
.create[F](cfg, signal, pools.connectEC, pools.httpClientEC, pools.blocker)
|
||||
joexApp <-
|
||||
JoexAppImpl
|
||||
.create[F](cfg, signal, pools.connectEC, pools.httpClientEC, pools.blocker)
|
||||
|
||||
httpApp = Router(
|
||||
"/api/info" -> InfoRoutes(),
|
||||
|
@ -31,9 +31,8 @@ object Main extends IOApp {
|
||||
if (!Files.exists(path)) {
|
||||
logger.info(s"Not using config file '$f' because it doesn't exist")
|
||||
System.clearProperty("config.file")
|
||||
} else {
|
||||
} else
|
||||
logger.info(s"Using config file from system properties: $f")
|
||||
}
|
||||
case _ =>
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ object CleanupInvitesTask {
|
||||
|
||||
def apply[F[_]: Sync](cfg: HouseKeepingConfig.CleanupInvites): Task[F, Unit, Unit] =
|
||||
Task { ctx =>
|
||||
if (cfg.enabled) {
|
||||
if (cfg.enabled)
|
||||
for {
|
||||
now <- Timestamp.current[F]
|
||||
ts = now - cfg.olderThan
|
||||
@ -19,8 +19,7 @@ object CleanupInvitesTask {
|
||||
n <- ctx.store.transact(RInvitation.deleteOlderThan(ts))
|
||||
_ <- ctx.logger.info(s"Removed $n invitations")
|
||||
} yield ()
|
||||
} else {
|
||||
else
|
||||
ctx.logger.info("CleanupInvites task is disabled in the configuration")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ object CleanupJobsTask {
|
||||
|
||||
def apply[F[_]: Sync](cfg: HouseKeepingConfig.CleanupJobs): Task[F, Unit, Unit] =
|
||||
Task { ctx =>
|
||||
if (cfg.enabled) {
|
||||
if (cfg.enabled)
|
||||
for {
|
||||
now <- Timestamp.current[F]
|
||||
ts = now - cfg.olderThan
|
||||
@ -21,9 +21,8 @@ object CleanupJobsTask {
|
||||
n <- deleteDoneJobs(ctx.store, ts, cfg.deleteBatch)
|
||||
_ <- ctx.logger.info(s"Removed $n jobs")
|
||||
} yield ()
|
||||
} else {
|
||||
else
|
||||
ctx.logger.info("CleanupJobs task is disabled in the configuration")
|
||||
}
|
||||
}
|
||||
|
||||
def deleteDoneJobs[F[_]: Sync](store: Store[F], ts: Timestamp, batch: Int): F[Int] =
|
||||
|
@ -69,16 +69,17 @@ object NotifyDueItemsTask {
|
||||
def findItems[F[_]: Sync](ctx: Context[F, Args]): F[Vector[QItem.ListItem]] =
|
||||
for {
|
||||
now <- Timestamp.current[F]
|
||||
q = QItem.Query
|
||||
.empty(ctx.args.account.collective)
|
||||
.copy(
|
||||
states = ItemState.validStates,
|
||||
tagsInclude = ctx.args.tagsInclude,
|
||||
tagsExclude = ctx.args.tagsExclude,
|
||||
dueDateFrom = ctx.args.daysBack.map(back => now - Duration.days(back.toLong)),
|
||||
dueDateTo = Some(now + Duration.days(ctx.args.remindDays.toLong)),
|
||||
orderAsc = Some(_.dueDate)
|
||||
)
|
||||
q =
|
||||
QItem.Query
|
||||
.empty(ctx.args.account.collective)
|
||||
.copy(
|
||||
states = ItemState.validStates,
|
||||
tagsInclude = ctx.args.tagsInclude,
|
||||
tagsExclude = ctx.args.tagsExclude,
|
||||
dueDateFrom = ctx.args.daysBack.map(back => now - Duration.days(back.toLong)),
|
||||
dueDateTo = Some(now + Duration.days(ctx.args.remindDays.toLong)),
|
||||
orderAsc = Some(_.dueDate)
|
||||
)
|
||||
res <- ctx.store.transact(QItem.findItems(q).take(maxItems)).compile.toVector
|
||||
} yield res
|
||||
|
||||
|
@ -89,12 +89,14 @@ object CreateItem {
|
||||
Task { ctx =>
|
||||
for {
|
||||
cand <- ctx.store.transact(QItem.findByFileIds(ctx.args.files.map(_.fileMetaId)))
|
||||
_ <- if (cand.nonEmpty) ctx.logger.warn("Found existing item with these files.")
|
||||
else ().pure[F]
|
||||
_ <-
|
||||
if (cand.nonEmpty) ctx.logger.warn("Found existing item with these files.")
|
||||
else ().pure[F]
|
||||
ht <- cand.drop(1).traverse(ri => QItem.delete(ctx.store)(ri.id, ri.cid))
|
||||
_ <- if (ht.sum > 0)
|
||||
ctx.logger.warn(s"Removed ${ht.sum} items with same attachments")
|
||||
else ().pure[F]
|
||||
_ <-
|
||||
if (ht.sum > 0)
|
||||
ctx.logger.warn(s"Removed ${ht.sum} items with same attachments")
|
||||
else ().pure[F]
|
||||
rms <- OptionT(
|
||||
cand.headOption.traverse(ri =>
|
||||
ctx.store.transact(RAttachment.findByItemAndCollective(ri.id, ri.cid))
|
||||
@ -103,9 +105,10 @@ object CreateItem {
|
||||
orig <- rms.traverse(a =>
|
||||
ctx.store.transact(RAttachmentSource.findById(a.id)).map(s => (a, s))
|
||||
)
|
||||
origMap = orig
|
||||
.map(originFileTuple)
|
||||
.toMap
|
||||
origMap =
|
||||
orig
|
||||
.map(originFileTuple)
|
||||
.toMap
|
||||
} yield cand.headOption.map(ri =>
|
||||
ItemData(ri, rms, Vector.empty, Vector.empty, origMap)
|
||||
)
|
||||
@ -116,13 +119,12 @@ object CreateItem {
|
||||
saved: Vector[RAttachment],
|
||||
saveCount: Int
|
||||
): F[Unit] =
|
||||
if (ctx.args.files.size != saved.size) {
|
||||
if (ctx.args.files.size != saved.size)
|
||||
ctx.logger.warn(
|
||||
s"Not all given files (${ctx.args.files.size}) have been stored. Files retained: ${saved.size}; saveCount=$saveCount"
|
||||
)
|
||||
} else {
|
||||
else
|
||||
().pure[F]
|
||||
}
|
||||
|
||||
private def storeItemError[F[_]: Sync](ctx: Context[F, ProcessItemArgs]): F[Unit] = {
|
||||
val msg = "Inserting item failed. DB returned 0 update count!"
|
||||
|
@ -79,8 +79,10 @@ object EvalProposals {
|
||||
if (mt == MetaProposalType.CorrOrg) 0.8
|
||||
else 1.0
|
||||
case NerTag.Person =>
|
||||
if (mt == MetaProposalType.CorrPerson ||
|
||||
mt == MetaProposalType.ConcPerson) 0.8
|
||||
if (
|
||||
mt == MetaProposalType.CorrPerson ||
|
||||
mt == MetaProposalType.ConcPerson
|
||||
) 0.8
|
||||
else 1.0
|
||||
case NerTag.Website => 0.5
|
||||
}
|
||||
|
@ -103,7 +103,8 @@ object FindProposal {
|
||||
}
|
||||
|
||||
def nextWhenEmpty(f: Finder[F], mt0: MetaProposalType, mts: MetaProposalType*)(
|
||||
implicit F: FlatMap[F],
|
||||
implicit
|
||||
F: FlatMap[F],
|
||||
F2: Applicative[F]
|
||||
): Finder[F] =
|
||||
flatMap { res0 =>
|
||||
@ -139,11 +140,11 @@ object FindProposal {
|
||||
val minLength =
|
||||
if (exact) 2 else 5
|
||||
|
||||
if (value.length < minLength) {
|
||||
if (value.length < minLength)
|
||||
ctx.logger
|
||||
.debug(s"Skipping too small value '$value' (original '${nt.label}').")
|
||||
.map(_ => MetaProposalList.empty)
|
||||
} else
|
||||
else
|
||||
nt.tag match {
|
||||
case NerTag.Organization =>
|
||||
ctx.logger.debug(s"Looking for organizations: $value") *>
|
||||
@ -191,9 +192,8 @@ object FindProposal {
|
||||
.map(s => s"%$s%")
|
||||
.getOrElse(value)
|
||||
searchContact(nt, ContactKind.Website, searchString, ctx)
|
||||
} else {
|
||||
} else
|
||||
searchContact(nt, ContactKind.Website, value, ctx)
|
||||
}
|
||||
|
||||
case NerTag.Date =>
|
||||
// There is no database search required for this tag
|
||||
|
@ -18,8 +18,11 @@ object TextAnalysis {
|
||||
for {
|
||||
_ <- ctx.logger.info("Starting text analysis")
|
||||
s <- Duration.stopTime[F]
|
||||
t <- item.metas.toList
|
||||
.traverse(annotateAttachment[F](ctx.args.meta.language, ctx.logger, analyser))
|
||||
t <-
|
||||
item.metas.toList
|
||||
.traverse(
|
||||
annotateAttachment[F](ctx.args.meta.language, ctx.logger, analyser)
|
||||
)
|
||||
_ <- ctx.logger.debug(s"Storing tags: ${t.map(_._1.copy(content = None))}")
|
||||
_ <- t.traverse(m =>
|
||||
ctx.store.transact(RAttachmentMeta.updateLabels(m._1.id, m._1.nerlabels))
|
||||
|
@ -28,8 +28,8 @@ object JobTask {
|
||||
name: Ident,
|
||||
task: Task[F, A, Unit],
|
||||
onCancel: Task[F, A, Unit]
|
||||
)(
|
||||
implicit D: Decoder[A]
|
||||
)(implicit
|
||||
D: Decoder[A]
|
||||
): JobTask[F] = {
|
||||
val convert: String => F[A] =
|
||||
str =>
|
||||
|
@ -96,14 +96,15 @@ final class SchedulerImpl[F[_]: ConcurrentEffect: ContextShift](
|
||||
_ <- permits.acquire
|
||||
_ <- logger.fdebug("New permit acquired")
|
||||
down <- state.get.map(_.shutdownRequest)
|
||||
rjob <- if (down)
|
||||
logger.finfo("") *> permits.release *> (None: Option[RJob]).pure[F]
|
||||
else
|
||||
queue.nextJob(
|
||||
group => state.modify(_.nextPrio(group, config.countingScheme)),
|
||||
config.name,
|
||||
config.retryDelay
|
||||
)
|
||||
rjob <-
|
||||
if (down)
|
||||
logger.finfo("") *> permits.release *> (None: Option[RJob]).pure[F]
|
||||
else
|
||||
queue.nextJob(
|
||||
group => state.modify(_.nextPrio(group, config.countingScheme)),
|
||||
config.name,
|
||||
config.retryDelay
|
||||
)
|
||||
_ <- logger.fdebug(s"Next job found: ${rjob.map(_.info)}")
|
||||
_ <- rjob.map(execute).getOrElse(permits.release)
|
||||
} yield rjob.isDefined
|
||||
@ -128,9 +129,10 @@ final class SchedulerImpl[F[_]: ConcurrentEffect: ContextShift](
|
||||
|
||||
def execute(job: RJob): F[Unit] = {
|
||||
val task = for {
|
||||
jobtask <- tasks
|
||||
.find(job.task)
|
||||
.toRight(s"This executor cannot run tasks with name: ${job.task}")
|
||||
jobtask <-
|
||||
tasks
|
||||
.find(job.task)
|
||||
.toRight(s"This executor cannot run tasks with name: ${job.task}")
|
||||
} yield jobtask
|
||||
|
||||
task match {
|
||||
|
@ -25,8 +25,8 @@ trait Task[F[_], A, B] {
|
||||
def mapF[C](f: F[B] => F[C]): Task[F, A, C] =
|
||||
Task(Task.toKleisli(this).mapF(f))
|
||||
|
||||
def attempt(
|
||||
implicit F: ApplicativeError[F, Throwable]
|
||||
def attempt(implicit
|
||||
F: ApplicativeError[F, Throwable]
|
||||
): Task[F, A, Either[Throwable, B]] =
|
||||
mapF(_.attempt)
|
||||
|
||||
|
Reference in New Issue
Block a user