data2json.go: telling van bronnen
This commit is contained in:
@@ -13,17 +13,19 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Data struct {
|
type Data struct {
|
||||||
Year int `json:"year"`
|
Year int `json:"year"`
|
||||||
Week int `json:"week"`
|
Week int `json:"week"`
|
||||||
First string `json:"first"`
|
First string `json:"first"`
|
||||||
Last string `json:"last"`
|
Last string `json:"last"`
|
||||||
Period int `json:"period"`
|
Period int `json:"period"`
|
||||||
Start string `json:"start"`
|
Start string `json:"start"`
|
||||||
Algemeen *Parts `json:"Algemeen"`
|
Max int `json:"max"`
|
||||||
Groningen *Parts `json:"Groningen"`
|
Sources map[string]int `json:"sources"`
|
||||||
Amsterdam *Parts `json:"Amsterdam"`
|
Algemeen *Parts `json:"Algemeen"`
|
||||||
Literatuur *Parts `json:"Literatuur"`
|
Groningen *Parts `json:"Groningen"`
|
||||||
Vlaanderen *Parts `json:"Vlaanderen"`
|
Amsterdam *Parts `json:"Amsterdam"`
|
||||||
|
Literatuur *Parts `json:"Literatuur"`
|
||||||
|
Vlaanderen *Parts `json:"Vlaanderen"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Parts struct {
|
type Parts struct {
|
||||||
@@ -88,8 +90,9 @@ func main() {
|
|||||||
x(fmt.Errorf("ongeldige week: %d", week))
|
x(fmt.Errorf("ongeldige week: %d", week))
|
||||||
}
|
}
|
||||||
|
|
||||||
start, first, last := dates()
|
start, first, last, names := dates()
|
||||||
|
|
||||||
|
max, sources := makeCounts(names)
|
||||||
data := &Data{
|
data := &Data{
|
||||||
Year: year,
|
Year: year,
|
||||||
Week: week,
|
Week: week,
|
||||||
@@ -97,6 +100,8 @@ func main() {
|
|||||||
Last: last,
|
Last: last,
|
||||||
Period: size,
|
Period: size,
|
||||||
Start: start,
|
Start: start,
|
||||||
|
Max: max,
|
||||||
|
Sources: sources,
|
||||||
Algemeen: makeParts("Algemeen"),
|
Algemeen: makeParts("Algemeen"),
|
||||||
Groningen: makeParts("Groningen"),
|
Groningen: makeParts("Groningen"),
|
||||||
Amsterdam: makeParts("Amsterdam"),
|
Amsterdam: makeParts("Amsterdam"),
|
||||||
@@ -107,7 +112,6 @@ func main() {
|
|||||||
b, err := json.Marshal(data)
|
b, err := json.Marshal(data)
|
||||||
x(err)
|
x(err)
|
||||||
fmt.Println(string(b))
|
fmt.Println(string(b))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeParts(source string) *Parts {
|
func makeParts(source string) *Parts {
|
||||||
@@ -163,7 +167,43 @@ func makeValues(source, part string) [][5]any {
|
|||||||
return v
|
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
|
// 1 januari
|
||||||
t := time.Date(year, 1, 1, 12, 0, 0, 0, time.UTC)
|
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)
|
t2 := t.AddDate(0, 0, 6)
|
||||||
tStart := t.AddDate(0, 0, (1-size)*7)
|
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