configurable ublog rank factor
parent
da6d24dc36
commit
2f9ce9e8b7
|
@ -20,6 +20,7 @@ final class Dev(env: Env) extends LilaController(env) {
|
|||
env.rating.ratingFactorsSetting,
|
||||
env.plan.donationGoalSetting,
|
||||
env.plan.paymentMethodsSetting,
|
||||
env.ublog.rankFactorSetting,
|
||||
env.apiTimelineSetting,
|
||||
env.noDelaySecretSetting,
|
||||
env.featuredTeamsSetting,
|
||||
|
|
|
@ -2,6 +2,7 @@ package lila.ublog
|
|||
|
||||
import com.github.blemale.scaffeine.AsyncLoadingCache
|
||||
import com.softwaremill.macwire._
|
||||
import com.softwaremill.tagging._
|
||||
import scala.concurrent.duration._
|
||||
|
||||
import lila.common.config._
|
||||
|
@ -17,6 +18,7 @@ final class Env(
|
|||
relationApi: lila.relation.RelationApi,
|
||||
captcher: lila.hub.actors.Captcher,
|
||||
cacheApi: lila.memo.CacheApi,
|
||||
settingStore: lila.memo.SettingStore.Builder,
|
||||
net: NetConfig
|
||||
)(implicit
|
||||
ec: scala.concurrent.ExecutionContext
|
||||
|
@ -26,6 +28,12 @@ final class Env(
|
|||
|
||||
private val colls = new UblogColls(db(CollName("ublog_blog")), db(CollName("ublog_post")))
|
||||
|
||||
val rankFactorSetting = settingStore[Int](
|
||||
"ublogRankFactor",
|
||||
default = 5,
|
||||
text = "Ublog rank factor".some
|
||||
).taggedWith[UblogRankFactor]
|
||||
|
||||
val topic = wire[UblogTopicApi]
|
||||
|
||||
val rank = wire[UblogRank]
|
||||
|
@ -53,3 +61,4 @@ final class Env(
|
|||
}
|
||||
|
||||
final private class UblogColls(val blog: Coll, val post: Coll)
|
||||
trait UblogRankFactor
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package lila.ublog
|
||||
|
||||
|
||||
import cats.implicits._
|
||||
import com.softwaremill.tagging._
|
||||
import org.joda.time.DateTime
|
||||
import play.api.i18n.Lang
|
||||
import reactivemongo.api._
|
||||
|
@ -8,9 +10,14 @@ import scala.concurrent.ExecutionContext
|
|||
|
||||
import lila.db.dsl._
|
||||
import lila.hub.actorApi.timeline.{ Propagate, UblogPostLike }
|
||||
import lila.memo.SettingStore
|
||||
import lila.user.User
|
||||
|
||||
final class UblogRank(colls: UblogColls, timeline: lila.hub.actors.Timeline)(implicit ec: ExecutionContext) {
|
||||
final class UblogRank(
|
||||
colls: UblogColls,
|
||||
timeline: lila.hub.actors.Timeline,
|
||||
factor: SettingStore[Int] @@ UblogRankFactor
|
||||
)(implicit ec: ExecutionContext) {
|
||||
|
||||
import UblogBsonHandlers._
|
||||
|
||||
|
@ -112,7 +119,7 @@ final class UblogRank(colls: UblogColls, timeline: lila.hub.actors.Timeline)(imp
|
|||
val tierLikes = likes.value + ((tier - 2) * 5).atLeast(0) // initial boost
|
||||
val likeHours =
|
||||
if (tierLikes < 1) 0
|
||||
else (5 * math.log(tierLikes) + 1).toInt.atMost(tierLikes) * 5
|
||||
else (5 * math.log(tierLikes) + 1).toInt.atMost(tierLikes) * factor.get()
|
||||
val topicsMultiplier = topics.count(t => UblogTopic.chessExists(t.value)) match {
|
||||
case 0 => 0.3
|
||||
case 1 => 1
|
||||
|
|
Loading…
Reference in New Issue