converting random_name to return structured answer (#4061)
* converting random_name to return structured answer * altSubtitle typo fix * altSubtitle typo fixmaster
parent
ab9ce37808
commit
d7f897af3b
|
@ -3,7 +3,6 @@ package DDG::Goodie::RandomName;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use DDG::Goodie;
|
use DDG::Goodie;
|
||||||
|
|
||||||
use Data::RandomPerson;
|
use Data::RandomPerson;
|
||||||
|
|
||||||
triggers start => 'random name','random person';
|
triggers start => 'random name','random person';
|
||||||
|
@ -11,13 +10,23 @@ zci answer_type => "randomname";
|
||||||
zci is_cached => 0;
|
zci is_cached => 0;
|
||||||
|
|
||||||
handle query => sub {
|
handle query => sub {
|
||||||
|
my $query = $_;
|
||||||
my $person = Data::RandomPerson->new()->create();
|
my $person = Data::RandomPerson->new()->create();
|
||||||
my $name = "$person->{firstname} $person->{lastname}";
|
my $name = "$person->{firstname} $person->{lastname}";
|
||||||
my %genders = (m => 'Male', f => 'Female');
|
my $string_answer;
|
||||||
return "Name: $name\nGender: $genders{$person->{gender}}\nDate of birth: $person->{dob}\nAge: $person->{age}",
|
my $structured_answer = {};
|
||||||
heading => "Random Person" if /person/i;
|
$structured_answer->{templates}->{group} = 'icon';
|
||||||
return "$name (random)";
|
$structured_answer->{data}->{title} = $name;
|
||||||
|
$structured_answer->{data}->{altSubtitle} = 'Randomly generated name';
|
||||||
|
if ($query =~ /person/i) {
|
||||||
|
my %genders = (m => 'Male', f => 'Female');
|
||||||
|
$string_answer = "Name: $name\nGender: $genders{$person->{gender}}\nDate of birth: $person->{dob}\nAge: $person->{age}";
|
||||||
|
$structured_answer->{data}->{subtitle} = 'Birthday: ' . $person->{dob} . ' | Age: ' . $person->{age};
|
||||||
|
$structured_answer->{data}->{altSubtitle} = 'Randomly generated person';
|
||||||
|
} else {
|
||||||
|
$string_answer = "Name: $name";
|
||||||
|
}
|
||||||
|
return $string_answer, structured_answer => $structured_answer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -9,15 +9,50 @@ use DDG::Test::Goodie;
|
||||||
zci is_cached => 0;
|
zci is_cached => 0;
|
||||||
zci answer_type => "randomname";
|
zci answer_type => "randomname";
|
||||||
|
|
||||||
|
sub build_name_answer {
|
||||||
|
my @test_params = @_;
|
||||||
|
|
||||||
|
return re(qr/\w\w/),
|
||||||
|
structured_answer => {
|
||||||
|
data => {
|
||||||
|
title => re(qr/\w\w/),
|
||||||
|
altSubtitle => re(qr/Randomly generated name/)
|
||||||
|
},
|
||||||
|
|
||||||
|
templates => {
|
||||||
|
group => "icon",
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
sub build_person_answer {
|
||||||
|
my @test_params = @_;
|
||||||
|
|
||||||
|
return re(qr/Name: [\w\s]+\nGender: (?:Male|Female)\nDate of birth: \d{4}\-\d{2}\-\d{2}\nAge: \d+/),
|
||||||
|
structured_answer => {
|
||||||
|
data => {
|
||||||
|
title => re(qr/\w\w/),
|
||||||
|
subtitle => re(qr/Birthday: \d{4}\-\d{2}\-\d{2}\+ | Age: \d/),
|
||||||
|
altSubtitle => re(qr/Randomly generated person/)
|
||||||
|
},
|
||||||
|
|
||||||
|
templates => {
|
||||||
|
group => "icon",
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
sub build_name_test { test_zci(build_name_answer(@_)) }
|
||||||
|
sub build_person_test { test_zci(build_person_answer(@_)) }
|
||||||
|
|
||||||
ddg_goodie_test(
|
ddg_goodie_test(
|
||||||
[
|
[
|
||||||
'DDG::Goodie::RandomName'
|
'DDG::Goodie::RandomName'
|
||||||
],
|
],
|
||||||
'random Name' => test_zci (re(qr/\w\w \(random\)/)),
|
'random name' => build_name_test(),
|
||||||
'random name' => test_zci (re(qr/\w\w \(random\)/)),
|
'random Name' => build_name_test(),
|
||||||
'random person' =>
|
'random person' => build_person_test(),
|
||||||
test_zci (re(qr/Name: [\w\s]+\nGender: (?:Male|Female)\nDate of birth: \d{4}\-\d{2}\-\d{2}\nAge: \d+/),
|
'random Person' => build_person_test(),
|
||||||
heading => 'Random Person'),
|
|
||||||
'random domain name' => undef,
|
'random domain name' => undef,
|
||||||
'random city name' => undef,
|
'random city name' => undef,
|
||||||
'names of random people' => undef
|
'names of random people' => undef
|
||||||
|
|
Loading…
Reference in New Issue