This commit is contained in:
parent
8e15cdd6e8
commit
cd78de96b4
1 changed files with 44 additions and 0 deletions
|
@ -87,6 +87,50 @@ func generateStats(ctx context.Context) ([]ChartData, error) {
|
||||||
}
|
}
|
||||||
data = append(data, generatePie("Codecs", res))
|
data = append(data, generatePie("Codecs", res))
|
||||||
|
|
||||||
|
rows, err = db.Query(ctx,
|
||||||
|
`SELECT COALESCE(jsonb_path_query_first(ffprobe_data, '$.streams[*] ? (@.codec_type == "video") ? (@.disposition.attached_pic == 0).width')::text, 'Unknown') AS name, COUNT(*) AS value
|
||||||
|
FROM files
|
||||||
|
WHERE ffprobe_data IS NOT NULL
|
||||||
|
GROUP BY jsonb_path_query_first(ffprobe_data, '$.streams[*] ? (@.codec_type == "video") ? (@.disposition.attached_pic == 0).width');`)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Query Resolution: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
resolutionCounts, err := pgx.CollectRows(rows, pgx.RowToStructByName[PieValue])
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Collect Codec Data: %w", err)
|
||||||
|
}
|
||||||
|
res = []opts.PieData{}
|
||||||
|
for _, v := range resolutionCounts {
|
||||||
|
res = append(res, opts.PieData{
|
||||||
|
Name: strings.ReplaceAll(v.Name, "\"", ""),
|
||||||
|
Value: v.Value,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
data = append(data, generatePie("Resolution", res))
|
||||||
|
|
||||||
|
rows, err = db.Query(ctx,
|
||||||
|
`SELECT COALESCE(jsonb_path_query_first(ffprobe_data, '$.format.format_name')::text, 'Unknown') AS name, COUNT(*) AS value
|
||||||
|
FROM files
|
||||||
|
WHERE ffprobe_data IS NOT NULL
|
||||||
|
GROUP BY jsonb_path_query_first(ffprobe_data, '$.format.format_name');`)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Query Container: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
containerCounts, err := pgx.CollectRows(rows, pgx.RowToStructByName[PieValue])
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Collect Container Data: %w", err)
|
||||||
|
}
|
||||||
|
res = []opts.PieData{}
|
||||||
|
for _, v := range containerCounts {
|
||||||
|
res = append(res, opts.PieData{
|
||||||
|
Name: strings.ReplaceAll(v.Name, "\"", ""),
|
||||||
|
Value: v.Value,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
data = append(data, generatePie("Container", res))
|
||||||
|
|
||||||
rows, err = db.Query(ctx,
|
rows, err = db.Query(ctx,
|
||||||
`SELECT health AS id, COUNT(*) AS value
|
`SELECT health AS id, COUNT(*) AS value
|
||||||
FROM files
|
FROM files
|
||||||
|
|
Loading…
Add table
Reference in a new issue