GNC-FQ-HELPER(1)
π GNC-FQ-HELPER(1) π
okay bestie, so this is a page from the User Contributed Perl Documentation collection, and it's literally about gnc-fq-helper β the little middle-man that lets gnucash talk to Finance::Quote over pipes from guile. The requests AND the responses are scheme forms. iykyk π
β¨ NAME β¨
gnc-fq-helper β allows gnucash to communicate with Finance::Quote over pipes from guile. The requests and responses are scheme forms.
π¦ SYNOPSIS π¦
gnc-fq-helper
πΈ DESCRIPTION πΈ
π Input
so this is where it gets specific, bestie. Input comes in on standard input β one entry per line, and one line per entry. And listen: double quotes must only be delimiters, not string content. Remember, we don't have a real scheme parser on the perl side :>).
The shape of each line is:
(<method-name> symbol symbol symbol ...)
where <method-name> tells it which Finance::Quote method you want. The currently recognized subset is:
yahooyahoo_europefidelity_directtroweprice_directvanguardasxtiaacrefcurrency
For currency quotes, the symbols alternate between the 'from' and 'to' currencies. cute, right? π±
For example:
(yahoo "IBM" "LNUX") (fidelity_direct "FBIOX" "FSELX") (currency "USD" "AUD")
π Output
Output lands on standard output, one output form per input line. periodt.
What you get is the schemified version of gnc-fq's output β basically an alist of alists, like the example below. Right now, only the fields that this script knows about (and knows how to convert to scheme) are returned, so the conversion function will have to be updated whenever Finance::Quote changes. no cap, that's just how it is π
Currently you'll get symbol, gnc:time-no-zone, and currency, and either last, nav, or price. Fields with gnc: prefixes are non-Finance::Quote fields. gnc:time-no-zone is returned as a string of the form "YYYY-MM-DD HH:MM:SS", basically the unmolested (and underspecified) output of the quote source. It's up to you to know what its proper timezone really is. i.e. if you know the time was in America/Chicago, you'll need to convert it to that. lowkey important bestie, don't skip this π
For example:
$ echo '(yahoo "CSCO" "JDSU" "^IXIC")' | ./gnc-fq-helper
(("CSCO" (symbol . "CSCO")
(gnc:time-no-zone . "2001-03-13 19:27:00")
(last . 20.375)
(currency . "USD"))
("JDSU" (symbol . "JDSU")
(gnc:time-no-zone . "2001-03-13 19:27:00")
(last . 23.5625)
(currency . "USD"))
("^IXIC" (symbol . ^IXIC)
(gnc:time-no-zone . 2002-12-04 17:16:00)
(last . 1430.35)
(currency . failed-conversion)))
β οΈ and when things go wrong? On error, the overall result may be#f, or on individual errors, the list sub-item for a given symbol may be#f, like this:
$ echo '(yahoo "CSCO" "JDSU")' | ./gnc-fq-helper
(#f
("JDSU" (symbol . "JDSU")
(gnc:time-no-zone . "2001-03-13 19:27:00")
(last . 23.5625)
(currency . "USD")))
further, errors may be stored with each quote as indicated in Finance::Quote, and whenever the conversion to scheme data fails, the field will have the value 'failed-conversion, and accordingly this symbol will never be a legitimate conversion. so yeah, that symbol is not coming back, she's done β
β Exit status β
0β success- non-zero β failure
okay that's the whole vibe check π this page came from perl v5.14.2, dated 2012-09-24, so yeah she's an icon from a different era but she still ate. slay, gnucash bestie π«Άβ¨
π¦ where this page comes from
- debian bookworm: gnucash 1:4.13-1 Β· GPL-2.0-or-later
- ubuntu jammy: gnucash 1:4.8-1build2 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms