Jump to content

biati

Member
  • Posts

    53
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by biati

  1. 2 hours ago, vitor said:

    This looks fantastic, and hijacking the numbers is a clever hack (though not sure how I feel about that, I might replace those with a single Script Filter with a proper keyword).


    I’ve found some bugs.


    You’re not creating alfred_workflow_data. You need to, as Alfred doesn’t do it for you. Without it, users will get an error.

     

    I was expecting natural language processing to understand in, as in 100km in m or 100usd in eur.


    On the currency converter:

    • Two decimal places isn’t enough precision for correct calculations. 1JPY = 0.00EUR isn’t too useful, even if approximately true (it’s 0.0083), but the real issue is that same rounding is used for the random calculations, which means the Workflow claims 10000000jpy is 0.00eur, which is 83060eur off the mark.
    • calculate set currency changes the flag icon and does the correct calculations, but it doesn’t change the currency symbol (it always shows as $).
    • Setting the currency to eur and searching for any value in eur (e.g. 100eur)  causes an error: Symbols 'EUR' are invalid for date 2019-11-13. I tried other currencies and couldn’t reproduce the bug.

     


    Good work otherwise, I’m interested in using the fixed Workflow.


    How often does it fetch currency data?

     

    Hi vitor, thank you for your input.

     

    I'm searching information about alfred_workflow_data but not sure exactly what you mean, are you referring to the folder stored in ~/Library/Application Support/Alfred/Workflow Data/com.alfred.calculateanything ? if so I've added some validation to make sure it exists and if not then it's created. If this is not what you mean please let me know.

     

    1.- I've adde "in" to the stop words list so now 100km in m works as expected as any other query like 100 usd in eur.

    2.- You are right about the decimals, I'm working on that.

    3.- Already fixed the calculate set currency symbol

    4.- mmm making some tests on this.

     

    Once fetched, the currency is cached for 6 hours and the data is from fixer.io, this is the first time I work with currencies so not sure if 6 hours is a correct amount of time. The data will be fetched again only if a currency conversion is triggered.

  2. calculate-anything-af.jpg

     

    Calculate Anything is a workflow for Alfred 4, that uses natural language and is able to calculate multiple things like currency, time, vat, px, em, rem, percentage, and more.

     

    Why?
     

    There are several conversion workflows out there but I wanted a workflow that worked naturally. For example, you can open Alfred, type `100 + 9` and get a result. No need for keywords or hotkeys -- it just works. With Calculate Anything you can do the same, simply type `100 + 16%`, `100 euros to usd`, `100km to cm` or `100 years to hours` and many more.

     

    Features


    - Natural language - type 100 euros to dollars, 100 euros in usd, 100€ to $, 100eur usd, 100 euros a dolares -- it does not matter, the same result will be displayed It includes support for English, Spanish and Swedish
    - Currency - Up to 168 currencies

    - Cryptocurrency - Support for up to 5,000 cryptocurrencies
    - Units - 100 kilometers to meters or 100 km to m or simply 100km m

    - Data Storage - 100 gigabytes in megabytes, 2 gb to mb, 400MiB to kib, 2tb gb, etc.
    - Percentages - 100 + 16%, 100 - 16%, 40 as a % of 50, 20 is what % of 50, etc.

    PX,Em,Rem,Pt - 12px or 12px to em or 12px pt
    - Time - time +15 years, time now plus 6 hours or convert a timestamp
    - VAT - value added tax calculations, we all need this
    - Translations You can create your own translations to display results in your language
    - Keywords Extend the natural language in the queries so you can type 100 dolares a pesos and the code will see 100usd to mxn

     

    Important

    You will always find the latest version, changelog and updated documentation on Github as is difficult to use the forum to keep track of updates and support. 

     

    Requirements for Mac OS Monterey Users and up

    Starting from Mac OS Monterey Apple removed PHP so you have to install it manually, that can easily be done with Homebrew, just open your terminal and paste the commands below:

     

    1.- Install Homebrew

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

     

    2.- Install PHP

    brew install php

     

    That's it, you need to have the latest version of Alfred and will automatically find the PHP version that you install.

     

    Mac OS Big Sur users and below do not need to do anything, your Mac OS already includes PHP.

     

    Download


    Download directly from Github releases page, make sure to download the latest release. Download here

     

    Configuration


    You can configure the workflow using the new Alfred 5 Workflow Configuration window.

     

    Currency

     

    You can use natural language or a few characters -- that's all! For example:

     

    • 100 us dollars in mexican pesos
    • 100 canadian dollars in argentinian peso
    • 100 euros to dollars
    • 100 euros in dollars
    • 100 euros as dollars
    • 100 euros a dolares (you can also write it in your own language)
    • 100 usd to mxn
    • 100 usd mxn
    • 100usd yen
    • 100€ to $
    • 100 ¥ in €
    • 100¥ €
    • 100eur (if no target the currency will be converted to the base currencies that you configured)

     

    You can set a base currencies so if you type for example 120 euros it will be automatically converted to the currencies that you configured.

    All these examples just work. You can add spaces between the value and the currency or not.

     

    currency-v3.gif

     

    Currency Modifiers
     

    When a result is displayed you can use action modifiers to copy the value in different formats:

     

    • Return - Press Return to copy the value with format, for example 2,376.54
    • Command + Return - Press Command + Return to copy the value without formatting, for example 2376.54
    • Option + Return - Press Option + Return to copy the value of a single unit, for example 23.76

     

    Currency API Key (Not required)

     

    By default the workflow will use exchangeratehost api to make the conversion. exchangeratehost only support 32 currencies; if you need support for additional currencies supported by Calculate Anything, you need to get a FREE API Key from https://fixer.io -- it takes less than a minute. Then simply add the API Key in the workflow configuration window.

     

    Currency Symbols

     

    You can also use currency symbols in your query for example 100¥ to € will be converted to 100JPY to EUR, here is a list of available symbols.

     

    Please go to the repo description on Github for a full list of supported symbols it's really difficult to write them here in the forum. View Currency Symbols

     

    Cryptocurrency

    Calculate Anything can convert between 5,000 cryptocurrencies and 168 currencies. Again, you can use natural language or simply pass the currency symbol.

     

    • 2 bitcoin to dollars
    • 0.1 bitcoin in dollars
    • 5 bitcoins in ethereum
    • 1 ethereum to ¥
    • 10 ethereum in mxn
    • 1eth btc
    • 1btc (If no target the currency will be converted to the base currency that you configured)

     

    crypto-v3.gif

     

    Cryptocurrency Modifiers

    When a result is displayed you can use action modifiers to copy the value in different formats:

     

    • Return - Press Return to copy the value with format, for example 2,376.54
    • Command + Return - Press Command + Return to copy the value without formatting, for example 2376.54
    • Option + Return - Press Option + Return to copy the value of a single unit, for example 23.76

     

    Cryptocurrency API Key

    You need to get a FREE API Key from https://coinmarketcap.com/api/pricing/ it takes less than a minute. Then simply add the API Key in the workflow configuration window.

     

    Units

     

    You can write your query using natural language or just a few characters. Either way works!

     

    • 100 kilometers to meters
    • 100 km in meters
    • 100 km m
    • 100km m
    • 100 miles as meters
    • 100miles in meters
    • 100 miles to m
    • 100 ounces to kilograms
    • 100oz to kg
    • 100oz = kg
    • 100oz kg
    • 10 years to months
    • 10years to seconds
    • 1 year to sec
    • 1hr s
    • 10 días a horas (use your own language)

     

    If you don't remember the unit abbreviation just simply type the name for example instead of "oz" you can type "ounce" or "ounces" or even use words in your own language for exaple "onza" or "onzas" in spanish.

     

    units-v3.gif

     

    Please go to the repo description on Github for a full list of units it's really difficult to write them here in the forum. View Units

     

    Units Modifiers

    When a result is displayed you can use action modifiers to copy the value in different formats:

     

    • Return - Press Return to copy the value with format, for example 2,376.54
    • Command + Return - Press Command + Return to copy the value without formatting, for example 2376.54
    • Option + Return - Press Option + Return to copy the value of a single unit, for example 23.76

     

     

    Data Storage

    You can write your query using natural language or just a few characters. Either way works!

     

    • 100 gigabytes in megabytes
    • 100 gigas in megas
    • 100 Mebibytes in Kibibytes
    • 100 gb to mb
    • 100gb to kb
    • 100gb mb
    • 400MiB in kib
    • 2tb gb
    • 1b kb

     

    datastorage-v3.gif

    Please note, this workflow follows the IEC Standard (International Electrotechnical Commission) as it had been adopted by the IEEE, EU, and NIST. That means that if you type `1MB in KB` you will get `1000 KB` but if you type `1MiB in KiB` you will get `1024 KB`, you can read more about it here https://en.wikipedia.org/wiki/Byte#Multiple-byte_units

     

    Do you prefer 1 MB = 1024 KB? No problem, you can configure it in the Workflow configuration window.

     

    Data Storage Modifiers

    When a result is displayed you can use action modifiers to copy the value in different formats:

     

    • Return - Press Return to copy the value with format, for example 2,376.54
    • Command + Return - Press Command + Return to copy the value without formatting, for example 2376.54

     

    Percentages

     

    You can easily calculate percentages for example:

     

    • 15% of 50 = 7.50  //7.5 equals to 15% of 50
    • 120 + 30% = 156  //120 plus the 30% of 120
    • 120 plus 30% = 156  //120 plus the 30% of 120
    • 120 - 30% = 84  //120 minus the 30% of 120
    • 120 minus 30% = 84  //120 minus the 30% of 120
    • 30 % 40 = 75%  // 30 is 75% of 40.

     

    Translations and natural language can also be used

    • 120 más 30% = 156

     

    percentages-v3.gif

    PX, EM, REM, PT

    Open Alfred, type `12px` and you'll see the value converted to em, rem and pt. It's that simple. Check the examples below.

     

    • 12px
    • 12px to em
    • 2 rem
    • 2rem
    • 2rem to pt
    • 12px in em base 17px (use a custom px base or configure it in the workflow)

     

     

    Time

     

    Given its less frequently used, time conversions require the use of the keyword time

     

    Gives you the current time

    • time

     

    Converts the timestamp to a regular date

    • time 1577836800

     

    Gives you the time from now plus anything you want

    • time +15 days
    • time now plus 3 days

     

    Number of days until specified date

    • time days until 31 december

     

    The start date of current year

    • time start of year

     

    The start date of specified year

    • time start of 2021

     

    The end date of current year

    • time end of year

     

    The end date of specified year

    • time end of 2021

     

    It also works in your language

    • time inicio de 2020
    • time fin de 2020
    • time dias hasta 31 diciembre

     

    Get information about date

    • time 31 December, 2021 18:00:00
    • time 31/12/2021 18:00:00
    • time 12/31/2021 18:00:00

     

    Calculate the difference between two dates

    • time 25 December, 2021 - 31 December, 2021
    • time 31-11-2019 - 21-11-2019
    • time 11/31/2019 - 11/21/2019

     

    time-v3.gif

     

    VAT (value added tax)

     

    With this you can calculate the VAT for a given amount. Like time, VAT is also triggered with a keyword. By default, the keyword is "vat" but you can change the keyword in the workflow.

     

    Given the following query

    vat of 400 (with a 16% VAT configured, a percentage you can configure)

     

    Calculate Anything will provide the following conversions:

     

    • VAT of 400 = 64 (the VAT amount)
    • 400 plus VAT = 464 (the Amount plus VAT)
    • 400 minus VAT = 344.82 (the Amount minus VAT, useful if you have a final amount and want to know the VAT applied)

     

     

    Cache

     

    The workflow stores some data about currency in the workflow data folder. You can delete the cache by opening Alfred and typing `_caclear`.

×
×
  • Create New...