Skip to content

Commit

Permalink
feat: script for fetching election candidates
Browse files Browse the repository at this point in the history
  • Loading branch information
andylolz committed Jun 1, 2024
1 parent a724a72 commit ece28a7
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
50 changes: 50 additions & 0 deletions .github/workflows/fetch_candidates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Fetch candidates

on:
workflow_dispatch:
schedule:
- cron: "0 6 * * *"

permissions:
contents: write

concurrency:
group: all_workflows

jobs:
fetch:
name: Fetch candidates
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Poetry
uses: snok/install-poetry@v1

- name: Set up python
uses: actions/setup-python@v5
with:
python-version-file: pyproject.toml
cache: poetry

- name: Install dependencies
run: poetry install --only main

- name: Checkout previous version
uses: actions/checkout@v4
with:
ref: gh-pages
path: previous

- name: Copy files into place
run: cp -r previous/* output

- name: Fetch candidates
run: poetry run python -m x_notes.fetch_candidates

- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: output
single-commit: true
14 changes: 14 additions & 0 deletions x_notes/fetch_candidates.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import csv
import json
from io import StringIO

import requests

dc_csv = "https://candidates.democracyclub.org.uk/data/export_csv/?election_date=&ballot_paper_id=&election_id=parl.2024-07-04&party_id=&cancelled=&has_twitter_username=yes&extra_fields=twitter_username&format=csv"

r = requests.get(dc_csv, stream=True)
data = list(csv.DictReader(StringIO(r.text)))
handles = [row["twitter_username"].replace('"', "") for row in data]

with open("output/data/ge2024-candidates.json", "w") as fh:
json.dump(handles, fh)

0 comments on commit ece28a7

Please sign in to comment.