data2json.go: telling van bronnen
This commit is contained in:
@@ -13,17 +13,19 @@ import (
|
||||
)
|
||||
|
||||
type Data struct {
|
||||
Year int `json:"year"`
|
||||
Week int `json:"week"`
|
||||
First string `json:"first"`
|
||||
Last string `json:"last"`
|
||||
Period int `json:"period"`
|
||||
Start string `json:"start"`
|
||||
Algemeen *Parts `json:"Algemeen"`
|
||||
Groningen *Parts `json:"Groningen"`
|
||||
Amsterdam *Parts `json:"Amsterdam"`
|
||||
Literatuur *Parts `json:"Literatuur"`
|
||||
Vlaanderen *Parts `json:"Vlaanderen"`
|
||||
Year int `json:"year"`
|
||||
Week int `json:"week"`
|
||||
First string `json:"first"`
|
||||
Last string `json:"last"`
|
||||
Period int `json:"period"`
|
||||
Start string `json:"start"`
|
||||
Max int `json:"max"`
|
||||
Sources map[string]int `json:"sources"`
|
||||
Algemeen *Parts `json:"Algemeen"`
|
||||
Groningen *Parts `json:"Groningen"`
|
||||
Amsterdam *Parts `json:"Amsterdam"`
|
||||
Literatuur *Parts `json:"Literatuur"`
|
||||
Vlaanderen *Parts `json:"Vlaanderen"`
|
||||
}
|
||||
|
||||
type Parts struct {
|
||||
@@ -88,8 +90,9 @@ func main() {
|
||||
x(fmt.Errorf("ongeldige week: %d", week))
|
||||
}
|
||||
|
||||
start, first, last := dates()
|
||||
start, first, last, names := dates()
|
||||
|
||||
max, sources := makeCounts(names)
|
||||
data := &Data{
|
||||
Year: year,
|
||||
Week: week,
|
||||
@@ -97,6 +100,8 @@ func main() {
|
||||
Last: last,
|
||||
Period: size,
|
||||
Start: start,
|
||||
Max: max,
|
||||
Sources: sources,
|
||||
Algemeen: makeParts("Algemeen"),
|
||||
Groningen: makeParts("Groningen"),
|
||||
Amsterdam: makeParts("Amsterdam"),
|
||||
@@ -107,7 +112,6 @@ func main() {
|
||||
b, err := json.Marshal(data)
|
||||
x(err)
|
||||
fmt.Println(string(b))
|
||||
|
||||
}
|
||||
|
||||
func makeParts(source string) *Parts {
|
||||
@@ -163,7 +167,43 @@ func makeValues(source, part string) [][5]any {
|
||||
return v
|
||||
}
|
||||
|
||||
func dates() (start, first, last string) {
|
||||
func makeCounts(names []string) (int, map[string]int) {
|
||||
max := 0
|
||||
counts := make(map[string]int)
|
||||
x(os.Chdir("/net/corpora/nlnieuws"))
|
||||
files, err := os.ReadDir(".")
|
||||
x(err)
|
||||
for _, file := range files {
|
||||
if !file.IsDir() {
|
||||
continue
|
||||
}
|
||||
filename := file.Name()
|
||||
if filename[0] < 'A' || filename[0] > 'Z' {
|
||||
continue
|
||||
}
|
||||
count := 0
|
||||
for _, name := range names {
|
||||
files2, err := os.ReadDir(filename + "/" + name)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
for _, f := range files2 {
|
||||
if n := f.Name(); strings.HasSuffix(n, ".xml") {
|
||||
count++
|
||||
} else if strings.HasSuffix(n, ".skip") {
|
||||
count--
|
||||
}
|
||||
}
|
||||
}
|
||||
counts[filename] = count
|
||||
if count > max {
|
||||
max = count
|
||||
}
|
||||
}
|
||||
return max, counts
|
||||
}
|
||||
|
||||
func dates() (start, first, last string, names []string) {
|
||||
|
||||
// 1 januari
|
||||
t := time.Date(year, 1, 1, 12, 0, 0, 0, time.UTC)
|
||||
@@ -182,7 +222,20 @@ func dates() (start, first, last string) {
|
||||
t2 := t.AddDate(0, 0, 6)
|
||||
tStart := t.AddDate(0, 0, (1-size)*7)
|
||||
|
||||
return makeDate(tStart), makeDate(t), makeDate(t2)
|
||||
names = make([]string, 0)
|
||||
t3 := tStart
|
||||
for range size {
|
||||
y, w := t3.ISOWeek()
|
||||
names = append(names, fmt.Sprintf("%d/%02d", y, w))
|
||||
t3 = t3.AddDate(0, 0, 7)
|
||||
}
|
||||
t3 = tStart
|
||||
for range 7 * size {
|
||||
names = append(names, fmt.Sprintf("%d/%02d/%02d", t3.Year(), t3.Month(), t3.Day()))
|
||||
t3 = t3.AddDate(0, 0, 1)
|
||||
}
|
||||
|
||||
return makeDate(tStart), makeDate(t), makeDate(t2), names
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user