summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--searx/plugins/calculator.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/searx/plugins/calculator.py b/searx/plugins/calculator.py
index 5adaaaf22..428f734c1 100644
--- a/searx/plugins/calculator.py
+++ b/searx/plugins/calculator.py
@@ -71,6 +71,22 @@ class SXNGPlugin(Plugin):
# replace commonly used math operators with their proper Python operator
query = query.replace("x", "*").replace(":", "/")
+ # Is this a term that can be calculated?
+ word, constants = "", set()
+ for x in query:
+ # Alphabetic characters are defined as "Letters" in the Unicode
+ # character database and are the constants in an equation.
+ if x.isalpha():
+ word += x.strip()
+ elif word:
+ constants.add(word)
+ word = ""
+
+ # In the term of an arithmetic operation there should be no other
+ # alphabetic characters besides the constants
+ if constants - set(math_constants):
+ return results
+
# use UI language
ui_locale = babel.Locale.parse(request.preferences.get_value("locale"), sep="-")