README: add reference
[jan-pona-mute.git] / README.md
1 Jan Pona Mute
2 =============
3
4 The name is Toki Pona and means "many friends".
5
6 This is a very simple command line client for Diaspora that helps me
7 deal with my specific use-cases:
8
9 - I want to check Diaspora for new comment on my threads
10 - I want to leave new comments on my threads
11 - I want to delete comments I left by mistake
12
13 It's *very* limited but it's helping me get started using the
14 [diaspy](https://github.com/marekjm/diaspy) Python library.
15
16 Installation
17 ------------
18
19 We need the [diaspy](https://github.com/marekjm/diaspy) library.
20
21 ```text
22 $ git clone https://github.com/marekjm/diaspy.git
23 $ cd diaspy
24 $ pip3 install .
25 ```
26
27 This gives me version 0.6.0. When I use `pip3 install diaspy` I get
28 version 0.3.0 and that doesn't work. 🤷
29
30 Quickstart
31 ==========
32
33 ```text
34 $ python3 jan-pona-mute.py
35 Welcome to Diaspora! Use the intro command for a quick introduction.
36 Pager set: /usr/bin/fold
37 > account kensanata@pluspora.com
38 Username and pod set: kensanata@pluspora.com
39 > password *secret*
40 Password set
41 > login
42 Setting up a connection...
43 Logging in...
44 > notifications
45 1. 2019-08-13T19:40:17.000Z Joe Doe has liked your post I've started writing...
46 2. 2019-08-13T17:59:23.000Z Joe Doe commented on your post Please help me wi...
47 3. 2019-08-13T17:03:45.000Z Jane Doe has liked your post I've started writin...
48 4. 2019-08-13T15:02:50.000Z June Doe commented on your post I don't like Mon...
49 5. 2019-08-13T14:48:51.000Z John Doe liked your post Monday again! What am I...
50 Enter a number to select the notification.
51 > 1
52 2019-08-13T19:40:17.000Z Joe Doe has liked your post I've started writing...
53 Loading...
54
55 I've started writing a Diaspora client for the command line. It's called Jan Pona
56 Mute which means as much as "many friends" in English. It's written in Python and
57 doesn't do much.
58 > comments
59 There are no comments on the selected post.
60 > comment This is me leaving a comment.
61 Comment posted
62 > comments
63
64 1. 2019-08-13T20:04:35.000Z Alex Schroeder
65
66 Alex Schroeder (e3bd7110b2ee013620f200505608f9fe): This is me leaving a comment.
67 > quit
68 Be safe!
69 ```
70
71 Next Step
72 ---------
73
74 Use the `save` command to save the login information (including the
75 password!) to an init file.
76
77 The init files searched are:
78
79 1. `~/.config/jan-pona-mute/login`
80 2. `~/.jan-pona-mute.d/login`
81 3. `~/.jan-pona-mute`
82
83 If one of them exists while starting up, that's the file that gets
84 written. If none exists, the first one is going to be created by the
85 `save` command.
86
87 Any further commands you put into the file are simple executed as if
88 you were to type them every time you start the program. A simple
89 change would be to add `notifications` as a command to the end of the
90 file.
91
92 Notes
93 -----
94
95 One thing I care about is editing comments with my favourite editor
96 and previewing them. This works really well if you have
97 [mdcat](https://github.com/lunaryorn/mdcat) as it renders Markdown.
98 Here's the workflow:
99
100 1. check notifications
101 2. pick a post
102 3. show latest comments
103 4. compose a note
104 5. preview note
105 6. leave a comment with that note
106
107 This is what it looks like, assuming your editor is `ed`:
108
109 ```text
110 > notifications
111 ...
112 > 1
113 ...
114 > comments
115 ...
116 > note nice
117 /home/alex/.config/jan-pona-mute/notes/nice: No such file or directory
118 a
119 OK, I like this. Thanks!
120 .
121 w
122 25
123 q
124 1. nice
125 Use 'edit' to create a note.
126 > preview 1
127 OK, I like this. Thanks!
128 > comment 1
129 ```
130
131 Reference
132 ---------
133
134 So much is still in flux. Please use the `help` command to learn more.
135
136 * use **intro** if you want to skip reading the rest of this list 😅
137
138 * use **account**, **password**, and **login** to login into your
139 account; use **save** to store these three commands in your init
140 file
141
142 * use **shortcuts** to show the current shortcuts; use **shortcut** to
143 define a new shortcut; these are good commands to add to your init
144 file (the **save** command won't do this for you)
145
146 * use **notifications** to see the latest notifications, use
147 **notifications reload** to update the list; this is also a good
148 command to add to your init file
149
150 * use **home** to see your home stream, use **home reload** to update
151 the list; use **home all** to see the full list; use **home 3** to
152 see the last 3 items
153
154 * use **show** and a number to show the post a notification is
155 referring to, or to choose a post from your home stream; this is
156 what then allows you to use **comments** to show the comments to
157 that post; use **comments 3** to see the last 3 items
158
159 * use **comment** to post a comment, use **post** to write a new post;
160 if you use a number instead of a writing a text, the number refers
161 to a note (see below)
162
163 * use **undo** to delete a comment or post after writing it; use
164 **delete comment** or **delete post** to delete them at a later date
165
166 * use **edit** and a filename to write a note; use **notes** to list
167 your notes; use **preview** to show a note; use **delete note** to
168 delete a note
169
170 * use **editor** to set your favourite editor (or set the EDITOR
171 environment variable); use **pager** to set your favourite page (or
172 set the PAGER environment variable); consider installing
173 [mdcat](https://github.com/lunaryorn/mdcat) and using it as your pager
174
175 * use **info** to review your settings
176
177 * use **quit** to end the program