Permalink
Fetching contributors…
Cannot retrieve contributors at this time
executable file 79 lines (69 sloc) 2.57 KB
#!/usr/bin/perl -w
# import-categories:
# Initial choice of categories for councils. Most likely wrong.
#
# Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved.
# Email: matthew@mysociety.org. WWW: http://www.mysociety.org
#
# $Id: import-categories,v 1.3 2007-08-02 11:44:59 matthew Exp $
use strict;
require 5.8.0;
# Horrible boilerplate to set up appropriate library paths.
use FindBin;
use lib "$FindBin::Bin/../perllib";
use lib "$FindBin::Bin/../commonlib/perllib";
use mySociety::Config;
use mySociety::DBHandle qw(dbh select_all);
use mySociety::MaPit;
use mySociety::VotingArea;
BEGIN {
mySociety::Config::set_file("$FindBin::Bin/../conf/general");
mySociety::DBHandle::configure(
Name => mySociety::Config::get('FMS_DB_NAME'),
User => mySociety::Config::get('FMS_DB_USER'),
Password => mySociety::Config::get('FMS_DB_PASS'),
Host => mySociety::Config::get('FMS_DB_HOST', undef),
Port => mySociety::Config::get('FMS_DB_PORT', undef)
);
}
my @district_cats = (
'Abandoned vehicles', 'Car parking', 'Dog fouling', 'Flyposting', 'Flytipping',
'Graffiti', 'Parks/landscapes', 'Public toilets', 'Rubbish (refuse and recycling)',
'Street nameplates', 'Street cleaning', 'Trees'
);
my @county_cats = (
'Bus stops', 'Pavements/footpaths', 'Potholes', 'Roads/highways',
'Road traffic signs', 'Street lighting', 'Traffic lights'
);
my @councils;
foreach my $type (@$mySociety::VotingArea::council_parent_types) {
my $areas = mySociety::MaPit::get_areas_by_type($type);
push @councils, @$areas;
}
my $councils = mySociety::MaPit::get_voting_areas_info(\@councils);
foreach my $id (keys %$councils) {
my $type = $councils->{$id}->{type};
my ($email,$confirmed) = dbh()->selectrow_array(
"SELECT email,confirmed FROM contacts WHERE deleted='f'
and area_id=? AND category='Other'", {}, $id);
next unless $email;
if ($type eq 'DIS') {
add_categories($id, $email, $confirmed, @district_cats);
} elsif ($type eq 'CTY') {
add_categories($id, $email, $confirmed, @county_cats);
} else {
add_categories($id, $email, $confirmed, @district_cats, @county_cats);
}
}
dbh()->commit();
sub add_categories {
my ($id, $email, $confirmed, @cats) = @_;
foreach (@cats) {
dbh()->do("insert into contacts
(area_id, category, email, editor, whenedited, note, confirmed, deleted)
values
(?, ?, ?, 'import', ms_current_timestamp(), 'Initial copy', ?, 'f')", {},
$id, $_, $email, ($confirmed ? 1 : 0)
);
}
}