tldr-pages / tldr-python-client

Python command-line client for tldr pages
https://pypi.org/project/tldr/
MIT License
596 stars 93 forks source link

Pages that are only in common, always force an https connection #118

Open masoudd opened 4 years ago

masoudd commented 4 years ago

common vs specific platform

Take for example the command: tldr tldr on linux (Let's assume I already have the file common/tldr.md in my cache directory and it is newer than TLDR_CACHE_MAX_AGE).

One might reasonably assume that no https requests will be made. But in fact, the program first looks for linux/tldr.md, since it's not in the cache, it first requests it from PAGES_SOURCE_LOCATION/linux/tldr.md which returns a 404. then after all this, it looks for common/tldr.md and shows the contents.

Solution

I suggest checking the common cache directory before making an https connection for platform specific files. Or to avoid changing default behavior, at least put this behavior behind an option like --common-before-net

zlatanvasovic commented 4 years ago

https://github.com/tldr-pages/tldr/blob/master/CLIENT-SPECIFICATION.md says nothing about it, but we will take a look. Your reasoning makes perfect sense.

zlatanvasovic commented 4 years ago

@MasterOdin Wanna take a look at this?

MasterOdin commented 4 years ago

I would probably just make it the default that we construct the list of possible page locations, check if the page exists in any of them, and if it does, display it (assuming page is not too old), else start making http calls. I plan to work on this on a broader clean-up of the process to determine this information (as well as start adding some unit tests to the library).