dezoomify-node.js fails to encode urls

Open Beginner friendly
#128 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
76/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
javascript, node.js
Domain
cli

Research direction

Start with node-app/dezoomify-node.js, especially line 40 where tile URLs are requested, and compare them with the encoded initial URL. Reproduce the issue using the command and URL in the report, then verify that tile requests encode the path correctly and no longer produce the image-loading error.

Written by the indexing model from the issue text.

Description

The cli script dezoomify-node.js fails to encode the urls that point to the tiles, thus resulting in the following error:

% node dezoomify-node.js "http://www.theeuropeanlibrary.org/tel4/ecloud?iiif=/data-providers/TheEuropeanLibrary/records/3000096325245/representations/presentation_images/node-2/image/SBB/Berliner_Börsenzeitung/1872/07/19/F_000_332_0/F_SBB_00007_18720719_000_332_0_001/info.json" out.jpg

0% : Found image. Trying to open it...
1% : Sent a request in order to get informations about the image...
0% : The dezoomer is trying to locate the zoomable image...
0% : Launched dezoomer...
Requested: http://www.theeuropeanlibrary.org/tel4/ecloud?iiif=/data-providers/TheEuropeanLibrary/records/3000096325245/representations/presentation_images/node-2/image/SBB/Berliner_B%C3%B6rsenzeitung/1872/07/19/F_000_332_0/F_SBB_00007_18720719_000_332_0_001/info.json
0% : Preparing tiles load...
file:///home/matt/dezoomify/zoommanager.js:62
        UI.ctx.drawImage(tileImg, x, y);
               ^

Error: Image given has not completed loading
    at Object.UI.drawTile (file:///home/matt/dezoomify/zoommanager.js:62:9)
    at Request.tileLoaded [as _callback] (/home/matt/dezoomify/node-app/dezoomify-node.js:51:10)
    at Request.self.callback (/home/matt/dezoomify/node-app/node_modules/request/request.js:188:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:194:7)
    at Request.<anonymous> (/home/matt/dezoomify/node-app/node_modules/request/request.js:1171:10)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:191:7)
    at IncomingMessage.<anonymous> (/home/matt/dezoomify/node-app/node_modules/request/request.js:1091:12)
    at Object.onceWrapper (events.js:293:19)

The initial url is encoded properly, but the tile url that is received from the info.json file is not. In other words, line 40 of dezoomify-node.js requests unencoded urls that look like this:

http://iiif.europeana.eu//data-providers/TheEuropeanLibrary/records/3000096325245/representations/presentation_images/node-2/image/SBB/Berliner_Börsenzeitung/1872/07/19/F_000_332_0/F_SBB_00007_18720719_000_332_0_001/4864,7424,256,256/256,256/0/default.jpg

I do not know whether this is related to issue #69 ; the error messages are similar.

Dominant language
Rust
Stars
823
Forks
87
Avg merge
4h 45m
Merged PRs (30d)
81

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from lovasoa/dezoomify

All issues in lovasoa/dezoomify

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.