diff --git a/lib/DDG/Goodie/Zodiac.pm b/lib/DDG/Goodie/Zodiac.pm index 15f9b0cdb..9a08862dc 100644 --- a/lib/DDG/Goodie/Zodiac.pm +++ b/lib/DDG/Goodie/Zodiac.pm @@ -9,6 +9,7 @@ use warnings; use DateTime::Event::Zodiac qw(zodiac_date_name); +zci is_cached => 0; zci answer_type => "zodiac"; triggers startend => "zodiac","zodiac sign","starsign","star sign"; @@ -21,6 +22,22 @@ category "dates"; topics "special_interest"; attribution email => 'nomady@zoho.com', github => ['https://github.com/n0mady','NOMADY']; + +my @colors = qw(bg-clr--blue-light bg-clr--green bg-clr--red bg-clr--grey); + +sub element_sign { + my @sign = @_; + my $versign = lc($sign[0]); + # element Water + return 0 if ($versign =~ m/(cancer|scorpius|pisces)/); + # element Water + return 1 if ($versign =~ m/(taurus|virgo|capricornus)/); + # element Water + return 2 if ($versign =~ m/(aries|sagittarius|leo)/); + # element Water + return 3 if ($versign =~ m/(libra|gemini|aquarius)/); + return 0; +} handle remainder => sub { my $datestring = $_; # The remainder should just be the string for their date. @@ -39,10 +56,15 @@ handle remainder => sub { # Input String my $input = date_output_string($zodiacdate); + + my $index = element_sign($zodiacsign); + + # Background Color Icon + my $bgcolor = $colors[$index]; return $result, structured_answer => { id => "zodiac", - name => "Zodiac", + name => "Dates", data => { image => "/share/goodie/zodiac/" . lc($zodiacsign) . ".png", title => $zodiacsign, @@ -51,7 +73,10 @@ handle remainder => sub { templates => { group => "icon", elClass => { - iconImage => "bg-clr--blue-light" + iconImage => $bgcolor . " circle" + }, + variants => { + iconImage => 'large' } } }; diff --git a/share/goodie/zodiac/aquarius.png b/share/goodie/zodiac/aquarius.png new file mode 100644 index 000000000..2d0ecd5c8 Binary files /dev/null and b/share/goodie/zodiac/aquarius.png differ diff --git a/share/goodie/zodiac/scorpio.png b/share/goodie/zodiac/scorpius.png similarity index 100% rename from share/goodie/zodiac/scorpio.png rename to share/goodie/zodiac/scorpius.png diff --git a/t/Zodiac.t b/t/Zodiac.t index f6712fb7b..422f32ad9 100644 --- a/t/Zodiac.t +++ b/t/Zodiac.t @@ -16,27 +16,54 @@ ddg_goodie_test([qw( 'Zodiac 21st March 1967' => test_zci( 'Zodiac for 21 Mar 1967: Aries', structured_answer => { - input => ['21 Mar 1967'], - operation => 'Zodiac', - result => 'Aries' - } + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--red circle' + }, + variants => { + iconImage => 'large' + } + } + } ), 'StarSign 30 Mar' => test_zci( 'Zodiac for 30 Mar 2015: Aries', structured_answer => { - input => ['30 Mar 2015'], - operation => 'Zodiac', - result => 'Aries' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--red circle' + }, + variants => { + iconImage => 'large' + } + } } ), '20 April star sign' => test_zci( 'Zodiac for 20 Apr 2015: Aries', structured_answer => { - input => ['20 Apr 2015'], - operation => 'Zodiac', - result => 'Aries' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--red circle' + }, + variants => { + iconImage => 'large' + } + } } ), @@ -44,17 +71,35 @@ ddg_goodie_test([qw( 'Zodiac 21st April 2014' => test_zci( 'Zodiac for 21 Apr 2014: Taurus', structured_answer => { - input => ['21 Apr 2014'], - operation => 'Zodiac', - result => 'Taurus' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--green circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'StarSign 27 Apr' => test_zci( 'Zodiac for 27 Apr 2015: Taurus', structured_answer => { - input => ['27 Apr 2015'], - operation => 'Zodiac', - result => 'Taurus' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--green circle' + }, + variants => { + iconImage => 'large' + } + } } ), @@ -62,45 +107,90 @@ ddg_goodie_test([qw( '21 May star sign' => test_zci( 'Zodiac for 21 May 2015: Gemini', structured_answer => { - input => ['21 May 2015'], - operation => 'Zodiac', - result => 'Gemini' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--grey circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'Zodiac 22nd May 1500' => test_zci( 'Zodiac for 22 May 1500: Gemini', structured_answer => { - input => ['22 May 1500'], - operation => 'Zodiac', - result => 'Gemini' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--grey circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'Zodiac 21.05.1965' => test_zci( 'Zodiac for 21 May 1965: Gemini', structured_answer => { - input => ['21 May 1965'], - operation => 'Zodiac', - result => 'Gemini' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--grey circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'StarSign 31 May' => test_zci( 'Zodiac for 31 May 2015: Gemini', structured_answer => { - input => ['31 May 2015'], - operation => 'Zodiac', - result => 'Gemini' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--grey circle' + }, + variants => { + iconImage => 'large' + } + } } ), '21 jun star sign' => test_zci( 'Zodiac for 21 Jun 2015: Gemini', structured_answer => { - input => ['21 Jun 2015'], - operation => 'Zodiac', - result => 'Gemini' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--grey circle' + }, + variants => { + iconImage => 'large' + } + } } ), @@ -108,27 +198,54 @@ ddg_goodie_test([qw( 'Zodiac 22nd June 1889' => test_zci( 'Zodiac for 22 Jun 1889: Cancer', structured_answer => { - input => ['22 Jun 1889'], - operation => 'Zodiac', - result => 'Cancer' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--blue-light circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'StarSign 30 June 2017' => test_zci( 'Zodiac for 30 Jun 2017: Cancer', structured_answer => { - input => ['30 Jun 2017'], - operation => 'Zodiac', - result => 'Cancer' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--blue-light circle' + }, + variants => { + iconImage => 'large' + } + } } ), '22nd july star sign' => test_zci( 'Zodiac for 22 Jul 2015: Cancer', structured_answer => { - input => ['22 Jul 2015'], - operation => 'Zodiac', - result => 'Cancer' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--blue-light circle' + }, + variants => { + iconImage => 'large' + } + } } ), @@ -136,36 +253,72 @@ ddg_goodie_test([qw( 'Zodiac 23 July 1654' => test_zci( 'Zodiac for 23 Jul 1654: Leo', structured_answer => { - input => ['23 Jul 1654'], - operation => 'Zodiac', - result => 'Leo' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--red circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'StarSign 24th July' => test_zci( 'Zodiac for 24 Jul 2015: Leo', structured_answer => { - input => ['24 Jul 2015'], - operation => 'Zodiac', - result => 'Leo' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--red circle' + }, + variants => { + iconImage => 'large' + } + } } ), '22 aug star sign' => test_zci( 'Zodiac for 22 Aug 2015: Leo', structured_answer => { - input => ['22 Aug 2015'], - operation => 'Zodiac', - result => 'Leo' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--red circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'Zodiac 23rd Aug 1700' => test_zci( 'Zodiac for 23 Aug 1700: Leo', structured_answer => { - input => ['23 Aug 1700'], - operation => 'Zodiac', - result => 'Leo' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--red circle' + }, + variants => { + iconImage => 'large' + } + } } ), @@ -173,9 +326,18 @@ ddg_goodie_test([qw( 'StarSign 1 Sep' => test_zci( 'Zodiac for 01 Sep 2015: Virgo', structured_answer => { - input => ['01 Sep 2015'], - operation => 'Zodiac', - result => 'Virgo' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--green circle' + }, + variants => { + iconImage => 'large' + } + } } ), @@ -183,27 +345,54 @@ ddg_goodie_test([qw( '23rd Sep star sign' => test_zci( 'Zodiac for 23 Sep 2015: Libra', structured_answer => { - input => ['23 Sep 2015'], - operation => 'Zodiac', - result => 'Libra' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--grey circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'Zodiac 24 September 2001' => test_zci( 'Zodiac for 24 Sep 2001: Libra', structured_answer => { - input => ['24 Sep 2001'], - operation => 'Zodiac', - result => 'Libra' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--grey circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'StarSign 7th October' => test_zci( 'Zodiac for 07 Oct 2015: Libra', structured_answer => { - input => ['07 Oct 2015'], - operation => 'Zodiac', - result => 'Libra' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--grey circle' + }, + variants => { + iconImage => 'large' + } + } } ), @@ -211,27 +400,54 @@ ddg_goodie_test([qw( '23 oct star sign' => test_zci( 'Zodiac for 23 Oct 2015: Scorpius', structured_answer => { - input => ['23 Oct 2015'], - operation => 'Zodiac', - result => 'Scorpius' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--blue-light circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'Zodiac 24 October 1213' => test_zci( 'Zodiac for 24 Oct 1213: Scorpius', structured_answer => { - input => ['24 Oct 1213'], - operation => 'Zodiac', - result => 'Scorpius' - } + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--blue-light circle' + }, + variants => { + iconImage => 'large' + } + } + } ), 'StarSign 9th November' => test_zci( 'Zodiac for 09 Nov 2015: Scorpius', structured_answer => { - input => ['09 Nov 2015'], - operation => 'Zodiac', - result => 'Scorpius' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--blue-light circle' + }, + variants => { + iconImage => 'large' + } + } } ), @@ -239,36 +455,72 @@ ddg_goodie_test([qw( '22 nov star sign' => test_zci( 'Zodiac for 22 Nov 2015: Sagittarius', structured_answer => { - input => ['22 Nov 2015'], - operation => 'Zodiac', - result => 'Sagittarius' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--red circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'Zodiac 23 Nov 1857' => test_zci( 'Zodiac for 23 Nov 1857: Sagittarius', structured_answer => { - input => ['23 Nov 1857'], - operation => 'Zodiac', - result => 'Sagittarius' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--red circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'StarSign 6 Dec' => test_zci( 'Zodiac for 06 Dec 2015: Sagittarius', structured_answer => { - input => ['06 Dec 2015'], - operation => 'Zodiac', - result => 'Sagittarius' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--red circle' + }, + variants => { + iconImage => 'large' + } + } } ), '21 Dec star sign' => test_zci( 'Zodiac for 21 Dec 2015: Sagittarius', structured_answer => { - input => ['21 Dec 2015'], - operation => 'Zodiac', - result => 'Sagittarius' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--red circle' + }, + variants => { + iconImage => 'large' + } + } } ), @@ -276,45 +528,90 @@ ddg_goodie_test([qw( 'Zodiac 22nd December' => test_zci( 'Zodiac for 22 Dec 2015: Capricornus', structured_answer => { - input => ['22 Dec 2015'], - operation => 'Zodiac', - result => 'Capricornus' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--green circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'StarSign 23 Dec 1378' => test_zci( 'Zodiac for 23 Dec 1378: Capricornus', structured_answer => { - input => ['23 Dec 1378'], - operation => 'Zodiac', - result => 'Capricornus' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--green circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'starsign 31 Dec 2009' => test_zci( 'Zodiac for 31 Dec 2009: Capricornus', structured_answer => { - input => ['31 Dec 2009'], - operation => 'Zodiac', - result => 'Capricornus' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--green circle' + }, + variants => { + iconImage => 'large' + } + } } ), '31.12.2100 zodiac' => test_zci( 'Zodiac for 31 Dec 2100: Capricornus', structured_answer => { - input => ['31 Dec 2100'], - operation => 'Zodiac', - result => 'Capricornus' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--green circle' + }, + variants => { + iconImage => 'large' + } + } } ), '1 Jan zodiac' => test_zci( 'Zodiac for 01 Jan 2015: Capricornus', structured_answer => { - input => ['01 Jan 2015'], - operation => 'Zodiac', - result => 'Capricornus' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--green circle' + }, + variants => { + iconImage => 'large' + } + } } ), @@ -322,27 +619,54 @@ ddg_goodie_test([qw( '20 Jan star sign' => test_zci( 'Zodiac for 20 Jan 2015: Aquarius', structured_answer => { - input => ['20 Jan 2015'], - operation => 'Zodiac', - result => 'Aquarius' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--grey circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'Zodiac 21st Jan' => test_zci( 'Zodiac for 21 Jan 2015: Aquarius', structured_answer => { - input => ['21 Jan 2015'], - operation => 'Zodiac', - result => 'Aquarius' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--grey circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'StarSign 1st Feb' => test_zci( 'Zodiac for 01 Feb 2015: Aquarius', structured_answer => { - input => ['01 Feb 2015'], - operation => 'Zodiac', - result => 'Aquarius' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--grey circle' + }, + variants => { + iconImage => 'large' + } + } } ), @@ -350,35 +674,71 @@ ddg_goodie_test([qw( '19 Feb star sign' => test_zci( 'Zodiac for 19 Feb 2015: Pisces', structured_answer => { - input => ['19 Feb 2015'], - operation => 'Zodiac', - result => 'Pisces' + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--blue-light circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'Zodiac 20th Feb 1967' => test_zci( 'Zodiac for 20 Feb 1967: Pisces', - structured_answer => { - input => ['20 Feb 1967'], - operation => 'Zodiac', - result => 'Pisces' + structured_answer => { + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--blue-light circle' + }, + variants => { + iconImage => 'large' + } + } } ), 'StarSign 1st Mar' => test_zci( 'Zodiac for 01 Mar 2015: Pisces', - structured_answer => { - input => ['01 Mar 2015'], - operation => 'Zodiac', - result => 'Pisces' + structured_answer => { + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--blue-light circle' + }, + variants => { + iconImage => 'large' + } + } } ), '20 Mar star sign' => test_zci( 'Zodiac for 20 Mar 2015: Pisces', - structured_answer => { - input => ['20 Mar 2015'], - operation => 'Zodiac', - result => 'Pisces' + structured_answer => { + id => "zodiac", + name => "Dates", + data => '-ANY-', + templates => { + group => 'icon', + elClass => { + iconImage => 'bg-clr--blue-light circle' + }, + variants => { + iconImage => 'large' + } + } } ),