Úkol #43769
otevřený
Nsazení pirátské kalkulačky
Přidáno uživatelem Josef Bouše před 10 měsíc(ů).
Aktualizováno před 6 měsíc(ů).
Stav:
V řešení (diskutuje se)
Popis
Ahoj,
prosím o zahájení kroků k implementaci a nasazení pirátské kalkulačky
aplikace : https://github.com/michalskop/kalkulacka.one
Je to velice jednoduchá aplikace, neukládá data.
Data se tam dostávají v JSONu , který se tvoří exportem z csv
- Fronta změněn z Podání na Úkol
Hodil bych to na doménu: kalkulacka.pirati.cz ,
poté to zařadíme do tools.pirati.cz
V budoucnu je možný vývoj směrem k lepší administraci dat, kalkulaček nebo anonymní sběr dat, ale to není aktuálně předmětem.
- Stav změněn z Nový na V řešení (diskutuje se)
- % Hotovo změněn z 0 na 10
- % Hotovo změněn z 10 na 80
#!/usr/bin/perl
use strict;
use warnings;
use Text::CSV qw( csv );
use JSON;
my $data = csv (in => $ARGV[0],
sep_char => ';',
decode_utf8 => 0,
);
my $map;
my $col = 0;
HEADER:
foreach my $header (@{ $data->[0] }) {
if ($header =~ /(\d+)$/) {
my $id = $1 - 1;
$map->{$id} = $col - 1;
}
$col++;
}
my @answers;
ANSWER:
foreach my $row (@{ $data }) {
next ANSWER if $row->[0] !~ /\d+/;
my $answer = {
id => $row->[0],
slug => $row->[0],
name => $row->[2],
familyName => $row->[2],
votes => {},
comments => {},
};
$answer->{familyName} =~ s/^\w+\s+//;
QUESTION:
foreach my $id (keys %{ $map } ) {
my $vote = 0;
$vote = 1 if $row->[ $map->{$id} ] eq 'ANO';
$vote = -1 if $row->[ $map->{$id} ] eq 'NE';
$answer->{votes}{$id} = $vote;
$answer->{comments}{$id} = $row->[ $map->{$id} + 1 ];
}
push @answers, $answer;
}
print to_json(\@answers, {pretty => 1, canonical => 1});
Také k dispozici: Atom
PDF