vss-devel / zimmer

nodejs ZIM file creator
MIT License
20 stars 6 forks source link

Using wikizimmer.js on a whole wiki #13

Closed pfgp closed 5 years ago

pfgp commented 5 years ago

I have a whole wiki I'm trying to turn into a .zim file. My understanding is I use the wikizimmer.js file first, which downloads the content and stores it into a directory, and then I use zimmer.js on the directory.

Since I'm trying convert all my pages, do I run just this one command: wikizimmer.js https://sub.domain.tld/wiki/Main_Page

Or do I need to run it for every page in the wiki: wikizimmer.js https://sub.domain.tld/wiki/Main_Page wikizimmer.js https://sub.domain.tld/wiki/One_article wikizimmer.js https://sub.domain.tld/wiki/Another_one wikizimmer.js https://sub.domain.tld/wiki/Something_else ...

And how do I know if it worked. I ran just the first line and got the following messages in my standard error output:

(node:4664) UnhandledPromiseRejectionWarning: # (node:4664) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2) (node:4664) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

vss-devel commented 5 years ago

wikizimmer.js https://sub.domain.tld/wiki/

should be fine, but it's better to start from a page with some content: wikizimmer.js should pick up some page formatting from there.

As for your error report, then you need to post more of the output: one you've quoted doesn't have any meaningful information.

Someone had reported https://github.com/vss-devel/zimmer/issues/12#issuecomment-494265944 that the script fails if the wiki uses HTTPS with a self signed certificate. If that's the case, please consult with the README for a workaround.

I wonder if your wiki is publicly available.

pfgp commented 5 years ago

The actual URL I'm using is: https://en.permawiki.org/wiki/Permaculture

The website is publicly available and uses HTTPS through Let's Encrypt.

As far as the error, that's the actual copied and pasted error message. Nothing redacted or omitted.

vss-devel commented 5 years ago

It turns out that while this wiki content is publicly available, its API requires an authentication. For example: https://en.permawiki.org/w/api.php?action=query&meta=siteinfo&siprop=general%7Cnamespaces%7Cnamespacealiases%7Cstatistics gives:

{ "error": { "code": "readapidenied", "info": "You need read permission to use this module.", "*": "See https://en.permawiki.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce&gt; for notice of API deprecations and breaking changes." } }

The wikizimmer.js currently needs the wiki's API publicly available as well. It is not able to log into a wiki. Unfortunately I can't tell if and when it would be possible. I'm sorry to give you bad news.

pfgp commented 5 years ago

Thank you, that was very helpful. I do have a namespace that is only available to logged in users. I didn't realize that was going to be an issue since I wasn't making a zim of that space.

This is my first time making zim files so I didn't know what to expect and I couldn't move past that error message.

Until/if the script ever supports credentials, I'll just temporarily remove the that access restriction. Thank you again.

vss-devel commented 5 years ago

BTW The main page at your wiki.

At the browser the https://en.permawiki.org/ URL gives the https://en.permawiki.org/wiki/Permaculture#Intro page.

I wonder where you did confiqure this as wikizimmer can't pick this up. It believes that the main page is the "Main Page" as https://en.permawiki.org/wiki/MediaWiki:Mainpage contains Main Page (as per https://www.mediawiki.org/wiki/Manual:Main_Page).