Код:
scam_reports = общее количество уникальных пользователей, которые сообщают о скамминге
отчеты = всего положительные оценки
= BTC общего BTC из положительных оценок
unique_reports = общее количество уникальных пользователей, которые размещены положительные оценки
Старейшая = Отметка старейшого положительного рейтинга доверия
latest_scam = отметка времени последнего рейтинга жульничества
scam_multiplier = 1
# Недавняя афера = больше Отрицательная оценка
если (CURRENT_TIME - latest_scam < 7 дней)
scam_multiplier + = 1.5
# Новый член = больше Отрицательная оценка
если (current_time - старейшая < 60 дней)
scam_multiplier + 3 =
месяцев = месяцев с момента старейшей
всего = отчеты + BTC / 50 # 50 BTC = 1 отчет
# долгосрочные жулики
если (общая > 0 && scam_reports > 4)
scam_multiplier + = (scam_reports / всего) * 50
# Приблизительно ограничить количество точек каждый человек может внести вклад каждый месяц
субтотальное = мин (2 * * unique_reports месяцев, всего)
# Новые пользователи имеют меньшие пределы точки
limited_total = мин (субтотальная, 10 * месяцев) / 10
оценка = мин ((limited_total * месяцев - scam_reports * scam_multiplier), 150)
отчеты = всего положительные оценки
= BTC общего BTC из положительных оценок
unique_reports = общее количество уникальных пользователей, которые размещены положительные оценки
Старейшая = Отметка старейшого положительного рейтинга доверия
latest_scam = отметка времени последнего рейтинга жульничества
scam_multiplier = 1
# Недавняя афера = больше Отрицательная оценка
если (CURRENT_TIME - latest_scam < 7 дней)
scam_multiplier + = 1.5
# Новый член = больше Отрицательная оценка
если (current_time - старейшая < 60 дней)
scam_multiplier + 3 =
месяцев = месяцев с момента старейшей
всего = отчеты + BTC / 50 # 50 BTC = 1 отчет
# долгосрочные жулики
если (общая > 0 && scam_reports > 4)
scam_multiplier + = (scam_reports / всего) * 50
# Приблизительно ограничить количество точек каждый человек может внести вклад каждый месяц
субтотальное = мин (2 * * unique_reports месяцев, всего)
# Новые пользователи имеют меньшие пределы точки
limited_total = мин (субтотальная, 10 * месяцев) / 10
оценка = мин ((limited_total * месяцев - scam_reports * scam_multiplier), 150)
Этот вид отстой. Любые предложения о том, как улучшить его? Я бы предпочел, чтобы избежать зацикливания через все оценки пользователя, потому что это гораздо медленнее, чем просто с использованием агрегатов и однорядные запросов, но этот сервер, вероятно, может справиться с этим, если это необходимо.