1
0
Fork 0
Commit Graph

64 Commits

Author SHA1 Message Date
cage 29c09553d1 -[gemini] removed loop when going back in history.
when follownig  a redirect  both the original  (the redirect)  and the
actual URI was saved in the history.   So if an user, after followed a
redirect, tried to go back would reach the same redirect, this generated
a loop.
2021-04-28 20:56:37 +02:00
cage 540dea6825 - [gemini] ensured tail call when downloading a non-text file. 2021-04-10 19:15:06 +02:00
cage 6786d48f6d - rewritten rendering of text in message window
i got rid of slot support-text in message-window, so that class does
  not maintain a state.

- changed behaivour of split-line
  (split-line (format nil "~2%")) ; => ("" "")

  That is an emtpy line is returned as empty string and not skipped
  Thanks to people from IRC and cl-ppcre maintainer for help!

- [breaking changes] changed 'hooks:*before-prepare-for-rendering-message*
  with 'hooks:*before-rendering-message-text*.
2021-04-10 13:52:56 +02:00
cage ca2ace2551 - discouraged use of slot 'rows' for 'row-oriented-widget', used API instead. 2021-04-08 15:13:31 +02:00
cage 9572f2a917 - changed 'source-text' to 'support-text'. 2021-04-05 17:33:16 +02:00
cage f1c8ec0ec1 - fixed crash when 'contains-clsr' is called
This function called cl-ppcre:create-scanner  but if the argument to
  this function can not be interpreted  as a valid regex (e.g "["), an
  error is signalled.

  This error is now captured and the string passed to 'create-scanner'
  is used as a mere sequence not a regular expression.

- [gemini] fixed bug that prevented a page to be reloaded;
- [gemini] use cache, if possible, when opening a gemini url.
2021-04-03 11:14:58 +02:00
cage 61c39b6c62 - moved to an internal wrapping of 'mkstemp' to allow extensions in filename;
- [gemini] rendering all stream with MIME type "text/*" with this program.
2021-04-01 17:08:42 +02:00
cage 9dd77c549d - [gemini] allowed going back in history also when exploring a local filesystem. 2021-03-27 10:59:10 +01:00
cage 16c131e952 - used 'load-gemini-url', when possible, to avoid duplication. 2021-03-27 09:33:55 +01:00
cage db34a2f958 - [gemini] added feature: loading local gemini files from command line (switch: '-o'). 2021-03-27 09:19:13 +01:00
cage 0c2398c184 - fixed hex digit parsing from iri parser;
- added more debugging messages;

- fixed formatting.
2021-03-15 19:28:07 +01:00
cage b73f982408 - reverted method of rendering of text in message window to a
line-based one.

The old method that packed text got from gemini stream in single event
was ugly and blocked the UI.

This version  revert to a line  by line rendering but  it is optimized
and does not gets slow with the size of the text the window holds.
2021-03-09 11:32:09 +01:00
cage 8230056152 - [gemini] made fetching of favicon opt-in
by default tinmop  will not fetch favicon.txt  anymore, this feature
  must be enabled by user using a configuration directive.
2021-02-21 12:23:01 +01:00
cage ae82420cfe - [gemini] in gemini-client:request-dispatch signal a condition
('not-implemented-error') instead  of doing nothing when  a response
  in not handled (i.e. no function for that response type exists).
2021-02-09 19:32:48 +01:00
cage 4f4a3f4476 - [gemini] ensured 'gemini-viewer:request' respects the 'enqueue'
argument when making recursive call to itself.
2021-02-07 13:50:52 +01:00
cage dc9e23e3c0 - [gemini] rewritten gemini-viewer:request using gemini-client:request-dispatch machinery;
hopefully this should made the function easier to read (by human) and extend.
2021-02-07 13:50:52 +01:00
cage 08c803bfba - replaced local function 'fetch-cached-certificate' with a global one. 2021-02-07 13:50:52 +01:00
cage e32358c6d5 - replaced local function with a global one. 2021-02-07 13:50:52 +01:00
cage 6a1ea415f7 - [gemini]
- added some messages to debug protocol;
  - asking  for query  event  got minimum  priority  to prevent  being
    hidden  by informational  messages on  the command  line (e.g  the
    message that  inform the  user that  the client  is going  back in
    history);
  - always stream contents that are repsonses to a query;
  - added      gemini-client:request-dispatch       and      rewritten
    gemini-client:slurp-gemini-url based on the former.
2021-02-07 13:50:40 +01:00
cage 1c6defddf1 - fixed indentation of 'gemini-viewer:request'. 2021-02-02 20:58:23 +01:00
cage d0a9b6583a - [gemini] encoded the input string before making the request. 2021-02-02 20:57:30 +01:00
cage 17401274b5 - [gemini] added support for favicon.txt
the       implementation       more       or       less       follow
  gemini://mozz.us/files/rfc_gemini_favicon.gmi but it does render the
  first  character  of   the  file  instead  of   checking  for  emoji
  characters.
2021-01-28 15:35:26 +01:00
cage ecec01f285 - [gemini] made slurp-gemini-url works with redirect;
- [gemini] made some refactoring for building redirect IRIs.
2021-01-23 16:25:37 +01:00
cage 848ed6a043 - [gemini] fixed test for checking valid cached value for
certificate/key pair.

  The function  to find a  cached certificate/key  or create a  new pair
  retuns a multiple value.

  I was using multiple-value-list  for getting the pairs certificate/key
  from   said  functions.    Then  i   was  checking   the  results   of
  'multiple-value-list' for null values to get the non correct pair, but
  that expression never return nil (was returning '(nil) instead).

  This was breaking the client autentication.
2021-01-17 19:13:33 +01:00
cage edd1aba2fe -[gemini] added urls to history if document is loaded from cached content too. 2021-01-03 11:28:54 +01:00
cage 94a8e29f84 - [gemini] added a command to refresh a page;
- refactoring some code to add the above command.
2020-12-29 12:36:22 +01:00
cage 9fd958d12b - fixed IRI and URI parser;
- taken into account fragment of IRI;
- added more IRI and URI test;
- passes all the client tests.
2020-12-25 18:23:32 +01:00
cage c9d9559f1a - changed 'uri' to 'iri' where does makes sense to me. 2020-12-17 13:56:07 +01:00
cage bafa0c596b - [gemini] fixed bugs that prevented the same IRI to be opened multiple-time. 2020-12-17 13:12:16 +01:00
cage 2138021412 - [gemini] switched from URI to IRI;
- fixed wrong slot symbol.
2020-12-14 13:58:28 +01:00
cage 62394d319a - removed 'uri-' prefix from 'uri' slots names. 2020-12-13 15:29:04 +01:00
cage 1c1c94a56a - [gemini] prevent overwriting of TOFU warning by other messages. 2020-11-01 18:01:32 +01:00
cage 664e8212ce - replaced quri with an internal parser;
- [gemini] the client passes the torture test again;

- fixed event test.
2020-10-25 19:58:05 +01:00
cage 1ef820062a - removed debug code. 2020-10-24 14:23:13 +02:00
cage 9adf79a65b - [gemini] fixed a regression, display again source of a gemini file. 2020-10-24 14:22:09 +02:00
cage a8b5524fcb - [gemini] use named parameter in recursive requests. 2020-10-24 14:05:27 +02:00
cage 269a08718c - [gemini] implemented a draft of a client authentication (via TLS certificates). 2020-10-23 20:57:17 +02:00
cage 497efa6a92 - [gemini] starting using certificates;
- removed hardcoded 'xdg-open' binary name.
2020-10-11 18:22:07 +02:00
cage 911c80dc25 - [gemini] remove a bottleneck when download of a gemini page is completed;
Instead  of process  multiple event  with  a single  line to  render
  compact all the lines in a single event and, then, process it.
2020-10-06 19:15:23 +02:00
cage 02ce8fd187 - [gemini] remove all pending rendering events when quitting. 2020-09-30 18:24:58 +02:00
cage d08f4a67d1 - [gemini] fixed command: back in history. 2020-09-12 14:35:54 +02:00
cage 0cfdb8844e - [gemini] ensure just a single gemini file is in rendering state at
the same time;
- [gemini] add  a newline to  data before  parsing a gemini  file only
  when needed (thre is no one at the end);
- commented and improved some regular expressions for coloring.
2020-09-12 10:23:26 +02:00
cage f6744dad4a - [gemini] clear the streams window before redrawing when refreshing the window's contents. 2020-09-11 15:40:25 +02:00
cage c5118d46a6 - changed GPL comment headers. 2020-09-06 11:32:08 +02:00
cage 75d81ec708 - chats can be fetched, via UI, and printed on window. 2020-09-05 17:02:00 +02:00
cage f7d025ea2a - [gemini] added a window to manage all the gemini streams opened. 2020-08-30 15:38:05 +02:00
cage 1c3a3d9bff - [gemini] starting download thread in ':rendering' status. 2020-08-29 11:13:29 +02:00
cage 4941c21d94 - [gemini] added slot 'status-stream'.
This will allow to enqueue multiple documents download.
2020-08-29 10:53:52 +02:00
cage 0bb4406be7 - [gemini] wrapped non gemini files download's thread.
Also added a few of useful slotslike temporary file path and number of
  bytes downloaded so far.
2020-08-28 17:20:44 +02:00
cage 8ae83a2323 - added 'gemini-stream' class.
Starting  wrapping  streaming  of   gemini's  data  using  hi  level
  structures  (this way  we can  associate a  for aecha  stream), this
  could be useful to let the user start or stop the stream or open the
  data downloaded so far.
2020-08-27 17:51:40 +02:00