curiousdannii / parchment

The Interactive Fiction web app
https://iplayif.com
MIT License
421 stars 60 forks source link

Allow the proxy server to open zip files and return a single file #83

Closed dfabulich closed 2 years ago

dfabulich commented 2 years ago

There are a number of games on IFDB that don't have a "Play On-line" button because their primary game link points to a ZIP file on IF Archive.

https://ifdb.org/viewgame?id=yutkd9u0oeog4br1 https://ifdb.org/viewgame?id=1aliwzro4e48mdlt https://ifdb.org/viewgame?id=u6wzkckne4zsafyl

Note that IFDB even knows the name of the game file within the ZIP.

I think it would be a bit excessive to have the Parchment client-side code include an unzip tool, but it would be cool if the proxy server could accept certain URL parameters to download a zip, extract it, and return the file within.

Maybe something like this: https://proxy.iplayif.com/proxy/?url=https://ifarchive.org/if-archive/games/competition2017/Eat%20Me/Eat%20Me/Gblorb.zip&game=Eat_Me.gblorb

Then IFDB could link to: https://iplayif.com/?story=https%3A//proxy.iplayif.com/proxy/%3Furl%3Dhttps%3A//ifarchive.org/if-archive/games/competition2017/Eat%2520Me/Eat%2520Me/Gblorb.zip%26game%3DEat_Me.gblorb

curiousdannii commented 2 years ago

I've thought about this before. The current plan is for it to be implement on the archive's side though.

dfabulich commented 2 years ago

@erkyrath can you comment on IF Archive support for unzipping files on the archive's side? I'm prepared to write some code here to fix my IFDB issue, if someone can point me at the right repo.

erkyrath commented 2 years ago

Dannii has a plan for that but we've been backburnering it for over a year now. Is it time to get it moving? I'd love to see this happen.

(The plan would also encompass zip files with directly playable games, such as Twine or Parchment-included zips.)

dfabulich commented 2 years ago

Somebody tell me the plan and I'll tell you how/if I can help!

curiousdannii commented 2 years ago

This is handled by the Unboxer: https://unbox.ifarchive.org/