Ammonite/Статистика відвідувань вікісторінок: відмінності між версіями
Вилучено вміст Додано вміст
Ilya (обговорення | внесок) |
Ilya (обговорення | внесок) |
||
Рядок 212:
Винесемо код одержання статистики за місяць у окрему функцію
<source lang="scala">
def getMonthlyViews(project: String, year: Int, month: Int): List[PageViews] = {
def url: String = {
val monthStr = (if (month < 10) "0" else "") + month
Рядок 221 ⟶ 223:
val articles = root.items.each.articles.each.article.string.getAll(doc)
val views = root.items.each.articles.each.views.int.getAll(doc)
articles.zip(views).map{ case (name, views) => new PageViews(name, views) }
}
</source>
Рядок 260 ⟶ 262:
Згрупуємо за назвою статті, та просумуємо за місяцями:
<source lang="scala">
val groupedByArticle = yearlySeq.groupBy
val articleToViews = groupedByArticle.mapValues
</source>
І відсортуємо за кількістю переглядів:
<source lang="scala">
val ordered = articleToViews.toSeq.sortBy
ordered: Seq[
PageViews("Спеціальна:Вхід", 54454),
PageViews("Головна_сторінка", 32206),
PageViews("Спрощення_у_групах_приголосних", 19109),
PageViews("Освоюємо_Java", 13888),
PageViews("Закінчення_іменників_другої_відміни_чоловічого_роду_в_родовому_відмінку_однини", 10701),
PageViews("Освоюємо_Java/Основи", 10266),
</source>
=== Згрупована за підручником ===
<source lang="scala">
val yearlyByBookSeq = ordered.map
</source>
<source lang="scala">
val groupedByBook = yearlyByBookSeq.groupBy
val bookToViews = groupedByBook.mapValues
val orderedBookViews = bookToViews.toSeq.sortBy
</source>
Вивід (очевидно треба
<source lang="scala">
orderedBookViews: Seq[
PageViews("Освоюємо_Java", 79686),
PageViews("Спеціальна:Вхід", 54521),
PageViews("Pascal", 35106),
PageViews("Головна_сторінка", 32206),
PageViews("Мова_людства", 23700),
PageViews("Спрощення_у_групах_приголосних", 19109),
PageViews("Пориньте_у_Python_3", 16847),
PageViews("Спеціальна:Посилання_сюди", 15723),
PageViews("Закінчення_іменників_другої_відміни_чоловічого_роду_в_родовому_відмінку_однини", 10701),
PageViews("Основні_виробничі_засоби", 10059),
PageViews("C++", 10038),
...
</source>
|