diff --git a/src/initialize_mdbnomics.m b/src/initialize_mdbnomics.m index da46695fffaa6e44863891e78b51a73221f22c54..633caac89d0fa320d1ef7a50817aa05b5d2af07a 100644 --- a/src/initialize_mdbnomics.m +++ b/src/initialize_mdbnomics.m @@ -50,14 +50,16 @@ end P = cellfun(@(c)[mdbnomics_src_root c], p, 'uni', false); addpath(P{:}); -% Check minimal MATLAB requirements. -if matlab_ver_less_than('8.5') - error('The minimum MATLAB requirement of this package is R2015a.'); -end +if ~isoctave() + % Check minimal MATLAB requirements. + if matlab_ver_less_than('8.5') + error('The minimum MATLAB requirement of this package is R2015a.'); + end -% Add jsonlab if MATLAB version < R2016b -if matlab_ver_less_than('9.1') - addpath([mdbnomics_src_root '/../contrib/jsonlab']); + % Add jsonlab if MATLAB version < R2016b + if matlab_ver_less_than('9.1') + addpath([mdbnomics_src_root '/../contrib/jsonlab']); + end end mdb_options.api_base_url = 'https://api.db.nomics.world'; diff --git a/src/utils/fetch_series_page.m b/src/utils/fetch_series_page.m index 8ecfc352b76dd9655bc8a814aa7f2508253eb579..94d73b0f6fde62aff29081ae8462f53fd9627bb0 100644 --- a/src/utils/fetch_series_page.m +++ b/src/utils/fetch_series_page.m @@ -30,7 +30,7 @@ function response_json = fetch_series_page(series_endpoint_url, offset) % You should have received a copy of the GNU General Public License % along with Dynare. If not, see <http://www.gnu.org/licenses/>. -if contains(series_endpoint_url, '?') +if strfind(series_endpoint_url, '?') series_page_url = sprintf('%s%soffset=%i', series_endpoint_url, '&', offset); else series_page_url = sprintf('%s%soffset=%i', series_endpoint_url, '?', offset); @@ -38,18 +38,18 @@ end options = weboptions('ContentType','json'); try - response_json = webread(series_page_url, options); + if isoctave() + disp(webread(series_page_url, options)) + response_json = jsondecode(webread(series_page_url, options)); + else + response_json = webread(series_page_url, options); + end catch ME error_message = ['Could not fetch data from URL: ' series_page_url ' because: ' ME.identifier]; error(error_message); end -if isempty(response_json.errors) - series_page = response_json.series; - if ~isempty(series_page) - assert(series_page.offset == offset); - end -else +if ~isempty(response_json.errors) error_ = response_json.errors; if ~isempty(error_.dataset_code) && isempty(error_.series_code) error('%s for: %s. Please revise your input for dataset code.', error_.message, error_.dataset_code);