Commit Graph

252 Commits

Author SHA1 Message Date
Kamil Gałuszka
ab1eb71b39 fix: ISO hours 2022-10-06 17:31:20 +02:00
Robert C. Martin
accd6eddbf When reading in saved events the functions load-events and events/add-event striped off all but the first relay. Fixed this. 2022-09-27 14:59:13 -05:00
Robert C. Martin
3843ed279f Reply to DM sets up the D @xxx in the response. 2022-09-19 11:19:02 -05:00
Robert C. Martin
e9d4bda3f2 Tentative ability to send DM. Waiting for confirmation. uses "D @xxx" style. 2022-09-18 11:25:21 -05:00
Robert C. Martin
4b5c1deab2 Clean up the @(:event-context @ui-context) BS. replace with get-event-state. Stop passing event-state and event-context around unless they are going to change. 2022-09-17 16:50:31 -05:00
Robert C. Martin
8412639372 Remove all declares except those needed for 'with' statements in tests. 2022-09-05 14:11:18 -05:00
Robert C. Martin
d2347ce293 Ping every 30 seconds. And fix bug that blocked the create button (dumb). 2022-08-17 15:42:48 -05:00
Robert C. Martin
511256cec4 Sanity check the relay names. Don't allow localhost and http and non-urls. 2022-08-16 18:26:19 -05:00
Robert C. Martin
e11c7c07f9 Allow raw pubkeys in @ references within an article. It creates a profile name for that user based on that pubkey. 2022-08-14 13:07:55 -05:00
Robert C. Martin
c67143168c Fix tag types with colons in them. read-string doesn't like them. 2022-08-14 09:44:14 -05:00
Robert C. Martin
4676aba4ca add root of thread when adding an event to a tab. 2022-08-10 13:31:49 -05:00
Robert C. Martin
55f953b52b Use trusted petnames in @ and #[] emplacements. 2022-08-09 10:38:53 -05:00
Robert C. Martin
30ff04d816 Indirect trust rendered as name<-trusted 2022-08-04 09:31:22 -05:00
Robert C. Martin
47e51151b5 Web of trust. Kind-3 seems to be managed well. Should probably not allow kind-3 to delete users from this user's contact list... 2022-08-03 13:14:00 -05:00
Robert C. Martin
4bc60a7ab6 Pull kind-3 contact lists at startup. Mark untrusted users with (). Set up for petnames. 2022-08-03 10:19:37 -05:00
Robert C. Martin
fd861a793f Fix bug. Contact list was not formed correctly. p tag pubkeys are hex strings, and have been turned into numbers. 2022-08-02 08:42:20 -05:00
Robert C. Martin
e935a08eb6 Migration 9 contact-lists. Initital processing of kind-3 and accumulation of the contact-lists. 2022-08-01 11:39:05 -05:00
Robert C. Martin
2f1a539920 Periodically read in all profiles from relays. Uses user-configuration :import-metadata group. 2022-07-31 08:24:18 -05:00
Robert C. Martin
9b17979b2f Added :never to [:export-user-profile :export-after-days] 2022-07-30 14:30:19 -05:00
Robert C. Martin
8d2da0f976 Add :export-user-profile variables to user-configuration file. Send user profile only every :export-after-days days. 2022-07-30 11:24:36 -05:00
Robert C. Martin
8abcb0f44a Migration 8 user-configuration file, empty for now. 2022-07-30 10:00:28 -05:00
Robert C. Martin
25daaf5d54 Delete tabs, add new tabs, select and block articles and authors. 2022-07-28 13:22:25 -05:00
Robert C. Martin
0651bdd307 Change name of tab. 2022-07-28 08:21:40 -05:00
Robert C. Martin
4c8ffeba0f Fix tests and bump version number. 2022-07-23 10:05:51 -05:00
Robert C. Martin
64a823e214 Add a numerical suffix to names that are duplicates for existing pubkeys. Print longer names in the article window and article tree, and don't trim the names in the profiles file. 2022-07-23 09:39:21 -05:00
Robert C. Martin
fa4acece82 Add name and version to window title, and version to :client tag in outgoing messages. 2022-07-22 08:02:54 -05:00
Robert C. Martin
97764b6ef6 Migration 7, break message-file into daily files. 2022-07-20 11:04:33 -05:00
Robert C. Martin
68666d4d8f Reading and writing of daily files is complete. Next I need to write the migration. 2022-07-20 09:40:19 -05:00
Robert C. Martin
57429d3d4e Reading and writing daily message files. But not pushing because migration 7 is not ready. 2022-07-19 15:26:50 -05:00
Robert C. Martin
db3c103b9d Stop using tab names and use tab indices instead. Also fix bug that sometimes didn't load article when using back button. 2022-07-17 08:42:57 -05:00
Robert C. Martin
2421f3a0f5 Migration 6 complete. Tabs file removed. Tabs-list file created. All code uses new tabs scheme. This is much better. 2022-07-16 13:17:37 -05:00
Robert C. Martin
d9561adc56 Migration 6, reformat tabs to tabs-list, and get prepared. 2022-07-16 10:54:55 -05:00
Robert C. Martin
930575f7c9 merge sathwikmatsa pull request to linkify article. 2022-07-10 14:15:23 -05:00
Robert C. Martin
1d0e9f8c9a Migration 5. Remove nicknames file. Make sure on first time start we subscribe one day back. 2022-07-05 14:34:46 -05:00
Robert C. Martin
dee5222a2b All nickname dependencies removed except for the migrator, which is grandfathered to maintain backwards compatibility. 2022-07-05 14:09:24 -05:00
Robert C. Martin
48fbe30621 Removed useless nicknames from some tests. 2022-07-05 09:22:15 -05:00
Robert C. Martin
f7bead98f4 replace-references and lookup-references use profiles 2022-07-05 09:11:34 -05:00
Robert C. Martin
981aa6b412 format-reply, format-header, and format-user-id use profiles. 2022-07-05 08:59:45 -05:00
Robert C. Martin
3dfdc5ac49 find-user-id uses profiles. 2022-07-05 08:09:01 -05:00
Robert C. Martin
fdaefd428c Save and load profiles into private/profiles. Soon we will eliminate private/nicknames. 2022-07-04 09:35:30 -05:00
Robert C. Martin
7b04dc1dd9 Migration 4 moves nicknames to profiles. 2022-07-04 08:53:28 -05:00
Robert C. Martin
2094c656b3 When a tap selects for an id, any event that has a 'p' tags with that id will be included. 2022-06-17 15:15:06 -05:00
Robert C. Martin
672c5ce69a Save and read message file. Set subscription time to just before last message time. Migration 3 creates messages directory and message-file. 2022-06-17 10:30:11 -05:00
Robert C. Martin
89868f3d0d Word wrap the edit window using :wrap-lines in a 'styled-pane' 2022-06-16 15:12:59 -05:00
Robert C. Martin
45ac056edd Add From/Date/Relay to replies. 2022-06-12 13:53:52 -05:00
Sathwik Matsa
fcdbccdf9c Linkify URLs in article window 2022-06-09 21:12:29 +05:30
Robert C. Martin
9b9048e477 Preserve the format of replies in the article display. (Lines that start with > are preserved). 2022-06-08 18:39:19 -05:00
Robert C. Martin
eadd71d5fd Migration 2. Fix user names in the nicknames file. 2022-06-07 14:37:39 -05:00
Robert C. Martin
e4b22433aa Initial migration from no setup to all files set up with automatically generated keys and user name. 2022-06-06 14:22:49 -05:00
Robert C. Martin
6cda2b2fe5 Migration framework. 2022-06-06 10:25:16 -05:00
Robert C. Martin
57787d7cc9 Got @username syntax working for sending and replying. 2022-06-05 14:10:45 -05:00
Robert C. Martin
572dc813f9 Got #[x] references working for 'p' tags. They sort-of work for 'e' tags too; but should probably behave a bit differently. 2022-06-04 12:02:04 -05:00
Sathwik Matsa
36badfc5a5 Fix timezone issue in formatter tests 2022-06-04 13:32:07 +05:30
Robert C. Martin
96f799ee01 Got that test to pass. I now believe that threading is completely working. (Until I find out otherwise;) 2022-06-03 12:14:56 -05:00
Robert C. Martin
afd4dc7a16 I found a test that repeats my threading bug. It is currently failing. 2022-06-03 11:23:47 -05:00
Robert C. Martin
71420ca4e4 Refactored the orphan resolution code. It's better. It works better too. But there are still issues. 2022-06-02 11:19:44 -05:00
Robert C. Martin
39374c5008 Add relay recommendations to the relays, and write the relays on exit. 2022-05-31 13:56:48 -05:00
Robert C. Martin
1d90e09735 Change event-agent to event-context. Make it an atom, not an agent. Move the call to the UI handler out of the events module and into the protocol module. The threading issues here were hairy, but I think I've got them all resolved. 2022-05-31 11:06:11 -05:00
Robert C. Martin
11e3dfac69 Refactoring. Chante translate-text-event to translate-event and call it earlier. 2022-05-31 10:01:41 -05:00
Robert C. Martin
40d31f8923 Back and Forward work, but the event-agent stuff is awful. 2022-05-30 12:35:09 -05:00
Robert C. Martin
3b063f4401 Keeps track of event history in event-agent :event-history and :back-count. This is in preparation for the forward and back buttons. Also set up the s/defs for the event-agent. And I'm seriously considering replacing the agent with an atom because I keep having to add 'await event-agent' stuff. Ugh. 2022-05-29 09:07:17 -05:00
Robert C. Martin
5923de0daa Marked e tags as per new NIP-10 working. 2022-05-26 14:47:44 -05:00
Robert C. Martin
041345517d Don't add a child to a tree node if the child already exists in that tree node. This situations resulted from the addition of tabs... I'm not sure I like the fix. It repairs the problem after the fact. It might be better to figure out how to prevent the problem in the first place by, (probably) partitioning the node-maps by tabs. 2022-05-26 11:25:18 -05:00
Robert C. Martin
ac1962b386 Added the filtering code for the tabs. Event ids and user's pubkeys can either be selected or blocked. Events that contain the a selected id as the root of a thread are also selected, meaning that the entire rooted thread is selected. 2022-05-26 10:44:10 -05:00
Robert C. Martin
b87ab38e22 Clicking on the citing or root in the article window, hunts for the event in the currently selected tab. Removed the passing of ui-context and event-agent around because ui-context is a global that contains event-agent. More to do on this. Also, I need to switch tabs if the clicked on citing is not in the selected tab but is in the #all tab.
Is the #all tab permanent?
2022-05-25 09:07:24 -05:00
Robert C. Martin
4cbcab18ef Change subscription time to two days ago. Just to keep the load time down. 2022-05-23 15:38:46 -05:00
Robert C. Martin
8ac8c808ae Invert chronological order so that latest message is at the top of the tree. 2022-05-23 08:20:30 -05:00
Robert C. Martin
09563d1480 Resolution of orphaned references. References will be orphaned when a reply child event comes in before the parent event being replied to comes in. This can happen because we are pulling events from multiple relays. 2022-05-22 16:10:52 -05:00
Robert C. Martin
e9735e176e Don't search back up the tree for the root, Bob; the root is in the message you are replying to. Duh. 2022-05-22 09:50:39 -05:00
Robert C. Martin
ab7caa0d48 Tests all pass again. (oops). 2022-05-21 15:50:42 -05:00
Robert C. Martin
3f6288e02a Subject is used in article-tree header. 2022-05-21 15:14:47 -05:00
Robert C. Martin
149a8e6740 Add Subject to edit window, and send message with [subject: <subject>] tag. 2022-05-21 11:39:01 -05:00
Robert C. Martin
00b8eee74e Send metadata at startup. 2022-05-20 10:31:25 -05:00
Robert C. Martin
f7dd8876fd Move relays to private/relays, and load the relays from that file. 2022-05-19 10:42:32 -05:00
Robert C. Martin
5c696a9b53 Create relays/relays structure in an atom, and update it with connections and subscribe status. 2022-05-18 11:43:08 -05:00
Robert C. Martin
bdffc9e06e Clean up ui.swing by breaking it up into panel/window specific modules, and fixing cyclic dependencies. 2022-05-17 09:50:48 -05:00
Robert C. Martin
d02682dc16 Chronological sort using java.util.Collections/binarySearch. Much faster. 2022-05-16 17:55:51 -05:00
Robert C. Martin
26377873da Chronological sort of header tree. Slow. Should use binary search. 2022-05-16 13:33:04 -05:00
Robert C. Martin
16628a91a6 Read from more than one relay. Detect duplicates, and register which relays they arrive on. Article tree is no longer chronological, so we'll have to sort it somehow. 2022-05-15 11:19:19 -05:00
Robert C. Martin
bdd2f32b37 Check signatures of incoming events. Move hex/num/bytes utilities from ecc to util. 2022-05-06 09:23:50 -05:00
Robert C. Martin
c94bafd84a Clean up the main-window file. Much better now. 2022-05-05 15:14:30 -05:00
Robert C. Martin
85fa99fce3 p-tag processing working properly. 2022-05-04 12:12:39 -05:00
Robert C. Martin
55a2eafa43 e-tag processing for replies is working correctly. 2022-05-03 15:46:44 -05:00
Robert C. Martin
b21203bd5d Added incremental article threading. Also added try/catch to name-event in case someone sends an ill-formatted message. 2022-05-02 09:22:09 -05:00
Robert C. Martin
c9c31633b3 Massing cleanup and deletion. Much better. 2022-04-30 13:24:45 -05:00
Robert C. Martin
df415f8181 Swing begins. 2022-04-27 12:07:24 -05:00
Robert C. Martin
6760ba48a8 Fixed unicode and slashes. json/write-str was escaping them. 2022-04-20 10:22:52 -05:00
Robert C. Martin
bc2b912cab Rudimentary reply is working. 2022-04-20 09:15:31 -05:00
Robert C. Martin
7afaa564c6 Copies article being replied to into edit window, prefixed with '>'. 2022-04-19 13:51:41 -05:00
Robert C. Martin
52639cb80e fixed improperly created graphics-dummy. 2022-04-18 16:13:07 -05:00
Robert C. Martin
6cbeceb035 Begin the process of replying. ^R is the reply command. So far just clears the edit window if no article is selected.
Also began creation of the object-mother.
2022-04-18 16:03:11 -05:00
Robert C. Martin
5fde839565 Clean out old elliptic_signature code that was replaced by the Schnorr java library. 2022-04-18 08:09:47 -05:00
Robert C. Martin
6472e7ca9b Add the BIT340_Schnorr code from https://code.samourai.io/samouraidev/BIP340_Schnorr
Works.  The first message from more-speech was sent to the nostr network using the signature created by this code.
2022-04-14 16:06:09 -05:00
Robert C. Martin
beb998fc0d Implement ^s to send as a shortcut.
Format message to send.
Sign and paste message into core.
Signature verification error.
Add test to detect the error.
This one is going to take awhile.
2022-04-10 13:40:22 -05:00
Robert C. Martin
efe273e32b Better sorting technique, using sorted-set. I expect that will do insertions rather than continual sorting of a large collection. Also reversed the sense of the sort, so latest articles are on top. 2022-04-08 12:28:30 -05:00
Robert C. Martin
12262b0f79 Use java.net.http.Websocket instead of 'aleph'. Works great! 2022-04-07 12:28:34 -05:00
Robert C. Martin
a56eb819bb Bringing in the nostr protocol. 2022-04-05 10:12:16 -05:00
Robert C. Martin
e09addbbec Can use backspace to delete characters in edit window. 2022-04-03 10:12:37 -05:00
Robert C. Martin
e726c21f06 Can add multiple lines to edit window. Can navigate with arrows. Ignores control keys, etc. 2022-04-02 12:21:33 -05:00
Robert C. Martin
849ee68e63 Can add chars to edit window. Very primitive, but... 2022-04-02 10:13:28 -05:00
Robert C. Martin
9038199c35 Clean up author window formatting. 2022-03-07 08:23:27 -06:00
Robert C. Martin
acf4250223 Fix reformatting bug that inserted a line end before the last word. 2022-03-07 07:34:21 -06:00
Robert C. Martin
502964a328 Arrow keys move the selected header. 2022-03-05 13:23:09 -06:00
Robert C. Martin
421488c26f Keyboard focus and passing events from child to parent widgets. A little cleanup in widget to ensure functions are functions. 2022-03-04 07:32:16 -06:00
Robert C. Martin
fb0abcc2c2 Refactor and add tests to reformat-article. Much improved. 2022-03-03 12:24:32 -06:00
Robert C. Martin
4bd5abb22c Very preliminary formatter for articles. Based on the old word-wrap problem. 2022-03-03 11:30:00 -06:00
Robert C. Martin
5ccb060d98 Headers abbreviated properly. 2022-03-03 08:49:21 -06:00
Robert C. Martin
b2df19a432 Repartitioning. Eliminated content/article. Created ui/formatters and moved specific formatting into the window modules. Those modules will likely need to be split into specific control and formatting modules. But not yet. 2022-03-03 08:18:29 -06:00
Robert C. Martin
c5b1cfd6a4 Layout article-window. No content yet. 2022-02-28 14:03:43 -06:00
Robert C. Martin
44af6bcf9a Add some unit tests that would have helped me through my previous headache. 2022-02-26 11:27:23 -06:00
Robert C. Martin
91a821a73c Use mouse functions in defsketch instead of the silly stuff I was doing in button. This was a big change that took a long time and was a big headache. Forced me to repartion widget and app-util to avoid cyclic dependencies. 2022-02-26 09:48:37 -06:00
Robert C. Martin
c920f46432 Can select and deselect headers. 2022-02-25 09:15:03 -06:00
Robert C. Martin
4244ea9f53 Header is hilighted when mouse hovers. This required quite a bit of refactoring in order to tune the button tags and defer the mouse-wheel up from the button to the frame. I'm not sure that deferral is the right approach. 2022-02-24 13:57:44 -06:00
Robert C. Martin
18b6d4c75d Merge text-frame into text-window, rearrage a bit, and write header comment for text-window. 2022-02-24 09:12:42 -06:00
Robert C. Martin
20ad98139c Decoupling of headers from text-window and text-frame is complete. Now the text-window should be generic and usable for any window displaying text with scrollbars. 2022-02-21 12:54:32 -06:00
Robert C. Martin
1e66acb7ed Decouple headers from text-frame. In progress. More to do. 2022-02-21 11:54:29 -06:00
Robert C. Martin
f0a43f96b8 Decouple text-window from articles and headers. Next step is to decouple header-frame and transform it into text-frame and header-frame-functions. 2022-02-21 11:03:00 -06:00
Robert C. Martin
519038ceed Eliminate 'unused local variable' warnings by prefixing those variables with an underscore. 2022-02-20 13:21:44 -06:00
Robert C. Martin
8e196c3983 Repartition functions in article-window and header-frame in preparation for text-window generalization. 2022-02-20 10:51:25 -06:00
Robert C. Martin
97a89886fe Generalize the update scheme in preparation for generalizing text-windows. 2022-02-19 13:41:49 -06:00
Robert C. Martin
241801fbbf Mouse lock implemented, so thumb can be dragged with reckless abandon.
Also cleaned up the update and lock functions by creating app-util.
And changed all path additions from conj to concat.  That probably needs a function too.
2022-02-17 13:22:06 -06:00
Robert C. Martin
13fc4e6ec2 Can drag thumb. 2022-02-17 11:40:16 -06:00
Robert C. Martin
df95af7b08 Some cosmetic changes to the article window, and make one of the UI tests more robust. 2022-02-17 09:32:32 -06:00
Robert C. Martin
ed3e4fa526 Split header-frame from article-window 2022-02-16 12:13:55 -06:00
Robert C. Martin
50e8ed9505 Mouse wheel works. 2022-02-16 09:29:23 -06:00
Robert C. Martin
6be1b896cc Thread open/closed buttons are working. 2022-02-14 15:01:31 -06:00
Robert C. Martin
88ebeea663 Do all the markup and formatting in update. Draw each header based on its position. Tighten up the display. 2022-02-13 16:25:44 -06:00
Robert C. Martin
9d54c856cf Calculate the number of headers that fit in the article frame. 2022-02-13 15:14:10 -06:00
Robert C. Martin
e84781d962 Move the threading and selection of articles to the update function. This will save lots of cycles, and sets the stage for the thread control buttons. 2022-02-11 15:10:47 -06:00
Robert C. Martin
7897186935 Preliminary display of threaded articles. 2022-02-11 12:16:36 -06:00
Robert C. Martin
0a96011517 Build the thread of open events. 2022-02-10 13:17:17 -06:00
Robert C. Martin
4cdb70033c Prepare for placing 'open' buttons on article threads. 2022-02-08 13:38:04 -06:00
Robert C. Martin
a6b4fdcdcc Moved article beneath content 2022-02-07 15:12:09 -06:00
Robert C. Martin
57f46040e2 Holding down scroll buttons works. 2022-02-06 10:11:54 -06:00
Robert C. Martin
98a428432c Track left button down time, and refactor to ease button update code. 2022-02-06 09:14:26 -06:00
Robert C. Martin
54bb26c8a4 update-widget now just returns the state. When you use the State monad, you gotta really USE the State monad! 2022-02-04 08:25:26 -06:00
Robert C. Martin
09ccc80a28 Articles now contain a list of references derived from tags. 2022-01-31 14:56:01 -06:00
Robert C. Martin
137cef3e89 Preliminary version of process-text-event loading :text-event-map and :chronological-text-events. 2022-01-31 13:47:48 -06:00
Robert C. Martin
5c76474ca4 Scroll buttons work on left-up. 2022-01-30 14:03:14 -06:00
Robert C. Martin
e34bd74e3e update-widget returns [widget state] so that child widgets can change parent state. 2022-01-30 07:55:53 -06:00
Robert C. Martin
aa3970d794 draw-widget does not return a value. draw-child-widgets does not change state. 2022-01-30 07:38:21 -06:00
Robert C. Martin
d10caeb11a Detect position and state of mouse in button. 2022-01-30 07:19:59 -06:00
Robert C. Martin
c5ad9a253a Add missing spec file. 2022-01-26 14:59:34 -06:00
Robert C. Martin
851ed6828d Revert "Automatically set coordinate translation and clipping for widgets."
This reverts commit e5f3999ff0.
I decided this was a bad idea.  Coordinates should be absolute.
2022-01-26 14:57:19 -06:00
Robert C. Martin
e5f3999ff0 Automatically set coordinate translation and clipping for widgets. 2022-01-26 14:13:30 -06:00
Robert C. Martin
6fe71ca4e6 The beginnings of buttons. 2022-01-24 10:30:12 -06:00
Robert C. Martin
1ee1faab28 widget/do-children does the hierarchy. The widget protocol functions return widgets, not the state. 2022-01-24 08:26:18 -06:00
Robert C. Martin
3d1469ac2a Got rid of :widgets by using satisfies? 2022-01-23 10:46:18 -06:00
Robert C. Martin
0b39d3348d First glimmers of the path hierarchy. I don't like the interpost :widgets tags. 2022-01-23 09:53:42 -06:00
Robert C. Martin
c6f26ec11f Add tests for abbreviations and author formatting. 2022-01-20 12:00:09 -06:00