Wikipedia icon indicating copy to clipboard operation
Wikipedia copied to clipboard

Fix undefined behaviour for pages with numbers as title (e.g 7)

Open phiph-s opened this issue 1 year ago • 4 comments

When requesting the page "23", it is expected to receive this page: https://en.wikipedia.org/wiki/23 Expected behavior: wiki.page("23") -> https://en.wikipedia.org/wiki/23 wiki.page(23) -> https://en.wikipedia.org/wiki/Assistive_technology

Actual behavior: wiki.page("23") -> https://en.wikipedia.org/wiki/Assistive_technology (which has ID 23) wiki.page(23) -> https://en.wikipedia.org/wiki/Assistive_technology

So there is no way to get the page for the number 23 or for example years like 1939, sine they will be treated as IDs.

It is checked whether an ID or a Title is given by isNaN(title) in utils.ts, the String "7" will be handled like a page ID. Instead check the actual type of what the function receives: return typeof title === 'string' || title instanceof String;

New behavior: wiki.page("23") -> https://en.wikipedia.org/wiki/23 wiki.page(23) -> https://en.wikipedia.org/wiki/Assistive_technology

-> Supply a number, get a page by ID, supply a string, get the page by title

phiph-s avatar Jul 02 '23 10:07 phiph-s