ayadn 0.6.4 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +20 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +17 -0
  5. data/Gemfile +14 -0
  6. data/Guardfile +26 -0
  7. data/LICENSE.txt +22 -0
  8. data/MANUAL.md +946 -0
  9. data/README.md +26 -411
  10. data/Rakefile +6 -0
  11. data/ayadn.gemspec +39 -0
  12. data/bin/ayadn +3 -3
  13. data/lib/ayadn.rb +12 -25
  14. data/lib/ayadn/action.rb +1121 -0
  15. data/lib/ayadn/alias.rb +106 -0
  16. data/lib/ayadn/api.rb +312 -301
  17. data/lib/ayadn/app.rb +429 -365
  18. data/lib/ayadn/authorize.rb +127 -28
  19. data/lib/ayadn/blacklist.rb +116 -0
  20. data/lib/ayadn/cnx.rb +105 -0
  21. data/lib/ayadn/databases.rb +110 -0
  22. data/lib/ayadn/descriptions.rb +1043 -0
  23. data/lib/ayadn/endpoints.rb +220 -153
  24. data/lib/ayadn/errors.rb +37 -0
  25. data/lib/ayadn/extend.rb +4 -10
  26. data/lib/ayadn/fileops.rb +48 -0
  27. data/lib/ayadn/logs.rb +32 -0
  28. data/lib/ayadn/pinboard.rb +46 -35
  29. data/lib/ayadn/post.rb +229 -212
  30. data/lib/ayadn/scroll.rb +251 -0
  31. data/lib/ayadn/set.rb +377 -0
  32. data/lib/ayadn/settings.rb +195 -0
  33. data/lib/ayadn/status.rb +226 -165
  34. data/lib/ayadn/switch.rb +72 -0
  35. data/lib/ayadn/version.rb +4 -0
  36. data/lib/ayadn/view.rb +506 -269
  37. data/lib/ayadn/workers.rb +362 -0
  38. data/spec/helpers.rb +19 -0
  39. data/spec/mock/@ericd.json +160 -0
  40. data/spec/mock/@m.json +45 -0
  41. data/spec/mock/checkins.json +1856 -0
  42. data/spec/mock/fwr_@ayadn.json +1077 -0
  43. data/spec/mock/posted.json +1 -0
  44. data/spec/mock/stream.json +1 -0
  45. data/spec/spec_helper.rb +14 -0
  46. data/spec/unit/api_spec.rb +61 -0
  47. data/spec/unit/databases_spec.rb +5 -0
  48. data/spec/unit/descriptions_spec.rb +9 -0
  49. data/spec/unit/endpoints_spec.rb +35 -0
  50. data/spec/unit/post_spec.rb +136 -0
  51. data/spec/unit/status_spec.rb +9 -0
  52. data/spec/unit/view_spec.rb +119 -0
  53. data/spec/unit/workers_spec.rb +147 -0
  54. metadata +216 -40
  55. data/CHANGELOG.md +0 -250
  56. data/CONTRIBUTORS.md +0 -5
  57. data/LICENSE.md +0 -14
  58. data/lib/ayadn/adn_files.rb +0 -84
  59. data/lib/ayadn/client-http.rb +0 -226
  60. data/lib/ayadn/colors.rb +0 -62
  61. data/lib/ayadn/config.yml +0 -35
  62. data/lib/ayadn/debug.rb +0 -36
  63. data/lib/ayadn/files.rb +0 -184
  64. data/lib/ayadn/get-api.rb +0 -43
  65. data/lib/ayadn/help.rb +0 -152
  66. data/lib/ayadn/list.rb +0 -89
  67. data/lib/ayadn/main.rb +0 -542
  68. data/lib/ayadn/requires.rb +0 -12
  69. data/lib/ayadn/skip.rb +0 -27
  70. data/lib/ayadn/tools.rb +0 -208
  71. data/lib/ayadn/user-stream.rb +0 -91
  72. data/lib/ayadn/view-channels.rb +0 -120
  73. data/lib/ayadn/view-interactions.rb +0 -57
  74. data/lib/ayadn/view-object.rb +0 -195
  75. data/lib/experiments.rb +0 -109
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e60ae311797897e5786fc096a4698195b64e5226
4
- data.tar.gz: 9ebf742cf8da514c4499e5af9cfa3a4260ec04c2
3
+ metadata.gz: a1ac4ca5dcab8724e657f5dbcc336fabf6a91fdf
4
+ data.tar.gz: 6fd6a5129de0234ca67f8e99e66be05c9c5d093c
5
5
  SHA512:
6
- metadata.gz: d30d8e6304d77899de33fa7653090985ed7786217004c6d7cbddf82994c84bdccb87d811501c5d20b817057a95d5fdaf47c16b7e26466b63e4728db8dbd57a8e
7
- data.tar.gz: 743647412a7ad23681c2ec03ce8ad7debb694195ea210dc200b959681248766b3970a63e2b4ba1be32c8fb90745645443be7f624a22887287801d21952e3e421
6
+ metadata.gz: d2badae07e439ce5c3b03b930f4b42e01dbc38a7371aabb6e375a096e6410bdd1aefbd4847f3d198bdff4fc78ca8336d063f2d64615a3cd6c827f03818cecdab
7
+ data.tar.gz: 8979d5fc1bdc384bd2405bb7d9ea2217ea9b106968c9a91cdf31d71ccb488f18e57593b8f0b5c4f29b052ba68f1c707d6918c80f64881570b3142280a8376e92
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ .tags*
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
19
+ token
20
+ fake.db
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/.travis.yml ADDED
@@ -0,0 +1,17 @@
1
+ language: ruby
2
+ cache: bundler
3
+
4
+ rvm:
5
+ - "2.1.1"
6
+ - "2.0.0"
7
+ - "1.9.3"
8
+
9
+ script: 'bundle exec rake spec'
10
+
11
+ branches:
12
+ only:
13
+ - master
14
+
15
+ notifications:
16
+ email:
17
+ - ericdejonckheere@gmail.com
data/Gemfile ADDED
@@ -0,0 +1,14 @@
1
+ source 'https://rubygems.org'
2
+
3
+ group :test do
4
+ gem 'rake'
5
+ gem 'rspec'
6
+ gem 'fakefs'
7
+ end
8
+
9
+ platforms :mswin, :mingw do
10
+ gem "win32console", ">= 1.3.2"
11
+ end
12
+
13
+ # Specify your gem's dependencies in ayadn.gemspec
14
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,26 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :rspec do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/ayadn/(.+)\.rb$}) { |m| "spec/unit/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+ watch('spec/helpers.rb')
9
+ watch('bin/ayadn')
10
+
11
+ # # Rails example
12
+ # watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
13
+ # watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
14
+ # watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
15
+ # watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
16
+ # watch('config/routes.rb') { "spec/routing" }
17
+ # watch('app/controllers/application_controller.rb') { "spec/controllers" }
18
+
19
+ # # Capybara features specs
20
+ # watch(%r{^app/views/(.+)/.*\.(erb|haml|slim)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
21
+
22
+ # # Turnip features and steps
23
+ # watch(%r{^spec/acceptance/(.+)\.feature$})
24
+ # watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
25
+ end
26
+
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Eric Dejonckheere
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/MANUAL.md ADDED
@@ -0,0 +1,946 @@
1
+ - [INSTALL](#install)
2
+ - [RUBY](#ruby)
3
+ - [AYADN](#ayadn)
4
+ - [OS X, LINUX, BSD](#os-x-linux-bsd)
5
+ - [WINDOWS](#windows)
6
+ - [FIRST STEPS](#first-steps)
7
+ - [AUTHORIZE](#authorize)
8
+ - [HELP](#help)
9
+ - [EXAMPLES](#examples)
10
+ - [ACCOUNTS](#accounts)
11
+ - [DATA](#data)
12
+ - [HOW-TO](#how-to)
13
+ - [STREAMS](#streams)
14
+ - [TIMELINE](#timeline)
15
+ - [AVAILABLE OPTIONS](#available-options)
16
+ - [SCROLL](#scroll)
17
+ - [COUNT](#count)
18
+ - [INDEX](#index)
19
+ - [NEW](#new)
20
+ - [RAW](#raw)
21
+ - [GLOBAL](#global)
22
+ - [CHECKINS](#checkins)
23
+ - [CONVERSATIONS](#conversations)
24
+ - [TRENDING](#trending)
25
+ - [MENTIONS](#mentions)
26
+ - [POSTS](#posts)
27
+ - [MESSAGES](#messages)
28
+ - [WHATSTARRED](#whatstarred)
29
+ - [CONVO](#convo)
30
+ - [HASHTAG](#hashtag)
31
+ - [SEARCH](#search)
32
+ - [RANDOM](#random)
33
+ - [USER INFO](#user-info)
34
+ - [POST INFO](#post-info)
35
+ - [POSTING](#posting)
36
+ - [POST](#post)
37
+ - [WRITE](#write)
38
+ - [AUTO POST](#auto-post)
39
+ - [REPLY](#reply)
40
+ - [PM (PRIVATE MESSAGE)](#pm-private-message)
41
+ - [SEND](#send)
42
+ - [ACTIONS](#actions)
43
+ - [DELETE](#delete)
44
+ - [REPOST](#repost)
45
+ - [UNREPOST](#unrepost)
46
+ - [STAR](#star)
47
+ - [UNSTAR](#unstar)
48
+ - [FOLLOW](#follow)
49
+ - [UNFOLLOW](#unfollow)
50
+ - [MUTE](#mute)
51
+ - [UNMUTE](#unmute)
52
+ - [BLOCK](#block)
53
+ - [UNBLOCK](#unblock)
54
+ - [DOWNLOAD](#download)
55
+ - [LISTS](#lists)
56
+ - [FOLLOWERS](#followers)
57
+ - [FOLLOWINGS](#followings)
58
+ - [CHANNELS](#channels)
59
+ - [INTERACTIONS](#interactions)
60
+ - [WHOREPOSTED](#whoreposted)
61
+ - [MUTED](#muted)
62
+ - [BLOCKED](#blocked)
63
+ - [SETTINGS](#settings)
64
+ - [FILES](#files)
65
+ - [TOOLS](#tools)
66
+ - [AUTHORIZE](#authorize-1)
67
+ - [SWITCH](#switch)
68
+ - [BLACKLIST](#blacklist)
69
+ - [ADD](#add)
70
+ - [REMOVE](#remove)
71
+ - [LIST](#list)
72
+ - [IMPORT](#import)
73
+ - [ALIAS](#alias)
74
+ - [CREATE](#create)
75
+ - [DELETE](#delete-1)
76
+ - [LIST](#list-1)
77
+ - [IMPORT](#import-1)
78
+ - [SET](#set)
79
+ - [EXTRAS](#extras)
80
+ - [PIN](#pin)
81
+ - [NOWPLAYING](#nowplaying)
82
+
83
+ # INSTALL
84
+
85
+ ## RUBY
86
+
87
+ Ayadn is compatible with Ruby 1.9.3 but works better with Ruby 2.0 or newer.
88
+
89
+ ## AYADN
90
+
91
+ Install:
92
+
93
+ `gem install ayadn`
94
+
95
+ Update:
96
+
97
+ `gem update ayadn`
98
+
99
+ ### OS X, LINUX, BSD
100
+
101
+ Please use something like RVM or RBENV to install Ruby if necessary.
102
+
103
+ You can also use the Ruby shipped with your system but it's not ideal, as it will probably require root privileges or using the 'sudo' command.
104
+
105
+ ### WINDOWS
106
+
107
+ You have to run one more command:
108
+
109
+ `gem install win32console -v 1.3.2`
110
+
111
+ # FIRST STEPS
112
+
113
+ ## AUTHORIZE
114
+
115
+ You have to give Ayadn the authorization to use your App.net account.
116
+
117
+ Just run `ayadn authorize` or `ayadn -auth` to register a new user.
118
+
119
+ ## HELP
120
+
121
+ `ayadn` shows a list of available commands.
122
+
123
+ `ayadn help COMMAND` shows the instructions and available [options](#available-options) for a specific command.
124
+
125
+ Examples:
126
+
127
+ `ayadn help post`
128
+
129
+ `ayadn help timeline`
130
+
131
+ ## EXAMPLES
132
+
133
+ Just a few examples to give you a hint at the flexible syntax:
134
+
135
+ `ayadn timeline`
136
+
137
+ `ayadn -tl`
138
+
139
+ `ayadn checkins -c10 -i`
140
+
141
+ `ayadn global --scroll`
142
+
143
+ `ayadn -up @ericd`
144
+
145
+ `ayadn -P 'Hello guys!'`
146
+
147
+ `ayadn -R 23362460`
148
+
149
+ `ayadn convo 23362788`
150
+
151
+ `ayadn search movies hollywood`
152
+
153
+ `ayadn follow @ericd`
154
+
155
+ ## ACCOUNTS
156
+
157
+ Ayadn supports multiple accounts.
158
+
159
+ Register a new user with `ayadn -auth` at any moment.
160
+
161
+ You can then switch between accounts:
162
+
163
+ `ayadn switch @ericd` or `ayadn -@ ericd`
164
+
165
+ ## DATA
166
+
167
+ All Ayadn files and folders are created in your 'home' folder.
168
+
169
+ On Mac OS X, it looks like this:
170
+
171
+ /Users/ericdke/ayadn/ericd
172
+ ├── auth
173
+ │   └── token
174
+ ├── backup
175
+ ├── config
176
+ │   ├── api.json
177
+ │   ├── config.yml
178
+ │   └── version.yml
179
+ ├── db
180
+ │   ├── aliases.db
181
+ │   ├── blacklist.db
182
+ │   └── users.db
183
+ ├── downloads
184
+ ├── lists
185
+ ├── log
186
+ │   └── ayadn.log
187
+ ├── messages
188
+ ├── pagination
189
+ │   ├── index.db
190
+ │   └── pagination.db
191
+ └── posts
192
+
193
+ Each authorized account has its set of folders and databases.
194
+
195
+ This is also the repository of the configuration file, `config.yml`.
196
+
197
+ Although there's the `set` command in Ayadn to configure most parameters, you can also edit the file manually. If anything goes wrong, simply delete `config.yml` and Ayadn will re-create one with default values.
198
+
199
+
200
+ # HOW-TO
201
+
202
+ Note: options are only described once in this manual (in the first example, for 'timeline').
203
+
204
+ However, options are available for mosts of streams! They're described only once for readability purposes.
205
+
206
+ **You can check if a command has specific options with `ayadn help COMMAND`.**
207
+ Most examples will include the 'complete' command followed by the 'shortcut' command. Of course, using Ayadn is way faster with the shortcut commands.
208
+
209
+ If you're like me, you'll even want to create aliases in bash/zsh or TextExpander snippets for the combinations of Ayadn commands and options you use the most...
210
+
211
+
212
+ # STREAMS
213
+
214
+ This section is about the App.net streams.
215
+
216
+ ## TIMELINE
217
+
218
+ Display your main timeline.
219
+
220
+ This is also called the 'Unified stream': it regroups the posts of people you follow and the posts mentioning you.
221
+
222
+ `ayadn timeline`
223
+
224
+ `ayadn -tl`
225
+
226
+
227
+ ### AVAILABLE OPTIONS
228
+
229
+ #### SCROLL
230
+
231
+ Scroll your timeline with:
232
+
233
+ `ayadn timeline --scroll`
234
+
235
+ `ayadn -tl -s`
236
+
237
+ Note: Ayadn pulls the stream every 3 seconds by default.
238
+
239
+ It means you can launch up to 3 scroll streams at a time _per account_.
240
+
241
+ You can bring that value down to 1 second if you're using only _one_ scroll stream per account at a time, 2 seconds if you're using _two_ scroll streams, and so on and so forth.
242
+
243
+ If Ayadn ends up making too many requests to ADN, it will display an alert message with instructions then stop running.
244
+
245
+ So if you plan on launching many Ayadn scrolling instances at once, you should [set](#set) the timer parameter accordingly (App.net accepts 5000 requests per hour per account maximum).
246
+
247
+ #### COUNT
248
+
249
+ Ayadn displays a certain number of posts by default when you request a stream.
250
+
251
+ With the *count* option, you can set a specific value for each request:
252
+
253
+ `ayadn --count=10 timeline`
254
+
255
+ `ayadn -c10 -tl`
256
+
257
+ The maximum value is 200 for any stream.
258
+
259
+ #### INDEX
260
+
261
+ Shows an index instead of the posts ids.
262
+
263
+ `ayadn --index timeline`
264
+
265
+ `ayadn -tl -i`
266
+
267
+ This is particularly useful if you're using Ayadn to [reply](#reply) to conversations.
268
+
269
+ Copy/pasting the post id can be tedious at times, and anyway it's faster to glance at a short number and use it immediately.
270
+
271
+ Example:
272
+
273
+ ayadn -tl -i
274
+ ayadn -R 33
275
+
276
+ if 33 is the number of the indexed post you want to reply to.
277
+
278
+ #### NEW
279
+
280
+ Displays only the new posts in the stream since your last visit.
281
+
282
+ `ayadn --new timeline`
283
+
284
+ `ayadn -n -tl`
285
+
286
+ #### RAW
287
+
288
+ Displays the raw response from the App.net API instead of the formatted Ayadn output. For debugging and learning purposes.
289
+
290
+ `ayadn -x -tl`
291
+
292
+ ## GLOBAL
293
+
294
+ Display the 'Global stream'.
295
+
296
+ `ayadn global`
297
+
298
+ `ayadn -gl`
299
+
300
+ Although the 'Global stream' is nowadays infested with spammers, it remains a fantastic source to find new people to interact with.
301
+
302
+ Ayadn helps you in that task with the [blacklist](#blacklist) command, which allows you to mute posters _per client name_, obliterating suddenly most of the bots and feeds.
303
+
304
+ You may also want to read the Conversations stream, which contains only posts leading to conversation threads.
305
+
306
+ ## CHECKINS
307
+
308
+ Display the 'Checkins stream'.
309
+
310
+ Ayadn will show any available geolocation data for these posts.
311
+
312
+ `ayadn checkins`
313
+
314
+ `ayadn -ck`
315
+
316
+ ## CONVERSATIONS
317
+
318
+ Display the 'Conversations stream'.
319
+
320
+ This is a stream of posts that lead to [conversations](#convo) with real people.
321
+
322
+ `ayadn conversations`
323
+
324
+ `ayadn -cq`
325
+
326
+ ## TRENDING
327
+
328
+ Display the 'Trending stream'.
329
+
330
+ This is a stream of trending posts.
331
+
332
+ `ayadn trending`
333
+
334
+ `ayadn -tr`
335
+
336
+ ## MENTIONS
337
+
338
+ Display posts containing a mention of @username.
339
+
340
+ `ayadn mentions @ericd`
341
+
342
+ `ayadn -m @ericd`
343
+
344
+ You can get your own mentions stream by using *me* instead of *@username*:
345
+
346
+ `ayadn -m me`
347
+
348
+ Don't forget that like most streams, Mentions is [scrollable](#scroll): very convenient to know at a glance if we got something new from our friends!
349
+
350
+ ## POSTS
351
+
352
+ Show the posts of a specific user.
353
+
354
+ `ayadn userposts @ericd`
355
+
356
+ `ayadn -up @ericd`
357
+
358
+ You can get your own posts by using *me* instead of *@username*:
359
+
360
+ `ayadn -up me`
361
+
362
+ ## MESSAGES
363
+
364
+ Show messages in a [channel](#channels).
365
+
366
+ `ayadn messages 46217`
367
+
368
+ `ayadn -ms 46217`
369
+
370
+ You can replace the channel id with its alias if you previously [defined](#alias) one:
371
+
372
+ `ayadn -ms mychannelalias`
373
+
374
+ ## WHATSTARRED
375
+
376
+ Show posts starred by a specific user.
377
+
378
+ `ayadn whatstarred @ericd`
379
+
380
+ `ayadn -was @ericd`
381
+
382
+ You can get your own stars by using *me* instead of *@username*:
383
+
384
+ `ayadn -was me`
385
+
386
+ ## CONVO
387
+
388
+ Show the conversation thread around a specific post.
389
+
390
+ `ayadn convo 23362788`
391
+
392
+ `ayadn -co 23362788`
393
+
394
+ ## HASHTAG
395
+
396
+ Show recent posts containing #HASHTAG(s).
397
+
398
+ `ayadn hashtag nowplaying`
399
+
400
+ `ayadn -t nowplaying`
401
+
402
+ `ayadn -t nowplaying rock`
403
+
404
+ ## SEARCH
405
+
406
+ Show recents posts containing WORD(s).
407
+
408
+ `ayadn search ruby`
409
+
410
+ `ayadn -s ruby`
411
+
412
+ `ayadn -s ruby json api`
413
+
414
+ ## RANDOM
415
+
416
+ Show series of random posts from App.net. Just for fun :)
417
+
418
+ `ayadn random`
419
+
420
+ `ayadn -rnd`
421
+
422
+ ## USER INFO
423
+
424
+ Show informations about a user.
425
+
426
+ `ayadn userinfo @ericd`
427
+
428
+ `ayadn -ui @ericd`
429
+
430
+ You can see your own info by using *me* instead of *@username*:
431
+
432
+ `ayadn -ui me`
433
+
434
+ ## POST INFO
435
+
436
+ Show informations about a post.
437
+
438
+ `ayadn postinfo 23362788`
439
+
440
+ `ayadn -pi 23362788`
441
+
442
+ # POSTING
443
+
444
+ This section is about posting to App.net.
445
+
446
+ ## POST
447
+
448
+ Simple and fast way to post a short sentence/word to App.net.
449
+
450
+ `ayadn post Hello from Ayadn`
451
+
452
+ `ayadn -P Hello from Ayadn`
453
+
454
+ `ayadn -P @ericd hello Eric`
455
+
456
+ You have to put your text between single quotes if you're using punctuation:
457
+
458
+ `ayadn -P 'Hello from Ayadn, guys!'`
459
+
460
+ But remember you can't then use any `'` character!
461
+
462
+ **So you should rather use either the [write](#write) or the [auto](#auto-post) method for posting.**
463
+
464
+ ## WRITE
465
+
466
+ Multi-line post to App.net.
467
+
468
+ This is the recommended way to post elaborate text to ADN:
469
+
470
+ `ayadn write`
471
+
472
+ `ayadn -W`
473
+
474
+ It will show you a prompt where you can type anything, including special characters and Markdown links.
475
+
476
+ Hit ENTER to create line breaks and paragraphs.
477
+
478
+ Cancel your post with CTRC-C or send it with CTRL-D.
479
+
480
+ Just type a @username at the beginning of your post if you want to mention a specific user, as you would in any other App.net client.
481
+
482
+ ## AUTO POST
483
+
484
+ Auto post every line of input.
485
+
486
+ The is the funniest way to post to ADN! :)
487
+
488
+ `ayadn auto`
489
+
490
+ In this mode, each line you type (each time you hit ENTER!) is automatically posted to ADN.
491
+
492
+ You can type anything, including special characters and Markdown links, and of course mention anyone: the only thing you can't do from this mode is _replying_ to a post in a thread.
493
+
494
+ Hit CTRL+C to exit this mode at any moment.
495
+
496
+ ## REPLY
497
+
498
+ Reply to a specific post.
499
+
500
+ - You can reply by specifying the post id:
501
+
502
+ `ayadn reply 23362460`
503
+
504
+ `ayadn -R 23362460`
505
+
506
+ Ayadn will then show you the [write](#write) prompt.
507
+
508
+ If you reply to a post containing multiple mentions, your text will be inserted between the leading mention and the other ones.
509
+
510
+ - You can also reply to the *index* of the post instead of its *id* _if you used the '--index' or '-i' option_ when previously viewing a stream:
511
+
512
+ `ayadn -R 3`
513
+
514
+ ## PM (PRIVATE MESSAGE)
515
+
516
+ Send a private message to a specific user.
517
+
518
+ `ayadn pm @ericd`
519
+
520
+ Ayadn will then show you the [write](#write) prompt.
521
+
522
+ ## SEND
523
+
524
+ Send a message to an App.net CHANNEL.
525
+
526
+ `ayadn send 46217`
527
+
528
+ `ayadn -C 46217`
529
+
530
+ Ayadn will then show you the [write](#write) prompt.
531
+
532
+ If you've already created an [alias](#alias) for the channel, you can post to it with:
533
+
534
+ `ayadn send mychannelalias`
535
+
536
+ `ayadn -C mychannelalias`
537
+
538
+ # ACTIONS
539
+
540
+ This section is about available actions like follow, repost, etc.
541
+
542
+ ## DELETE
543
+
544
+ Delete a post.
545
+
546
+ `ayadn delete 23365251`
547
+
548
+ `ayadn -D 23365251`
549
+
550
+ ## REPOST
551
+
552
+ Repost a post.
553
+
554
+ `ayadn repost 23365251`
555
+
556
+ `ayadn -O 23365251`
557
+
558
+ ## UNREPOST
559
+
560
+ Unrepost a post.
561
+
562
+ `ayadn unrepost 23365251`
563
+
564
+ `ayadn -UR 23365251`
565
+
566
+ ## STAR
567
+
568
+ Star a post.
569
+
570
+ `ayadn star 23365251`
571
+
572
+ `ayadn -ST 23365251`
573
+
574
+ ## UNSTAR
575
+
576
+ Unstar a post.
577
+
578
+ `ayadn unstar 23365251`
579
+
580
+ `ayadn -US 23365251`
581
+
582
+ ## FOLLOW
583
+
584
+ Follow a user.
585
+
586
+ `ayadn follow @ericd`
587
+
588
+ `ayadn -FO @ericd`
589
+
590
+ ## UNFOLLOW
591
+
592
+ Unfollow a user.
593
+
594
+ `ayadn unfollow @ericd`
595
+
596
+ `ayadn -UF @ericd`
597
+
598
+ ## MUTE
599
+
600
+ Mute a user.
601
+
602
+ `ayadn mute @spammer`
603
+
604
+ `ayadn -MU @spammer`
605
+
606
+ ## UNMUTE
607
+
608
+ Unmute a user.
609
+
610
+ `ayadn unmute @spammer`
611
+
612
+ `ayadn -UM @spammer`
613
+
614
+ ## BLOCK
615
+
616
+ Block a user (same as [mute](#mute) but also prevents the blocked user to [follow](#follow) you).
617
+
618
+ `ayadn block @spammer`
619
+
620
+ `ayadn -BL @spammer`
621
+
622
+ ## UNBLOCK
623
+
624
+ Unblock a user.
625
+
626
+ `ayadn unblock @spammer`
627
+
628
+ `ayadn -UB @spammer`
629
+
630
+ ## DOWNLOAD
631
+
632
+ Download a file from your App.net storage (any file posted with other ADN clients).
633
+
634
+ `ayadn download 23344556`
635
+
636
+ `ayadn -df 23344556`
637
+
638
+ # LISTS
639
+
640
+ This section is about getting lists from App.net.
641
+
642
+ ## FOLLOWERS
643
+
644
+ List followers of a user.
645
+
646
+ `ayadn followers @ericd`
647
+
648
+ `ayadn -fwr @ericd`
649
+
650
+ You can see your own list by using *me* instead of *@username*:
651
+
652
+ `ayadn -fwr me`
653
+
654
+ ## FOLLOWINGS
655
+
656
+ List the users a user is following.
657
+
658
+ `ayadn followings @ericd`
659
+
660
+ `ayadn -fwg @ericd`
661
+
662
+ You can see your own list by using *me* instead of *@username*:
663
+
664
+ `ayadn -fwg me`
665
+
666
+ ## CHANNELS
667
+
668
+ List your active App.net channels.
669
+
670
+ `ayadn channels`
671
+
672
+ `ayadn -ch`
673
+
674
+ ## INTERACTIONS
675
+
676
+ Shows a short reminder of your recent App.net activity.
677
+
678
+ `ayadn interactions`
679
+
680
+ `ayadn -int`
681
+
682
+ ## WHOREPOSTED
683
+
684
+ List users who reposted a post.
685
+
686
+ `ayadn whoreposted 22790201`
687
+
688
+ `ayadn -wor 22790201`
689
+
690
+ ## MUTED
691
+
692
+ List the users you muted.
693
+
694
+ `ayadn muted`
695
+
696
+ `ayadn -mtd`
697
+
698
+ ## BLOCKED
699
+
700
+ List the users you blocked.
701
+
702
+ `ayadn blocked`
703
+
704
+ `ayadn -bkd`
705
+
706
+ ## SETTINGS
707
+
708
+ List current Ayadn settings.
709
+
710
+ `ayadn settings`
711
+
712
+ `ayadn -sg`
713
+
714
+ ## FILES
715
+
716
+ List the files in your App.net storage.
717
+
718
+ `ayadn files`
719
+
720
+ `ayadn -fl`
721
+
722
+ List them all:
723
+
724
+ `ayadn files -a`
725
+
726
+ `ayadn -fl -a`
727
+
728
+ # TOOLS
729
+
730
+ This section is about specific Ayadn tools.
731
+
732
+ ## AUTHORIZE
733
+
734
+ Authorize Ayadn for a specific user account.
735
+
736
+ `ayadn authorize`
737
+
738
+ `ayadn -auth`
739
+
740
+ Ayadn will give you a link leading to the official App.net registration page.
741
+
742
+ After your successful login, you will be redirected to the Ayadn authorization page.
743
+
744
+ Copy the code (token) you will find there and paste it into Ayadn: a new user will be created and automatically logged in.
745
+
746
+ ## SWITCH
747
+
748
+ Switch between your authorized accounts.
749
+
750
+ `ayadn switch @ericd`
751
+
752
+ `ayadn switch @otheraccount`
753
+
754
+ Alternative syntax:
755
+
756
+ `ayadn -@ ericd`
757
+
758
+ `ayadn -@ otheraccount`
759
+
760
+ List your authorized accounts:
761
+
762
+ `ayadn switch -l`
763
+
764
+ `ayadn -@ -l`
765
+
766
+ ## BLACKLIST
767
+
768
+ The blacklist is a list of users, clients and hashtags that you don't want to ever be displayed.
769
+
770
+ Available subcommands: add, remove, import, list.
771
+
772
+ This is different from the 'mute a user' feature of the App.net API: blacklist works locally and is specific to each account.
773
+
774
+ Blacklist a client (example: IFTTT) and posts that are posted with this client won't appear in the streams.
775
+
776
+ This is a way of creating "bot-free" streams: the more bots you add to this list, the more humans you see.
777
+
778
+ Blacklist a hashtag and you will free yourself from this annoying trend you can't stand.
779
+
780
+ Blacklist a user and you won't even see posts by other users mentioning the user you blacklisted!
781
+
782
+ Oh, and you can import blacklist databases from other accounts, too.
783
+
784
+ ### ADD
785
+
786
+ Adds an item to your blacklist.
787
+
788
+ Available items: client, hashtag, mention.
789
+
790
+ `ayadn blacklist add mention @shmuck`
791
+
792
+ Add a mention:
793
+
794
+ `ayadn -K add mention @shmuck`
795
+
796
+ Add a client:
797
+
798
+ `ayadn -K add client IFTTT`
799
+
800
+ Add a hashtag:
801
+
802
+ `ayadn -K add hashtag twitter`
803
+
804
+ ### REMOVE
805
+
806
+ Removes an item from your blacklist.
807
+
808
+ Available items: client, hashtag, mention.
809
+
810
+ `ayadn blacklist remove mention @shmuck`
811
+
812
+ Remove a mention:
813
+
814
+ `ayadn -K remove mention @shmuck`
815
+
816
+ Remove a client:
817
+
818
+ `ayadn -K remove client IFTTT`
819
+
820
+ Remove a hashtag:
821
+
822
+ `ayadn -K remove hashtag twitter`
823
+
824
+ ### LIST
825
+
826
+ List all items in your blacklist.
827
+
828
+ `ayadn blacklist list`
829
+
830
+ `ayadn -K list`
831
+
832
+ ### IMPORT
833
+
834
+ Import a blacklist database in the current account.
835
+
836
+ `ayadn blacklist import '/Users/blah/backups/blacklist.db'`
837
+
838
+ `ayadn -K import '/Users/blah/backups/blacklist.db'`
839
+
840
+ ## ALIAS
841
+
842
+ Aliases are names you give to channels for an easier access.
843
+
844
+ Available subcommands: create, delete, list, import.
845
+
846
+ Example: you're a [Paste-App](http://paste-app.net/) user and your personal Paste-App channel is 46216.
847
+
848
+ Instead of getting this channel's messages with `ayadn -ms 46216` you can create an alias:
849
+
850
+ `ayadn alias create 46216 pasteapp`
851
+
852
+ or
853
+
854
+ `ayadn -A create 46216 pasteapp`
855
+
856
+ Then you can access this channel with `ayadn -ms pasteapp`, as words are easier to remember than numbers.
857
+
858
+ ### CREATE
859
+
860
+ Create an alias for a channel.
861
+
862
+ `ayadn alias create 46216 pasteapp`
863
+
864
+ `ayadn -A create 46216 pasteapp`
865
+
866
+ ### DELETE
867
+
868
+ Delete a channel alias.
869
+
870
+ `ayadn alias delete pasteapp`
871
+
872
+ `ayadn -A delete pasteapp`
873
+
874
+ ### LIST
875
+
876
+ List all your channel aliases.
877
+
878
+ `ayadn alias list`
879
+
880
+ `ayadn -A list`
881
+
882
+ ### IMPORT
883
+
884
+ Import a previously backed-up list of aliases.
885
+
886
+ `ayadn alias import '/Users/blah/backups/aliases.db'`
887
+
888
+ `ayadn -A import '/Users/blah/backups/aliases.db'`
889
+
890
+ ## SET
891
+
892
+ The 'set' commands allows you to configure some Ayadn parameters.
893
+
894
+ `ayadn set color mentions blue`
895
+
896
+ You can get a list of configurable parameters with `ayadn -sg`.
897
+
898
+ Examples:
899
+
900
+ `ayadn set color username green`
901
+
902
+ `ayadn set color mentions yellow`
903
+
904
+ `ayadn set counts default 30`
905
+
906
+ `ayadn set counts search 100`
907
+
908
+ `ayadn set timeline directed false`
909
+
910
+ `ayadn set show_real_name false`
911
+
912
+ `ayadn set show_date false`
913
+
914
+ `ayadn set backup auto_save_sent_posts true`
915
+
916
+ `ayadn set scroll timer 1.5`
917
+
918
+ To reset the configuration to default values:
919
+
920
+ `ayadn set defaults`
921
+
922
+
923
+ # EXTRAS
924
+
925
+ This section is about specific Ayadn extras.
926
+
927
+ ## PIN
928
+
929
+ Export a post's link and text, with tags, to your Pinboard account.
930
+
931
+ `ayadn pin 22790201 Ayadn gem update`
932
+
933
+ `ayadn pin 26874913 duel swords france`
934
+
935
+ ## NOWPLAYING
936
+
937
+ Post what you're listening to!
938
+
939
+ Only works on Mac OS X with iTunes.
940
+
941
+ `ayadn nowplaying`
942
+
943
+ `ayadn -np`
944
+
945
+ Ayadn will grab information from iTunes, format it, insert the *#nowplaying* hashtag then ask for your confirmation before posting it.
946
+