ayadn 0.6.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
+