The price table was not displaying because of two issues:
1. The Bitfinex API was returning 403 errors, causing the entire get10yr() function to fail
2. The code was looking for exact date matches in weekly historical data
Changes:
- Add try-catch around API call with fallback to latest historical data
- Replace exact date matching with closest-date algorithm to handle weekly data
- Table now shows 10 years of historical price data with percent changes
- Reduced historical data from 4,442 daily entries to 636 weekly entries
- This improves chart rendering performance and ensures all data up to current date is displayed
- Updated btcpoll.js to handle weekly data updates (updates same week or adds new week)
- Added aggregate-weekly.js script for future data aggregation needs
- Data now properly displays from 2013-09-15 to 2025-11-09
Resolved conflicts:
- Removed convert_btcticker.js (deleted in main, generated data already)
- Kept EUR banknote background in views/sats.hbs for EUR branding
- Merged in all EU language support from main branch
- Restored btceur-kraken-historical.csv from git history to archive folder
- Updated eurrate() function to parse Kraken CSV data directly
- Replaced USD-to-EUR conversion with actual BTC/EUR exchange rates from Kraken
- Historical data now contains 4,442 entries from Sept 2013 to Nov 2025
- More accurate EUR pricing for the graph visualization
- Added eurrate() function to convert_btcticker.js to convert USD historical data to EUR format
- Populated public/historical file with 4,240 entries of EUR exchange rate data
- Each entry now includes sateur_rate and btceur_rate fields required by the graph
- Fixes the MetricsGraphics "No data was supplied" error on the en-eur page
- Removed all references to HKD and satshkd from codebase
- Updated README, package.json, documentation to focus on EUR/sats
- Removed HKD-specific files (convert_btcticker.js, archive/hkd_historical)
- Updated all titles from SatsHKD/HKDSAT to SatsEUR/EURSAT
- Removed HKD image reference from sats.hbs
- Updated Python scripts to use 'historical' instead of 'hkd_historical'
- Added all 16 missing EU official languages with translations:
* Bulgarian (bg), Croatian (hr), Czech (cs), Danish (da)
* Estonian (et), Finnish (fi), Greek (el), Hungarian (hu)
* Irish (ga), Latvian (lv), Lithuanian (lt), Maltese (mt)
* Romanian (ro), Slovak (sk), Slovenian (sl), Swedish (sv)
- Now supports all 24 EU official languages
- Removed all HKD routes (/en, /zh-cn, /zh-hk) from index.js
- Removed HKD locale files (en.json, zh-cn.json, zh-hk.json)
- Removed HKD calculation files (calculate.js, btcpoll.js, updaterate.js from old version)
- Removed HKD historical data files (hkd_historical, hkd_historical_dedup)
- Renamed EUR-specific files to standard names:
- calculate-eur.js -> calculate.js
- btcpoll-eur.js -> btcpoll.js
- updaterate-eur.js -> updaterate.js
- eur_historical -> historical
- Updated all locale files to reference 'historical' instead of 'eur_historical'
- Updated default route to redirect to /en-eur instead of /en
- Updated GitHub Actions workflow to only run EUR data updates
- Updated all references in code to use renamed files
This creates a clean EUR-only implementation ready for deployment at eursat.eu
- Created EUR calculation module (calculate-eur.js) for EUR-based satoshi calculations
- Created btcpoll-eur.js to fetch and store EUR historical data from CoinGecko API
- Added EUR historical data file structure (public/eur_historical)
- Created locale files for 8 European languages (English, German, French, Spanish, Italian, Dutch, Portuguese, Polish)
- Updated index.js with EUR routes for all language variants (/en-eur, /de, /fr, /es, /it, /nl, /pt, /pl)
- Made template (sats.hbs) dynamic to support both HKD and EUR currencies with configurable exchange rates
- Updated template to support up to 7 language links for EUR version
- Added updaterate-eur.js for GitHub Actions to update EUR data daily
- Updated GitHub Actions workflow to run both HKD and EUR data updates
- Updated all locale files (HKD and EUR) with data_file, rate_field, and exchange_rate parameters
This implementation allows the site to work with EUR currency and supports translations
to all major European languages, preparing for deployment at eursat.eu domain.