diff --git a/packages/form-list/0.2.0/README.md b/packages/form-list/0.2.0/README.md new file mode 100644 index 0000000..a56c8fa --- /dev/null +++ b/packages/form-list/0.2.0/README.md @@ -0,0 +1,19 @@ +# Form list +## A package for getting a list of expansions from one form via a CSV list. + +# Setup +The `package.yml` does not need to be edited. + +You will need to edit the entries in the `form_urls.csv`. The sample lines are a good starting point. The basic syntax is: + +| Name/description (without quotes) | URL | +| --- | --- | +| gmail | https://gmail.com/ | + +**Separate the two fields with a comma.** Remember to save the file! Ensure you retain its UTF-8 encoding - spreadsheet programs may switch to UTF-8-BOM. + +## Reuse + +You can of course also copy the contents of this package and create multiple form lists with other text. 👍 If you do so, you will need to edit the global variable for the location of the csv file. + +Requires Python, but if present should work in all operating systems. \ No newline at end of file diff --git a/packages/form-list/0.2.0/_manifest.yml b/packages/form-list/0.2.0/_manifest.yml new file mode 100644 index 0000000..a60a326 --- /dev/null +++ b/packages/form-list/0.2.0/_manifest.yml @@ -0,0 +1,7 @@ +name: "form-list" +title: "Form URLs List" +description: Uses a CSV to present a list of links and then pastes the chosen URL. +version: 0.2.0 +author: Ben Alexander (mistahBen), updated by Stephen Meech (smeech) +tags: ["utility", "internet", "URL", "CSV", "forms"] +homepage: https://github.com/smeech diff --git a/packages/form-list/0.2.0/form_urls.csv b/packages/form-list/0.2.0/form_urls.csv new file mode 100644 index 0000000..82b3a03 --- /dev/null +++ b/packages/form-list/0.2.0/form_urls.csv @@ -0,0 +1,2 @@ +Espanso documentation, https://espanso.org/docs/ +DuckDuckGo, https://duckduckgo.com \ No newline at end of file diff --git a/packages/form-list/0.2.0/package.yml b/packages/form-list/0.2.0/package.yml new file mode 100644 index 0000000..4a7525b --- /dev/null +++ b/packages/form-list/0.2.0/package.yml @@ -0,0 +1,54 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/espanso/espanso/dev/schemas/match.schema.json + +global_vars: + # OS-agnostic derivation of path to CSV file. + - name: urlcsv + type: script + params: + args: + - python + - -c + - | + import os + config_path = os.getenv("CONFIG") + print(os.path.join(config_path, "match", "packages", "form-list", "0.2.0", "form_urls.csv")) + +matches: + - trigger: :forms + replace: '{{form_url}}' + vars: + # Read choice-list options from CSV file. + - name: form_names + type: script + params: + args: + - python + - -c + - | + import csv + with open(r'{{urlcsv}}', newline='') as f: + for row in csv.reader(f): print(row[0]) + # Form + - name: choice + type: form + params: + layout: | + Get link for: + [[choices]] + fields: + choices: + type: list + values: '{{form_names}}' + # Return paired item as selected above + - name: form_url + type: script + params: + args: + - python + - -c + - | + import csv + with open(r'{{urlcsv}}', newline='') as f: + for row in csv.reader(f): + if row[0] == '{{choice.choices}}': + print(row[1]) ; break