From d4686ff7d56e01ffea961e4c293aa658367ae4b4 Mon Sep 17 00:00:00 2001 From: dgw Date: Sun, 1 Oct 2023 15:16:30 -0500 Subject: [PATCH] currency: replace `exchangerate.host` -> `open.er-api.com` exchangerate.host was bought and changed to require an API key. The new owner also allegedly broke compatibility with the original endpoints, based on GitHub comments from other developers, so I didn't even bother signing up for a key and testing it. I just found a new keyless API. ExchangeRate-API.com also provides key-based services, but there's an open endpoint that doesn't require any key we can use for now. VCR file for `currency` example test has been updated, as well. Note that this will be a "breaking" change for users who specify the `currency.fiat_provider` option in their settings as `exchangerate.host` since that's no longer a valid value. (Ask me how I know... I forgot to update the default at first and the test suite failed because of it. :D) --- sopel/modules/currency.py | 4 +- .../currency/test_example_exchange_cmd_0.yaml | 394 +++++++++++++----- .../currency/test_example_exchange_cmd_1.yaml | 378 +++++++++++++++++ 3 files changed, 661 insertions(+), 115 deletions(-) create mode 100644 test/vcr/modules/currency/test_example_exchange_cmd_1.yaml diff --git a/sopel/modules/currency.py b/sopel/modules/currency.py index c2a6387d8d..a6c9773edf 100644 --- a/sopel/modules/currency.py +++ b/sopel/modules/currency.py @@ -21,7 +21,7 @@ PLUGIN_OUTPUT_PREFIX = '[currency] ' FIAT_PROVIDERS = { - 'exchangerate.host': 'https://api.exchangerate.host/latest?base=EUR', + 'open.er-api.com': 'https://open.er-api.com/v6/latest/EUR', 'fixer.io': '//data.fixer.io/api/latest?base=EUR&access_key={}', } CRYPTO_URL = 'https://api.coingecko.com/api/v3/exchange_rates' @@ -43,7 +43,7 @@ class CurrencySection(types.StaticSection): fiat_provider = types.ChoiceAttribute( 'fiat_provider', list(FIAT_PROVIDERS.keys()), - default='exchangerate.host', + default='open.er-api.com', ) """Which data provider to use (some of which require no API key)""" fixer_io_key = types.ValidatedAttribute('fixer_io_key', default=None) diff --git a/test/vcr/modules/currency/test_example_exchange_cmd_0.yaml b/test/vcr/modules/currency/test_example_exchange_cmd_0.yaml index c445ed22e9..3fa2103fb3 100644 --- a/test/vcr/modules/currency/test_example_exchange_cmd_0.yaml +++ b/test/vcr/modules/currency/test_example_exchange_cmd_0.yaml @@ -5,45 +5,65 @@ interactions: Accept: - '*/*' Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - python-requests/2.25.1 + - python-requests/2.31.0 method: GET uri: https://api.coingecko.com/api/v3/exchange_rates response: body: - string: !!binary | - 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 - /wMAWDH8i3QSAAA= + string: "{\"rates\":{\"btc\":{\"name\":\"Bitcoin\",\"unit\":\"BTC\",\"value\":1.0,\"type\":\"crypto\"},\"eth\":{\"name\":\"Ether\",\"unit\":\"ETH\",\"value\":16.192,\"type\":\"crypto\"},\"ltc\":{\"name\":\"Litecoin\",\"unit\":\"LTC\",\"value\":408.142,\"type\":\"crypto\"},\"bch\":{\"name\":\"Bitcoin + Cash\",\"unit\":\"BCH\",\"value\":115.368,\"type\":\"crypto\"},\"bnb\":{\"name\":\"Binance + Coin\",\"unit\":\"BNB\",\"value\":126.626,\"type\":\"crypto\"},\"eos\":{\"name\":\"EOS\",\"unit\":\"EOS\",\"value\":45745.839,\"type\":\"crypto\"},\"xrp\":{\"name\":\"XRP\",\"unit\":\"XRP\",\"value\":52367.203,\"type\":\"crypto\"},\"xlm\":{\"name\":\"Lumens\",\"unit\":\"XLM\",\"value\":241520.224,\"type\":\"crypto\"},\"link\":{\"name\":\"Chainlink\",\"unit\":\"LINK\",\"value\":3476.143,\"type\":\"crypto\"},\"dot\":{\"name\":\"Polkadot\",\"unit\":\"DOT\",\"value\":6445.577,\"type\":\"crypto\"},\"yfi\":{\"name\":\"Yearn.finance\",\"unit\":\"YFI\",\"value\":5.003,\"type\":\"crypto\"},\"usd\":{\"name\":\"US + Dollar\",\"unit\":\"$\",\"value\":27116.789,\"type\":\"fiat\"},\"aed\":{\"name\":\"United + Arab Emirates Dirham\",\"unit\":\"DH\",\"value\":99601.052,\"type\":\"fiat\"},\"ars\":{\"name\":\"Argentine + Peso\",\"unit\":\"$\",\"value\":9526798.84,\"type\":\"fiat\"},\"aud\":{\"name\":\"Australian + Dollar\",\"unit\":\"A$\",\"value\":42213.058,\"type\":\"fiat\"},\"bdt\":{\"name\":\"Bangladeshi + Taka\",\"unit\":\"\u09F3\",\"value\":2996127.929,\"type\":\"fiat\"},\"bhd\":{\"name\":\"Bahraini + Dinar\",\"unit\":\"BD\",\"value\":10245.807,\"type\":\"fiat\"},\"bmd\":{\"name\":\"Bermudian + Dollar\",\"unit\":\"$\",\"value\":27116.789,\"type\":\"fiat\"},\"brl\":{\"name\":\"Brazil + Real\",\"unit\":\"R$\",\"value\":136783.973,\"type\":\"fiat\"},\"cad\":{\"name\":\"Canadian + Dollar\",\"unit\":\"CA$\",\"value\":36785.145,\"type\":\"fiat\"},\"chf\":{\"name\":\"Swiss + Franc\",\"unit\":\"Fr.\",\"value\":24789.68,\"type\":\"fiat\"},\"clp\":{\"name\":\"Chilean + Peso\",\"unit\":\"CLP$\",\"value\":24445453.168,\"type\":\"fiat\"},\"cny\":{\"name\":\"Chinese + Yuan\",\"unit\":\"\xA5\",\"value\":194522.288,\"type\":\"fiat\"},\"czk\":{\"name\":\"Czech + Koruna\",\"unit\":\"K\u010D\",\"value\":625648.055,\"type\":\"fiat\"},\"dkk\":{\"name\":\"Danish + Krone\",\"unit\":\"kr.\",\"value\":191315.023,\"type\":\"fiat\"},\"eur\":{\"name\":\"Euro\",\"unit\":\"\u20AC\",\"value\":25652.184,\"type\":\"fiat\"},\"gbp\":{\"name\":\"British + Pound Sterling\",\"unit\":\"\xA3\",\"value\":22217.761,\"type\":\"fiat\"},\"hkd\":{\"name\":\"Hong + Kong Dollar\",\"unit\":\"HK$\",\"value\":212349.543,\"type\":\"fiat\"},\"huf\":{\"name\":\"Hungarian + Forint\",\"unit\":\"Ft\",\"value\":9997133.179,\"type\":\"fiat\"},\"idr\":{\"name\":\"Indonesian + Rupiah\",\"unit\":\"Rp\",\"value\":420129908.636,\"type\":\"fiat\"},\"ils\":{\"name\":\"Israeli + New Shekel\",\"unit\":\"\u20AA\",\"value\":103334.871,\"type\":\"fiat\"},\"inr\":{\"name\":\"Indian + Rupee\",\"unit\":\"\u20B9\",\"value\":2255399.636,\"type\":\"fiat\"},\"jpy\":{\"name\":\"Japanese + Yen\",\"unit\":\"\xA5\",\"value\":4057214.026,\"type\":\"fiat\"},\"krw\":{\"name\":\"South + Korean Won\",\"unit\":\"\u20A9\",\"value\":36687117.846,\"type\":\"fiat\"},\"kwd\":{\"name\":\"Kuwaiti + Dinar\",\"unit\":\"KD\",\"value\":8393.866,\"type\":\"fiat\"},\"lkr\":{\"name\":\"Sri + Lankan Rupee\",\"unit\":\"Rs\",\"value\":8811643.795,\"type\":\"fiat\"},\"mmk\":{\"name\":\"Burmese + Kyat\",\"unit\":\"K\",\"value\":57066530.853,\"type\":\"fiat\"},\"mxn\":{\"name\":\"Mexican + Peso\",\"unit\":\"MX$\",\"value\":472305.106,\"type\":\"fiat\"},\"myr\":{\"name\":\"Malaysian + Ringgit\",\"unit\":\"RM\",\"value\":127320.105,\"type\":\"fiat\"},\"ngn\":{\"name\":\"Nigerian + Naira\",\"unit\":\"\u20A6\",\"value\":21144788.942,\"type\":\"fiat\"},\"nok\":{\"name\":\"Norwegian + Krone\",\"unit\":\"kr\",\"value\":290437.084,\"type\":\"fiat\"},\"nzd\":{\"name\":\"New + Zealand Dollar\",\"unit\":\"NZ$\",\"value\":45132.696,\"type\":\"fiat\"},\"php\":{\"name\":\"Philippine + Peso\",\"unit\":\"\u20B1\",\"value\":1536179.676,\"type\":\"fiat\"},\"pkr\":{\"name\":\"Pakistani + Rupee\",\"unit\":\"\u20A8\",\"value\":7846800.933,\"type\":\"fiat\"},\"pln\":{\"name\":\"Polish + Zloty\",\"unit\":\"z\u0142\",\"value\":118499.556,\"type\":\"fiat\"},\"rub\":{\"name\":\"Russian + Ruble\",\"unit\":\"\u20BD\",\"value\":2657445.358,\"type\":\"fiat\"},\"sar\":{\"name\":\"Saudi + Riyal\",\"unit\":\"SR\",\"value\":101701.518,\"type\":\"fiat\"},\"sek\":{\"name\":\"Swedish + Krona\",\"unit\":\"kr\",\"value\":296334.036,\"type\":\"fiat\"},\"sgd\":{\"name\":\"Singapore + Dollar\",\"unit\":\"S$\",\"value\":37001.401,\"type\":\"fiat\"},\"thb\":{\"name\":\"Thai + Baht\",\"unit\":\"\u0E3F\",\"value\":991135.328,\"type\":\"fiat\"},\"try\":{\"name\":\"Turkish + Lira\",\"unit\":\"\u20BA\",\"value\":743047.456,\"type\":\"fiat\"},\"twd\":{\"name\":\"New + Taiwan Dollar\",\"unit\":\"NT$\",\"value\":874413.413,\"type\":\"fiat\"},\"uah\":{\"name\":\"Ukrainian + hryvnia\",\"unit\":\"\u20B4\",\"value\":1003617.023,\"type\":\"fiat\"},\"vef\":{\"name\":\"Venezuelan + bol\xEDvar fuerte\",\"unit\":\"Bs.F\",\"value\":2715.204,\"type\":\"fiat\"},\"vnd\":{\"name\":\"Vietnamese + \u0111\u1ED3ng\",\"unit\":\"\u20AB\",\"value\":659055093.19,\"type\":\"fiat\"},\"zar\":{\"name\":\"South + African Rand\",\"unit\":\"R\",\"value\":512101.489,\"type\":\"fiat\"},\"xdr\":{\"name\":\"IMF + Special Drawing Rights\",\"unit\":\"XDR\",\"value\":20724.684,\"type\":\"fiat\"},\"xag\":{\"name\":\"Silver + - Troy Ounce\",\"unit\":\"XAG\",\"value\":1222.524,\"type\":\"commodity\"},\"xau\":{\"name\":\"Gold + - Troy Ounce\",\"unit\":\"XAU\",\"value\":14.673,\"type\":\"commodity\"},\"bits\":{\"name\":\"Bits\",\"unit\":\"\u03BCBTC\",\"value\":1000000.0,\"type\":\"crypto\"},\"sats\":{\"name\":\"Satoshi\",\"unit\":\"sats\",\"value\":100000000.0,\"type\":\"crypto\"}}}" headers: Access-Control-Allow-Headers: - Origin, X-Requested-With, Content-Type, Accept, Authorization @@ -55,44 +75,110 @@ interactions: - link, per-page, total Access-Control-Request-Method: - '*' - Age: - - '9' Alternate-Protocol: - 443:npn-spdy/2 CF-Cache-Status: - HIT CF-RAY: - - 65557e62db73882f-ORD + - 80f7953daa694c94-MSP Cache-Control: - - public, max-age=60 + - public, max-age=120 Connection: - keep-alive Content-Encoding: - - gzip + - br Content-Type: - application/json; charset=utf-8 Date: - - Wed, 26 May 2021 08:04:36 GMT + - Sun, 01 Oct 2023 20:51:19 GMT ETag: - - W/"2eeb08bb94c466379194ab1f4529841d" - Expect-CT: - - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" + - W/"730c99d03289ea4b2a5aa0bfebcdb8cb" Expires: - - Wed, 26 May 2021 08:05:36 GMT + - Sun, 01 Oct 2023 20:53:19 GMT + Referrer-Policy: + - strict-origin-when-cross-origin Server: - cloudflare + Set-Cookie: + - __cf_bm=hjvLAJlfDxTF66qjE81JNmCAeEFTg7kP8RhJVWzhhSY-1696193479-0-AXcmiCQ/V6/Hrb6y5qcs0Tq6pqaTXKvsxKE7XjtG88pMm/g3KAZWbKd+wUFpt+wKM89ewdWaWw69JiLHo77D9XY=; + path=/; expires=Sun, 01-Oct-23 21:21:19 GMT; domain=.api.coingecko.com; HttpOnly; + Secure; SameSite=None + Strict-Transport-Security: + - max-age=15724800; includeSubdomains Transfer-Encoding: - chunked Vary: - Accept-Encoding, Origin + X-Content-Type-Options: + - nosniff + X-Download-Options: + - noopen + X-Frame-Options: + - SAMEORIGIN + X-Permitted-Cross-Domain-Policies: + - none X-Request-Id: - - fecbeaf4-c15e-4147-afe9-239787fc1a2b + - 868bf71e-512c-49d8-9985-261b15289653 X-Runtime: - - '0.015122' - alt-svc: - - h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400 - cf-request-id: - - 0a494d51ca0000882f6685d000000001 + - '0.084620' + X-XSS-Protection: + - '0' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://open.er-api.com/v6/latest/EUR + response: + body: + string: '{"result":"success","provider":"https://www.exchangerate-api.com","documentation":"https://www.exchangerate-api.com/docs/free","terms_of_use":"https://www.exchangerate-api.com/terms","time_last_update_unix":1696118552,"time_last_update_utc":"Sun, + 01 Oct 2023 00:02:32 +0000","time_next_update_unix":1696206702,"time_next_update_utc":"Mon, + 02 Oct 2023 00:31:42 +0000","time_eol_unix":0,"base_code":"EUR","rates":{"EUR":1,"AED":3.884474,"AFN":82.54531,"ALL":106.503046,"AMD":418.721148,"ANG":1.893317,"AOA":883.989055,"ARS":370.212307,"AUD":1.640007,"AWG":1.893317,"AZN":1.802558,"BAM":1.95583,"BBD":2.115438,"BDT":116.561496,"BGN":1.95583,"BHD":0.397702,"BIF":2985.034948,"BMD":1.057719,"BND":1.444977,"BOB":7.307976,"BRL":5.308575,"BSD":1.057719,"BTN":87.983906,"BWP":14.494392,"BYN":3.047928,"BZD":2.115438,"CAD":1.430381,"CDF":2631.233871,"CHF":0.966998,"CLP":959.961674,"CNY":7.718692,"COP":4313.318245,"CRC":565.3924,"CUP":25.385261,"CVE":110.265,"CZK":24.386644,"DJF":187.978919,"DKK":7.460234,"DOP":59.93039,"DZD":145.150187,"EGP":32.700872,"ERN":15.865788,"ETB":58.978847,"FJD":2.426578,"FKP":0.866315,"FOK":7.46038,"GBP":0.866317,"GEL":2.838726,"GGP":0.866315,"GHS":12.44916,"GIP":0.866315,"GMD":69.052487,"GNF":9063.138889,"GTQ":8.298895,"GYD":220.902505,"HKD":8.280852,"HNL":26.054506,"HRK":7.5345,"HTG":143.102193,"HUF":389.735142,"IDR":16412.454774,"ILS":4.044046,"IMP":0.866315,"INR":87.984057,"IQD":1382.512712,"IRR":44632.813246,"ISK":144.900843,"JEP":0.866315,"JMD":164.858458,"JOD":0.749923,"JPY":157.965623,"KES":156.021652,"KGS":93.614746,"KHR":4350.306667,"KID":1.639995,"KMF":491.96775,"KRW":1426.682028,"KWD":0.326957,"KYD":0.881432,"KZT":506.925969,"LAK":21516.339237,"LBP":15865.78842,"LKR":342.37238,"LRD":199.407927,"LSL":19.98806,"LYD":5.161322,"MAD":10.877776,"MDL":19.301859,"MGA":4798.132353,"MKD":61.5016,"MMK":2661.95976,"MNT":3665.016674,"MOP":8.529255,"MRU":40.410329,"MUR":46.821469,"MVR":16.290227,"MWK":1186.843188,"MXN":18.452127,"MYR":4.974924,"MZN":67.580168,"NAD":19.98806,"NGN":907.79099,"NIO":38.662306,"NOK":11.293032,"NPR":140.77425,"NZD":1.761544,"OMR":0.40669,"PAB":1.057719,"PEN":4.007614,"PGK":3.843705,"PHP":59.996589,"PKR":302.72906,"PLN":4.626396,"PYG":7727.646261,"QAR":3.850098,"RON":4.973917,"RSD":117.203457,"RUB":103.138172,"RWF":1335.603898,"SAR":3.966447,"SBD":8.951671,"SCR":14.294945,"SDG":472.175109,"SEK":11.534893,"SGD":1.444979,"SHP":0.866315,"SLE":21.775238,"SLL":21782.609565,"SOS":603.092421,"SRD":40.692567,"SSP":1073.96241,"STN":24.5,"SYP":13649.896587,"SZL":19.98806,"THB":38.710832,"TJS":11.592476,"TMT":3.705225,"TND":3.349414,"TOP":2.49893,"TRY":29.021196,"TTD":7.491725,"TVD":1.639995,"TWD":34.045153,"TZS":2657.375386,"UAH":39.181942,"UGX":3975.922323,"USD":1.057361,"UYU":40.469499,"UZS":12985.975003,"VES":36.407959,"VND":25710.272165,"VUV":127.746609,"WST":2.927129,"XAF":655.957,"XCD":2.855842,"XDR":0.805514,"XOF":655.957,"XPF":119.332,"YER":264.02934,"ZAR":19.98818,"ZMW":22.203222,"ZWL":5782.7245}}' + headers: + Age: + - '61' + CF-Cache-Status: + - HIT + CF-RAY: + - 80f7953e7889e1db-ORD + Cache-Control: + - public, max-age=3600 + Connection: + - keep-alive + Content-Encoding: + - br + Content-Type: + - application/json + Date: + - Sun, 01 Oct 2023 20:51:19 GMT + Last-Modified: + - Sun, 01 Oct 2023 20:26:45 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=VaR0%2FFYZ8I4iCQD0Q8lLiVvgLTsdcJa6Tg7RX%2B8kp5zUKytrAqiRjKUNvUI%2B4WFGjRDYWIx7nPKCSNLVMycaX%2Fwr9%2FzaTEtGlnnDfMfTShS9Fev%2FVfjcqc5BxUUEXwzEWg%3D%3D"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + access-control-allow-origin: + - '*' + x-content-type-options: + - NOSNIFF + x-frame-options: + - SAMEORIGIN status: code: 200 message: OK @@ -102,108 +188,190 @@ interactions: Accept: - '*/*' Accept-Encoding: - - gzip, deflate + - gzip, deflate, br Connection: - keep-alive User-Agent: - - python-requests/2.25.1 + - python-requests/2.31.0 method: GET - uri: https://api.exchangerate.host/latest?base=EUR + uri: https://api.coingecko.com/api/v3/exchange_rates response: body: string: !!binary | - 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 - CwAA + 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 + nR5ykP55HawB66YlNFWde04tt0mJln7e+/zz headers: - Access-Control-Allow-Credentials: - - 'false' Access-Control-Allow-Headers: - - Origin, X-Requested-With, Content-Type, Accept, Methods + - Origin, X-Requested-With, Content-Type, Accept, Authorization Access-Control-Allow-Methods: - - GET + - POST, PUT, DELETE, GET, OPTIONS Access-Control-Allow-Origin: - '*' + Access-Control-Expose-Headers: + - link, per-page, total + Access-Control-Request-Method: + - '*' Age: - - '5972' + - '37' + Alternate-Protocol: + - 443:npn-spdy/2 CF-Cache-Status: - HIT CF-RAY: - - 65557e6a5c09110e-ORD + - 80f7a377ee244c94-MSP Cache-Control: - - max-age=31536000 + - public, max-age=120 Connection: - keep-alive Content-Encoding: - - gzip + - br Content-Type: - application/json; charset=utf-8 Date: - - Wed, 26 May 2021 08:04:38 GMT + - Sun, 01 Oct 2023 21:01:02 GMT ETag: - - W/"bac-xOQMnXJ7P8JGpGDZL8dHgRtLzMI" - Expect-CT: - - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" - NEL: - - '{"report_to":"cf-nel","max_age":604800}' - Report-To: - - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v2?s=FzL%2FKnFfJ30tU3IwnPqUc%2F601fwneecHTTO7qlfOu0IL2IcPb1Vc3qVTO%2F0N%2FBgJmNvDef7hHUT2Kbv8HAT3B0VFJtkTFUeuOiXgafgss5YwCE4YH%2Bj7t4migAmj0ylqEoud"}],"group":"cf-nel","max_age":604800}' + - W/"4cf0fd708b1693db791a0b37d93997ee" + Expires: + - Sun, 01 Oct 2023 21:03:02 GMT + Referrer-Policy: + - strict-origin-when-cross-origin Server: - cloudflare + Set-Cookie: + - __cf_bm=5UxxXqU.f3qSFhDvN3DCv3aLFd4UDhDW7gmM6ksvY2A-1696194062-0-AQ9tlsT69DycH8roZ+KZQt3jORqH5nUflkJkiZWZR4KkdFarvOKVS87bG3WewA2/IqbaET5fwj9cShbzBPWSW28=; + path=/; expires=Sun, 01-Oct-23 21:31:02 GMT; domain=.api.coingecko.com; HttpOnly; + Secure; SameSite=None Strict-Transport-Security: - - max-age=15552000; includeSubDomains + - max-age=15724800; includeSubdomains Transfer-Encoding: - chunked Vary: - - Accept-Encoding + - Accept-Encoding, Origin X-Content-Type-Options: - nosniff - X-DNS-Prefetch-Control: - - 'off' X-Download-Options: - noopen - X-Forwarded-For: - - api.exchangerate.host X-Frame-Options: - SAMEORIGIN - X-RateLimit-Limit: - - '2000' - X-RateLimit-Remaining: - - '1999' + X-Permitted-Cross-Domain-Policies: + - none + X-Request-Id: + - 88109ab3-e11d-4952-87bf-94309a30c25e + X-Runtime: + - '0.126824' X-XSS-Protection: - - 1; mode=block - alt-svc: - - h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400 - cf-request-id: - - 0a494d567b0000110e39081000000001 + - '0' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://open.er-api.com/v6/latest/EUR + response: + body: + string: !!binary | + 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 + 1///Hw== + headers: + Age: + - '3241' + CF-Cache-Status: + - HIT + CF-RAY: + - 80f7a378cbc98117-ORD + Cache-Control: + - public, max-age=3600 + Connection: + - keep-alive + Content-Encoding: + - br + Content-Type: + - application/json + Date: + - Sun, 01 Oct 2023 21:01:02 GMT + Last-Modified: + - Sun, 01 Oct 2023 19:26:09 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=RXf8uRjL1%2FXEULJmIVRhNNDHJUPpkNRSO2KA1G3g9g71zizQLVFQTlKAMPqZnUEcvwmXnYn0r8RchUhnZ7E8l38WDBJcD%2Fykkkl3nBzdtJBxhdunZSUFvt%2FRtMCZzAC23g%3D%3D"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + access-control-allow-origin: + - '*' + x-content-type-options: + - NOSNIFF + x-frame-options: + - SAMEORIGIN status: code: 200 message: OK diff --git a/test/vcr/modules/currency/test_example_exchange_cmd_1.yaml b/test/vcr/modules/currency/test_example_exchange_cmd_1.yaml new file mode 100644 index 0000000000..3fa2103fb3 --- /dev/null +++ b/test/vcr/modules/currency/test_example_exchange_cmd_1.yaml @@ -0,0 +1,378 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://api.coingecko.com/api/v3/exchange_rates + response: + body: + string: "{\"rates\":{\"btc\":{\"name\":\"Bitcoin\",\"unit\":\"BTC\",\"value\":1.0,\"type\":\"crypto\"},\"eth\":{\"name\":\"Ether\",\"unit\":\"ETH\",\"value\":16.192,\"type\":\"crypto\"},\"ltc\":{\"name\":\"Litecoin\",\"unit\":\"LTC\",\"value\":408.142,\"type\":\"crypto\"},\"bch\":{\"name\":\"Bitcoin + Cash\",\"unit\":\"BCH\",\"value\":115.368,\"type\":\"crypto\"},\"bnb\":{\"name\":\"Binance + Coin\",\"unit\":\"BNB\",\"value\":126.626,\"type\":\"crypto\"},\"eos\":{\"name\":\"EOS\",\"unit\":\"EOS\",\"value\":45745.839,\"type\":\"crypto\"},\"xrp\":{\"name\":\"XRP\",\"unit\":\"XRP\",\"value\":52367.203,\"type\":\"crypto\"},\"xlm\":{\"name\":\"Lumens\",\"unit\":\"XLM\",\"value\":241520.224,\"type\":\"crypto\"},\"link\":{\"name\":\"Chainlink\",\"unit\":\"LINK\",\"value\":3476.143,\"type\":\"crypto\"},\"dot\":{\"name\":\"Polkadot\",\"unit\":\"DOT\",\"value\":6445.577,\"type\":\"crypto\"},\"yfi\":{\"name\":\"Yearn.finance\",\"unit\":\"YFI\",\"value\":5.003,\"type\":\"crypto\"},\"usd\":{\"name\":\"US + Dollar\",\"unit\":\"$\",\"value\":27116.789,\"type\":\"fiat\"},\"aed\":{\"name\":\"United + Arab Emirates Dirham\",\"unit\":\"DH\",\"value\":99601.052,\"type\":\"fiat\"},\"ars\":{\"name\":\"Argentine + Peso\",\"unit\":\"$\",\"value\":9526798.84,\"type\":\"fiat\"},\"aud\":{\"name\":\"Australian + Dollar\",\"unit\":\"A$\",\"value\":42213.058,\"type\":\"fiat\"},\"bdt\":{\"name\":\"Bangladeshi + Taka\",\"unit\":\"\u09F3\",\"value\":2996127.929,\"type\":\"fiat\"},\"bhd\":{\"name\":\"Bahraini + Dinar\",\"unit\":\"BD\",\"value\":10245.807,\"type\":\"fiat\"},\"bmd\":{\"name\":\"Bermudian + Dollar\",\"unit\":\"$\",\"value\":27116.789,\"type\":\"fiat\"},\"brl\":{\"name\":\"Brazil + Real\",\"unit\":\"R$\",\"value\":136783.973,\"type\":\"fiat\"},\"cad\":{\"name\":\"Canadian + Dollar\",\"unit\":\"CA$\",\"value\":36785.145,\"type\":\"fiat\"},\"chf\":{\"name\":\"Swiss + Franc\",\"unit\":\"Fr.\",\"value\":24789.68,\"type\":\"fiat\"},\"clp\":{\"name\":\"Chilean + Peso\",\"unit\":\"CLP$\",\"value\":24445453.168,\"type\":\"fiat\"},\"cny\":{\"name\":\"Chinese + Yuan\",\"unit\":\"\xA5\",\"value\":194522.288,\"type\":\"fiat\"},\"czk\":{\"name\":\"Czech + Koruna\",\"unit\":\"K\u010D\",\"value\":625648.055,\"type\":\"fiat\"},\"dkk\":{\"name\":\"Danish + Krone\",\"unit\":\"kr.\",\"value\":191315.023,\"type\":\"fiat\"},\"eur\":{\"name\":\"Euro\",\"unit\":\"\u20AC\",\"value\":25652.184,\"type\":\"fiat\"},\"gbp\":{\"name\":\"British + Pound Sterling\",\"unit\":\"\xA3\",\"value\":22217.761,\"type\":\"fiat\"},\"hkd\":{\"name\":\"Hong + Kong Dollar\",\"unit\":\"HK$\",\"value\":212349.543,\"type\":\"fiat\"},\"huf\":{\"name\":\"Hungarian + Forint\",\"unit\":\"Ft\",\"value\":9997133.179,\"type\":\"fiat\"},\"idr\":{\"name\":\"Indonesian + Rupiah\",\"unit\":\"Rp\",\"value\":420129908.636,\"type\":\"fiat\"},\"ils\":{\"name\":\"Israeli + New Shekel\",\"unit\":\"\u20AA\",\"value\":103334.871,\"type\":\"fiat\"},\"inr\":{\"name\":\"Indian + Rupee\",\"unit\":\"\u20B9\",\"value\":2255399.636,\"type\":\"fiat\"},\"jpy\":{\"name\":\"Japanese + Yen\",\"unit\":\"\xA5\",\"value\":4057214.026,\"type\":\"fiat\"},\"krw\":{\"name\":\"South + Korean Won\",\"unit\":\"\u20A9\",\"value\":36687117.846,\"type\":\"fiat\"},\"kwd\":{\"name\":\"Kuwaiti + Dinar\",\"unit\":\"KD\",\"value\":8393.866,\"type\":\"fiat\"},\"lkr\":{\"name\":\"Sri + Lankan Rupee\",\"unit\":\"Rs\",\"value\":8811643.795,\"type\":\"fiat\"},\"mmk\":{\"name\":\"Burmese + Kyat\",\"unit\":\"K\",\"value\":57066530.853,\"type\":\"fiat\"},\"mxn\":{\"name\":\"Mexican + Peso\",\"unit\":\"MX$\",\"value\":472305.106,\"type\":\"fiat\"},\"myr\":{\"name\":\"Malaysian + Ringgit\",\"unit\":\"RM\",\"value\":127320.105,\"type\":\"fiat\"},\"ngn\":{\"name\":\"Nigerian + Naira\",\"unit\":\"\u20A6\",\"value\":21144788.942,\"type\":\"fiat\"},\"nok\":{\"name\":\"Norwegian + Krone\",\"unit\":\"kr\",\"value\":290437.084,\"type\":\"fiat\"},\"nzd\":{\"name\":\"New + Zealand Dollar\",\"unit\":\"NZ$\",\"value\":45132.696,\"type\":\"fiat\"},\"php\":{\"name\":\"Philippine + Peso\",\"unit\":\"\u20B1\",\"value\":1536179.676,\"type\":\"fiat\"},\"pkr\":{\"name\":\"Pakistani + Rupee\",\"unit\":\"\u20A8\",\"value\":7846800.933,\"type\":\"fiat\"},\"pln\":{\"name\":\"Polish + Zloty\",\"unit\":\"z\u0142\",\"value\":118499.556,\"type\":\"fiat\"},\"rub\":{\"name\":\"Russian + Ruble\",\"unit\":\"\u20BD\",\"value\":2657445.358,\"type\":\"fiat\"},\"sar\":{\"name\":\"Saudi + Riyal\",\"unit\":\"SR\",\"value\":101701.518,\"type\":\"fiat\"},\"sek\":{\"name\":\"Swedish + Krona\",\"unit\":\"kr\",\"value\":296334.036,\"type\":\"fiat\"},\"sgd\":{\"name\":\"Singapore + Dollar\",\"unit\":\"S$\",\"value\":37001.401,\"type\":\"fiat\"},\"thb\":{\"name\":\"Thai + Baht\",\"unit\":\"\u0E3F\",\"value\":991135.328,\"type\":\"fiat\"},\"try\":{\"name\":\"Turkish + Lira\",\"unit\":\"\u20BA\",\"value\":743047.456,\"type\":\"fiat\"},\"twd\":{\"name\":\"New + Taiwan Dollar\",\"unit\":\"NT$\",\"value\":874413.413,\"type\":\"fiat\"},\"uah\":{\"name\":\"Ukrainian + hryvnia\",\"unit\":\"\u20B4\",\"value\":1003617.023,\"type\":\"fiat\"},\"vef\":{\"name\":\"Venezuelan + bol\xEDvar fuerte\",\"unit\":\"Bs.F\",\"value\":2715.204,\"type\":\"fiat\"},\"vnd\":{\"name\":\"Vietnamese + \u0111\u1ED3ng\",\"unit\":\"\u20AB\",\"value\":659055093.19,\"type\":\"fiat\"},\"zar\":{\"name\":\"South + African Rand\",\"unit\":\"R\",\"value\":512101.489,\"type\":\"fiat\"},\"xdr\":{\"name\":\"IMF + Special Drawing Rights\",\"unit\":\"XDR\",\"value\":20724.684,\"type\":\"fiat\"},\"xag\":{\"name\":\"Silver + - Troy Ounce\",\"unit\":\"XAG\",\"value\":1222.524,\"type\":\"commodity\"},\"xau\":{\"name\":\"Gold + - Troy Ounce\",\"unit\":\"XAU\",\"value\":14.673,\"type\":\"commodity\"},\"bits\":{\"name\":\"Bits\",\"unit\":\"\u03BCBTC\",\"value\":1000000.0,\"type\":\"crypto\"},\"sats\":{\"name\":\"Satoshi\",\"unit\":\"sats\",\"value\":100000000.0,\"type\":\"crypto\"}}}" + headers: + Access-Control-Allow-Headers: + - Origin, X-Requested-With, Content-Type, Accept, Authorization + Access-Control-Allow-Methods: + - POST, PUT, DELETE, GET, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - link, per-page, total + Access-Control-Request-Method: + - '*' + Alternate-Protocol: + - 443:npn-spdy/2 + CF-Cache-Status: + - HIT + CF-RAY: + - 80f7953daa694c94-MSP + Cache-Control: + - public, max-age=120 + Connection: + - keep-alive + Content-Encoding: + - br + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 01 Oct 2023 20:51:19 GMT + ETag: + - W/"730c99d03289ea4b2a5aa0bfebcdb8cb" + Expires: + - Sun, 01 Oct 2023 20:53:19 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Server: + - cloudflare + Set-Cookie: + - __cf_bm=hjvLAJlfDxTF66qjE81JNmCAeEFTg7kP8RhJVWzhhSY-1696193479-0-AXcmiCQ/V6/Hrb6y5qcs0Tq6pqaTXKvsxKE7XjtG88pMm/g3KAZWbKd+wUFpt+wKM89ewdWaWw69JiLHo77D9XY=; + path=/; expires=Sun, 01-Oct-23 21:21:19 GMT; domain=.api.coingecko.com; HttpOnly; + Secure; SameSite=None + Strict-Transport-Security: + - max-age=15724800; includeSubdomains + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding, Origin + X-Content-Type-Options: + - nosniff + X-Download-Options: + - noopen + X-Frame-Options: + - SAMEORIGIN + X-Permitted-Cross-Domain-Policies: + - none + X-Request-Id: + - 868bf71e-512c-49d8-9985-261b15289653 + X-Runtime: + - '0.084620' + X-XSS-Protection: + - '0' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://open.er-api.com/v6/latest/EUR + response: + body: + string: '{"result":"success","provider":"https://www.exchangerate-api.com","documentation":"https://www.exchangerate-api.com/docs/free","terms_of_use":"https://www.exchangerate-api.com/terms","time_last_update_unix":1696118552,"time_last_update_utc":"Sun, + 01 Oct 2023 00:02:32 +0000","time_next_update_unix":1696206702,"time_next_update_utc":"Mon, + 02 Oct 2023 00:31:42 +0000","time_eol_unix":0,"base_code":"EUR","rates":{"EUR":1,"AED":3.884474,"AFN":82.54531,"ALL":106.503046,"AMD":418.721148,"ANG":1.893317,"AOA":883.989055,"ARS":370.212307,"AUD":1.640007,"AWG":1.893317,"AZN":1.802558,"BAM":1.95583,"BBD":2.115438,"BDT":116.561496,"BGN":1.95583,"BHD":0.397702,"BIF":2985.034948,"BMD":1.057719,"BND":1.444977,"BOB":7.307976,"BRL":5.308575,"BSD":1.057719,"BTN":87.983906,"BWP":14.494392,"BYN":3.047928,"BZD":2.115438,"CAD":1.430381,"CDF":2631.233871,"CHF":0.966998,"CLP":959.961674,"CNY":7.718692,"COP":4313.318245,"CRC":565.3924,"CUP":25.385261,"CVE":110.265,"CZK":24.386644,"DJF":187.978919,"DKK":7.460234,"DOP":59.93039,"DZD":145.150187,"EGP":32.700872,"ERN":15.865788,"ETB":58.978847,"FJD":2.426578,"FKP":0.866315,"FOK":7.46038,"GBP":0.866317,"GEL":2.838726,"GGP":0.866315,"GHS":12.44916,"GIP":0.866315,"GMD":69.052487,"GNF":9063.138889,"GTQ":8.298895,"GYD":220.902505,"HKD":8.280852,"HNL":26.054506,"HRK":7.5345,"HTG":143.102193,"HUF":389.735142,"IDR":16412.454774,"ILS":4.044046,"IMP":0.866315,"INR":87.984057,"IQD":1382.512712,"IRR":44632.813246,"ISK":144.900843,"JEP":0.866315,"JMD":164.858458,"JOD":0.749923,"JPY":157.965623,"KES":156.021652,"KGS":93.614746,"KHR":4350.306667,"KID":1.639995,"KMF":491.96775,"KRW":1426.682028,"KWD":0.326957,"KYD":0.881432,"KZT":506.925969,"LAK":21516.339237,"LBP":15865.78842,"LKR":342.37238,"LRD":199.407927,"LSL":19.98806,"LYD":5.161322,"MAD":10.877776,"MDL":19.301859,"MGA":4798.132353,"MKD":61.5016,"MMK":2661.95976,"MNT":3665.016674,"MOP":8.529255,"MRU":40.410329,"MUR":46.821469,"MVR":16.290227,"MWK":1186.843188,"MXN":18.452127,"MYR":4.974924,"MZN":67.580168,"NAD":19.98806,"NGN":907.79099,"NIO":38.662306,"NOK":11.293032,"NPR":140.77425,"NZD":1.761544,"OMR":0.40669,"PAB":1.057719,"PEN":4.007614,"PGK":3.843705,"PHP":59.996589,"PKR":302.72906,"PLN":4.626396,"PYG":7727.646261,"QAR":3.850098,"RON":4.973917,"RSD":117.203457,"RUB":103.138172,"RWF":1335.603898,"SAR":3.966447,"SBD":8.951671,"SCR":14.294945,"SDG":472.175109,"SEK":11.534893,"SGD":1.444979,"SHP":0.866315,"SLE":21.775238,"SLL":21782.609565,"SOS":603.092421,"SRD":40.692567,"SSP":1073.96241,"STN":24.5,"SYP":13649.896587,"SZL":19.98806,"THB":38.710832,"TJS":11.592476,"TMT":3.705225,"TND":3.349414,"TOP":2.49893,"TRY":29.021196,"TTD":7.491725,"TVD":1.639995,"TWD":34.045153,"TZS":2657.375386,"UAH":39.181942,"UGX":3975.922323,"USD":1.057361,"UYU":40.469499,"UZS":12985.975003,"VES":36.407959,"VND":25710.272165,"VUV":127.746609,"WST":2.927129,"XAF":655.957,"XCD":2.855842,"XDR":0.805514,"XOF":655.957,"XPF":119.332,"YER":264.02934,"ZAR":19.98818,"ZMW":22.203222,"ZWL":5782.7245}}' + headers: + Age: + - '61' + CF-Cache-Status: + - HIT + CF-RAY: + - 80f7953e7889e1db-ORD + Cache-Control: + - public, max-age=3600 + Connection: + - keep-alive + Content-Encoding: + - br + Content-Type: + - application/json + Date: + - Sun, 01 Oct 2023 20:51:19 GMT + Last-Modified: + - Sun, 01 Oct 2023 20:26:45 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=VaR0%2FFYZ8I4iCQD0Q8lLiVvgLTsdcJa6Tg7RX%2B8kp5zUKytrAqiRjKUNvUI%2B4WFGjRDYWIx7nPKCSNLVMycaX%2Fwr9%2FzaTEtGlnnDfMfTShS9Fev%2FVfjcqc5BxUUEXwzEWg%3D%3D"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + access-control-allow-origin: + - '*' + x-content-type-options: + - NOSNIFF + x-frame-options: + - SAMEORIGIN + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://api.coingecko.com/api/v3/exchange_rates + response: + body: + string: !!binary | + E2wSAOQvnb1Vu6NJedkBvs74wfBNH7tna0/aSF55VpIpfH24KDOA2Kaok/Of1lqvs22G9COlb0Ss + QRSPNIh2YrPouzSLiM35D5EUKHUF04ZTYDMiGH9rP/izSYTG1cnls8m62SSXzyYBti65TLq+2VQ+ + JBdJG3yTXCbdVS+5SP4F638mlxSTi6Q57VxymWziaddUyfMXiWtylBODJndxRger2+cpTC1b6iWR + Pca+cVPH2FIQg6mEWme9yeU5gXpQ53DQ7ZGypBILZYZqWN8lQNg41NOPPO1aMYU10cyoq2pjcG8p + W+sF7UOW1FZhKemcHuPOeLSY6ad13CYUWzJuFBYCRy63N47brQv1UhpPYmKCSmYwk3a6s/Sh0I+/ + l8NPGBcUtHaM70xHUxYXmmPD+ZCmVVNjVpUFpFUjH+nfW9kpIRkWakZPV376Ywcx4CuzJeiKPh7e + WRcTQoq2dVrz/hL1q7IEny54SrYaTFPKMFPeGPLKQ5M8f5GAQ7on+MalqBNhjQZbH303o76POWyl + TQwVjrXSCCwYB9eiO31wJ2YuND44NHN1xZNrJRPScCzmjrYjU3gHuQs7oI0LxijDjFp+sE7t+aou + hKyE1NW5RysoANH4772v/CMOZq1UTGPN9F7N0xB5BB886vtAUOr2WZQwITCxeM7tuS5u21TcxEmG + JqbrWAbpRjj7Ei0clMzkxVMMrrSimHIxlQ3s34MAQ61nBRZXWltsKKKcXwVZHnxdo2GEsEEjw4jd + MGGIwtxSrUw5d+vlvnQQPM3XG880FpMQgnLNMKGQTYRTzeBqhx63kOZX//mO1txYIYzFhnL9nH8C + nt0mR6MqtsHLyOjvV8YVkzw9e0udQVrksqB9CL7O0ShWIXNohdIippYyK7AlQv/UtdEctDEmzZvr + jxVvI5UkWFkYyNbDX+5G3/g6R7OqDSlaNi6WPmQ6E95mMMaowES6K+RFHDV+uwoZGlUh8324PbIn + gzJOKVaMJ+Stm732dhsyiB4CGlbRh+S9atgwjMFaK43V2MrEAT5V3avvhLQKrvYQ0KLdeSjdqxY7 + 0FgEI0RarQymMhLAlyX39XfqCK70aOoOaJm7wgWqeXP9oX3tCOdUY5XdivlAtI0kOIcn/BA1Y1IS + xjGxxtLwzC4eJu7CDqaLccMYBJFKcYqlSru0iIfxZdU269scBPSwCgSFD2LgShliLcM2KqA4jO88 + ag/gm4k4sjHcMiwUGpSFcRnL6NEYQqG71YsakGUooZphxQ62274jaLeNW1c7NDqB4yUO2VITqQnh + jky3x3D2xB39JsPB5FHhY2jGmMZMmhS2J1knJ1DCyYdP+pBlnmDhosXiUKaZNdiISgoh4zc+9ZmL + sZ1T8DHLkZvrd2NglArKpMGmaYBQtWucaRUPLvMQMl0iJMMSQRVWJgNAOFflqKfugJ44KCGkOUWe + PrETkkqCZXGAXV5rbGa5L/1u19QYN9dfIHKp5NIyjtk82fM4Myh83UDwASu8z9NGSGEJthUHdqW3 + BJpVpa9z9KSsmtOAnP+5dkOpEUpiSyG2jyoGFm298bfrkp3wSwxMSU0Ixcp2XFhDjNWBNvVo4U99 + iLxcsAhVRmDJ0RRXDB1cWgodkEiNZRVnAjM2UbK0YR8y2FXRlZzCpYe44MpagZWBJn8cVnOVg0dd + yOPK+O/737A41hJrDJa2dYYm9iCNrdpY+DpH47ASfuRowYQl2DBT6k2aZE3dAa3AH9rJ1dOVoAyj + BVMai7YeWngE3Xe/aHTrQ0B5PO2DJyl8zaGEcCEsFp2gsne//8AFd25dCQGtq/KvT/YQ0VXrYpMB + dnZrPPS8czQVWGdh2IeWfMoD75oA+1N/v/H/T2+1J8bN9UfSx6KksUISJTDTPYrH2ZVbqlh/5yom + 5WYLCGmiQ7MkpUZRzDE9jj3Fn02GaLlzGw8l6kc4+JChhc/y5rGv3F9YEc0oZs0PPUL25qUv9y6i + p9EqVid0r32wSR51bt1IGWOYP2Sauam22yr1zQlZbA92qyrTmXj/AAIrvfCtffOEA3S9uEX+/fkZ + nR5ykP55HawB66YlNFWde04tt0mJln7e+/zz + headers: + Access-Control-Allow-Headers: + - Origin, X-Requested-With, Content-Type, Accept, Authorization + Access-Control-Allow-Methods: + - POST, PUT, DELETE, GET, OPTIONS + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - link, per-page, total + Access-Control-Request-Method: + - '*' + Age: + - '37' + Alternate-Protocol: + - 443:npn-spdy/2 + CF-Cache-Status: + - HIT + CF-RAY: + - 80f7a377ee244c94-MSP + Cache-Control: + - public, max-age=120 + Connection: + - keep-alive + Content-Encoding: + - br + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 01 Oct 2023 21:01:02 GMT + ETag: + - W/"4cf0fd708b1693db791a0b37d93997ee" + Expires: + - Sun, 01 Oct 2023 21:03:02 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Server: + - cloudflare + Set-Cookie: + - __cf_bm=5UxxXqU.f3qSFhDvN3DCv3aLFd4UDhDW7gmM6ksvY2A-1696194062-0-AQ9tlsT69DycH8roZ+KZQt3jORqH5nUflkJkiZWZR4KkdFarvOKVS87bG3WewA2/IqbaET5fwj9cShbzBPWSW28=; + path=/; expires=Sun, 01-Oct-23 21:31:02 GMT; domain=.api.coingecko.com; HttpOnly; + Secure; SameSite=None + Strict-Transport-Security: + - max-age=15724800; includeSubdomains + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding, Origin + X-Content-Type-Options: + - nosniff + X-Download-Options: + - noopen + X-Frame-Options: + - SAMEORIGIN + X-Permitted-Cross-Domain-Policies: + - none + X-Request-Id: + - 88109ab3-e11d-4952-87bf-94309a30c25e + X-Runtime: + - '0.126824' + X-XSS-Protection: + - '0' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, br + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://open.er-api.com/v6/latest/EUR + response: + body: + string: !!binary | + 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 + 1///Hw== + headers: + Age: + - '3241' + CF-Cache-Status: + - HIT + CF-RAY: + - 80f7a378cbc98117-ORD + Cache-Control: + - public, max-age=3600 + Connection: + - keep-alive + Content-Encoding: + - br + Content-Type: + - application/json + Date: + - Sun, 01 Oct 2023 21:01:02 GMT + Last-Modified: + - Sun, 01 Oct 2023 19:26:09 GMT + NEL: + - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}' + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=RXf8uRjL1%2FXEULJmIVRhNNDHJUPpkNRSO2KA1G3g9g71zizQLVFQTlKAMPqZnUEcvwmXnYn0r8RchUhnZ7E8l38WDBJcD%2Fykkkl3nBzdtJBxhdunZSUFvt%2FRtMCZzAC23g%3D%3D"}],"group":"cf-nel","max_age":604800}' + Server: + - cloudflare + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + access-control-allow-origin: + - '*' + x-content-type-options: + - NOSNIFF + x-frame-options: + - SAMEORIGIN + status: + code: 200 + message: OK +version: 1