summary refs log tree commit diff stats
path: root/tests/niminaction/Chapter6/WikipediaStats/naive.nim
blob: 687177f7419a21c5e40e7a99c3eb8d9061cd3d20 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
discard """
action: compile
"""

# See this page for info about the format https://wikitech.wikimedia.org/wiki/Analytics/Data/Pagecounts-all-sites
import tables, parseutils, strutils

const filename = "pagecounts-20150101-050000"

proc parse(filename: string): tuple[projectName, pageTitle: string,
    requests, contentSize: int] =
  # Each line looks like: en Main_Page 242332 4737756101
  var file = open(filename)
  for line in file.lines:
    var i = 0
    var projectName = ""
    i.inc parseUntil(line, projectName, Whitespace, i)
    i.inc
    var pageTitle = ""
    i.inc parseUntil(line, pageTitle, Whitespace, i)
    i.inc
    var requests = 0
    i.inc parseInt(line, requests, i)
    i.inc
    var contentSize = 0
    i.inc parseInt(line, contentSize, i)
    if requests > result[2] and projectName == "en":
      result = (projectName, pageTitle, requests, contentSize)

  file.close()

when true:
  echo parse(filename)