| 1 | - [ ] Convert to Typed Racket |
| 2 | - requires: build executable (otherwise too slow) |
| 3 | - [ ] Build executable |
| 4 | - requires: fix of "collection not found" when executing the built executable |
| 5 | outside the source directory: |
| 6 | |
| 7 | collection-path: collection not found |
| 8 | collection: "tt" |
| 9 | in collection directories: |
| 10 | context...: |
| 11 | /usr/share/racket/collects/racket/private/collect.rkt:11:53: fail |
| 12 | /usr/share/racket/collects/setup/getinfo.rkt:17:0: get-info |
| 13 | /usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt:555:3 |
| 14 | /usr/share/racket/collects/racket/cmdline.rkt:191:51 |
| 15 | '|#%mzc:p |
| 16 | |
| 17 | - [ ] Support redirects |
| 18 | - should permanent redirects update the feed somehow? |
| 19 | - [ ] Support time ranges (i.e. reading the timeline between given time points) |
| 20 | - [ ] Implement rfc3339->epoch and remove dependency on rfc3339-old |
| 21 | - [x] remove dependency on http-client |
| 22 | - [ ] optional text wrap |
| 23 | - [ ] write |
| 24 | - [x] caching (use cache by default, unless explicitly asked for update) |
| 25 | - [x] value --> cache |
| 26 | - [x] value <-- cache |
| 27 | requires: d command |
| 28 | - [ ] timeline limits |
| 29 | - [ ] feed set operations (perhaps better done externally?) |
| 30 | - [ ] timeline as a result of a query (feed set op + filter expressions) |
| 31 | - [ ] named timelines |
| 32 | - [ ] config files |
| 33 | - [ ] parse "following" from feed |
| 34 | - following = <nick> <uri> |
| 35 | - [ ] parse mentions: |
| 36 | - @<source.nick source.url> | @<source.url> |
| 37 | - [ ] highlight mentions |
| 38 | - [ ] filter on mentions |
| 39 | - [ ] highlight hashtags |
| 40 | - [ ] filter on hashtags |
| 41 | - [ ] hashtags as channels? initial hashtag special? |
| 42 | - [ ] query language |
| 43 | - [ ] console logger colors by level ('error) |
| 44 | - [ ] file logger ('debug) |
| 45 | - [-] commands: |
| 46 | - [x] r | read |
| 47 | - see timeline ops above |
| 48 | - [ ] w | write |
| 49 | - arg or stdin |
| 50 | - nick expand to URI |
| 51 | - [ ] q | query |
| 52 | - see timeline ops above |
| 53 | - see hashtag and channels above |
| 54 | - [x] d | download |
| 55 | - [x] u | upload |
| 56 | - calls user-configured command to upload user's own feed file to their server |
| 57 | Looks like a better CLI parser than "racket/cmdline": https://docs.racket-lang.org/natural-cli/ |
| 58 | But it is no longer necessary now that I've figured out how to chain (command-line ..) calls. |
| 59 | - [ ] Suport immutable timelines |
| 60 | - store individual messages (possibly in something like DBM or SQLite) |