Skip to content

Generación de archivos para cada perfil #11

@angoca

Description

@angoca

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions