Kotlin · 32 строк
Объявление публикуется со статусом «на модерации», а фото, от 1 до 10, проверяет классификатор — 300–600 мс на фото. По итогу объявление публикуется или отклоняется.
Отметьте строки с ошибками.
В работе: Автоматическая модерация фото при подаче объявления.
Как проверяем
Нажмите на строку с ошибкой и коротко напишите, что не так. Баг засчитан, если отмечена хотя бы одна его строка. Зачёт — найдено не меньше 60 % багов с учётом серьёзности (критичный весит 3, обычный 2, мелкий 1), а лишних отметок не больше, чем багов в коде. Пустые строки, скобки и комментарии лишними не считаем. Плюс 1 вопрос про поведение программы — на зачёт не влияют. Ответ один на подход: после него показываем разбор.
Источник: на задачах Авито: модерация объявлений. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
import kotlinx.coroutines.GlobalScopeimport kotlinx.coroutines.launchimport kotlinx.coroutines.runBlockingclass PhotoModeration(private val classifier: Classifier,private val repo: AdRepository,) {// Вызывается из корутины обработчика «Опубликовать объявление».suspend fun publish(adId: Long, photos: List<String>) {repo.setStatus(adId, "on_moderation")GlobalScope.launch {val verdicts = photos.map { url ->runBlocking { classifier.check(url) }}if (verdicts.all { it }) {repo.setStatus(adId, "published")} else {repo.setStatus(adId, "rejected")}}}}interface Classifier {// Нейросеть проверяет фото на запрещённое, 300–600 мс.suspend fun check(photoUrl: String): Boolean}interface AdRepository {suspend fun setStatus(adId: Long, status: String)}