Commit Graph

3311 Commits (9005c0c1fdeb7ba4c9a4d45e47f09daea412dcfe)

Author SHA1 Message Date
Manraj Singh 9005c0c1fd UrlEscapeCodes: New Url Escape Codes Table Goodie (#4088)
* UrlEscapeCodes: Goodie initialzied

* UrlEscapeCodes: Front end created

* UrlEscapeCodes: Adds tests
2017-04-13 16:06:15 -04:00
PJ Hampton 0abd6a6554 Calculator: [Phase 2] Add Scientific calculator (#4067)
* Phase 1: Add basic calculator

* Updated tests.

* change template name, use base template, prefill calc with answer

* fix test

* Added backlog features.

* Updated js.

* Light refactoring work

* Refactored keycodes.

* Updated C button.

* Rewrote (+/-)% Expressions

* Updated the spacing dertermination

* Added expression to UI by default.

* Update tests.

* Updated formatting.

* Rewrite percent queries.

* Pushing updated codebase.

* Add calculator as trigger word

* Update tests for new triggers

* Stop initializing expression if 0

* add precision support to math eval object.

* Removed scientific buttons / history for Phase 1

* Updated math type.

* Prevents duplicate OPERADNS

* Add duplicate functionality.

* Updated unicode.

* Removed es6 feature.

* Stop first entry being an operand.

* Add operator flipping.

* Added Precision support.

* Handle numpad operator keys

* Set and maintain focus, Improved event handling

* Bind click handler in loop, stopPropgation of keydown

* Cleanup trailing spaces

* Fixed broken assignment.

* Prevent multiple commas.

* Fixed calculator stalling when trying to enter a new operator

* Initial refactor.

* Refactored out expression array.

* Refactored out display var.

* reintroduced matheval object for precision.

* Cleaned up formatting.

* Removed commify.

* Initial PR for Phase 2

* Add support for brackets.

* Added support for Pi

* Add support for sin, tan, cos

* Added factorial support

* Add support for squared / cubed functions

* Add support for natural log

* Support log_10 function.

* Add support for square roots.

* Add eulers number.

* Implement Engineers Exponent / Formatted Funcs.

* Add sci-tab id to handlebars.

* Removed positioning for mobile display.

* Custom exponents 🚀

* Implemented Euler exponent

* Support 1/x button.

* Interactified deg/rad toggle.

* Add support for degrees / radians

* Fix radians bug.

* Zaahirs / Mintsofts syntactic changes.

* Fixed regex for exponents

* Removed blue from toggle.

* Allow backspacing through functions.

* Allow backspacing through exponents.

* Fix +99% bug.

* Allow flipping of keypads.

* Stop ! being entered first.

* Stop EE being entered at start or multiple.

* Allow step back through EE

* Disallow multiple periods. [skip ci]

* Rewrote query to handle natural language.

* Addressed phase 1 feedback.

* Fixed backspace bug.

* Allow backspacing through constants.

* Add auto paren support for funcs.

* Started the commenting 💥

* Add some comments.

* Updated PercentNormalizer comment.

* Fix 0/0 Error.

* Add 'c' key support

* Fix back spacing.

* Positioned deg / rad toggle.

* Refactoring code. Stage 1.

* Added high signal.

* Add funcs for Initite/NaN

* Moved eval info into separate function.

* Abstracted clear function.

* Add paren manager.

* Refactored out paren state.

* Refactored out parenState global

* Removed meta.

* Backspace through functions.

* Set signal to high.

* Fixed signal

* Pushing updated code.

* Refactored backspacing.

* Fix up messy code / document.

* Fixed + percent bug.

* Support EE on mobile.

* opens pseudo paren for 1/(x)

* Fix large factorial issue.

* Allow pi | e as exponent.

* use exponents on π and e.

* Removed +-3 issue.

* Natural log and log now work as exponents

* nit: cleaned up expression.

* Fixed percent error.

* Add phase 3 ledger span (hidden)

* Disabled add digits.

* Check in UX fixes.

* Some light refactoring.

* Swap functions.

* Fixed shoddy regex.

* Add ledger object for phase 3.

* Updated percentage / trig regex

* Add blank expression if error.

* Allow factorial on decimals.

* Update code + comments.

* Add in calc trigger word. Fixed Backspace.

* All backspacing fixed.

* Try to recover from open/unfinished exponent

* Add high signal for

* Update comments.

* Updated comments.

* improve calculator regex

* Strip trailing spaces`

* Updated signal code.

* Fixed backspacing issue.

* swap id for class (ParenManger)

* Remove console logs.

* Update comment.

* Fix bug in regex replacement.

* Calculator: [Phase 3] Add History / Calc reloading (#4081)

* Set up UI.

* Phase 3 implemented.

* Remove array. Replace with handlebars.

* strip commas by default.

* Fixed html interpolation

* Add g flag to replacement regex

* Strip trailing spaces

* remove unneeded option from perl

* Added comments to backspace.

* Removed ledger properties. Updated using state.

* Addressed Zaahir's p2 feedback
2017-04-12 15:31:12 -04:00
Robert Badea a67bc00ef7 HTML Entities: New HTML Entities Goodie (#4056)
* added html entities goodie

* fixed trigger

* added tests

* fixed review issues

fixed CSS classes, fixed file names, switched from JSON to YML

* fixed tests and file loading

* renamed to camel case

* deleted AsciiTable.pm

* changed to camel case

* Remove extra newlines

* Fix indentation for Beta server

* Use chompContent

* Simplify CSS

* Remove scrolling div

* Fix test

* Switch overflow control to .c-base__content div
2017-04-11 17:41:17 -04:00
Manraj Singh d1e5d9c6f5 ASCII Code: New ASCII Codes Table Goodie (#4042)
* Add: Initialized ASCII Table Goodie

* Update: Fixed content options

* Update: Title added to td tags

* Update: CSS for tables

* Fix: Makes titles more verbose in template

* Update: Tests for Ascii Table added

* AsciiTable: Fix variable name to be more generic

* AsciiTable: Improved testing of IA

* AsciiTable: Chomp the table

* AsciiTable: Add meta source

* AsciiTable: Rename table_rows -> table

* AsciiTable: Use already existing CSS

* AsciiTable: Data now contains Headers

* AsciiTable: Makes template more generic

* AsciiTable: Updated tests for checking table headers

* AsciiTable: Fix required table styling

* AsciiTable: Fix tests

* Use CSS to set chomp height

* Remove table scroll div

* Switch to List template

* Update AsciiTable.t
2017-04-11 15:30:14 -04:00
Rob Emery 264282b374 DateRole: Handling 'of' in textual date formats (#3982)
* DateRole: Adding failing test for `$nth of $month $year`

* DateRole: Now parses "7th of march 2017"

* DateRole: Adding failing test for '5 of jan 1993' (no suffix and short month)

* DateRole: Handles 5 of march

* DateRole: Now also handle "march the 30th, 2017"
2017-04-10 23:02:06 -04:00
lernae 011c78e854 Dice: Fixes #3989 Set upper limit on max dice rolls and number of sides per dice (#4078)
* Dice: Fixes #3989 Set upper limit on max dice rolls and number of sides per dice

* Minor correction on naming of constant: MAX_NUM_OF_DICE
2017-04-10 12:08:59 -04:00
Rob Emery 394cf054f3 Conversions: kB and kb (and so on) restored! (#4077)
* Conversions: Unphysical units like millibits (mb) and millibytes(mB) should be assumed as mega instead

* Conversions: Now has multiple symbols (case sensitive matches) meaning that Kb and kb both mean kilobits and KB and kB both mean kilobytes :D
2017-04-10 12:01:50 -04:00
Zaahir Moolla 44278eb98c Add dash to regex accepted characters (#4070) 2017-04-10 10:56:01 -04:00
Zaahir Moolla 71f31f7767 Revert "Remove failing test for Repo release"
This reverts commit f5c4f686f5.
2017-04-07 20:45:28 -04:00
TheSpeedyBlur f3b315dbe2 Timer: Fixing trigger (#4064)
* Added variable for non-stribbable triggers.

* Added unstripped triggers to the trigger list

* Added tests to Timer in correspondence of the new triggers

* Removed unnecessary test, added trigger words of hrs and secs and their counterparts.

* Typo fix
2017-04-07 16:28:58 -04:00
Zaahir Moolla f5c4f686f5 Remove failing test for Repo release
/cc @mintsoft -- please fix
2017-04-06 16:58:53 -04:00
Zaahir Moolla 5ac215611b remove bad test 2017-04-06 16:51:31 -04:00
PJ Hampton dc12d569c6 Calculator: [Phase 1] Add basic calculator (#4051)
* Phase 1: Add basic calculator

* Updated tests.

* change template name, use base template, prefill calc with answer

* fix test

* Added backlog features.

* Updated js.

* Light refactoring work

* Refactored keycodes.

* Updated C button.

* Rewrote (+/-)% Expressions

* Updated the spacing dertermination

* Added expression to UI by default.

* Update tests.

* Updated formatting.

* Rewrite percent queries.

* Pushing updated codebase.

* Add calculator as trigger word

* Update tests for new triggers

* Stop initializing expression if 0

* add precision support to math eval object.

* Removed scientific buttons / history for Phase 1

* Updated math type.

* Prevents duplicate OPERADNS

* Add duplicate functionality.

* Updated unicode.

* Removed es6 feature.

* Stop first entry being an operand.

* Add operator flipping.

* Added Precision support.

* Handle numpad operator keys

* Set and maintain focus, Improved event handling

* Bind click handler in loop, stopPropgation of keydown

* Cleanup trailing spaces

* Fixed broken assignment.

* Prevent multiple commas.

* Fixed calculator stalling when trying to enter a new operator

* Initial refactor.

* Refactored out expression array.

* Refactored out display var.

* reintroduced matheval object for precision.

* Cleaned up formatting.

* Removed commify.

* Removed positioning for mobile display.

* Don't set focus on Calc automatically when displayed

* Add touchstart support.

* Prevent zooming.

* ensure button text is not selectable

* Add right borders to calc, ensure same border colour

* Cleanup code style

* Only apply hover state css to desktop
2017-04-06 16:40:56 -04:00
Sophie Durrant f02048c71f Chars: Reduce overtriggering (#4033)
* FIX FOR ISSUE #4028

-> Set triggers to only apply to start of search string so the IA isn't triggered for
    programming-related searches

-> Removed triggers 'characters count', 'length of string' and 'chars'
    as they are unintuitive and can clash with programming requests

-> Added 'of' as a leading word to be removed so queries such as 'length in chars of foo'
    count only the characters in 'foo'

-> Updated test script to reflect these changes

* Fix #4028 - reduce overtriggering of 'Chars' goodie

-> Set triggers to only apply to start of search string so the IA isn't triggered for
    programming-related searches

-> Removed triggers 'characters count', 'length of string' and 'chars'
    as they are unintuitive and can clash with programming requests

-> Added 'of' as a leading word to be removed so queries such as 'length in chars of foo'
    count only the characters in 'foo'

-> Updated test script to reflect these changes
2017-04-05 22:49:26 -04:00
Rob Emery b6e1bd858e Conversions: Case sensitive Units/Symbol handling (#4021)
* NumbersRole: Despite the role being case insensitive, the number_style_regex isn't! Adding failing test

* NumbersRole: Fixing indentation

* Conversions: Adding tests around implicit case insensitivity in current implementation

* Conversions: Moved all case insensitive behaviour into the handle query so it's explicit rather than relying on query_lc to do the work for us

* Conversions: Adding symbol definitions for case sensitive handling

* Conversions: Fixing markup

* Conversions: UTF8 with BOM on ratios and adding symbol as a trigger

* Conversions: Symbol is now used (case sensitive) to match for factors

* Conversions: The test 'BTU to KwH' should fail (this isn't a unit), however it was causing a division by zero as get_matches wasn't finding a match and this condition wasn't handled correctly

* Conversions: Typo! KwH shouldn't trigger

* Conversions: Tests involving symbols now need to be correct according to SI

* Conversions: Tests around "oz" that should be interpreted as fl oz if the answer should unambiguously be a volume

* Conversions: Will handle ambiguity around oz for more units

* Conversions: Uncommenting tests around digital storage units and fixing them so they're actually correct
2017-04-05 18:39:19 -04:00
Zaahir Moolla 691062a3b0 Remove Parcelforce Goodie. Migrate to Spice (#4071) 2017-04-04 21:07:55 +01:00
Zaahir Moolla 3d6a370f3a Remove USPS from repo (#4055) 2017-04-04 16:25:32 +01:00
Zaahir Moolla d681ab0ed4 Remove Fedex from Repo (#4053) 2017-04-04 15:35:03 +01:00
Zaahir Moolla 7ca75b5f4d Remove UPS from repo (#4054) 2017-04-04 15:34:27 +01:00
Ed Callaghan dc159e5fd7 PercentOf: Include terminating equal sign in trigger (#4062)
* allow terminating equal-sign + tests

* fixed new mult test

* typo in test result
2017-04-03 11:20:14 -04:00
Zaahir Moolla b274ff293d Add goodieVersion to test (#4032) 2017-03-23 15:12:32 -04:00
Zaahir Moolla 93f6ad141b rename timer_goodie to timer (#4030) 2017-03-23 14:32:56 -04:00
Ben Moon de98ce988b Port Timer to Goodies (#2253)
* Add Timer files

* Rename Spice -> Goodie

* Move structured answer into Perl

* Update display

Now working.

I removed the 'isMobile' flag, as 'DDG.device.isMobile' was causing it
to crash, and the mobile display wasn't pretty anyway ("Add Timer" was
wrapping). Instead it will use '+' for both.

* Move time parsing into Perl

This way we can check that parsed values are correct in the tests
easily; it also gives us something sensible to return (the start time in
seconds).

* Fix issue with queries like '5s'

* Fix alarm not being located correctly

It was pointing at 'share/spice'.

* Re-enable mobile text

Fixed the issue with mobile display.

* Integrate changes from Spice #3134

Adds the changes from duckduckgo/zeroclickinfo-spice#3134.

* Integrate changes from Spice #2656

Adds the changes from duckduckgo/zeroclickinfo-spice#2656

* Update ID to 'timer_goodie'

* Ensure time from query is used as default
2017-03-23 12:51:39 -04:00
Rob Emery 3ae96df2f8 NumbersRole: Isn't correctly case-insensitive currently (#4000)
* NumbersRole: No tests covering exponentials

* NumbersRole: Improving test coverage

* NumbersRole: Despite the role being case insensitive, the number_style_regex isn't! Adding failing test

* NumbersRole: number_style_regex now case insensitive

* NumbersRole: Fixing indentation
2017-03-16 13:32:24 -04:00
adv16 6741796f7c Fixed wrong triggering for base conversion IA (#4010) 2017-03-13 10:46:20 -04:00
Rob Emery 874850ea66 Conversions: Improving triggering for degrees [cf] (#3993)
* Conversions: Handling `convert 65 degrees c to f`

* Conversions: Improving test coverage around degrees
2017-03-09 12:38:57 -05:00
Rob Emery 95c8c84dac Conversions: Improving result aesthetics (#3988)
* Conversions: User feedback has indicated a preference for 3 sig figs for small(ish) results: #3984

* Conversions: Introducing the ability to have significant figures rather than decimal places for numbers <1

* Conversions: The reality is users want to see decimal places for 'normal numbers' (1,765.432 for example) but sig figs for something around 1 so that fractions can be expressed (0.0625 for example)

* Conversions: Bringing tests inline with 3 SF for results < 1; this is more aesthetically pleasing in my opinion
2017-03-08 15:30:22 -05:00
Jag Talon 997a4331b3 TimezoneConverter: Remove moreAt so that there's no extra space at the bottom of the IA (#3525)
* Remove moreAt so that there's no extra space at the bottom of the IA

* Update tests
2017-03-07 21:59:31 +00:00
Shady Tantawy 1d0c2f2290 [+] Added test examples (#3987) 2017-03-07 21:44:59 +00:00
Rob Emery 63e02972da ParcelForce: Should not trigger for non-UK parcels (#3907)
* ParcelForce: Should not trigger for non-UK parcels

* ParcelForce: Starting with KB clashes with Microsoft KB Articles; AFAIK this isn't a valid parcelforce tracking number anyway

* ParcelForce: Working around #3986
2017-03-07 21:21:34 +00:00
Rob Emery 308e0675f9 Conversions: Increase significant figures in Scientific Notation (#3917)
* Conversions: The precision (i.e. number of digits after a .) and the significant digits displayed in scientific notation were the same value; there are a few issues with people requesting more accuracy in scientific notation, and none for accuracy

* Conversions: Increasing accuracy of values in tests in-line with new significant figures output

* Conversions: Adding lightyear and lightyears as accepted variants of "light year"
2017-03-07 20:19:36 +00:00
Rob Emery 0cffa6161e POTUS: Triggering is way too keen (#3938)
* POTUS: Adding failing test for overtrigger

* POTUS: the previous || $prez_count meant that it defaulted to the current president if it didn't recognise the number; hence why it was showing so many false positives

* POTUS: Now with stricter handling on the $num we can trust the validation later on to keep us safe from overtriggering

* POTUS: basic queries that really should work!

* POTUS: Switching to using a guard regex to match things rather than using replacements

* POTUS: Guard regex now protects the query space. and "was" is used to imply the previous president (currently obama)

* POTUS: switched to query_lc and implementing both a guard regex and a replacement for the triggers so that the code below behaves as if it is remainder =>, except that this doesn't erroneously replace "president-elect of the us" with ""

* POTUS: We don't need $rem
2017-03-06 23:39:09 -05:00
Nalin Bhardwaj 9ea5a7b0a3 Fixed last test to prevent build warning 2017-02-22 14:37:24 +00:00
Gautam krishna.R 50798f2506 added tests 2017-02-09 17:47:13 +05:30
Zaahir Moolla 5f7329fc67 Calculator: Switch to canonical structured answer (#3916)
* Switch Calculator to canoncial structured answer

* Add Goodie Template
2017-02-06 16:06:33 -05:00
Brett Stime eb380de459 Attempts fix test again 2017-02-02 17:08:24 -06:00
Brett Stime 7bbf1f41c8 Attempts fix again 2017-02-02 17:03:21 -06:00
Brett Stime cbeb0a8beb Attempts to fix test after formatting change 2017-02-02 16:35:25 -06:00
Zaahir Moolla 0ad6eba28a Calculator: Prevent anything but allowed ops in the query (#3903)
* prevent anything but allowed ops in the query
no negative nums

* Uncomment neg catch and move after garbage is removed

* Add more tests

* The hex check can be simplified since the trigger isn't allowing most of it
Allow expressions like 1e9 to pass

* Allow = in query
decimal/negatives with e

* Remove debug

* add test for 1e9 query
2017-01-30 17:46:21 -05:00
Daniel Davis 7396b3ac15 DuckDuckGo Goodie: Fixed link to blog (#3897) 2017-01-28 15:31:05 -05:00
Zaahir Moolla 3309758c1d Calculator: More fixes -- Trigger regex contained a bug (#3898)
* Restrict some other stuff

* Don't require digit

* Restrict multiple ops to two or less

* reject empty parens/multiple ops

* No @, or $ not followed by a number or .

* combine char class

* add more negative tests

* Add ops back, case-insensitive subs, require two ops again

* Case-insensitive on multiple ops too

* Allow leading negatives

* Move the leading neg sub

* Better regex for hex input

* update tests
2017-01-28 14:07:00 -05:00
Zaahir Moolla 9322e7b34c Calculator: Improve triggering and execution (#3894)
* Update trigger
Use Safe for evaluation with the minimum functions
Removed unnecessary capturing, redundant function calls

* Add some tests

* Remove eval since we don't allow die
Add comment about debugging failed reval

* Add rv2gv from :base_orig to allow compat with Safe 2.35
Remove prtf since that was in :base_orig which was removed

* Remove unneeded opsets

* Silence all of reval's warnings

* Add STRICT
2017-01-26 10:45:49 -05:00
Rob Emery d05d64dfe7 Conversions: Adding support for n'm" format (#3891)
* Conversions: Failing test for n'm" format

* Conversions: Adding a totally specific workaround for 3 feet 5 inches or 6'1" queries

* Conversions: Accuracy correct relative to output

* Conversions: Improving test coverage around whitespace

* Conversions: Removing duplication

* Conversions: Handling foot and inch

* Conversions: Adding tests for feet and inches into another unit and failing test for the UK common "n foot m", commonly used for height

* Conversions: Implemeting the UK common 6 foot 1 query support
2017-01-26 09:42:27 -05:00
Gautam krishna.R ac73384d0c Merge pull request #3869 from duckduckgo/mattr/chronometer
Stopwatch: add "chronometer" trigger
2017-01-26 19:22:25 +05:30
Zaahir Moolla a8d92e3cb5 Revert "ignore reval's warnings" (#3893) 2017-01-25 18:19:31 -05:00
Zach Thompson 369c894439 ignore reval's warnings (#3892)
* Update trigger
Use Safe for evaluation with the minimum functions
Removed unnecessary capturing, redundant function calls

* Add some tests

* Remove eval since we don't allow die
Add comment about debugging failed reval

* Add rv2gv from :base_orig to allow compat with Safe 2.35
Remove prtf since that was in :base_orig which was removed

* Remove unneeded opsets

* Silence all of reval's warnings
2017-01-25 17:35:25 -05:00
Zaahir Moolla 840cdc99a1 Revert "calculator: trigger/safe" (#3890) 2017-01-25 15:00:10 -05:00
Brian Stoner cbe5785a11 Merge pull request #3885 from nalinbhardwaj/conversions
Conversions: Added length units and fixed pressure units
2017-01-25 14:35:23 -05:00
Nalin Bhardwaj 0baa2851c4 Added tests 2017-01-25 16:07:24 +00:00
Nalin Bhardwaj b0cc4c5ec7 Added nanometers, fixed others 2017-01-25 15:50:29 +00:00