Update README
[tt.git] / TODO
diff --git a/TODO b/TODO
index dcf5d9a..0e8850c 100644 (file)
--- a/TODO
+++ b/TODO
@@ -18,11 +18,16 @@ In-progress
     - [ ] inner
     - [ ] imports
 - [-] commands:
+  - [x] c | crawl
+    Discover new peers mentioned by known peers.
   - [x] r | read
     - see timeline ops above
   - [ ] w | write
     - arg or stdin
     - nick expand to URI
+    - Watch FIFO for lines, then read, timestamp and append [+ upload].
+      Can be part of a "live" mode, along with background polling and
+      incremental printing. Sort of an ii-like IRC experience.
   - [ ] q | query
     - see timeline ops above
     - see hashtag and channels above
@@ -45,9 +50,14 @@ In-progress
     - [x] mentions from timeline messages
       - [x] @<source.nick source.url>
       - [x] @<source.url>
-    - [x] "following" from timeline comments: # following = <nick> <uri>
+    - [ ] "following" from timeline comments: # following = <nick> <uri>
   - [ ] Parse User-Agent web access logs.
-  - [ ] Update peer ref file(s)
+  - [-] Update peer ref file(s)
+    - [x] peers-all
+    - [x] peers-mentioned
+    - [ ] peers-followed (by others, parsed from comments)
+    - [ ] peers-down (net errors)
+    - [ ] redirects?
     Rough sketch from late 2019:
         let read file =
             ...
@@ -90,11 +100,15 @@ In-progress
 
 Backlog
 -------
+- [ ] user-agent file as CLI option - need to run at least the crawler as another user
+- [ ] Support fetching rsync URIs
+- [ ] Check for peer duplicates:
+  - [ ] same nick for N>1 URIs
+  - [ ] same URI for N>1 nicks
 - [ ] Background polling and incremental timeline updates.
   We can mark which messages have already been printed and print new ones as
   they come in.
   REQUIRES: polling
-- [ ] Use ETag to prevent redundant downloads
 - [ ] Polling mode/command, where tt periodically polls peer timelines
 - [ ] nick tiebreaker(s)
   - [ ] some sort of a hash of URI?
@@ -140,6 +154,11 @@ Backlog
 
 Done
 ----
+- [x] Dedup read-in peers before using them.
+- [x] Prevent redundant downloads
+  - [x] Check ETag
+  - [x] Check Last-Modified if no ETag was provided
+    - [x] Parse rfc2822 timestamps
 - [x] caching (use cache by default, unless explicitly asked for update)
   - [x] value --> cache
   - [x] value <-- cache
This page took 0.035848 seconds and 4 git commands to generate.