fix merge conflict
commit
b6f91090f4
|
@ -1,44 +1,3 @@
|
|||
# Contribute to Goodie Instant Answers
|
||||
|
||||
You don't need to use perl to contribute Goodie Instant Answers.
|
||||
|
||||
You can always find the [Instant Answer Documentation here](https://duck.co/duckduckhack/ddh-intro). Also, if you have any questions at any point, feel free to ask on one of our community channels:
|
||||
|
||||
- [DuckDuckHack mailing list](https://www.listbox.com/subscribe/?list_id=197814)
|
||||
- [Slack](https://duckduckhack.slack.com) - For access, please send an email to quackslack@duckduckgo.com
|
||||
- Do not hesitate to email us directly at open@duckduckgo.com.
|
||||
|
||||
|
||||
## Create a New Instant Answer
|
||||
|
||||
|
||||
**1. Plan your implementation**
|
||||
|
||||
The first step is to research and plan your Instant Answer. Consider [the best way to implement](https://duck.co/duckduckhack/determine_your_instant_answer_type) your idea, and review the [docs and guidelines](https://duck.co/duckduckhack/ddh-intro) that apply.
|
||||
|
||||
**2. Involve us**
|
||||
|
||||
Before you start coding, [let us know your plans](mailto:open@duckduckgo.com). By involving us early we can provide guidance and potentially save you a lot of time and effort. Email us at [open@duckduckgo.com](mailto:open@duckduckgo.com) with what idea you're working on and how you're thinking of going about it.
|
||||
|
||||
In addition, we'll promptly set up a [central Instant Answer page](http://www.duck.co/ia) on the community platform so others can know you're working on it and how they can help you.
|
||||
|
||||
## Improve an Existing Instant Answer
|
||||
|
||||
Another great way to contribute is to improve an existing, live Instant Answer. It's a great way to get further acquainted with Instant Answers, as well as get implementation ideas. (Many contributors report completing their first fix within two hours of forking the repository!)
|
||||
|
||||
**1. Choose a "low-hanging fruit"**
|
||||
|
||||
We've made sure to identify these throughout our repositories for new contributors.
|
||||
|
||||
- [Goodie Low Hanging Fruit](https://github.com/duckduckgo/zeroclickinfo-goodies/issues?q=is%3Aopen+is%3Aissue+label%3A%22Low-Hanging+Fruit%22) ([Goodie docs](https://duck.co/duckduckhack/goodie_overview))
|
||||
- [Spice Low Hanging Fruit](https://github.com/duckduckgo/zeroclickinfo-spice/issues?q=is%3Aopen+is%3Aissue+label%3A%22Low-Hanging+Fruit%22) ([Spice docs](https://duck.co/duckduckhack/spice_overview))
|
||||
|
||||
**2. Dive in**
|
||||
|
||||
Go ahead and **comment on any issues you're interested in helping with.** Let us know what you're thinking and if you'd like any help or guidance.
|
||||
|
||||
As always, feel free to [ask us anything](mailto:open@duckduckgo.com), and don't forget the handy [Instant Answer documentation](https://duck.co/duckduckhack/ddh-intro).
|
||||
|
||||
|
||||
|
||||
# Contributing an Instant Answer
|
||||
|
||||
An overview of how to submit an Instant Answer can [be found over in our docs](http://docs.duckduckhack.com/submitting/submitting-overview.html).
|
76
README.md
76
README.md
|
@ -1,13 +1,75 @@
|
|||
# DuckDuckHack Goodies [![Build Status](https://travis-ci.org/duckduckgo/zeroclickinfo-goodies.png?branch=master)](https://travis-ci.org/duckduckgo/zeroclickinfo-goodies)
|
||||
# Welcome to DuckDuckHack's Goodies Instant Answers Repository
|
||||
|
||||
Join us on Slack! [Request invite](mailto:QuackSlack@duckduckgo.com?subject=AddMe)
|
||||
[![Build Status](https://travis-ci.org/duckduckgo/zeroclickinfo-goodies.png?branch=master)](https://travis-ci.org/duckduckgo/zeroclickinfo-goodies)
|
||||
|
||||
This repository contains all the Goodie instant answers. If you are developing a Goodie instant answer you will need to fork this repository.
|
||||
![](http://docs.duckduckhack.com/assets/hack search engine.png)
|
||||
|
||||
**If you would like to contribute to DuckDuckHack, please start by reading the [DuckDuckHack Documentation](https://dukgo.com/duckduckhack/ddh-intro).**
|
||||
**Instant Answers are an opportunity for anyone to create their own search results.**
|
||||
|
||||
------
|
||||
Instant Answers appear on DuckDuckGo.com above ads and organic links, on [millions of searches](https://duckduckgo.com/traffic.html). Instant Answers are created by an open source community of developers [around the world](http://duckduckgo.meetup.com/) like you. Welcome!
|
||||
|
||||
### Goodie Instant Answer Example
|
||||
You can find the [full documentation here](http://docs.duckduckhack.com). This is the repository for [one type of Instant Answers](http://docs.duckduckhack.com/welcome/determining-ia-type.html), called Goodies.
|
||||
|
||||
![Unit Conversion Example](https://raw.githubusercontent.com/duckduckgo/duckduckgo-documentation/master/duckduckhack/assets/goodie_readme_example.png)
|
||||
## Create a New Instant Answer
|
||||
|
||||
Learn to make an Instant Answer by starting with any of our quick tutorials. All of these are self-contained and will get you up and running. Pick whatever looks most interesting!
|
||||
|
||||
- **[Create a programming syntax cheat sheet](http://docs.duckduckhack.com/walkthroughs/programming-syntax.html)**
|
||||
- **[Create a quick online calculation](http://docs.duckduckhack.com/walkthroughs/calculation.html)**
|
||||
- **[Build an API-based lookup](http://docs.duckduckhack.com/walkthroughs/forum-lookup.html)**
|
||||
|
||||
## Improve a Live Instant Answer
|
||||
|
||||
We welcome new contributors to dive in and improve live Instant Answers. It's a great, hands-on way to learn how things work. Start by [setting up your development environment](http://docs.duckduckhack.com/welcome/setup-dev-environment.html).
|
||||
|
||||
You can see all "low-hanging fruit" issues neatly organized in one place on our [Live Issues Page](https://duck.co/ia/dev/issues?tag=lowhangingfruit), or get an overview of all [Instant Answers in development](https://duck.co/ia/dev/pipeline).
|
||||
|
||||
Have a [favorite Instant Answer](http://duck.co/ia) that you want to make even better? Feel free to dive in and make changes.
|
||||
|
||||
## Inspiration
|
||||
|
||||
Instant Answers allow you to create your own search results. Here are some examples of what contributors have created. You can see [all live Instant Answers listed here](https://duck.co/ia).
|
||||
|
||||
Instant Answers can be quite dynamic...
|
||||
|
||||
![](http://docs.duckduckhack.com/assets/parking_ny.png)
|
||||
|
||||
...or simply convenient:
|
||||
|
||||
![](http://docs.duckduckhack.com/assets/sales_tax.png)
|
||||
|
||||
Some are just cool:
|
||||
|
||||
![](http://docs.duckduckhack.com/assets/heads_tails.png)
|
||||
|
||||
Many are absolutely delightful and unexpected:
|
||||
|
||||
![](http://docs.duckduckhack.com/assets/bpm_ms.png)
|
||||
|
||||
Many are super practical...
|
||||
|
||||
![](http://docs.duckduckhack.com/assets/air_quality.png)
|
||||
|
||||
...in ways we never imagined:
|
||||
|
||||
![](http://docs.duckduckhack.com/assets/blue_pill.png)
|
||||
|
||||
Some Instant Answers are built from pure code:
|
||||
|
||||
![](http://docs.duckduckhack.com/assets/url_encode.png)
|
||||
|
||||
Other Instant Answers channel external sources (API requests):
|
||||
|
||||
![App search Instant Answer example](http://docs.duckduckhack.com/assets/app_search_example.png)
|
||||
|
||||
The [possibilities are endless](https://duck.co/ia). **Our community's mission is to cover every topic with a community-generated Instant Answer.**
|
||||
|
||||
## Discuss with Us
|
||||
|
||||
Want help? Need to think out loud?
|
||||
|
||||
[![slack](http://docs.duckduckhack.com/assets/slack.png) Talk to us on Slack](mailto:QuackSlack@duckduckgo.com?subject=AddMe) or [email us](mailto:open@duckduckgo.com).
|
||||
|
||||
We're a digital community, but real people - we frequently meet up to hack together. Check out our [global meetups](http://duckduckgo.meetup.com/).
|
||||
|
||||
You can find the [full documentation here](http://docs.duckduckhack.com).
|
||||
|
|
|
@ -10,16 +10,6 @@ triggers startend => qw/choose pick select/;
|
|||
zci answer_type => "choice";
|
||||
zci is_cached => 0;
|
||||
|
||||
primary_example_queries 'choose yes or no';
|
||||
secondary_example_queries 'choose heads or tails', 'pick this or that or none';
|
||||
description 'make a random choice';
|
||||
name 'ABC';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/ABC.pm';
|
||||
category 'random';
|
||||
topics 'trivia';
|
||||
attribution cpan => ['CRZEDPSYC','crazedpsyc'],
|
||||
github => ['kablamo', 'Eric Johnson'];
|
||||
|
||||
handle remainder => sub {
|
||||
|
||||
my $query = $_;
|
||||
|
|
|
@ -4,18 +4,6 @@ package DDG::Goodie::AltCalendars;
|
|||
use strict;
|
||||
use DDG::Goodie;
|
||||
|
||||
primary_example_queries 'heisei 24';
|
||||
secondary_example_queries 'meiji 1';
|
||||
description 'Convert non-Gregorian years to the Gregorian calendar';
|
||||
name 'Alternative Calendars';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/AltCalendars.pm';
|
||||
category 'conversions';
|
||||
topics 'everyday';
|
||||
|
||||
attribution web => ['http://kyokodaniel.com/tech/', 'Daniel Davis'],
|
||||
github => ['https://github.com/tagawa', 'tagawa'],
|
||||
twitter => ['https://twitter.com/ourmaninjapan', 'ourmaninjapan'];
|
||||
|
||||
triggers any => 'juche', 'minguo', 'meiji', 'taisho', 'taishou', 'showa', 'shouwa', 'heisei';
|
||||
|
||||
zci answer_type => 'date_conversion';
|
||||
|
|
|
@ -25,20 +25,6 @@ triggers start => @triggers;
|
|||
zci answer_type => "anagram";
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries "anagram of filter";
|
||||
secondary_example_queries "find anagram for partial men";
|
||||
description "find the anagram(s) of your query";
|
||||
name "Anagram";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Anagram.pm";
|
||||
category "transformations";
|
||||
topics "words_and_games";
|
||||
|
||||
attribution github => ["https://github.com/loganom", 'loganom'],
|
||||
github => ["https://github.com/beardlybread", "beardlybread"],
|
||||
github => ['https://github.com/gdrooid', 'gdrooid'],
|
||||
email => ['gdrooid@openmailbox.org', 'gdrooid'],
|
||||
github => ["https://github.com/Mailkov", "Melchiorre Alastra"];
|
||||
|
||||
# Calculate the frequency of the characters in a string
|
||||
sub calc_freq {
|
||||
my ($str) = @_;
|
||||
|
|
|
@ -6,13 +6,6 @@ use DDG::Goodie;
|
|||
|
||||
triggers end => "ascii";
|
||||
|
||||
primary_example_queries '0110100001100101011011000110110001101111 to ascii';
|
||||
description 'convert binary data to readable characters';
|
||||
name 'Ascii';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Binary.pm';
|
||||
category 'transformations';
|
||||
topics 'cryptography';
|
||||
|
||||
zci answer_type => "ascii_conversion";
|
||||
zci is_cached => 1;
|
||||
|
||||
|
|
|
@ -9,14 +9,6 @@ triggers start => "aspect ratio";
|
|||
zci is_cached => 1;
|
||||
zci answer_type => "aspect_ratio";
|
||||
|
||||
primary_example_queries 'aspect ratio 4:3 640:?';
|
||||
description 'complete the missing value with a given ratio';
|
||||
name 'AspectRatio';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/AspectRatio.pm';
|
||||
category 'calculations';
|
||||
topics 'math';
|
||||
attribution github => [ 'https://github.com/mrshu', 'mrshu' ];
|
||||
|
||||
handle remainder => sub {
|
||||
my $input = $_;
|
||||
my $result = 0;
|
||||
|
|
|
@ -4,18 +4,6 @@ package DDG::Goodie::Atbash;
|
|||
use strict;
|
||||
use DDG::Goodie;
|
||||
|
||||
primary_example_queries 'atbash hello';
|
||||
secondary_example_queries 'atbash svool';
|
||||
description 'A simple substitution cipher using a reversed alphabet';
|
||||
name 'Atbash';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Atbash.pm';
|
||||
category 'transformations';
|
||||
topics 'cryptography';
|
||||
|
||||
attribution web => ['http://kyokodaniel.com/tech/', 'Daniel Davis'],
|
||||
github => ['https://github.com/tagawa', 'Daniel Davis'],
|
||||
twitter => ['https://twitter.com/ourmaninjapan', 'Daniel Davis'];
|
||||
|
||||
triggers start => 'atbash';
|
||||
|
||||
zci answer_type => 'atbash';
|
||||
|
|
|
@ -9,19 +9,6 @@ triggers startend => "avg", "average", "mean", "median", "root mean square", "rm
|
|||
zci is_cached => 1;
|
||||
zci answer_type => "average";
|
||||
|
||||
primary_example_queries 'average 12, 45, 78, 1234';
|
||||
secondary_example_queries 'avg 1,2,3', 'root mean square 1,2,3';
|
||||
description 'take the average of a list of numbers';
|
||||
name 'Average';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Average.pm';
|
||||
category 'calculations';
|
||||
topics 'math';
|
||||
attribution twitter => ['crazedpsyc','crazedpsyc'],
|
||||
cpan => ['CRZEDPSYC','crazedpsyc'],
|
||||
github => ['http://github.com/Mailkov', 'Melchiorre Alastra'];
|
||||
|
||||
|
||||
|
||||
handle remainder => sub {
|
||||
|
||||
my $query = $req->query_lc;
|
||||
|
|
|
@ -7,15 +7,6 @@ use DDG::Goodie;
|
|||
zci answer_type => "bpmto_ms";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "BPM (beats per minute) to ms (milliseconds) converter";
|
||||
description "Takes a tempo as BPM (beats per minute), eg. 120, and returns the corresponding note values as milliseconds.";
|
||||
primary_example_queries "120 bpm to ms";
|
||||
category "conversions";
|
||||
topics "music";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/BPMToMs.pm";
|
||||
attribution github => ["https://github.com/stefolof", "stefolof"],
|
||||
twitter => "stefolof";
|
||||
|
||||
triggers end => "bpm to ms", "bpm to milliseconds", "bpm to note values", "bpm to note lengths", "bpm", "bpm timings", "beats per minute to milliseconds",
|
||||
"beats per minute to ms", "beats per minute to note values", "beats per minute to note lengths", "beats per minute", "beats per minute timings";
|
||||
|
||||
|
|
|
@ -7,19 +7,6 @@ use DDG::Goodie;
|
|||
zci answer_type => "brt";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "BRT";
|
||||
description "Track a shipment from BRT";
|
||||
icon_url "https://afelicioni.github.io/assets/i/www.brt.it.ico";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/BRT.pm";
|
||||
primary_example_queries "brt 123456789012";
|
||||
secondary_example_queries "brt 1234567890123456789";
|
||||
source "BRT";
|
||||
category 'ids';
|
||||
topics 'special_interest';
|
||||
attribution web => ["https://afelicioni.github.io/", "Alessio Felicioni"],
|
||||
github => ["afelicioni", "Alessio Felicioni"],
|
||||
twitter => ["afelicioni_pro", "Alessio Felicioni"];
|
||||
|
||||
triggers start => "brt";
|
||||
|
||||
handle query_lc => sub {
|
||||
|
|
|
@ -22,17 +22,6 @@ triggers any => 'base', keys %base_map;
|
|||
zci answer_type => "conversion";
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries '255 in hex';
|
||||
secondary_example_queries '255 in base 16', '42 in binary';
|
||||
description 'convert a number to an arbitrary base';
|
||||
name 'Base';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Base.pm';
|
||||
category 'conversions';
|
||||
topics 'math';
|
||||
attribution web => [ 'http://perlgeek.de/blog-en', 'Moritz Lenz' ],
|
||||
github => [ 'http://github.com/moritz', 'Moritz Lenz'];
|
||||
|
||||
|
||||
handle query_clean => sub {
|
||||
return unless /^(?<num>[0-9]+)\s*(?:(?:in|as|to)\s+)?(?:(?<bt>$map_keys)|(?:base\s*(?<bn>[0-9]+)))$/;
|
||||
my $number = $+{'num'};
|
||||
|
|
|
@ -13,23 +13,6 @@ triggers start => "base64";
|
|||
zci answer_type => "base64_conversion";
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries 'base64 encode foo';
|
||||
secondary_example_queries 'base64 decode dGhpcyB0ZXh0';
|
||||
description 'encode to and decode from base64';
|
||||
name 'Base64';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Base64.pm';
|
||||
category 'conversions';
|
||||
topics 'programming';
|
||||
attribution web => ['robert.io', 'Robert Picard'],
|
||||
github => ['http://github.com/rpicard', 'Robert Picard'],
|
||||
twitter => ['http://twitter.com/__rlp', 'Robert Picard'],
|
||||
web => ['http://robb.weblaws.org/about', 'Robb Shecter'],
|
||||
github => ['http://github.com/dogweather', 'Robb Shecter'],
|
||||
twitter => ['http://twitter.com/dogweather', 'Robb Shecter'];
|
||||
|
||||
|
||||
|
||||
|
||||
handle remainder => sub {
|
||||
my ($command, $input) = query_components($_);
|
||||
return unless $input;
|
||||
|
|
|
@ -7,17 +7,6 @@ use warnings;
|
|||
use DDG::Goodie;
|
||||
|
||||
triggers startend => 'bash if', 'bash';
|
||||
primary_example_queries 'bash [ -z hello ]';
|
||||
secondary_example_queries 'bash if [[ "abc" -lt "cba" ]]';
|
||||
|
||||
description 'Bash Primary Expressions Help';
|
||||
name 'Bash Help';
|
||||
source 'http://tille.garrels.be/training/bash/ch07.html';
|
||||
attribution github => [ 'http://github.com/mintsoft', 'Rob Emery' ];
|
||||
|
||||
category 'computing_tools';
|
||||
topics 'sysadmin';
|
||||
|
||||
zci answer_type => 'expression_description';
|
||||
zci is_cached => 1;
|
||||
|
||||
|
|
|
@ -11,14 +11,6 @@ triggers end => "binary";
|
|||
zci answer_type => "binary_conversion";
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries 'foo in binary', '12 as binary', 'hex 0xffff into binary';
|
||||
secondary_example_queries '0x1e to binary';
|
||||
description 'convert ASCII, numbers, and hex to binary';
|
||||
name 'Binary';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Binary.pm';
|
||||
category 'conversions';
|
||||
topics 'geek';
|
||||
|
||||
sub bin {
|
||||
my @tex = shift;
|
||||
my $bin;
|
||||
|
|
|
@ -17,24 +17,6 @@ triggers query_raw => qr/¬.*/;
|
|||
zci is_cached => 1;
|
||||
zci answer_type => "binary_logic";
|
||||
|
||||
attribution
|
||||
github => ['https://github.com/MithrandirAgain', 'MithrandirAgain'],
|
||||
github => ['https://github.com/bpaschen', 'Bjoern Paschen'],
|
||||
twitter => ['https://twitter.com/Prypjat', 'Bjoern Paschen'],
|
||||
github => ['https://github.com/Sloff', 'Sloff'];
|
||||
|
||||
primary_example_queries '4 xor 5', '3 and 2', '1 or 1234';
|
||||
secondary_example_queries
|
||||
'9489 xor 394 xor 9349 xor 39 xor 29 xor 4967 xor 3985',
|
||||
'10 and 12',
|
||||
'34 or 100',
|
||||
'10 and (30 or 128)',
|
||||
'0x01 or not 0X100';
|
||||
description 'take two numbers and do bitwise logical operations (exclusive-or, or, and, not) on them';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/BinaryLogic.pm';
|
||||
category 'calculations';
|
||||
topics 'math';
|
||||
|
||||
my $rules = <<'END_OF_GRAMMAR';
|
||||
:default ::= action => ::first
|
||||
:start ::= Expression
|
||||
|
|
|
@ -9,14 +9,6 @@ triggers startend => 'birthstone', 'birth stone';
|
|||
zci answer_type => "birth_stone";
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries 'birthstone april';
|
||||
secondary_example_queries 'may birth stone';
|
||||
description 'returns the birth stone of the specified month';
|
||||
name 'BirthStone';
|
||||
topics 'special_interest', 'entertainment';
|
||||
category 'random';
|
||||
attribution github => ['https://github.com/austinheimark', 'Austin Heimark'];
|
||||
|
||||
my %birthstones = (
|
||||
"January" => "Garnet",
|
||||
"February" => "Amethyst",
|
||||
|
|
|
@ -9,16 +9,6 @@ use Math::BigInt;
|
|||
zci answer_type => "bitsum";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "Bitsum";
|
||||
description "Computes the Hamming Weight / bit-wise sum of a decimal or hex number.";
|
||||
primary_example_queries "bitsum 1023", "bitsum 0x789abcd";
|
||||
secondary_example_queries "hammingweight 1023", "hw 1023";
|
||||
category "programming";
|
||||
topics "programming", "cryptography";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Bitsum.pm";
|
||||
attribution github => ["kste", "Stefan Koelbl"],
|
||||
twitter => "kste_";
|
||||
|
||||
# Triggers
|
||||
triggers start => "bitsum", "hammingweight", "hw",
|
||||
"bitsum of", "hammingweight of", "hw of",
|
||||
|
|
|
@ -14,15 +14,6 @@ triggers startend => 'donor compatibility', 'donor', 'donors for',
|
|||
zci answer_type => "blood_donor";
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries 'donor O+';
|
||||
secondary_example_queries 'donor AB+';
|
||||
description 'Donor types for a given blood type';
|
||||
name 'BloodDonor';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/BloodDonor.pm';
|
||||
category 'special';
|
||||
topics 'everyday';
|
||||
attribution github => ['https://github.com/faraday', 'faraday'];
|
||||
|
||||
my %typeMap = (
|
||||
'A' => 'A,O',
|
||||
'O' => 'O',
|
||||
|
|
|
@ -5,14 +5,6 @@ use strict;
|
|||
use DDG::Goodie;
|
||||
use Lingua::EN::Numericalize;
|
||||
|
||||
primary_example_queries 'square root of 9';
|
||||
description 'calculate the nth root';
|
||||
name 'CalcRoots';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodie/blob/master/lib/DDG/Goodie/CalcRoots.pm';
|
||||
attribution github => ['https://github.com/duckduckgo', 'duckduckgo'];
|
||||
category 'calculations';
|
||||
topics 'math';
|
||||
|
||||
triggers any => 'root';
|
||||
|
||||
zci is_cached => 1;
|
||||
|
@ -162,4 +154,4 @@ sub structured{
|
|||
};
|
||||
}
|
||||
|
||||
1;
|
||||
1;
|
||||
|
|
|
@ -13,16 +13,6 @@ use utf8;
|
|||
zci answer_type => "calc";
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries '$3.43+$34.45';
|
||||
secondary_example_queries '64*343';
|
||||
description 'Basic calculations';
|
||||
name 'Calculator';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Calculator.pm';
|
||||
category 'calculations';
|
||||
topics 'math';
|
||||
attribution github => ['https://github.com/duckduckgo', 'duckduckgo'],
|
||||
github => ['https://github.com/phylum', 'Daniel Smith'];
|
||||
|
||||
triggers query_nowhitespace => qr<
|
||||
^
|
||||
( what is | calculate | solve | math )?
|
||||
|
|
|
@ -13,16 +13,6 @@ use YAML::XS 'LoadFile';
|
|||
zci answer_type => "calendar_conversion";
|
||||
zci is_cached => 0;
|
||||
|
||||
primary_example_queries '22/8/2003 to the hijri calendar';
|
||||
secondary_example_queries '23/6/1424 hijri to gregorian';
|
||||
description 'convert dates from the Gregorian calendar to the Hijri/Jalali calendars and back';
|
||||
name 'CalendarConversion';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/CalendarConversion.pm';
|
||||
category 'dates';
|
||||
topics 'special_interest';
|
||||
attribution github => ['http://github.com/mattlehning', 'mattlehning'],
|
||||
github => ['http://github.com/ehsan', 'ehsan'];
|
||||
|
||||
triggers any => 'hijri', 'gregorian', 'jalali';
|
||||
|
||||
my $calendars = LoadFile(share('calendars.yml'));
|
||||
|
|
|
@ -12,20 +12,6 @@ with 'DDG::GoodieRole::Dates';
|
|||
zci answer_type => 'calendar';
|
||||
zci is_cached => 0;
|
||||
|
||||
primary_example_queries "calendar";
|
||||
secondary_example_queries "calendar november",
|
||||
"calendar next november",
|
||||
"calendar november 2015",
|
||||
"cal 29 nov 1980",
|
||||
"cal 29.11.1980",
|
||||
"cal 1980-11-29";
|
||||
|
||||
description "Print calendar of current / given month and highlight (to)day";
|
||||
name "Calendar Today";
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/CalendarToday.pm';
|
||||
category "dates";
|
||||
topics "everyday";
|
||||
attribution email => ['webmaster@quovadit.org', 'webmaster@quovadit.org'];
|
||||
triggers startend => 'calendar', 'cal';
|
||||
|
||||
# define variables
|
||||
|
|
|
@ -9,19 +9,6 @@ use Telephony::CountryDialingCodes;
|
|||
zci answer_type => "calling_codes";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "CallingCodes";
|
||||
description "Matches country names to international calling codes";
|
||||
source "https://en.wikipedia.org/wiki/List_of_country_calling_codes#Alphabetical_listing_by_country_or_region";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-spice/blob/master/lib/DDG/Goodie/CallingCodes.pm";
|
||||
category "geography";
|
||||
topics "travel", "geography";
|
||||
|
||||
primary_example_queries "calling code 55", "dialing code brazil";
|
||||
secondary_example_queries "dialing code +55", "country calling code 55";
|
||||
|
||||
attribution github => ["kablamo", "Eric Johnson"],
|
||||
web => ["http://kablamo.org", "Eric Johnson"];
|
||||
|
||||
my @codewords = qw(code codes);
|
||||
my @descriptors = ('calling', 'dialing', 'dial-in', 'dial in');
|
||||
my @extras = qw(international country);
|
||||
|
|
|
@ -7,14 +7,6 @@ use strict;
|
|||
zci answer_type => "camel_case";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "CamelCase";
|
||||
description "Converts the query to camelCase";
|
||||
primary_example_queries "camelcase this is a test", "camel case this is another test";
|
||||
category "programming";
|
||||
topics "geek", "programming";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/CamelCase.pm";
|
||||
attribution github => ["https://github.com/Sloff", "Sloff"];
|
||||
|
||||
# Triggers
|
||||
triggers start => "camelcase", "camel case";
|
||||
|
||||
|
|
|
@ -4,15 +4,6 @@ package DDG::Goodie::CanadaPost;
|
|||
use strict;
|
||||
use DDG::Goodie;
|
||||
|
||||
primary_example_queries 'canada post 123456789';
|
||||
description 'Track a package from Canada Post';
|
||||
name 'canadapost';
|
||||
icon_url "/i/www.canadapost.ca.ico";
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/CanadaPost.pm';
|
||||
category 'ids';
|
||||
topics 'special_interest';
|
||||
attribution github => [ 'https://github.com/duckduckgo', 'duckduckgo'];
|
||||
|
||||
zci is_cached => 1;
|
||||
zci answer_type => "canadapost";
|
||||
|
||||
|
|
|
@ -21,13 +21,6 @@ triggers startend =>
|
|||
zci answer_type => "chars";
|
||||
zci is_cached => 1;
|
||||
|
||||
name 'Character Counter';
|
||||
description 'Count the number of charaters in a query';
|
||||
primary_example_queries 'chars in "my string"';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Chars.pm';
|
||||
category 'computing_tools';
|
||||
topics 'programming';
|
||||
|
||||
handle remainder => sub {
|
||||
my ($str) = @_;
|
||||
return if !$str;
|
||||
|
|
|
@ -8,16 +8,6 @@ triggers any => 'random', 'chess960';
|
|||
zci is_cached => 0;
|
||||
zci answer_type => 'chess960_position';
|
||||
|
||||
primary_example_queries 'chess960 random';
|
||||
description 'Generates a random starting position for Chess960';
|
||||
topics 'gaming', 'entertainment';
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Chess960.pm";
|
||||
category 'random';
|
||||
attribution github => ['https://github.com/koosha--', 'koosha--'],
|
||||
twitter => 'https://twitter.com/_koosha_',
|
||||
github => ["https://github.com/Mailkov", "Melchiorre Alastra"];
|
||||
|
||||
|
||||
my @all_positions = qw(
|
||||
BBQNNRKR BQNBNRKR BQNNRBKR BQNNRKRB QBBNNRKR QNBBNRKR QNBNRBKR QNBNRKRB QBNNBRKR QNNBBRKR
|
||||
QNNRBBKR QNNRBKRB QBNNRKBR QNNBRKBR QNNRKBBR QNNRKRBB BBNQNRKR BNQBNRKR BNQNRBKR BNQNRKRB
|
||||
|
|
|
@ -11,16 +11,6 @@ use utf8;
|
|||
triggers any => 'chinese zodiac', 'shēngxiào', 'shengxiao', 'shēng xiào', 'sheng xiao';
|
||||
zci is_cached => 0;
|
||||
|
||||
name 'Chinese Zodiac';
|
||||
description 'Return the Chinese zodiac animal for a given year';
|
||||
primary_example_queries 'chinese zodiac for 1969';
|
||||
secondary_example_queries '2004 chinese zodiac animal', 'what was the chinese zodiac animal in 1992', 'what will the chinese zodiac animal be for 2056', 'last year\'s chinese zodiac';
|
||||
category 'dates';
|
||||
topics 'special_interest';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/ChineseZodiac.pm';
|
||||
attribution github => ['http://github.com/wilkox', 'wilkox'],
|
||||
github => ['https://github.com/Sloff', 'Sloff'];
|
||||
|
||||
my %animal_to_language = (
|
||||
'hare' => { en => 'Rabbit', zh => '兔' },
|
||||
'dragon' => { en => 'Dragon', zh => '龙' },
|
||||
|
|
|
@ -8,16 +8,6 @@ zci is_cached => 0;
|
|||
|
||||
triggers start => 'flip', 'toss', 'coin', 'heads';
|
||||
|
||||
primary_example_queries 'flip a coin', 'toss a coin';
|
||||
secondary_example_queries 'flip 4 coins', 'heads or tails';
|
||||
|
||||
description 'flip a coin';
|
||||
name 'Coin Flip';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Coin.pm';
|
||||
topics 'trivia';
|
||||
category 'random';
|
||||
attribution github => [ 'http://github.com/mattlehning', 'mattlehning' ];
|
||||
|
||||
handle query_lc => sub {
|
||||
my $flips;
|
||||
if ($_ =~ /^(heads or tails[ ]?[\?]?)|((flip|toss) (a )?coin)$/) {
|
||||
|
|
|
@ -51,17 +51,6 @@ triggers query_raw => qr/^
|
|||
zci is_cached => 1;
|
||||
zci answer_type => 'color_code';
|
||||
|
||||
primary_example_queries 'hex color code for cyan';
|
||||
secondary_example_queries 'rgb(173,216,230)', 'hsl 194 0.53 0.79', 'cmyk(0.12, 0, 0, 0)', '#00ff00';
|
||||
description 'get hex, RGB, HSL and CMYB values for a color';
|
||||
name 'ColorCodes';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/ColorCodes.pm';
|
||||
category 'conversions';
|
||||
topics 'programming';
|
||||
attribution cpan => ['CRZEDPSYC', 'CRZEDPSYC'],
|
||||
github => ['http://github.com/mintsoft', 'Rob Emery'],
|
||||
github => ['http://github.com/Mailkov', 'Melchiorre Alastra'];
|
||||
|
||||
my %trigger_invert = map { $_ => 1 } (qw( inverse negative opposite ));
|
||||
my %trigger_filler = map { $_ => 1 } (qw( code ));
|
||||
|
||||
|
|
|
@ -8,15 +8,6 @@ with 'DDG::GoodieRole::NumberStyler';
|
|||
zci answer_type => "combination";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "Combination";
|
||||
description "Computes combinations and permutations.";
|
||||
primary_example_queries "10 choose 3", "25 permute 16";
|
||||
secondary_example_queries "16 permutation 3";
|
||||
category "calculations";
|
||||
topics "math";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Combination.pm";
|
||||
attribution github => ["richardscollin", "Collin Richards"];
|
||||
|
||||
triggers any => "choose", "permute", "permutation", "npr", "ncr";
|
||||
|
||||
my $number_re = number_style_regex();
|
||||
|
|
|
@ -6,17 +6,6 @@ use YAML::XS qw( LoadFile );
|
|||
zci answer_type => "constants";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "Constants";
|
||||
description "Provides the value, unit, symbol and other information for Mathematical and Scientific constants";
|
||||
primary_example_queries "first example query", "second example query";
|
||||
secondary_example_queries "optional -- demonstrate any additional triggers";
|
||||
category "formulas";
|
||||
topics "math";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Constants.pm";
|
||||
attribution github => ["Roysten", "Roy van der Vegt"],
|
||||
github => ["hemanth", "Hemanth.HM"],
|
||||
twitter => "gnumanth";
|
||||
|
||||
my $constants = LoadFile(share("constants.yml"));
|
||||
|
||||
#loop through constants
|
||||
|
|
|
@ -10,17 +10,6 @@ use bignum;
|
|||
use Convert::Pluggable;
|
||||
use utf8;
|
||||
|
||||
name 'Conversions';
|
||||
description 'convert between various units of measurement';
|
||||
category 'calculations';
|
||||
topics 'computing', 'math';
|
||||
primary_example_queries 'convert 5 oz to grams';
|
||||
secondary_example_queries '5 ounces to g', '0.5 nautical miles in km';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Conversions.pm';
|
||||
attribution github => 'https://github.com/elohmrow',
|
||||
github => ['https://github.com/mintsoft', 'Rob Emery'],
|
||||
email => 'bradley@pvnp.us';
|
||||
|
||||
zci answer_type => 'conversions';
|
||||
zci is_cached => 1;
|
||||
|
||||
|
|
|
@ -10,15 +10,6 @@ use Math::Round;
|
|||
|
||||
zci is_cached => 1;
|
||||
|
||||
name 'Convert Latitude and Longitude';
|
||||
description 'Convert between latitudes and longitudes expressed in degrees of arc and decimal';
|
||||
primary_example_queries '71º 10\' 3" in decimal';
|
||||
secondary_example_queries '71 degrees 10 minutes 3 seconds east in decimal', '- 16º 30\' 0" - 68º 9\' 0" as decimal';
|
||||
category 'transformations';
|
||||
topics 'geography', 'math', 'science';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/ConvertLatLon.pm';
|
||||
attribution github => ['http://github.com/wilkox', 'wilkox'];
|
||||
|
||||
triggers any => "convert", "dms", "decimal", "latitude", "longitude", "minutes", "seconds";
|
||||
|
||||
#Regexes for latitude/longitude, in either dms or decimal format
|
||||
|
|
|
@ -8,19 +8,6 @@ use Locale::Country qw/country2code code2country/;
|
|||
zci answer_type => "country_codes";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "CountryCodes";
|
||||
description "Matches country names to ISO 3166 codes";
|
||||
source "https://en.wikipedia.org/wiki/ISO_3166-1";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-spice/blob/master/lib/DDG/Goodie/CountryCodes.pm";
|
||||
category "geography";
|
||||
topics "travel", "geography";
|
||||
|
||||
primary_example_queries "country code Japan", "iso code for Spain";
|
||||
secondary_example_queries "Russia two letter country code", "3 letter country code of China";
|
||||
|
||||
attribution github => ["killerfish", "Usman Raza"],
|
||||
twitter => ["f1shie", "Usman Raza"];
|
||||
|
||||
triggers any => 'country code', 'iso code', 'iso 3166';
|
||||
|
||||
my %numbers = (two => 2, three => 3);
|
||||
|
|
|
@ -7,14 +7,6 @@ use DDG::Goodie;
|
|||
zci answer_type => "cron_cheat";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "CrontabCheatSheet";
|
||||
description "Crontab cheat sheet";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/CrontabCheatSheet.pm";
|
||||
category "cheat_sheets";
|
||||
topics "computing", "geek", "programming", "sysadmin";
|
||||
|
||||
primary_example_queries 'crontab help', 'crontab cheat sheet', 'crontab example';
|
||||
|
||||
triggers startend => (
|
||||
'cron cheat sheet',
|
||||
'cron cheatsheet',
|
||||
|
@ -34,8 +26,6 @@ triggers startend => (
|
|||
'crontab examples'
|
||||
);
|
||||
|
||||
attribution github => ["nkorth", "Nathan Korth"];
|
||||
|
||||
my $HTML = share("crontab_cheat_sheet.html")->slurp(iomode => '<:encoding(UTF-8)');
|
||||
my $TEXT = share("crontab_cheat_sheet.txt")->slurp(iomode => '<:encoding(UTF-8)');
|
||||
|
||||
|
|
|
@ -16,16 +16,6 @@ zci is_cached => 1;
|
|||
# Only one trigger enabled.
|
||||
triggers start => "hash";
|
||||
|
||||
primary_example_queries 'hash 624d420035fc9471f6e16766b7132dd6bb34ea62';
|
||||
secondary_example_queries 'hash 1f9b59a2390bb77d2c446837d6aeab067f01b05732735f47099047cd7d3e9f85';
|
||||
description 'Identifies cryptographic hash function type.';
|
||||
name 'CryptHashCheck';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/CryptHashCheck.pm';
|
||||
category 'computing_tools';
|
||||
topics 'cryptography';
|
||||
|
||||
attribution github => ['https://github.com/digit4lfa1l', 'digit4lfa1l'];
|
||||
|
||||
# Remainder function with links to the Wikipedia resources.
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -27,16 +27,6 @@ use JSON;
|
|||
zci is_cached => 1;
|
||||
zci answer_type => "currency_in";
|
||||
|
||||
primary_example_queries 'currency in australia';
|
||||
secondary_example_queries 'currency in AU';
|
||||
description 'find the official currency of a country';
|
||||
name 'CurrencyIn';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/CurrencyIn.pm';
|
||||
category 'facts';
|
||||
topics 'travel';
|
||||
attribution github => ['https://github.com/Alchymista', 'Alchymista'],
|
||||
github => ['https://github.com/ozdemirburak', 'Burak Özdemir'];
|
||||
|
||||
triggers any => 'currency', 'currencies';
|
||||
|
||||
my $data = share('currencies.json')->slurp;
|
||||
|
|
|
@ -6,16 +6,6 @@ use DDG::Goodie;
|
|||
use Business::CUSIP;
|
||||
use Text::Trim;
|
||||
|
||||
# metadata
|
||||
name "CUSIP check";
|
||||
description "Validates the check digit for a unique stock identifier based on the Committee on Uniform Securities Identification Procedures";
|
||||
primary_example_queries "cusip 037833100";
|
||||
secondary_example_queries "cusip check 38259P706", "844741108 cusip check";
|
||||
category "finance";
|
||||
topics "economy_and_finance";
|
||||
code_url "https://github.com/tommytommytommy/zeroclickinfo-goodies/lib/DDG/Goodie/Cusip.pm";
|
||||
attribution github => ["https://github.com/tommytommytommy", 'tommytommytommy'];
|
||||
|
||||
triggers startend => "cusip", "check cusip", "cusip check";
|
||||
|
||||
zci answer_type => "cusip";
|
||||
|
@ -36,15 +26,23 @@ handle remainder => sub {
|
|||
my ($output, $htmlOutput);
|
||||
|
||||
if ($cusip->is_valid) {
|
||||
$output = html_enc($_)." is a properly formatted CUSIP number.";
|
||||
$htmlOutput = "<div class='zci--cusip text--primary'>".html_enc($_)." is a properly formatted <span class='text--secondary'>CUSIP number.</span></div>";
|
||||
$output = "$_ is a properly formatted CUSIP number.";
|
||||
} else {
|
||||
$output = html_enc($_)." is not a properly formatted CUSIP number.";
|
||||
$htmlOutput = "<div class='zci--cusip text--primary'>".html_enc($_)." is not a properly formatted <span class='text--secondary'>CUSIP number.</span></div>";
|
||||
$output = "$_ is not a properly formatted CUSIP number.";
|
||||
}
|
||||
|
||||
# output results
|
||||
return $output, html => $htmlOutput;
|
||||
return $output,
|
||||
structured_answer => {
|
||||
id => 'cusip',
|
||||
name => 'Answer',
|
||||
data => {
|
||||
title => $output,
|
||||
},
|
||||
templates => {
|
||||
group => 'text',
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
1;
|
||||
|
|
|
@ -7,16 +7,6 @@ use DDG::Goodie;
|
|||
zci is_cached => 1;
|
||||
zci answer_type => "dhl";
|
||||
|
||||
primary_example_queries 'DHL 123456789';
|
||||
secondary_example_queries 'tracking 1234567891';
|
||||
description 'Track a package from DHL';
|
||||
name 'DHL';
|
||||
icon_url "/i/www.dhl.com.ico";
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/DHL.pm';
|
||||
category 'ids';
|
||||
topics 'special_interest';
|
||||
attribution github => [ 'https://github.com/duckduckgo', 'duckduckgo'];
|
||||
|
||||
# Regex for usps.
|
||||
my $dhl_qr = qr/dhl/io;
|
||||
my $tracking_qr = qr/package|track(?:ing|)|num(?:ber|)|\#/i;
|
||||
|
|
|
@ -12,15 +12,6 @@ triggers any => qw( plus minus + - date day week month year days weeks months ye
|
|||
zci is_cached => 1;
|
||||
zci answer_type => 'date_math';
|
||||
|
||||
primary_example_queries 'Jan 1 2012 plus 32 days';
|
||||
secondary_example_queries '1/1/2012 plus 5 months', 'January first minus ten days', 'in 5 weeks', '2 weeks ago', '1 month from today';
|
||||
description 'calculate the date with an offset';
|
||||
name 'DateMath';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/DateMath.pm';
|
||||
category 'time_sensitive';
|
||||
topics 'everyday';
|
||||
attribution github => ['http://github.com/cj01101', 'cj01101'];
|
||||
|
||||
my $datestring_regex = datestring_regex();
|
||||
|
||||
handle query_lc => sub {
|
||||
|
|
|
@ -10,15 +10,6 @@ triggers start => "days between", "days", "daysbetween", "days_between", "number
|
|||
zci is_cached => 1;
|
||||
zci answer_type => "days_between";
|
||||
|
||||
primary_example_queries 'days between 01/31/2000 01/31/2001';
|
||||
secondary_example_queries 'days between 01/31/2000 01/31/2001 inclusive';
|
||||
description 'calculate the number of days between two dates';
|
||||
name 'DaysBetween';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/DaysBetween.pm';
|
||||
category 'calculations';
|
||||
topics 'everyday';
|
||||
attribution github => ['http://github.com/JetFault', 'JetFault'];
|
||||
|
||||
my $datestring_regex = datestring_regex();
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -11,17 +11,6 @@ zci answer_type => 'dessert';
|
|||
# We add is_cached so that we get different results for the same query.
|
||||
zci is_cached => 0;
|
||||
|
||||
# Metadata for our instant answer.
|
||||
primary_example_queries 'a dessert that starts with the letter a';
|
||||
secondary_example_queries 'dessert that begins with the letter z';
|
||||
description 'Returns a dessert given a letter.';
|
||||
name 'Dessert';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Dessert.pm';
|
||||
category 'food';
|
||||
topics 'food_and_drink', 'special_interest';
|
||||
attribution github => ['https://github.com/kennydude', 'kennydude'];
|
||||
source 'http://food.sulekha.com/dishes/course/desserts/alphabets/a.htm';
|
||||
|
||||
triggers start => 'dessert', 'desserts', 'a dessert';
|
||||
|
||||
# Returns HTML version of our dessert.
|
||||
|
|
|
@ -10,16 +10,6 @@ zci answer_type => 'dewey_decimal';
|
|||
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries 'dewey 644';
|
||||
secondary_example_queries 'etymology in the dewey decimal system', 'dewey decimal system 640s', 'dewey decimal system naturalism';
|
||||
description 'get the topic or reference number of a Dewey Decimal class';
|
||||
name 'Dewey';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Dewey.pm';
|
||||
category 'reference';
|
||||
topics 'special_interest';
|
||||
attribution twitter => 'crazedpsyc',
|
||||
cpan => 'CRZEDPSYC' ;
|
||||
|
||||
my %nums = share('dewey.txt')->slurp;
|
||||
my %types = reverse %nums;
|
||||
|
||||
|
|
|
@ -10,17 +10,6 @@ triggers start => "roll", "throw";
|
|||
zci answer_type => "dice_roll";
|
||||
zci is_cached => 0;
|
||||
|
||||
primary_example_queries 'throw dice';
|
||||
secondary_example_queries 'roll 5 dice', 'roll 3d12', 'roll 3d12 and 2d4', 'roll 2 dice and 3d5';
|
||||
description 'give the results of a random die throw';
|
||||
name 'Dice';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Dice.pm';
|
||||
category 'random';
|
||||
topics 'math';
|
||||
attribution cpan => ['CRZEDPSYC','crazedpsyc'],
|
||||
twitter => [ 'loganmccamon', 'loganom'],
|
||||
github => ['loganom', 'loganom'];
|
||||
|
||||
my %utf8_dice = (
|
||||
1 => "\x{2680}",
|
||||
2 => "\x{2681}",
|
||||
|
|
|
@ -6,16 +6,6 @@ use DDG::Goodie;
|
|||
|
||||
use YAML::XS 'LoadFile';
|
||||
|
||||
primary_example_queries 'duckduckgo help';
|
||||
secondary_example_queries 'ddg tor', 'short URL for duck duck go';
|
||||
description 'DuckDuckGo help and quick links';
|
||||
name 'DuckDuckGo';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/DuckDuckGo.pm';
|
||||
category 'cheat_sheets';
|
||||
topics 'everyday';
|
||||
attribution twitter => ['crazedpsyc','crazedpsyc'],
|
||||
cpan => ['CRZEDPSYC','crazedpsyc'];
|
||||
|
||||
my @ddg_aliases = map { ($_, $_ . "'s", $_ . "s") } ('duck duck go', 'duckduck go', 'duck duckgo', 'duckduckgo', 'ddg');
|
||||
|
||||
triggers any => @ddg_aliases, "zeroclickinfo", "private search";
|
||||
|
|
|
@ -2,6 +2,7 @@ package DDG::Goodie::EmToPx;
|
|||
# ABSTRACT: em <-> px for font sizes.
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use DDG::Goodie;
|
||||
|
||||
triggers any => "em", "px";
|
||||
|
@ -9,34 +10,51 @@ triggers any => "em", "px";
|
|||
zci answer_type => "conversion";
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries '10 px to em';
|
||||
secondary_example_queries '12.2 px in em assuming a 12.2 font size';
|
||||
description 'convert from px to em';
|
||||
name 'EmToPx';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/EmToPx.pm';
|
||||
category 'conversions';
|
||||
topics 'programming';
|
||||
attribution twitter => ['crazedpsyc','crazedpsyc'],
|
||||
cpan => ['CRZEDPSYC','crazedpsyc'];
|
||||
sub em_to_px {
|
||||
my ($to_convert, $fontsize) = @_;
|
||||
return $to_convert * $fontsize;
|
||||
}
|
||||
|
||||
handle query_raw => sub {
|
||||
my $q = lc $_;
|
||||
$q =~ s/(?![\.\s])\W//g;
|
||||
return unless $q =~ /^(?:convert|change|what\s*(?:s|is|are)\s+)?(?<num>\d+\.\d*|\d*\.\d+|\d+)\s*(?<source>em|px)\s+(?:in|to)\s+(?<target>em|px)(?:\s+(?:with|at|using|assuming)(?:\s+an?)?\s+(?<fs>\d+\.\d*|\d*\.\d+|\d+)\s*px)?/;
|
||||
my ($target, $num, $source, $fontsize) = map { $+{$_} } qw(target num source fs);
|
||||
$fontsize ||= 16;
|
||||
sub px_to_em {
|
||||
my ($to_convert, $fontsize) = @_;
|
||||
return sprintf('%.3f', $to_convert / $fontsize) =~ s/\.?0+$//r;
|
||||
}
|
||||
|
||||
my $number = qr/(\d++\.\d*+|\d*+\.\d++|\d++)/;
|
||||
my $whatis = qr/(convert|change|what\s*('?s|is|are))?/i;
|
||||
my $amount = qr/(?<amount>$number)/i;
|
||||
my $source = qr/(?<source>em|px)/i;
|
||||
my $target = qr/(?<target>em|px)/i;
|
||||
my $fs = qr/((font[ -]?|base[- ]?pixel[- ]?)size)/i;
|
||||
my $fontsize = qr/((with|at|using|assuming)(\s*an?)?)?\s*(?<fm>$fs\s*(of)?\s*)?((?<fontsize>$number)\s*(px)?)\s*(?(<fm>)|($fs))?/i;
|
||||
|
||||
handle query_lc => sub {
|
||||
my $query = $_;
|
||||
$query =~ s/(?![\.\s])\W//g;
|
||||
return unless $query =~ /^${whatis}?\s*${amount}\s*${source}\s*(?:in|to)\s*${target}\s*${fontsize}?\s*$/i;
|
||||
my $target = $+{target};
|
||||
my $num = $+{amount};
|
||||
my $source = $+{source};
|
||||
my $fontsize = $+{fontsize} // 16;
|
||||
return if ($target eq $source || !$num);
|
||||
|
||||
my $result = ($target eq 'px') ? $num * $fontsize : $num / $fontsize;
|
||||
my $plur = $result == 1 ? "is" : "are";
|
||||
my $result = ($target eq 'px') ? em_to_px($num, $fontsize) . 'px'
|
||||
: px_to_em($num, $fontsize) . 'em';
|
||||
my $formatted_input = "Convert $num $source to $target with a font-size of ${fontsize}px";
|
||||
|
||||
return "There $plur $result $target in $num $source (assuming a ${fontsize}px font size)",
|
||||
structured_answer => {
|
||||
input => [$num . $source, $fontsize . 'px font size'],
|
||||
operation => 'Convert to ' . $target,
|
||||
result => $result . $target
|
||||
};
|
||||
return $result,
|
||||
structured_answer => {
|
||||
id => 'em_to_px',
|
||||
name => 'Answer',
|
||||
data => {
|
||||
title => $result,
|
||||
subtitle => $formatted_input,
|
||||
},
|
||||
templates => {
|
||||
group => 'text',
|
||||
moreAt => 0,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
1;
|
||||
|
|
|
@ -6,21 +6,11 @@ use DDG::Goodie;
|
|||
use Net::Domain::TLD;
|
||||
use Email::Valid;
|
||||
|
||||
primary_example_queries 'validate foo@example.com';
|
||||
description 'Checks given email address.';
|
||||
name 'Email';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/EmailValidator.pm';
|
||||
topics 'sysadmin';
|
||||
category 'computing_info';
|
||||
|
||||
zci answer_type => 'email_validation';
|
||||
zci is_cached => 1;
|
||||
|
||||
triggers start => 'validate', 'validate my email', 'validate my e-mail';
|
||||
|
||||
attribution github => ['https://github.com/stelim', 'Stefan Limbacher'],
|
||||
twitter => ['http://twitter.com/stefanlimbacher', 'Stefan Limbacher'];
|
||||
|
||||
my $message_part = {
|
||||
tldcheck => 'top-level domain',
|
||||
fqdn => 'fully qualified domain name',
|
||||
|
|
|
@ -7,17 +7,6 @@ use DDG::Goodie;
|
|||
use Text::FIGlet;
|
||||
|
||||
triggers startend => "figlet", "bigtext", "big text";
|
||||
primary_example_queries 'figlet DuckDuckGo';
|
||||
secondary_example_queries 'figlet computer DuckDuckGo';
|
||||
|
||||
name 'FIGlet';
|
||||
description 'Uses FIGlet to make large letters out of ordinary text.';
|
||||
category 'transformations';
|
||||
topics 'words_and_games';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Figlet.pm';
|
||||
attribution
|
||||
web => ['http://engvik.nu', 'Lars Jansøn Engvik'],
|
||||
github => [ 'larseng', 'Lars Jansøn Engvik'];
|
||||
|
||||
zci answer_type => 'figlet';
|
||||
zci is_cached => 1;
|
||||
|
|
|
@ -11,14 +11,6 @@ zci is_cached => 1;
|
|||
|
||||
triggers startend => 'factors', 'factors of';
|
||||
|
||||
primary_example_queries 'factors of 30';
|
||||
secondary_example_queries '72 factors';
|
||||
description 'Returns the factors of the entered number';
|
||||
name 'Factors';
|
||||
topics 'math';
|
||||
category 'calculations';
|
||||
attribution github => [ 'https://github.com/austinheimark', 'Austin Heimark' ];
|
||||
|
||||
handle remainder => sub {
|
||||
my $query = $_;
|
||||
return unless $query =~ /^\d+$/;
|
||||
|
|
|
@ -7,18 +7,6 @@ use DDG::Goodie;
|
|||
zci is_cached => 1;
|
||||
zci answer_type => "fedex";
|
||||
|
||||
primary_example_queries "fedex 9241990100130206401644";
|
||||
secondary_example_queries "federal express 9241990100130206401644";
|
||||
|
||||
description "Track a FedEx package";
|
||||
name "FedEx";
|
||||
icon_url "/i/fedex.com.ico";
|
||||
source "FedEx";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/FedEx.pm";
|
||||
category 'ids';
|
||||
topics 'special_interest';
|
||||
attribution github => [ 'https://github.com/duckduckgo', 'duckduckgo'];
|
||||
|
||||
# Regex for fedex.
|
||||
my $fedex_qr = qr/fed(?:eral|)ex(?:press|)/io;
|
||||
my $tracking_qr = qr/package|track(?:ing|)|num(?:ber|)|\#/i;
|
||||
|
|
|
@ -12,16 +12,6 @@ with 'DDG::GoodieRole::Chess';
|
|||
zci answer_type => "fen_viewer";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "FenViewer";
|
||||
description "This instant answer parses a chess position in the Forsyth-Edwards notation, and draws a chessboard on screen representing that position.";
|
||||
primary_example_queries "FEN rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1", "fen rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1";
|
||||
|
||||
category "entertainment";
|
||||
topics "gaming";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/FENViewer.pm";
|
||||
attribution github => ["rouzbeh", "Ali Neishabouri"],
|
||||
twitter => "Rou7_beh";
|
||||
|
||||
triggers start => "fen";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -11,14 +11,6 @@ triggers any => 'fib', 'fibonacci';
|
|||
zci answer_type => 'fibonacci';
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries 'fib 7';
|
||||
secondary_example_queries 'fibonacci 33';
|
||||
description 'Returns the n-th element of Fibonacci sequence';
|
||||
attribution github => ['https://github.com/koosha--', 'koosha--'];
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Fibonacci.pm';
|
||||
topics 'math';
|
||||
category 'calculations';
|
||||
|
||||
my @fib = (0, 1);
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -6,17 +6,6 @@ use DDG::Goodie;
|
|||
use YAML::XS 'LoadFile';
|
||||
use Text::Trim;
|
||||
|
||||
primary_example_queries 'firefoxos alarm api';
|
||||
secondary_example_queries 'fxos api contacts';
|
||||
name 'Firefox OS device APIs';
|
||||
description 'Get details of the Firefox OS device APIs.';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/FirefoxOS.pm';
|
||||
category 'programming';
|
||||
topics 'programming';
|
||||
attribution github => ['tagawa', 'Daniel Davis'],
|
||||
twitter => ['ourmaninjapan', 'Daniel Davis'],
|
||||
web => ['http://daniemon.com', 'Daniel Davis'];
|
||||
|
||||
triggers any => 'fxos', 'firefoxos', 'firefox os';
|
||||
|
||||
zci answer_type => 'firefoxos';
|
||||
|
|
|
@ -11,17 +11,6 @@ triggers startend => "flip text", "mirror text", "spin text", "rotate text";
|
|||
zci answer_type => "flip_text";
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries 'flip text sentence';
|
||||
secondary_example_queries 'mirror text hello';
|
||||
description 'flip and mirror text';
|
||||
name 'FlipText';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/FlipText.pm';
|
||||
category 'transformations';
|
||||
topics 'words_and_games';
|
||||
attribution web => ['robert.io', 'Robert Picard'],
|
||||
github => ['http://github.com/rpicard', 'rpicard'],
|
||||
twitter => ['http://twitter.com/__rlp', '__rlp'];
|
||||
|
||||
handle remainder => sub {
|
||||
my $input = $_;
|
||||
|
||||
|
|
|
@ -7,15 +7,6 @@ use Fortune;
|
|||
|
||||
triggers startend => 'unix fortune', 'fortune cookie', 'random fortune';
|
||||
|
||||
primary_example_queries 'fortune cookie', 'random fortune';
|
||||
name 'Fortune';
|
||||
description 'get a random phrase from the original fortunes file';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Fortune.pm';
|
||||
category 'random';
|
||||
topics 'words_and_games';
|
||||
attribution github => ['https://github.com/frncscgmz', 'frncscgmz'],
|
||||
github => ['https://github.com/dmschulman', 'dmschulman'];
|
||||
|
||||
zci answer_type => "fortune";
|
||||
zci is_cached => 0;
|
||||
|
||||
|
|
|
@ -6,15 +6,6 @@ use DDG::Goodie;
|
|||
|
||||
triggers start => 'frequency', 'freq';
|
||||
|
||||
primary_example_queries 'frequency of all characters in testing';
|
||||
secondary_example_queries 'frequency of B in battle', 'frequency of all in testing 1234 ABC!';
|
||||
description 'calculate the frequency of characters in a string';
|
||||
name 'Frequency';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Frequency.pm';
|
||||
category 'calculations';
|
||||
topics 'geek';
|
||||
attribution github => [ 'http://github.com/unlisted', 'Morgan' ];
|
||||
|
||||
handle remainder => sub {
|
||||
if ($_ =~ /^of ([a-z]|(?:all ?|)(?:letters|characters|chars|)) in (.+)/i)
|
||||
{
|
||||
|
|
|
@ -10,15 +10,6 @@ use Math::SigFigs qw(:all);
|
|||
zci answer_type => "frequency_spectrum";
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries '50 hz';
|
||||
secondary_example_queries '400 thz';
|
||||
description 'Returns information about light, radio, and sound frequencies';
|
||||
name 'FrequencySpectrum';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/FrequencySpectrum.pm';
|
||||
category 'physical_properties';
|
||||
topics 'science';
|
||||
attribution web => "https://machinepublishers.com", twitter => 'machinepub';
|
||||
|
||||
#Javascript to dynamically resize and/or hide elements
|
||||
my $dynamicwidths = <<EOF;
|
||||
<script type="text/javascript">
|
||||
|
|
|
@ -22,18 +22,6 @@ triggers any => keys %guid;
|
|||
zci answer_type => "guid";
|
||||
zci is_cached => 0;
|
||||
|
||||
primary_example_queries 'guid';
|
||||
secondary_example_queries 'uuid';
|
||||
description 'generate a unique indentifier';
|
||||
name 'GUID';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/GUID.pm';
|
||||
category 'computing_tools';
|
||||
topics 'programming';
|
||||
attribution twitter => ['crazedpsyc','crazedpsyc'],
|
||||
cpan => ['CRZEDPSYC','crazedpsyc'],
|
||||
github => 'loganom';
|
||||
|
||||
|
||||
handle remainder => sub {
|
||||
|
||||
s/$allowedTriggers//g; # strip allowed triggers
|
||||
|
|
|
@ -6,17 +6,6 @@ use DDG::Goodie;
|
|||
zci answer_type => "2048";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "2048";
|
||||
description "Javascript IA for online 2048";
|
||||
primary_example_queries "play 512";
|
||||
secondary_example_queries "play 4096";
|
||||
category "entertainment";
|
||||
topics "gaming";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Game2048.pm";
|
||||
attribution
|
||||
github => ["Roysten", "Roy van der Vegt"],
|
||||
github => ["https://github.com/puskin94", "puskin"];
|
||||
|
||||
my @game_modes = qw (128 256 512 1024 2048 4096 8192);
|
||||
my @triggers = map { "play $_" } @game_modes;
|
||||
triggers start => @triggers;
|
||||
|
|
|
@ -14,13 +14,6 @@ triggers startend => "generate mac addr",
|
|||
zci answer_type => "MAC Address";
|
||||
zci is_cached => 0;
|
||||
|
||||
primary_example_queries 'please generate mac address';
|
||||
description 'generates a MAC address';
|
||||
name "GenerateMAC";
|
||||
|
||||
attribution github => ['https://github.com/UnGround', 'Charlie Belmer'],
|
||||
web => ['http://www.charliebelmer.com', 'Charlie Belmer'];
|
||||
|
||||
handle remainder => sub {
|
||||
# Ensure rand is seeded for each process
|
||||
srand();
|
||||
|
|
|
@ -10,16 +10,6 @@ zci is_cached => 1;
|
|||
|
||||
triggers start => "golden ratio";
|
||||
|
||||
primary_example_queries 'golden ratio 900:?';
|
||||
secondary_example_queries 'golden ratio ?:123.345';
|
||||
description 'find the number in the golden ratio with a number';
|
||||
name 'GoldenRatio';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/GoldenRatio.pm';
|
||||
category 'calculations';
|
||||
topics 'math';
|
||||
attribution twitter => ['crazedpsyc','crazedpsyc'],
|
||||
cpan => ['CRZEDPSYC','crazedpsyc'];
|
||||
|
||||
handle remainder => sub {
|
||||
my $input = $_;
|
||||
my $golden_ratio = (1 + sqrt(5)) / 2;
|
||||
|
|
|
@ -9,14 +9,6 @@ zci is_cached => 1;
|
|||
|
||||
triggers startend => 'greatest common factor', 'gcf', 'greatest common divisor', 'gcd';
|
||||
|
||||
primary_example_queries 'GCF 121 11';
|
||||
secondary_example_queries '99 9 greatest common factor';
|
||||
description 'returns the greatest common factor of the two entered numbers';
|
||||
name 'GreatestCommonFactor';
|
||||
topics 'math';
|
||||
category 'calculations';
|
||||
attribution github => [ 'https://github.com/austinheimark', 'Austin Heimark' ];
|
||||
|
||||
handle remainder => sub {
|
||||
|
||||
return unless /^\s*\d+(?:(?:\s|,)+\d+)*\s*$/;
|
||||
|
|
|
@ -14,17 +14,6 @@ our %chord_lists; #from chords.pm
|
|||
zci answer_type => 'guitarchord';
|
||||
zci is_cached => 1;
|
||||
|
||||
name "GuitarChords";
|
||||
description "Returns diagrams of guitar chords";
|
||||
category "reference";
|
||||
topics "music";
|
||||
|
||||
primary_example_queries 'G#m6 guitar chord', 'G guitar chord', 'Dbdim guitar chord';
|
||||
|
||||
attribution github => ["charles-l", "Charles Saternos"],
|
||||
twitter => ["theninjacharlie", "Charles Saternos"],
|
||||
web => ["http://charels-l.github.io", "Charles Saternos"];
|
||||
|
||||
triggers startend => ('guitar chord');
|
||||
|
||||
handle remainder => sub
|
||||
|
|
|
@ -7,15 +7,6 @@ use DDG::Goodie;
|
|||
zci is_cached => 1;
|
||||
zci answer_type => "hkdk";
|
||||
|
||||
primary_example_queries 'CU123456789DK';
|
||||
secondary_example_queries 'EE123456789HK';
|
||||
description 'Track a package from Hongkong Post or Post Danmark';
|
||||
name 'HK/DK';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/HKDK.pm';
|
||||
category 'ids';
|
||||
topics 'special_interest';
|
||||
attribution github => [ 'https://github.com/duckduckgo', 'duckduckgo'];
|
||||
|
||||
triggers query_nowhitespace_nodash => qr/([a-z]{2}\d{9}(?:hk|dk))/i;
|
||||
|
||||
handle query_nowhitespace_nodash => sub {
|
||||
|
|
|
@ -13,18 +13,6 @@ use strict;
|
|||
zci answer_type => 'html_entity';
|
||||
zci is_cached => 1;
|
||||
triggers any => 'html', 'entity', 'htmldecode', 'decodehtml', 'htmlentity';
|
||||
primary_example_queries 'html decode !', 'html decode &';
|
||||
secondary_example_queries 'html entity !' , '#36 decode html', 'what is the decoded html entity of $';
|
||||
description 'Decode HTML entities';
|
||||
name 'HTMLEntitiesDecode';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/HTMLEntitiesDecode.pm';
|
||||
category 'computing_tools';
|
||||
topics 'programming';
|
||||
attribution twitter => ['crazedpsyc','crazedpsyc'],
|
||||
cpan => ['CRZEDPSYC','crazedpsyc'],
|
||||
twitter => ['https://twitter.com/nshanmugham', 'Nishanth Shanmugham'],
|
||||
web => ['http://nishanths.github.io', 'Nishanth Shanmugham'],
|
||||
github => ['https://github.com/nishanths', 'Nishanth Shanmugham'];
|
||||
|
||||
handle remainder => sub {
|
||||
$_ = trim $_; # remove front and back whitespace
|
||||
|
|
|
@ -10,26 +10,9 @@ use utf8;
|
|||
|
||||
triggers any => 'html', 'entity', 'htmlencode','encodehtml','htmlescape','escapehtml', 'htmlentity';
|
||||
|
||||
primary_example_queries 'html em dash', 'html entity A-acute', 'html escape &';
|
||||
secondary_example_queries 'html code em-dash', 'html entity for E grave', '$ sign htmlentity', 'pound sign html encode', 'html character code for trademark symbol',
|
||||
'what is the html entity for greater than sign', 'how to encode an apostrophe in html';
|
||||
|
||||
name 'HTMLEntitiesEncode';
|
||||
description 'Displays the HTML entity code for the query name';
|
||||
category 'cheat_sheets';
|
||||
topics 'programming', 'web_design';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-spice/blob/master/lib/DDG/Goodie/HTMLEntitiesEncode.pm';
|
||||
zci answer_type => 'html_entity';
|
||||
zci is_cached => 1;
|
||||
|
||||
attribution web => ["http://nishanths.github.io", "Nishanth Shanmugham"],
|
||||
github => ["https://github.com/nishanths", "Nishanth Shanmugham"],
|
||||
twitter => ["https://twitter.com/nshanmugham", "Nishanth Shanmugham"],
|
||||
twitter => ['crazedpsyc','crazedpsyc'],
|
||||
cpan => ['CRZEDPSYC','crazedpsyc'],
|
||||
github => ['https://github.com/mintsoft', "Rob Emery"];
|
||||
|
||||
|
||||
# '&' and ';' not included in the hash value -- they are added in make_text() and make_html()
|
||||
my %codes = (
|
||||
# Punctuation
|
||||
|
|
|
@ -13,14 +13,6 @@ triggers any => @$triggers;
|
|||
zci answer_type => 'helpline';
|
||||
zci is_cached => 0;
|
||||
|
||||
primary_example_queries 'suicide hotline';
|
||||
description 'Checks if a query with the word "suicide" was made and returns a 24 hr suicide hotline.';
|
||||
attribution github => ['https://github.com/conorfl', 'conorfl'];
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/Helpline.pm';
|
||||
topics 'everyday';
|
||||
category 'special';
|
||||
source 'https://en.wikipedia.org/wiki/List_of_suicide_crisis_lines';
|
||||
|
||||
my $helplines = LoadFile(share('helplines.yml'));
|
||||
my %suicide_phrases = map { $_ => 1 } @$triggers;
|
||||
|
||||
|
|
|
@ -12,15 +12,6 @@ triggers start => 'ascii';
|
|||
zci is_cached => 1;
|
||||
zci answer_type => 'ascii';
|
||||
|
||||
primary_example_queries 'ascii 0x74657374';
|
||||
secondary_example_queries 'ascii 0x5468697320697320612074657374';
|
||||
description 'Return the ASCII representation of a given printable HEX number.';
|
||||
name 'HexToASCII';
|
||||
code_url 'http://github.com';
|
||||
category 'computing_tools';
|
||||
topics 'programming';
|
||||
attribution github => ['https://github.com/koosha--', 'koosha--'];
|
||||
|
||||
handle remainder => sub {
|
||||
my $value = $_;
|
||||
$value =~ s/^\s+//;
|
||||
|
|
|
@ -10,16 +10,6 @@ triggers query_raw => qr/^\s*0x[0-9a-fA-F]+(?:(?:\s+hex)?\s+(?:in|as|to)\s+(?:de
|
|||
zci answer_type => 'hex_to_dec';
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries '0x44696f21';
|
||||
description 'convert hexidecimal to decimal';
|
||||
name 'HexToDec';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/HexToDec.pm';
|
||||
category 'conversions';
|
||||
topics 'math', 'programming';
|
||||
attribution cpan => 'majuscule',
|
||||
github => ['nospampleasemam', 'Dylan Lloyd'],
|
||||
web => ['https://dylansserver.com', 'Dylan Lloyd'] ;
|
||||
|
||||
handle query_raw => sub {
|
||||
return unless (m/0x([0-9a-fA-F]+)/);
|
||||
|
||||
|
|
|
@ -6,18 +6,6 @@ use DDG::Goodie;
|
|||
use Net::IDN::Encode ':all';
|
||||
use utf8;
|
||||
|
||||
primary_example_queries 'idn exämple.com';
|
||||
secondary_example_queries 'idn xn--exmple-cua.com';
|
||||
description 'encode and decode internationalized domain names';
|
||||
name 'IDN';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IDN.pm';
|
||||
topics 'travel';
|
||||
category 'computing_tools';
|
||||
attribution web => ['http://7bits.nl/', 'Peter van Dijk'],
|
||||
email => ['peter@7bits.nl', 'Peter van Dijk'],
|
||||
github => ['https://github.com/habbie', 'habbie'],
|
||||
twitter => ['https://twitter.com/habbie', 'habbie'];
|
||||
|
||||
triggers startend => (
|
||||
'idn',
|
||||
'international domain',
|
||||
|
|
|
@ -7,14 +7,6 @@ use DDG::Goodie;
|
|||
zci is_cached => 1;
|
||||
zci answer_type => "ips";
|
||||
|
||||
primary_example_queries 'EM999999999IN';
|
||||
description 'Track a package from IPS';
|
||||
name 'IPS';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IPS.pm';
|
||||
category 'ids';
|
||||
topics 'special_interest';
|
||||
attribution github => [ 'https://github.com/duckduckgo', 'duckduckgo'];
|
||||
|
||||
triggers query_nowhitespace_nodash => qr/(E[MA]\d{9})(IN|HR|)/xi;
|
||||
|
||||
handle query_nowhitespace_nodash => sub {
|
||||
|
|
|
@ -10,17 +10,6 @@ triggers start => "iso 639", "iso639", "language code";
|
|||
zci answer_type => "iso639";
|
||||
zci is_cached => 1;
|
||||
|
||||
primary_example_queries 'iso639 english';
|
||||
secondary_example_queries 'iso639 ab';
|
||||
description 'lookup ISO639 language names and codes';
|
||||
name 'ISO639';
|
||||
code_url 'https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/ISO639.pm';
|
||||
category 'reference';
|
||||
topics 'programming';
|
||||
attribution github => [ 'http://github.com/tantalor', 'John Tantalo' ],
|
||||
web => [ 'http://johntantalo.com/blog', 'John Tantalo' ];
|
||||
|
||||
|
||||
handle remainder => sub {
|
||||
my ($lang, $code) = langpair(shift) or return;
|
||||
return 'ISO 639: '. $lang .' - '. $code,
|
||||
|
|
|
@ -10,18 +10,6 @@ use Locale::Country;
|
|||
zci answer_type => "independence_day";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "independence day";
|
||||
description "Gives the date of when a nation assumed independence";
|
||||
primary_example_queries "what is the independence day of norway", "independence day, papua new guinea";
|
||||
category "dates";
|
||||
topics "trivia";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IndependenceDay.pm";
|
||||
attribution github => ["jarmokivekas", "Jarmo Kivekäs"],
|
||||
web => ["http://guttula.com", "Jarmo Kivekäs"],
|
||||
github => ["YouriAckx", "Youri Ackx"],
|
||||
twitter => ["YouriAckx", "Youri Ackx"];
|
||||
|
||||
|
||||
# Triggers
|
||||
triggers any => "independence day", "day of independence";
|
||||
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_19kestier";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome 19kestier";
|
||||
description "My first Goodie, it let's the world know that 19kestier is awesome";
|
||||
primary_example_queries "duckduckhack 19kestier";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/19kestier.pm";
|
||||
attribution github => ["https://github.com/19kestier", "19kestier"],
|
||||
twitter => "kestier19";
|
||||
|
||||
triggers start => "duckduckhack 19kestier";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_5ika";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome 5ika";
|
||||
description "Hey world, i'm awesome";
|
||||
primary_example_queries "duckduckhack 5ika";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/5ika.pm";
|
||||
attribution github => ["https://github.com/5ika/", "5ika"],
|
||||
twitter => "05Sika";
|
||||
|
||||
# Triggers
|
||||
triggers start => "duckduckhack 5ika";
|
||||
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_ajdev77";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome AJDev77";
|
||||
description "My first Goodie, it let's the world know that AJDev77 is awesome";
|
||||
primary_example_queries "duckduckhack AJDev77";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/AJDev77.pm";
|
||||
attribution github => ["https://github.com/AJDev77", "AJ"],
|
||||
twitter => "emposoft";
|
||||
|
||||
triggers start => "duckduckhack ajdev77";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_bigx_mac";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome BigxMac";
|
||||
description "My first Goodie, it let's the world know that BigxMac is awesome";
|
||||
primary_example_queries "duckduckhack BigxMac";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/BigxMac.pm";
|
||||
attribution github => ["BigxMac", "Jared S"],
|
||||
twitter => "twitterhandle";
|
||||
|
||||
triggers start => "duckduckhack bigxmac";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_bitflipped";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome Bitflipped";
|
||||
description "Prints nice message";
|
||||
primary_example_queries "duckduckhack bitflipped";
|
||||
secondary_example_queries "optional -- demonstrate any additional triggers";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/Bitflipped.pm";
|
||||
attribution github => ["bitflipped", "Jon A"];
|
||||
|
||||
triggers start => "duckduckhack bitflipped";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_black616angel";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome Black616Angel";
|
||||
description "My first Goodie, it lets the world know that Black616Angel awesome";
|
||||
primary_example_queries "duckduckhack Black616Angel";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/Black616Angel.pm";
|
||||
attribution github => ["https://github.com/Black616Angel", "Black616Angel"],
|
||||
;
|
||||
|
||||
triggers start => "duckduckhack black616angel";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_blito";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome Blito";
|
||||
description "My first Goodie, it let's the world know that Blito is awesome";
|
||||
primary_example_queries "duckduckhack Blito";
|
||||
secondary_example_queries "optional -- demonstrate any additional triggers";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/Blito.pm";
|
||||
attribution github => ["https://github.com/Blito", "Blito"];
|
||||
|
||||
triggers start => "duckduckhack blito";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,16 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_blueprinter";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome Blueprinter";
|
||||
description "My first Goodie, it let's the world know that GitHubUsername is awesome";
|
||||
primary_example_queries "duckduckhack Blueprinter";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/Blueprinter.pm";
|
||||
|
||||
attribution github => ["https://github.com/Blueprinter", "Blueprinter"];
|
||||
|
||||
triggers start => "duckduckhack blueprinter";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,14 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_calavera_the_nine";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome CalaveraTheNine";
|
||||
description "My first Goodie, it let's the world know that CalaveraTheNine is awesome";
|
||||
primary_example_queries "duckduckhack CalaveraTheNine";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/CalaveraTheNine.pm";
|
||||
attribution github => ["https://github.com/CalaveraTheNine", "CalaveraTheNine"];
|
||||
|
||||
triggers start => "duckduckhack calaverathenine";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_dean_t765";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome DeanT765";
|
||||
description "My first Goodie, it let's the world know that DeanT765 is awesome";
|
||||
primary_example_queries "duckduckhack DeanT765";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/DeanT765.pm";
|
||||
attribution github => ["https://github.com/DeanT765", "DeanT765"],
|
||||
twitter => "deanthomasson";
|
||||
|
||||
triggers start => "duckduckhack deant765";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_dronov";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "Mikhail Dronov";
|
||||
description "http://dronov.net";
|
||||
primary_example_queries "duckduckhack dronov";
|
||||
category "programming";
|
||||
topics "geek", "programming";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/Dronov.pm";
|
||||
attribution github => ["https://github.com/dronov", "dronov"],
|
||||
twitter => "dronovmm";
|
||||
|
||||
triggers start => "duckduckhack dronov";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_echosa";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome Echosa";
|
||||
description "My first Goodie. It lets the world know that Echosa is awesome.";
|
||||
primary_example_queries "duckduckhack echosa";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/Echosa.pm";
|
||||
attribution github => ["https://github.com/echosa", "Echosa"],
|
||||
twitter => "echosa";
|
||||
|
||||
triggers start => "duckduckhack echosa";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_john_carlos_reed";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome JohnCarlosReed";
|
||||
description "My first Goodie, it let's the world know that JohnCarlosReed is awesome";
|
||||
primary_example_queries "duckduckhack JohnCarlosReed";
|
||||
category "entertainment";
|
||||
topics "entertainment", "special_interest";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/JohnCarlosReed.pm";
|
||||
attribution github => ["https://github.com/JohnCarlosReed", "John Reed"],
|
||||
twitter => "johnnycarlos";
|
||||
|
||||
triggers start => "duckduckhack johncarlosreed";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_lynbarry";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome Lynbarry";
|
||||
description "My first Goodie, it lets the world know that Lynbarry is awesome.";
|
||||
primary_example_queries "duckduckhack Lynbarry";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/Lynbarry.pm";
|
||||
attribution github => ["https://github.com/Lynbarry", "Lynbarry"],
|
||||
twitter => "quetzco";
|
||||
|
||||
triggers start => "duckduckhack lynbarry";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,14 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_marneus68";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome Marneus68";
|
||||
description "My first Goodie, it let's the world know that GitHubUsername is awesome";
|
||||
primary_example_queries "duckduckhack Marneus68";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/Marneus68.pm";
|
||||
attribution github => ["Marneus68", "Duane Bekaert"];
|
||||
|
||||
triggers start => "duckduckhack marneus68";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_max_power9";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome MaxPower9";
|
||||
description "My first Goodie, it let's the world know that MaxPower9 is awesome";
|
||||
primary_example_queries "duckduckhack MaxPower9";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/MaxPower9.pm";
|
||||
attribution github => ["https://github.com/MaxPower9", "MaxPower9"],
|
||||
twitter => "gtmurff";
|
||||
|
||||
triggers start => "duckduckhack maxpower9";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_nick_calabs";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome NickCalabs";
|
||||
description "My first Goodie, it let's the world know that NickCalabs is awesome";
|
||||
primary_example_queries "duckduckhack nickcalabs";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/NickCalabs.pm";
|
||||
attribution github => ["https://github.com/nickcalabs", "NickCalabs"],
|
||||
twitter => "NickCalabs";
|
||||
|
||||
triggers start => "duckduckhack nickcalabs";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_nicolas_geraud";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome NicolasGeraud";
|
||||
description "My first Goodie, it let's the world know that Nicolas Géraud is awesome";
|
||||
primary_example_queries "duckduckhack NicolasGeraud";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/NicolasGeraud.pm";
|
||||
attribution github => ["https://github.com/NicolasGeraud", "NicolasGeraud"],
|
||||
twitter => "NicolasGeraud";
|
||||
|
||||
triggers start => "duckduckhack nicolasgeraud";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,17 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_pandiyan_cool";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome PandiyanCool";
|
||||
description "To make the world to know about pandiyan cool";
|
||||
primary_example_queries "duckduckhack pandiyancool";
|
||||
|
||||
category "special";
|
||||
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/PandiyanCool.pm";
|
||||
attribution github => ["https://github.com/PandiyanCool", "Pandiyan"],
|
||||
twitter => "pandiyan_rsp";
|
||||
|
||||
triggers start => "duckduckhack pandiyancool";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,14 +7,6 @@ use strict;
|
|||
zci answer_type => "quoidautre";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome Quoidautre";
|
||||
description "My first Goodie, it lets the world know Quoidautre is awesome";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/Quoidautre.pm";
|
||||
attribution github => ["https://github.com/quoidautre", "quoidautre"],
|
||||
twitter => "quoidautre_test";
|
||||
|
||||
triggers start => "duckduckhack quoidautre";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,14 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_sloff";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome Sloff";
|
||||
description "My first goodie";
|
||||
primary_example_queries "duckduckhack sloff";
|
||||
category "special";
|
||||
topics "special_interest";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/Sloff.pm";
|
||||
attribution github => ["https://github.com/Sloff/", "Sloff"];
|
||||
|
||||
# Triggers
|
||||
triggers start => "duckduckhack sloff";
|
||||
|
||||
|
|
|
@ -7,15 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_sue_smith";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome SueSmith";
|
||||
description "My first Goodie, it lets the world know that Sue Smith is awesome";
|
||||
primary_example_queries "duckduckhack SueSmith";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/SueSmith.pm";
|
||||
attribution github => ["https://github.com/SueSmith", "SueSmith"],
|
||||
twitter => "braindeadair";
|
||||
|
||||
triggers start => "duckduckhack suesmith";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,16 +7,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_the_adam_galloway";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome TheAdamGalloway";
|
||||
description "My first Goodie, it lets the world know that TheAdamGalloway is awesome";
|
||||
primary_example_queries "duckduckhack TheAdamGalloway";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/TheAdamGalloway.pm";
|
||||
attribution github => ["https://github.com/TheAdamGalloway", "TheAdamGalloway"],
|
||||
twitter => "TheAdamGalloway",
|
||||
web => ['http://www.adamgalloway.me/'];
|
||||
|
||||
triggers start => "duckduckhack theadamgalloway";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
|
@ -7,21 +7,8 @@ use strict;
|
|||
zci answer_type => "is_awesome_aarohmankad";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome aarohmankad";
|
||||
description "My first goodie, it lets the world know aarohmankad is awesome";
|
||||
primary_example_queries "duckduckhack aarohmankad";
|
||||
|
||||
category "special";
|
||||
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/aarohmankad.pm";
|
||||
attribution github => ["http://www.github.com/aarohmankad", "Aaroh Mankad"],
|
||||
twitter => "aarohmankad";
|
||||
|
||||
|
||||
triggers start => "duckduckhack aarohmankad";
|
||||
|
||||
|
||||
handle remainder => sub {
|
||||
return if $_;
|
||||
return "aarohmankad is awesome and has successfully completed the DuckDuckHack Goodie tutorial!";
|
||||
|
|
|
@ -8,14 +8,6 @@ use strict;
|
|||
zci answer_type => "is_awesome_abrahimladha";
|
||||
zci is_cached => 1;
|
||||
|
||||
name "IsAwesome abrahimladha";
|
||||
description "My first Goodie, it lets the world know that abrahimladha is awesome";
|
||||
primary_example_queries "duckduckhack abrahimladha";
|
||||
category "special";
|
||||
topics "special_interest", "geek";
|
||||
code_url "https://github.com/duckduckgo/zeroclickinfo-goodies/blob/master/lib/DDG/Goodie/IsAwesome/abrahimladha.pm";
|
||||
attribution github => ["https://github.com/abrahimladha", "abrahimladha"];
|
||||
|
||||
triggers start => "duckduckhack abrahimladha";
|
||||
|
||||
handle remainder => sub {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue