Commit Graph

195 Commits

Author SHA1 Message Date
Solderpunk 62972c0228 Restore cert prompt functionality. 2023-11-18 19:27:42 +01:00
Solderpunk 2a70985176 General tidy-up of entire av98.py file.
Most a matter of rearranging the order of methods to flow
sensibly, as well writing or updating docstrings, getting rid of
old unused return values, and fixing a few very minor defects.
2023-11-18 15:59:36 +01:00
Solderpunk 247f01e3e7 Update bookmarks to reflect permanent redirects upon exiting. 2023-11-18 14:23:56 +01:00
Solderpunk de7e5dc254 Factor out client certificate management into its own class/file. 2023-11-18 14:22:32 +01:00
Solderpunk 607223c25a Get real persnickety about nice option/blackbox alignment. 2023-11-17 20:08:48 +01:00
Solderpunk a9b34278a8 Don't hardcode black box spacing values. 2023-11-17 19:59:12 +01:00
Solderpunk 4f354ab291 Nicely align setting names and values. 2023-11-17 19:56:47 +01:00
Solderpunk bd7c5c2110 Log network errors a little more carefully. 2023-11-17 19:44:06 +01:00
Solderpunk 71f8a3dc86 Gracefully handle requests for file:// URLs which point at a directory. 2023-11-16 19:18:30 +01:00
Solderpunk 0ce09f37a6 Gracefully handle requests for file:// URLs where the file does not exist. 2023-11-16 19:14:22 +01:00
Solderpunk 681b11b8a4 Include local file and cached resource handling inside nice try/except error printing. 2023-11-16 19:13:20 +01:00
Solderpunk 50c43c75b4 Provider progress animation when downloading files > 100 KiB. 2023-11-15 19:46:01 +01:00
Solderpunk f78b6ff780 Move handling of permanent redirects inside of _fetch_over_network(). 2023-11-15 19:45:36 +01:00
Solderpunk 9e2cce7ce0 Print full tracebacks from exceptions when debugging is enabled. 2023-11-15 19:38:45 +01:00
Solderpunk 23b0597b6d Update email address and copyright years. 2023-11-15 19:38:13 +01:00
Solderpunk 67729fb711 Count redirects in black box recorder. 2023-11-15 18:40:48 +01:00
Solderpunk 480f2cc15f Rejig how do_bookmark() handles an argument to simplify go_to_gi(). 2023-11-15 18:29:52 +01:00
Solderpunk d2fe381c3e Change Cache to use a TemporaryDirectory for its storage to
ensure and simplify thorough cleanups upon shutdown.

Thanks to Ghost for making me aware of this possibility!
2023-11-15 18:21:11 +01:00
Solderpunk 048b04bed2 Extensively refactor the way temporary files are used.
Instead of littering /tmp with one file per download plus one per
rendered gemtext file, just reuse the same two files over and
over.  If enabled, caching creates separate copies.

Pretty sure this solves Issue #35, but I'll test and close that
after also improving the use of cache files...
2023-11-15 18:06:33 +01:00
Solderpunk 713616d556 Refactor of networking logic.
1. Move client certificate handling stuff inside of _send_request().
2. Change _fetch_over_network() to not be recursive, by just looping
   through calls to _send_request().  This facilitates moving the
   redirect-tracking state inside _fetch_over_network(), instead of
   keeping it in GeminiClient.
3. Also allow _fetch_over_network() to save response to a provided
   filename, and use this to implement do_save(), rather than
   _go_to_gi().  This avoids the need for awkward gymnastics with
   the internal state.
2023-11-14 19:40:40 +01:00
Solderpunk 01da844141 Pull response parsing inside of _send_request(). 2023-11-14 08:56:39 +01:00
Solderpunk 7f1aa5cbf3 Remove unused imports. 2023-11-14 00:38:00 +01:00
Solderpunk 33e66b439b Test for saveability against a fetched GI, not a tempfile. 2023-11-14 00:36:43 +01:00
Solderpunk d689cbd04f Fix _get_active_tmpfile to handle local file GIs. 2023-11-14 00:35:47 +01:00
Solderpunk 3aedd549e5 Remove unecessary duplication of handling code between _handle_gemtext() and _go_to_gi(). 2023-11-14 00:33:48 +01:00
Solderpunk e4a44679dc Fix saving of local files. 2023-11-14 00:29:59 +01:00
Solderpunk 588d599cb4 Add actual support for reading local files, use it for bookmarks. 2023-11-14 00:15:32 +01:00
Solderpunk c6886d7eb9 Don't clutter go_to_gi() with error logging. 2023-11-13 23:58:12 +01:00
Solderpunk 053dcb7254 Factor out certificate validation into its own class/file. 2023-11-12 15:36:54 +01:00
Solderpunk 79a6187eac Restore debugging output from cache using logging module. 2023-11-12 15:14:05 +01:00
Solderpunk e678bca089 Factor out caching functionality into own class/file. 2023-11-12 14:49:01 +01:00
Solderpunk 87473fee1b Acknowledge contributors of recently merged PRs. 2023-11-12 14:19:23 +01:00
Solderpunk 522047a209 Merge pull request 'Pass extra information to _handle_cert_request' (#29) from govynnus/AV-98:fix-cert-request into master
Reviewed-on: #29
2023-11-12 10:37:28 +00:00
Solderpunk b9d0633f38 Merge pull request 'Add support for touring a range where the start index is bigger than the end index' (#25) from rmgr/AV-98:reverse-range into master
Reviewed-on: #25
2023-11-12 10:33:10 +00:00
Solderpunk 24b02327b0 Merge pull request 'Add support for http/https -> gemini proxy' (#24) from rmgr/AV-98:http into master
Reviewed-on: #24
2023-11-12 10:28:52 +00:00
Solderpunk d5666c9c19 Merge pull request 'Swap GUS for geminispace.info' (#36) from sario528/AV-98:search-fix into master
Reviewed-on: #36
2023-11-12 10:22:39 +00:00
Solderpunk a1cb220113 Merge pull request 'improve compatibility with Python 3.10' (#40) from nic/AV-98:master into master
Reviewed-on: #40
2023-11-12 10:18:29 +00:00
Aleksey Ryndin 22c7efce7c Fix: ValueError if MIME is empty string (like a #20) 2023-08-27 16:49:36 +03:00
Nic Waller 6ee2a0716d improve compatibility with Python 3.10 2022-06-29 20:57:34 -07:00
sario528 5dfe62fc63
Swap GUS for geminispace.info 2021-04-15 05:04:58 -05:00
Callum Brown 92da876795 Pass extra information to _handle_cert_request
This fixes a bug introduced in f45630 when handling a certificate request was
factored out of _fetch_over_network.
Also make the options consistent in terms of grammar.
2021-01-03 11:07:22 +00:00
rmgr ab913ebf54 Add support for touring a range where the start index is bigger than the end index 2020-09-15 20:19:32 +09:30
rmgr 20395cb826 Add support for http/https -> gemini proxy 2020-09-15 20:02:29 +09:30
Solderpunk 129c56c1d4 Fix another hasty cache hack bug. 2020-09-03 21:21:04 +02:00
Solderpunk ba0f707669 Ignore the cache when reloading a page. 2020-09-01 23:27:59 +02:00
Solderpunk 67f9c662b3 Add option to disable caching. 2020-09-01 23:11:55 +02:00
Solderpunk 545d5f917d Count cache hits in black box output. 2020-09-01 21:14:17 +02:00
Solderpunk f45630450f Make sure early terminations of _fetch_over_network happen via an exception, not by returning None. Factor out certificate handling interface. 2020-08-31 21:18:15 +02:00
Solderpunk 4e8f3dcd05 Fix variable name bug introduced by hasty hacking of cache system. 2020-08-31 21:17:06 +02:00
Solderpunk 08c60e202b Turn some magic numbers into constants. 2020-08-30 23:17:21 +02:00