1
0
Fork 0
Commit Graph

432 Commits

Author SHA1 Message Date
cage 2982dfdeeb - [GUI] made the TOC's resize its width to fits the TOC items width.
- [GUI] added configuration directive for TOC width limits;

- [GUI] refactored TOC rendering code;

- [GUI] clear TOC widget from legacy items befor rendering the new TOC.
2023-03-19 13:00:28 +01:00
cage 89969f1f91 - [GUI] started with TOC rendering. 2023-03-18 20:27:24 +01:00
cage 559b5dae84 - [GUI] fixed leaking lines parameter when rendering preformatted text;
- [gemini] added a missing newline character in 'geminize-preformatted';
- [GUI] parsed standard colors for gemini window's text;
- [GUI] rendered the gemini  protocol rerror  responses to  the gemtext
  window instead of poppinu out a dialog window.
2023-03-12 15:36:13 +01:00
cage fa6844a2ab - [GUI] added code to deal with query input (status 10 and 11). 2023-03-12 12:35:01 +01:00
cage c90c7289d9 - [RPC] resignalled TOFU error to client in a structured form to let the user deal with it;
- [GUI] improved protocol error messages.
2023-03-11 13:12:28 +01:00
cage 24b0b07bb3 - [GUI] made link working for local files and gemtext files over gemini protocol. 2023-03-06 18:38:46 +01:00
cage fd19aa8704 - [GUI] allowed expanding of local paths in the address bar;
- refactored callback related to opening address.
2023-03-02 18:17:19 +01:00
cage d2d1745001 - added package URL to the authorized client. 2023-02-26 20:33:29 +01:00
cage cc633fc29c - [GUI] ensured the rendering of the gemtext respects the directives in the configuration file (font, color, justification, etc). 2023-02-26 15:03:03 +01:00
cage c546b47fd4 - [GUI] rendered links;
- [GUI] started with focus on the address text entry.
2023-02-25 18:18:34 +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 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 9802b18dc9 - [GUI] added 'up' button. 2023-02-18 13:02:56 +01:00
cage 81868075b4 - made 'about' help window, modal. 2023-02-17 15:05:09 +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 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 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 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 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 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 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 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 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 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 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 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 39878d6475 - wrapped 'babel:string-to-octets' in 'text-utils:string->octets'. 2022-12-25 12:53:07 +01:00
cage a18c63f3db - moved '+octect-type+' to 'constants' package. 2022-12-25 12:04:08 +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 53379fdd37 - added a json-rpc2 implementation. 2022-12-23 12:03:04 +01:00
cage 32169beac7 - added a pair of directives to configure montage of gemini images. 2022-12-10 15:06:48 +01:00
cage c8b92f7eba - added command 'gemini-images-montage'. 2022-12-10 14:11:13 +01:00
cage 37d657cff5 - added a configuration directive to filter out unwanted hashtags. 2022-11-29 18:55:03 +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 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 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 ad14de7e41 - ensured non mention notifications are excluded in 'api-client:mentions'. 2022-10-01 16:57:14 +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 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 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 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 6e883ca21b - improved appereance of gemini subscriptions window. 2022-07-21 17:25:37 +02:00
cage de980b44b7 - [modules] added backlink to generated gemlog pages;
- [gemini] fixed rendering of links that starts with an emoji.
2022-07-13 17:08:37 +02:00
cage 07725d85d9 - [gemini] added command 'open-previous-link'. 2022-07-01 16:31:38 +02:00
cage 981cbdcfc7 - [gemini] added a script to generate a gemlog;
- removed *tour-links-window*;
- adding a new command: open-gemini-links-and-ask-tour.
2022-06-15 14:33:56 +02:00
cage 48848ec996 - added 'ui:tui-active-p'. 2022-06-15 12:11:14 +02:00
cage 94e50430a8 - added 'get-resource-dir' and 'get-data-dir'. 2022-06-04 19:11:23 +02:00
cage bf23d728b4 - fixed misc:array-slice;
- changed misc:split-into-sublist to misc:split-into-chunks.
2022-05-27 19:16:29 +02:00
cage cb202b26a7 - added captions for attachments. 2022-05-01 12:22:52 +02:00
cage 0b5dd16f77 - allowed printing about kami ID from the window of the TLS certificates. 2022-04-23 15:19:29 +02:00
cage 0e9c521fc1 - ensured only an instance of gemini TOC, gemini link and chat window could exixts. 2022-04-08 17:07:48 +02:00
cage a1ec070d03 - hooks:*before-composing-message*;
- removed memory leak in ssl-utils:dump-certificate;
- added an hook to remove footnotes added by tinmop in post's reply.
2022-04-06 19:34:49 +02:00
cage d9a8d03472 - used package local nickname instead us :use croatoan's symbols. 2022-03-21 21:42:50 +01:00
cage baffa09093 - [gemini] rendered again the focus mark when a gemini stream has ended. 2022-03-11 20:50:06 +01:00
cage 8c8c17b175 - fixed passing focus between windows. 2022-03-10 17:29:24 +01:00
cage e5a9232752 - added a command to 'jump' between window in a zig-zag way;
- fixed crash when starting program in gemini fullscreen mode.
2022-03-06 12:49:17 +01:00
cage eb53afcbe1 - added slot 'modalp' to class wrapper-window. 2022-03-05 10:32:13 +01:00
cage d1451610dd - allowed to copy to clipboard post's attachments. 2022-03-04 15:55:57 +01:00
cage 1a5366bf45 - made tour links window indipendent from other links window. 2022-03-04 15:35:07 +01:00
cage 45d74863c3 - refactored clipboard utitlity function. 2022-03-04 14:36:11 +01:00
cage 826423c7d7 - added command to copy a link to clipboard. 2022-03-04 14:33:55 +01:00
cage 674ee6b59a - added a command to clear the cache;
- fixed 'cat-parent-dir'.
2022-03-02 20:44:54 +01:00
cage 8e9e19dd82 - added command 'gemini-jump-to-link';
- fixed layout in gemini full screen mode.
2022-02-25 16:37:43 +01:00
cage 8e7a25b19c - [gemini] added two new commands to go back in an URL path. 2022-02-25 13:11:48 +01:00
cage 74f363af3a - asking for confirmation when quitting the program using 'q'. 2022-02-25 11:28:24 +01:00
cage 1acad1fad9 - [gemini] added searching or jumping to first or last item in a TOC window. 2022-02-24 18:42:11 +01:00
cage e8e4711074 - fixed symbol export for 'normalize path' (thanks op!). 2022-02-17 21:35:25 +01:00
cage 75571fc2f5 - exported correct symbols. 2022-02-16 18:00:12 +01:00
cage 982965585f - renamed function: 'download-treenode' -> 'download-path'. 2022-02-16 17:55:32 +01:00
cage 2dce4a6d27 - renamed function: 'filesystem-query-treenode' -> 'filesystem-query-path'. 2022-02-16 17:52:10 +01:00
cage fbd59ea015 - [kami] made an effort to replicate the permissions when downloading a file. 2022-02-13 16:12:16 +01:00
cage 560e01e09e - [kami] made an effort to replicate the permissions when uploading a file. 2022-02-13 14:54:16 +01:00
cage ebbd08d9da - [kami] added 'file-explorer-mark-by-regexp'. 2022-02-06 10:43:57 +01:00
cage fd53894b2e - changed variable names so that is clear that the '-o' switch can open different kind of URI, not only gemini. 2022-02-05 16:28:40 +01:00
cage b6ed1ebeb7 - [kami] added 'file-explorer-download-mirror'. 2022-02-05 15:24:31 +01:00
cage 321eede79c - [kami] optimized deletion of file system trees. 2022-02-05 14:18:24 +01:00
cage 2efaeef4ad - [kami] appended, if needed, '/' at the end of the proposed local directory where the file will be downloaded. 2022-02-04 14:30:39 +01:00
cage f5bef63cc6 - prevented chat window from opening when in gemini exclusive mode;
- fixed positioning of gemlog's subscription when in gemini exclusive mode.
2022-02-04 14:21:42 +01:00
cage 1fd8f1462a - added keychords to jump at the start or end of the link window. 2022-02-04 12:58:37 +01:00
cage dd3288b56d - added 'file-explorer-upload-mirror'. 2022-01-29 17:44:47 +01:00
cage ddd2a2825e - [kamid] download works with wildcard (e.g. /*.lisp); 2022-01-28 15:08:49 +01:00
cage 31b9685737 - added a wrapper for 'fnmatch(3)';
- [kamid] upload works with wildcard (e.g. "/*.lisp");
- moved 'normalize-path' to filesystem-utils.
2022-01-28 12:24:24 +01:00
cage a3a68a7486 - improved opening net command, gemini and also kami address can be opened. 2022-01-23 14:55:05 +01:00
cage 1cf9be1863 - added function 'fs:path-referencing-dir-p'. 2022-01-23 13:06:24 +01:00
cage 1d2d528d95 - [kami] close the connection when closing the filesystem explorer window;
- fixed a prompt and an error message.
2022-01-23 12:53:08 +01:00
cage 67090fa681 - [kami] added a window with details of teh file (permissions, size etc.). 2022-01-22 15:17:33 +01:00
cage b7af742cb0 - added 'kami-open-url'. 2022-01-15 19:05:08 +01:00
cage a44e91322f - [kami] prevented reading entire file in memory when downloading. 2022-01-14 17:09:23 +01:00
cage b4ecbe49b0 - added a draft for a kami client. 2022-01-09 14:47:22 +01:00
cage bc4ec1ed34 - added code to edit the file in a filesystem explorer window;
- fixed a couple of functions that was trying to download a file when upload was correct instead.
2022-01-08 13:18:45 +01:00
cage e7d413162b - added 'editor' as pseudo external program. 2022-01-06 17:59:22 +01:00
cage 70a6d51a28 - added downloading and opening a file from filesystem explorer window. 2022-01-06 13:00:16 +01:00
cage 624be8b696 - added 'file-explorer-close-window';
- modified filesystem explorer window's position.
2022-01-06 12:17:31 +01:00
cage 0da5e6b3ad - added command file-explorer-scroll-begin;
- added command file-explorer-scroll-end;
- modified 'query-local-filesystem-path' signals an error if the query type is unknown.
2022-01-06 11:39:29 +01:00
cage 2061880a16 - implemented mark and deletion of tree in filesystem window. 2021-12-14 13:05:40 +01:00
cage 7619408c0f - added marking of entries in file explorer window. 2021-12-13 18:12:20 +01:00
cage c6f741d3a8 - implemented querying file's metadata in filesystem window. 2021-12-13 14:41:34 +01:00
cage 429acc7efe - added search in file explorer window. 2021-12-12 21:40:59 +01:00
cage 25b9135159 - implemented uploading file in filesystem window. 2021-12-12 14:37:38 +01:00
cage b7bbb9f7d9 - renamed a few filesystem-window's related functions. 2021-12-12 12:57:08 +01:00
cage 9d4e34505d - implemented downloading file in filesystem window. 2021-12-12 12:53:03 +01:00
cage 9fa4b72548 - implemented creating paths in filesystem window. 2021-12-11 11:06:06 +01:00
cage af48cde4a8 - implemented deleting of paths in filesystem window. 2021-12-10 18:27:31 +01:00
cage 7619344a36 - implemented some features of tree filesystem window: expanding/closing nodes and renaming files or directory. 2021-12-10 15:30:56 +01:00
cage 5ccc19f28b - added -X option;
- starting with filesystem explorer window.
2021-12-05 15:28:29 +01:00
cage 6f06e0cd14 - renamed function 'db:mark-status-deleted-p'. 2021-11-30 21:18:27 +01:00
cage 0b5c56f0ee - fixed function name. 2021-11-30 21:16:07 +01:00
cage 1fbdab1443 - [gemini] added commands: 'go-to-previous-link' and 'go-to-next-link'. 2021-11-26 14:10:11 +01:00
cage ab91432e2e - fixed module delete-post-using-regex; the procedure delete all the
rows matching a regex not only the visible ones in thread window;
- moved keybinding from  modules/next-previous-open.lisp into the main
  init file.
2021-11-26 10:59:50 +01:00
cage 77d8deb84e - refactored some code in a function: 'db:row-avatar'. 2021-11-19 10:43:33 +01:00
cage 6ed5432d2b - added command 'view-user-avatar'. 2021-11-16 19:55:03 +01:00
cage 5d46a96638 - added load-script-file. 2021-11-16 16:00:19 +01:00
cage 4b649d91ae - added a script to get a list of people user is following. 2021-11-14 13:44:58 +01:00
cage 22bce9cdd9 - made width of TOC customizable (when using tinmop in gemini fullscreen mode). 2021-11-12 21:06:28 +01:00
cage ebddc9e1e6 - changed logic to guess if the window is displaying gemini contents;
- replaced window'stitle with the IRI of the gemini content streaming;

- fixed italian translation.
2021-11-12 19:12:03 +01:00
cage 7b8581c5e4 - added exclusive gemini client UI layout. 2021-11-12 15:00:34 +01:00
cage 75a056cce0 - added command-line option for gemini fullscreen mode;
- cleaned up command line switch management.
2021-11-12 10:50:33 +01:00
cage 2782317bb7 - [gemini] added customizable buffer size when opening partial gemini
content with an external program.

using  "no wait"  directive  can  be followed  by  "buffer NUMBER"  to
customize the cache  (in Mib) to be cached before  opening the partial
downloaded data.
2021-11-10 16:12:08 +01:00
cage c3492c06c1 - [gemini] added 'search-message-gemini-fragment-event'
When  a fragment  is present  in a  uri/iri it  is used  as a  regular
expression to search in the *source* of the text, the window's content
is moved to shows the *rendered* line where matching occurred.
2021-11-06 12:32:03 +01:00
cage 768e4a220b - added 'search-gemini-fragment' 2021-11-06 11:21:15 +01:00
cage b1b412ad89 - added 'match-words'. 2021-11-05 14:48:40 +01:00
cage f2dba92f8b - added command 'open-next-visible-link';
- removed debug message.
2021-10-30 18:39:13 +02:00
cage 41bf046a29 - [gemini] attached source line to each parsed gemtext node. 2021-10-24 15:53:31 +02:00
cage bce702465c - [experimental][gemini] used URI's fragment as a search criteria for the gemini page (disabled by default). 2021-10-17 17:40:18 +02:00
cage c50de0dca2 - added a script to delete old posts. 2021-10-15 13:59:06 +02:00
cage dff23fe909 - allowed skipping posts using language type. 2021-10-13 15:01:15 +02:00
cage b437e2846b - added 'gemini-all-unread-posts', 'shuffle-tour', 'gemlog-add-unread-posts-tour', 'clear-tour'
'gemini-all-unread-posts'  give  user  the  choice to  add  all  the
  currently unread post to the link tour.
2021-10-10 12:38:37 +02:00
cage 76676f2d2f - added 'eval-command';
- added docstrings for scroll lock related functions.
2021-10-08 14:35:40 +02:00
cage 40f6f0642a - forced scrolling to the last message when a new message has been posted on the chat window;
- added 'message-window-lock-scrolling' and 'message-window-unlock-scrolling' allowing users to choose their preferered way to render the gemini text (this is useful for gemini streaming services, like chat or similar).
2021-10-08 11:55:16 +02:00
cage 9568b88e8d - fixed adjusting strategy functions when drawing gemini text. 2021-10-08 11:37:53 +02:00
cage dcde779d25 - notified an error when the manpage can not be printed on screen. 2021-09-12 12:16:29 +02:00
cage ae266982cb - prevented moving selected message when updating a timeline. 2021-09-10 17:34:03 +02:00
cage fdd73cdd9d - added a command to open all the attachments of a post. 2021-09-09 18:27:32 +02:00