-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Generar un archivo de perfil a cada usuario y país, y actualizarlo cada vez que se identifiquen cambios.
#!/bin/bash
OUTPUT_DIR="public/users"
mkdir -p "$OUTPUT_DIR"
psql -U tu_usuario -d osm_notes -Atc "
SELECT username, country,
COUNT(*) FILTER (WHERE status='open') AS open_notes,
COUNT(*) FILTER (WHERE status='closed') AS closed_notes,
ROUND(AVG(close_days)::numeric, 2) AS avg_days
FROM user_notes_summary
GROUP BY username, country;" |
while IFS="|" read -r username country open closed avg; do
jq -n --arg username "$username" \
--arg country "$country" \
--arg open "$open" \
--arg closed "$closed" \
--arg avg "$avg" \
'{
username: $username,
country: $country,
notes: {
open: ($open | tonumber),
closed: ($closed | tonumber),
average_closure_days: ($avg | tonumber)
},
badges: [],
activity_timeline: []
}' > "$OUTPUT_DIR/${username}.json"
done
#!/bin/bash
OUTPUT_DIR="public/countries"
mkdir -p "$OUTPUT_DIR"
psql -U tu_usuario -d osm_notes -Atc "
SELECT country,
COUNT(*) FILTER (WHERE status='open') AS open_notes,
COUNT(*) FILTER (WHERE status='closed') AS closed_notes,
ROUND(AVG(close_days)::numeric, 2) AS avg_days
FROM note_records
GROUP BY country;" |
while IFS="|" read -r country open closed avg; do
jq -n --arg country "$country" \
--arg open "$open" \
--arg closed "$closed" \
--arg avg "$avg" \
'{
country: $country,
notes: {
open: ($open | tonumber),
closed: ($closed | tonumber),
average_closure_days: ($avg | tonumber)
}
}' > "$OUTPUT_DIR/${country}.json"
done
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels