diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1377554 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/pledge-update/main.php b/pledge-update/main.php new file mode 100644 index 0000000..594084c --- /dev/null +++ b/pledge-update/main.php @@ -0,0 +1,100 @@ + $file) { + $config_file = dirname($file)."/config.json"; + $config_string = file_get_contents($config_file); + + if ($config_string !== FALSE) { + $config = json_decode($config_string, true); + } else { + error_log("Error opening config.json."); + exit(1); + } + + $candidate_file = dirname($file)."/candidates.csv"; + + if (($handle = fopen($candidate_file, "r")) !== FALSE) { + $headers = fgetcsv($handle); + while (($data = fgetcsv($handle)) !== FALSE) { + $candidate = []; + $candidate['Pledge'] = 'n'; + foreach ($headers as $key => $value) { + $candidate[$value] = $data[$key]; + } + $candidate['Council'] = $config['councilName']; + $candidate['Path'] = dirname($file); + $candidate_data[$candidate['Candidate Name']] = $candidate; + } + fclose($handle); + } else { + error_log('Error opening candidates file'); + exit(1); + } + + if (($handle = fopen($file, "r")) !== FALSE) { + $headers = fgetcsv($handle); + while (($data = fgetcsv($handle)) !== FALSE) { + $candidate = []; + foreach ($headers as $key => $value) { + $candidate[$value] = $data[$key]; + } + $candidate_data[$candidate['Candidate Name']]['Pledge'] = + $candidate['Pledge']; + } + fclose($handle); + } else { + error_log('Error opening pledges file'); + exit(1); + } +} + +/* Select people who have taken the pledge */ +$pledgeCandidates = array_filter($candidate_data, function ($candidate) { + return $candidate['Pledge'] === 'y'; +}); + +/* Select 9 random candidates */ +$pledgeKeys = array_rand($pledgeCandidates, 9); +shuffle($pledgeKeys); + +$i = 0; +foreach ($pledgeKeys as $key) { + $media_desc = $pledgeCandidates[$key]['Path']."/". + $pledgeCandidates[$key]['Picture'].".json"; + $media_string = file_get_contents($media_desc); + + if ($media_string !== FALSE) { + $media = json_decode($media_string, true); + } else { + error_log("Error opening image descriptor."); + exit(1); + } + + $image_url = $media['url']; + $image_id = $media['id']; + + echo "s|pledge_img_".$i."|".$image_url."|\n"; + echo "s|pledge_id_".$i."|".$image_id."|\n"; + + echo "s|pledge_string_".$i."|"; + echo $pledgeCandidates[$key]['Candidate Name']. + " (". + $pledgeCandidates[$key]['Council']. + ") has taken the pledge!|\n"; + + $i++; +} + +exit(0); diff --git a/update-pledges.sh b/update-pledges.sh new file mode 100755 index 0000000..9283f8a --- /dev/null +++ b/update-pledges.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# If this runs as a cron job - might want to limit the number of revisions +# wordpress stores: +# wp-config.php: +# define( 'WP_POST_REVISIONS', 3 ); + +#wp post list --post_type=page +#wp post get 426 --field=content > current-homepage +#wp post get 1409 --field=content > movie-homepage +#wp post create --post_type=page --post_title="test_pledge" movie-homepage +#wp post update 1803 ../spl-data/movie-homepage + +DATA_PATH="../spl-data" + +pledges_files=() +for folder in "$DATA_PATH"/*; do + if test -f "$folder"/pledges.csv; then + pledges_files+=("$folder"/pledges.csv) + fi +done + +pledge_sed=$(php pledge-update/main.php --pledges-files "${pledges_files[*]}") + +content=$(sed "$pledge_sed" ../spl-data/movie-homepage) + +wp post update 1803 --post_content="$content"