1
0
Fork 0
Commit Graph

951 Commits

Author SHA1 Message Date
cage 9e7feacf8e - [GUI] started a news thread where getting gemini stream's data.
- [GUI] added theming to gemtext.
2023-02-25 11:41:01 +01:00
cage 8278ea485e - rearranged columns of gemlog subscriptions.
- fixed typos in init file.
2023-02-24 11:21:57 +01:00
cage 86adc4638d - added functions to set meesages on the info-bar. 2023-02-22 15:58:30 +01:00
cage 393b4b0d29 - added 'etc/gui.conf' to the file to be distributed;
- [GUI] added gemtext window;
- [GUI] fixed loading of GUI specific configuration file;
- [GUI] completed parsing of configuration values (e.g. color names are converted to corresponding TK color codes).
2023-02-21 20:21:54 +01:00
cage 8deab8f098 - [RPC] added iri for failed stream when signalling an error. 2023-02-19 16:20:10 +01:00
cage a4f6e87765 - [GUI] removed useless information (for users) when showing errors (RPC errors contained the whole request as sexp).
- [GUI] removed warning about missing variable 'gui-goodies:*gui-server*' in file containing the gui event loop.
2023-02-19 16:15:10 +01:00
cage cefbe59be6 - [GUI] bound the wish interpreter handle to a special variable so that the gui event loop can reference it and call, without errors, nodgui functions. 2023-02-19 15:45:22 +01:00
cage d040aec005 - [gemini] improved format control for protocol error messages;
- [GUI] logged RPC request error instead of opening a dialog message when in debug mode;
- [GUI] added a draft of callback for opening a gemini address.

- [RPC] learnt that (error "string" arg1 arg2 ... argn), is similar to
  (error (format nil  "string" arg1 arg2 ... argn))  so (error (format
  nil "~a" "~c"))  is equal to (error "~c"); =>  format error (missing
  argument for format string)!
2023-02-19 14:52:53 +01:00
cage 377f42fa5c - [RPC] moved request enqueue macros to the GUI loop package;
- [GUI]  ensured  the gui  events  loop  thread is  terminated  before
  quitting the server and the program.
2023-02-19 12:57:10 +01:00
cage 8ad6b368ec - [GUI] tracked slot name changing in nodgui. 2023-02-18 14:57:26 +01:00
cage 811c3c9824 - [GUI] bound return event for the address bar to a dummy function. 2023-02-18 14:28:57 +01:00
cage 9802b18dc9 - [GUI] added 'up' button. 2023-02-18 13:02:56 +01:00
cage f9240da5fb - converted namestring to pathname in a couple of functions. 2023-02-18 12:42:15 +01:00
cage 8cc47e9dc0 - prevented connecting to a pleroma instance when running the TUI in gemini exclusive mode. 2023-02-17 18:31:49 +01:00
cage 00a3b45dcd - prevented connecting to a pleroma instance when loading a script in gemini exclusive mode. 2023-02-17 18:16:34 +01:00
cage 81868075b4 - made 'about' help window, modal. 2023-02-17 15:05:09 +01:00
cage 801a7e8b3f - [GUI] used the new autocomplete widget of nodgui. 2023-02-17 14:30:37 +01:00
cage 4a9e41a307 - [kami] prevented landing on the debugger if communicating with a kami
server fails.
2023-02-14 21:17:46 +01:00
cage 2b416820a1 - [RPC] added indices of matching chars in string that complete the
IRI in 'complete-net-address'

  This data  would be  useful to  highlight parts  of the  string that
  matches the criteria to complete  the user suggestions (typed on the
  address text entry).
2023-02-12 11:41:33 +01:00
cage 65ed6b9425 - flush the socket buffer to ensure the successful autorization message is delivered to the browser. 2023-02-11 21:22:36 +01:00
cage 9e7966f697 - input dialog reurn :canceled if the user pressed the 'cancel' button;
- fixed an infinite loop when the user chose to cancel saving the URI to autorize the client.
2023-02-11 21:01:58 +01:00
cage 5ee623d312 - fixed default callback in input dialog. 2023-02-11 20:55:39 +01:00
cage a973a8fbe1 - [RPC] fixed server stopping;
- [GUI] notify RPC errors to the user using the GUI.
2023-02-10 12:57:08 +01:00
cage 7b415e485a - [GUI] added address autocomplete;
- added optional argument to specify pushing function in: 'program-events:push-function-and-wait-results'.
2023-02-09 17:04:29 +01:00
cage 282b36d712 - [GUI] started connecting JSON API with GUI;
- [RPC] reworked 'slurp-gemini-stream' to use events queue;

- [GUI] fixed dispatching of events
2023-02-09 16:28:53 +01:00
cage abef1cfe33 - added some functions to build the GUI. 2023-02-08 13:02:26 +01:00
cage 2a96ff70ef - [GUI] added a few icons. 2023-02-05 14:57:40 +01:00
cage 801829b528 - instruct makefile to copy modules, script and icons in differents subdirectory when installing the package. 2023-02-05 14:41:03 +01:00
cage c0e2b43d3e - [GUI] added a bit of scaffolding for the interface;
- [GUI/RPC] added  method to start and retrieve a gemini stream's data.
2023-02-05 14:07:13 +01:00
cage 90ae6193e8 - [JSON-RPC] added the request (that triggered the error) to the data field of an error response. 2023-02-04 11:31:36 +01:00
cage ba5ddb6d7a - made the event-queue optionally blocking (block the caller thread if empty).
- added parent window to the dialog.
2023-02-02 16:10:08 +01:00
cage 2618b50d42 - updated italian translation;
- added message to inform about the downloading of notifications.
2023-02-02 15:01:20 +01:00
cage 7420b8fc26 Merge branch 'master' into add-gemini-gui 2023-02-01 15:04:29 +01:00
cage 13286e44e0 - used the brand new dialog window made available from croatoan. 2023-01-30 20:49:57 +01:00
cage 891651b6fa - added missing file;
- [RPC] splitted the package json-rpc-munication in two files: one in server directory and the other in the client directory.
2023-01-15 16:03:25 +01:00
cage 155cdc1117 - [GUI] added client events loop. 2023-01-15 15:56:00 +01:00
cage 045819b4a4 - [RPC] added API for generate the TOC from a gemtext;
- removed duplicated code (used the class 'box:box' instead of struct 'json-rpc-communication:box).
2023-01-15 15:54:49 +01:00
cage 3824e29171 - [gemini] used function 'maybe-notify'. 2023-01-13 16:33:22 +01:00
cage 572eb5c1b7 - [GUI] added procedures to get client configuration. 2023-01-13 16:31:54 +01:00
cage 3a0074811d - [RPC] moved struct 'box'. 2023-01-13 16:31:16 +01:00
cage 9b63978329 - [RPC] refactored public API in multiple files. 2023-01-13 16:22:22 +01:00
cage b0140d6fc6 - [RPC] fixed encoding of certificates. 2023-01-13 16:09:14 +01:00
cage 48f950af1e - [JSON-RPC] fixed macro for signal error. 2023-01-13 15:35:02 +01:00
cage cf0376e666 - [RPC] added function to close server;
- [JSON-RPC] allowed API to signal a custom 'jsonrpc-error'.
2023-01-13 15:34:01 +01:00
cage 5ce7e5c082 - [JSON-RPC] fixed tests (the error object returns the field 'data' now). 2023-01-13 14:59:44 +01:00
cage 804bf09914 - added missing parens. 2023-01-13 14:13:19 +01:00
cage 8d60b063c8 Merge branch 'master' into add-gemini-gui 2023-01-12 20:17:53 +01:00
cage 003a7a26ac - made the program respect the `open' configuration directive for when downloading MINE type "text/*"
Before this patch, the software tried to open all the text MIME type
  in the main window regardless  any setting in the configuration file
  that imposed  to use  a program to  open a file  based on  a regular
  expression (e.g. `open  "^((gemini://)|(\\.)|(/)).+txt$" with "vi"',
  did not worked).
2023-01-12 20:09:01 +01:00
cage 0e71b7a48a Merge branch 'master' into add-gemini-gui 2023-01-12 16:11:53 +01:00
cage 8b1d00817f - [RPC] added functions for managing tour links and clients certificates. 2023-01-12 16:08:10 +01:00
cage 51c4a03c2c - removed resetting of gemini parser status when downloading a text
encoded, but non-gemini, file;
- [rpc] added tour links slot for gemni window (server);
- added loading configuration file for GUI (RPC client) at start;
- refactored metadata slot thei is now used by a TUI window and the server side gemini window;
- added optional string bag parameter to 'text-utils:trim-blanks'.
2023-01-11 19:10:51 +01:00
cage f40fb786b1 - [GUI] moved server side GUI to a proper component and directory. 2023-01-06 13:55:38 +01:00
cage 746b2e01ac - [RPC] added representation of the main gemini window in the server;
- [RPC] added two IRI's history manipulation functions.
2023-01-06 13:50:33 +01:00
cage 39ad2ffad8 - [RPC] removed parsed lines from object returned by the function 'gemini-stream-info', there are more specialized functions to get those;
- [RPC] added 'gemini-all-stream-info'.
2023-01-06 12:47:20 +01:00
cage c01188e0db - [JSONRPC] added optional data field to error response. 2023-01-06 12:35:41 +01:00
cage 7fc90b428c - [JSONRPC] used a custom error when a called function fails for some reason. 2023-01-06 12:15:54 +01:00
cage 4fb9c6eb43 - [JSONRPC] included actual ID to the error response when possible. 2023-01-06 12:12:32 +01:00
cage 0215a4c173 - renamed test file. 2023-01-06 11:57:53 +01:00
cage cfb05a6ea1 - log gemini and json, debug messages even if *features* does not
contains :debug-mode;
- [RPC] fixed 'gemini-stream-info';
- [RPC] added 'gemini-stream-parsed-line-slice';
- [RPC] added error handling for 'gemini-stream-parsed-line';
- [JSON-RPC] fixed encoding of error responses.
2023-01-06 11:56:21 +01:00
cage 8c48c9a567 - prevented crash when printing a notification after deletion. 2023-01-02 19:03:36 +01:00
cage f0862e3903 - [rpc] returned an error if a gemini stream can not be foud in 'gemini-stream-info'. 2023-01-01 20:05:20 +01:00
cage 5052c21fe3 - [rpc] fixed error responses, tests passed again. 2023-01-01 19:02:30 +01:00
cage cbb447a84e - [rpc] added 'gemini-stream-parsed-line'. 2023-01-01 18:31:27 +01:00
cage a6a8b0ad8f - [rpc] fixed error handling. 2023-01-01 14:57:08 +01:00
cage 59a9b69605 - added a new command 'delete-notifications';
- retrofitted 'add-metadata-to-parsed-gemini-lines' into the main gemini parser;
- fixed json generation of parsed lines in 'gemini-stream-info'.
2023-01-01 11:11:40 +01:00
cage f1df366cba - added 'list-id' as metadata for gemini list;
- added unit tests for gemini parser.
2022-12-30 15:03:59 +01:00
cage 3114264505 - added parameter 'initialize-parser' (default to nil), to reset
parser state in 'sexp->text-rows';

- added 'add-metadata-to-parsed-gemini-lines'

  This function  will add attributes (like  ':header-group-id') to the
  sexp   representation   of   a  gemini   stream   (structure:   (tag
  ((attribute-key attribute value)...) text line) )

- [JSON-RPC API] added a couple of public API function.
2022-12-30 11:07:30 +01:00
cage a87ea3b2ae - moved macro definition on top of the file. 2022-12-29 17:34:44 +01:00
cage 685f4e4db7 - added slot 'parsed-lines' to gemini-viewer:gemini-stream,
moreover used this slots when downloading a gemini stream

  This changes means that the parsing of gemini stream is no more done
  in program events but during the downloading thread.
  See, for example the changes in: 'gemini-viewer:make-gemini-download-event'

- added a parameter to prevent notification when downloading a gemini stream
  see 'gemini-viewer:request-stream-gemini-document-thread';

- added a  more human friendly  constants for each gemini  status code
  (e.g. +success+ for code 20).

- as the gemini parser has status added a parameter ('initialize-parser') to
  'gemini-parser:parse-gemini-file' (default to nil, do not initialize);

- initialize the gemini parser when needed.
2022-12-29 17:24:53 +01:00
cage 72bb14c9d6 - added a couple of debug flags to make logging more fine-tuned. 2022-12-29 17:23:24 +01:00
cage f8bf6aa360 - [gemini] added better names for status code of a gemini response (e.g. '+20+' -> '+success+'). 2022-12-28 13:57:15 +01:00
cage fb4be7bb9f - [gui] added an actual funcion for API;
- [jsonrpc] added more information when an internal error occurred;
- added 'main:rpc-server-init'.
2022-12-27 13:19:59 +01:00
cage 432045fc52 - used a better default for slot 'local-path' to prevent crash when 'sexp->links' is called with an empty string as local-path argument. 2022-12-26 16:41:50 +01:00
cage 39878d6475 - wrapped 'babel:string-to-octets' in 'text-utils:string->octets'. 2022-12-25 12:53:07 +01:00
cage 2365707338 - refactored code in a function. 2022-12-25 12:47:41 +01:00
cage a18c63f3db - moved '+octect-type+' to 'constants' package. 2022-12-25 12:04:08 +01:00
cage b3fc8c58a3 - renamed 'main-croatoan-init' to 'main:tui-init'. 2022-12-24 14:41:11 +01:00
cage b2e7f8fd62 - added a minimal client-server interation system (using pipe).
- renamed 'main:init' to 'main-croatoan-init'.
2022-12-24 14:39:53 +01:00
cage db30d2b47d - added some scaffolding for RPC;
- added 'read-delimited-into-array'.
2022-12-23 13:23:08 +01:00
cage d937235d6c - [pleroma] added API for announcements. 2022-12-23 12:03:04 +01:00
cage 87e0a3620c - made a couple of names more consistent. 2022-12-23 12:03:04 +01:00
cage 53379fdd37 - added a json-rpc2 implementation. 2022-12-23 12:03:04 +01:00
cage 416d9356e4 - catched all errors signaled when something has gone wrong downloading the messages containing the subscribed tags. 2022-12-17 17:14:04 +01:00
cage 4b2efa5539 - removed hardcoded font spec when making an image mosaic;
- updated croatoan version.
2022-12-14 11:44:18 +01:00
cage 7924136282 - captured error that could happens when making a image mosaic from a gemini page. 2022-12-11 12:59:41 +01:00
cage 3145ee8263 - added a better name for images captions, when composing images from a gemini page. 2022-12-10 15:16:03 +01:00
cage 32169beac7 - added a pair of directives to configure montage of gemini images. 2022-12-10 15:06:48 +01:00
cage 6348e57ea2 - added docstring to 'gemini-images-montage' 2022-12-10 14:47:11 +01:00
cage 183d8c296a - added progression messages when composing images. 2022-12-10 14:44:40 +01:00
cage 47f6ec197e - updated italian translation;
- fixed error messages when collecting images.
2022-12-10 14:19:08 +01:00
cage c8b92f7eba - added command 'gemini-images-montage'. 2022-12-10 14:11:13 +01:00
cage 9efb99b234 - ensured an user is added into the the database before following them. 2022-12-09 13:39:32 +01:00
cage 185ec6aa3b - reworked a few regular expressions to fix mentions coloring. 2022-12-08 19:23:41 +01:00
cage d72ab12a8b - prevented useless percent encoding of a path. 2022-12-07 20:26:02 +01:00
cage 37d657cff5 - added a configuration directive to filter out unwanted hashtags. 2022-11-29 18:55:03 +01:00
cage ba320d849b - removed debug code. 2022-11-28 20:32:20 +01:00
cage 937d2faba5 - added a configuration directive to leave or delete mentions from the server after fetching them. 2022-11-27 13:37:50 +01:00
cage c83f21a76f - fixed declaration. 2022-11-26 12:34:48 +01:00
cage 1bfdf45ec9 - ignore errors when getting gemlog feeds data. 2022-11-25 18:46:34 +01:00
cage 66c7adab15 - prevented deletion of mentions when the program is in debug-mode;
- [gemini] prevented crash when and error getting data from TLS socket;
- prevented crash when dumping mentions.
2022-11-25 18:32:13 +01:00
cage 41a4787f16 - prevented crash when calling resync-rows-db of a null object. 2022-11-24 17:28:31 +01:00
cage 4b4f60269a - prevented crash when opening empty chat windows;
- fixed refreshing of chats.
2022-11-21 20:30:58 +01:00
cage 44c2509201 - removed empty line. 2022-11-20 11:30:19 +01:00
cage 89e8c73b4e - [gemini] prevented the script 'generate-gemlog.lisp' to export files that do not match .gmi extension;
- fixed wrong class name when printing mentions.
2022-11-19 20:46:39 +01:00
cage 4c78a0fba7 - prevented crash when updating the thread window with a non existent status-id. 2022-11-19 10:58:52 +01:00
cage 4f24a67344 - added a configuraction directive to filter boost based on a regular expression matching the username. 2022-11-18 18:01:19 +01:00
cage 8206500f7a - added command 'print-mentions';
- highlight mentions in message window.
2022-11-17 14:03:03 +01:00
cage b710f36774 - allowed also collection of gopher address, printed on the message window, in the link window. 2022-11-15 20:29:56 +01:00
cage 65c9ac64d0 - added preview and confirm prompt for each file attached on a status. 2022-11-15 20:16:04 +01:00
cage 7186382c40 - made notification an error. 2022-11-13 16:25:38 +01:00
cage 90b16ad7f7 - added docstring for 'status-tree->text'. 2022-11-13 16:19:13 +01:00
cage c2042a06e7 - fixed accessor's' name. 2022-11-12 22:04:28 +01:00
cage c0cbe8f519 - added code to try to recover from a failed tag request. 2022-11-12 14:12:45 +01:00
cage cf8664724a - [gemini] made the special variable gemini-parser:*raw-mode-data* thread local
There is  no sense to  share it  between multiple threads  parsing a
  gemini stream as the status of the parser (preformatted or not) from
  one could leaks into another.
2022-10-14 14:10:52 +02:00
cage 61a216facb - [gemini] pushed link into history of visited URL even if the page hes been gotten from local cache. 2022-10-14 13:01:18 +02:00
cage f2b457e578 - reset the message window's title when opening a post and the message
window is displaying a gemini page;
- removed unused argument.
2022-10-14 12:53:44 +02:00
cage 0604a1d8d0 - capured errors signalled by malformed URI, when opening gopher address. 2022-10-09 14:13:37 +02:00
cage a429fe48f2 - fixed gopher URI parser. 2022-10-09 13:23:32 +02:00
cage 6c3874f738 - added a function to extract and display links extracted from the
contents of a message window;
- fixed 'iri:absolute-url-p'.
2022-10-02 14:19:50 +02:00
cage 38d9d80c18 - changed function's name: 'gemini-history-back' -> 'net-address-history-back'. 2022-10-01 18:16:13 +02:00
cage f43103f8af - [gopher] fixed going back to net history. 2022-10-01 17:44:40 +02:00
cage 2bbf092975 - [gopher] added notification of any error signaled when making a gopher request. 2022-10-01 17:02:46 +02:00
cage ad14de7e41 - ensured non mention notifications are excluded in 'api-client:mentions'. 2022-10-01 16:57:14 +02:00
cage e10a712b26 - enqueue the procedure to create a gopher window. 2022-09-25 11:02:52 +02:00
cage a949afb38e - [gopher] removed bad characters when printing lines. 2022-09-25 10:58:38 +02:00
cage 3ebc7bd1bf - [gopher] uses type 1 lines as default type for URI. 2022-09-23 12:06:35 +02:00
cage bd20fe100f - [gopher] added support for index search lines. 2022-09-21 16:19:03 +02:00
cage d219a4b0ce - prevented a crash adding the gopher keymap to the list of help
window's headers.
2022-09-20 18:49:21 +02:00
cage c9f76e0f19 - simplified sorting predicate to complete IRI. 2022-09-11 13:40:44 +02:00
cage 9e88fe0e6f - fixed 'complete-uri-matcher', does not take into account string case difference anymore. 2022-09-11 13:23:06 +02:00
cage 90c4af648b - fixed regression in 'text-utils:parent-dir-path'. 2022-09-10 14:04:56 +02:00
cage 76a9a3aaff - added command "status-tree->text". 2022-09-10 13:21:20 +02:00
cage 718690b323 - added command 'print-post-id';
- removed importing of alexandria in modules, used local-nickname, instead.
2022-09-06 18:33:36 +02:00
cage 72cef9943b - allowed pushing in the address visited queue only gemtext pages and gopher menu. 2022-09-04 16:37:51 +02:00
cage b3f37fb350 - renamed function. 2022-08-31 14:06:36 +02:00
cage 6481a323f7 - added bookmarking of gopher addresses. 2022-08-31 14:03:39 +02:00
cage 60f33d81a9 - added a new parser just for gopher address; they are not IRI as the
selector part can contains arbitrary  characters even that ones that
  are not allowed in IRI's path component.
2022-08-29 17:44:24 +02:00
cage 9b6e6a9f15 - fixed 'ui:open-net-address';
- [module] expanded gopher abbreviation in 'expand-abbrev-command-window.lisp'.
2022-08-28 18:48:02 +02:00
cage b55eaccba4 Merge branch 'gopher-support' 2022-08-28 13:22:31 +02:00
cage d3e36f8efd - added a basic gopher implementation. 2022-08-28 13:22:08 +02:00
cage a393b0ba88 - fixed 'fs:split-path-elements'
- before:

    (fs:split-path-elements "/a/b") ;=> ("" "a" "b")

    (fs:split-path-elements "/a/b") ;=> ("a" "b")

- [gopher] added 'client:request'.
2022-08-25 14:20:06 +02:00
cage 0617f56885 - added module 'fetch-post-tree.lisp';
- changed the window type from gemini to standard type for printing the output from a module.
2022-08-23 16:36:34 +02:00
cage 6196810bbb - [gopher] implemented a basic parser. 2022-08-21 11:39:40 +02:00
cage 333d77caf2 - [gemini] added missing mandatory argument to function that builds the redirect URI. 2022-08-19 10:48:56 +02:00
cage 1f3891d20e - changed sorting criteria for gemlog subscriptions;
Promotes on top subscriptions with unread posts.

- updated ChangeLog.
2022-08-15 12:35:24 +02:00
cage c2b3eb9c2a Merge branch 'fix-absolutize-links' 2022-08-05 11:52:57 +02:00
cage ed1bd71bc5 - moved window that got the focus on top of the windows stack, to be sure will be visible to the user when redrawing the terminal. 2022-08-05 11:52:51 +02:00
cage 008d5001a7 - taken into account the query of the original URI when combining it with a path. 2022-08-05 11:30:56 +02:00
cage 6e883ca21b - improved appereance of gemini subscriptions window. 2022-07-21 17:25:37 +02:00
cage d45388e4dc - [gemini] remove redirect loop when the meta was an absolute URI. 2022-07-15 10:39:24 +02:00