ayadn 1.4.6 → 1.5.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.
- checksums.yaml +4 -4
 - data/.gitignore +0 -1
 - data/CHANGELOG.md +14 -1
 - data/README.md +38 -13
 - data/ayadn.gemspec +2 -2
 - data/doc/01-index.md +38 -0
 - data/doc/02-install.md +24 -0
 - data/doc/03-first-steps.md +161 -0
 - data/doc/04-options.md +13 -0
 - data/doc/05-streams.md +288 -0
 - data/doc/06-post.md +109 -0
 - data/doc/07-actions.md +115 -0
 - data/doc/08-listings.md +85 -0
 - data/doc/09-accounts.md +33 -0
 - data/doc/10-nicerank.md +58 -0
 - data/doc/11-blacklist.md +85 -0
 - data/doc/12-alias.md +57 -0
 - data/doc/13-bookmark.md +51 -0
 - data/doc/14-set.md +139 -0
 - data/doc/15-nowplaying.md +23 -0
 - data/doc/16-contact.md +29 -0
 - data/doc/17-shortcuts.md +8 -0
 - data/doc/18-examples.md +43 -0
 - data/lib/ayadn/action.rb +147 -88
 - data/lib/ayadn/api.rb +19 -37
 - data/lib/ayadn/app.rb +4 -5
 - data/lib/ayadn/databases.rb +0 -6
 - data/lib/ayadn/debug.rb +6 -0
 - data/lib/ayadn/endpoints.rb +5 -1
 - data/lib/ayadn/mark.rb +2 -2
 - data/lib/ayadn/nicerank.rb +34 -10
 - data/lib/ayadn/post.rb +20 -0
 - data/lib/ayadn/set.rb +0 -37
 - data/lib/ayadn/settings.rb +32 -20
 - data/lib/ayadn/version.rb +1 -1
 - data/lib/ayadn/view.rb +52 -32
 - data/lib/ayadn/workers.rb +54 -15
 - data/spec/unit/api_spec.rb +0 -27
 - data/spec/unit/view_spec.rb +11 -11
 - data/spec/unit/workers_spec.rb +46 -47
 - metadata +23 -5
 
    
        data/doc/12-alias.md
    ADDED
    
    | 
         @@ -0,0 +1,57 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # ALIAS
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Aliases are names you give to channels for an easier access.
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Available subcommands: create, delete, list, import.
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            Example: you're a [Paste-App](http://paste-app.net/) user and your personal Paste-App channel is 46216.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            Instead of getting this channel's messages with 
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            `ayadn -ms 46216` 
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            you can create an alias:
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            `ayadn alias create 46216 pasteapp`
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            or
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            `ayadn -A create 46216 pasteapp`
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            Then you can access this channel with 
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            `ayadn -ms pasteapp` 
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            Words are easier to remember than numbers!  
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            ## CREATE
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            Create an alias for a channel.
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            `ayadn alias create 46216 pasteapp`
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            `ayadn -A create 46216 pasteapp`
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            ## DELETE
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            Delete a channel alias.
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            `ayadn alias delete pasteapp`
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            `ayadn -A delete pasteapp`
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            ## LIST
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            List all your channel aliases.
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            `ayadn alias list`
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            `ayadn -A list`
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            ## IMPORT
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            Import a previously backed-up list of aliases.
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            `ayadn alias import '/Users/blah/backups/aliases.db'`
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            `ayadn -A import '/Users/blah/backups/aliases.db'`
         
     | 
    
        data/doc/13-bookmark.md
    ADDED
    
    | 
         @@ -0,0 +1,51 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # BOOKMARK
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Bookmark a conversation, list and delete bookmarks.
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Usage:
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            `ayadn mark add 30594331`
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            `ayadn mark add 30594331 'convo title'`
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            `ayadn mark list`
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            `ayadn mark delete 30594331`
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            `ayadn mark rename 30594331 'other name'`
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            ## ADD
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            Add a conversation to your bookmarks.
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            Usage:
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            `ayadn mark add 30594331`
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            `ayadn mark add 30594331 'convo title'`
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            You don't have to specify the root post of the conversation, any post within the thread will work.
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            ## DELETE
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            Delete entry from your bookmarked conversations.
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            Usage:
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            `ayadn mark delete 30594331`
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            ## LIST
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            List your bookmarked conversations.
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            Usage:
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            `ayadn mark list`
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            ## RENAME
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            Rename a bookmarked conversation.
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            Usage:
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            `ayadn mark rename 30594331 'new title'`
         
     | 
    
        data/doc/14-set.md
    ADDED
    
    | 
         @@ -0,0 +1,139 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # SET
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            The 'set' commands allows you to configure some Ayadn parameters.
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            `ayadn set color mentions blue`
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            You can get a list of configurable parameters with 
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            `ayadn -sg`  
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            ## EXAMPLES
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            `ayadn set color username green`
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            `ayadn set color mentions yellow`
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            `ayadn set counts default 30`
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            `ayadn set counts search 100`
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            `ayadn set timeline directed false`
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            `ayadn set timeline show_real_name false`
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            `ayadn set timeline show_date false`
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            `ayadn set backup auto_save_sent_posts true`
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            `ayadn set scroll timer 5`
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            `ayadn set nicerank filter true`
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            `ayadn set timeline show_spinner true`
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            To reset the configuration to default values:
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            `ayadn set defaults`
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            ## LIST
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            Example list of configured items in Ayadn.
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            `ayadn -sg` will show your own list.
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            ```
         
     | 
| 
      
 46 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 47 
     | 
    
         
            +
            | Category         | Parameter                       | Value(s)           |
         
     | 
| 
      
 48 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 49 
     | 
    
         
            +
            | timeline         | directed                        | 1                  |
         
     | 
| 
      
 50 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 51 
     | 
    
         
            +
            | timeline         | deleted                         | 0                  |
         
     | 
| 
      
 52 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 53 
     | 
    
         
            +
            | timeline         | html                            | 0                  |
         
     | 
| 
      
 54 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 55 
     | 
    
         
            +
            | timeline         | annotations                     | 1                  |
         
     | 
| 
      
 56 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 57 
     | 
    
         
            +
            | timeline         | show_source                     | true               |
         
     | 
| 
      
 58 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 59 
     | 
    
         
            +
            | timeline         | show_symbols                    | true               |
         
     | 
| 
      
 60 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 61 
     | 
    
         
            +
            | timeline         | show_real_name                  | true               |
         
     | 
| 
      
 62 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 63 
     | 
    
         
            +
            | timeline         | show_date                       | true               |
         
     | 
| 
      
 64 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 65 
     | 
    
         
            +
            | timeline         | show_spinner                    | true               |
         
     | 
| 
      
 66 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 67 
     | 
    
         
            +
            | counts           | default                         | 50                 |
         
     | 
| 
      
 68 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 69 
     | 
    
         
            +
            | counts           | unified                         | 50                 |
         
     | 
| 
      
 70 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 71 
     | 
    
         
            +
            | counts           | global                          | 100                |
         
     | 
| 
      
 72 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 73 
     | 
    
         
            +
            | counts           | checkins                        | 50                 |
         
     | 
| 
      
 74 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 75 
     | 
    
         
            +
            | counts           | conversations                   | 200                |
         
     | 
| 
      
 76 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 77 
     | 
    
         
            +
            | counts           | photos                          | 50                 |
         
     | 
| 
      
 78 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 79 
     | 
    
         
            +
            | counts           | trending                        | 50                 |
         
     | 
| 
      
 80 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 81 
     | 
    
         
            +
            | counts           | mentions                        | 50                 |
         
     | 
| 
      
 82 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 83 
     | 
    
         
            +
            | counts           | convo                           | 50                 |
         
     | 
| 
      
 84 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 85 
     | 
    
         
            +
            | counts           | posts                           | 50                 |
         
     | 
| 
      
 86 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 87 
     | 
    
         
            +
            | counts           | messages                        | 50                 |
         
     | 
| 
      
 88 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 89 
     | 
    
         
            +
            | counts           | search                          | 200                |
         
     | 
| 
      
 90 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 91 
     | 
    
         
            +
            | counts           | whoreposted                     | 50                 |
         
     | 
| 
      
 92 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 93 
     | 
    
         
            +
            | counts           | whostarred                      | 50                 |
         
     | 
| 
      
 94 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 95 
     | 
    
         
            +
            | counts           | whatstarred                     | 200                |
         
     | 
| 
      
 96 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 97 
     | 
    
         
            +
            | counts           | files                           | 100                |
         
     | 
| 
      
 98 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 99 
     | 
    
         
            +
            | formats          | table                           | width = 75         |
         
     | 
| 
      
 100 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 101 
     | 
    
         
            +
            | colors           | id                              | blue               |
         
     | 
| 
      
 102 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 103 
     | 
    
         
            +
            | colors           | index                           | red                |
         
     | 
| 
      
 104 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 105 
     | 
    
         
            +
            | colors           | username                        | green              |
         
     | 
| 
      
 106 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 107 
     | 
    
         
            +
            | colors           | name                            | magenta            |
         
     | 
| 
      
 108 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 109 
     | 
    
         
            +
            | colors           | date                            | cyan               |
         
     | 
| 
      
 110 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 111 
     | 
    
         
            +
            | colors           | link                            | yellow             |
         
     | 
| 
      
 112 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 113 
     | 
    
         
            +
            | colors           | dots                            | blue               |
         
     | 
| 
      
 114 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 115 
     | 
    
         
            +
            | colors           | hashtags                        | cyan               |
         
     | 
| 
      
 116 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 117 
     | 
    
         
            +
            | colors           | mentions                        | red                |
         
     | 
| 
      
 118 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 119 
     | 
    
         
            +
            | colors           | source                          | cyan               |
         
     | 
| 
      
 120 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 121 
     | 
    
         
            +
            | colors           | symbols                         | green              |
         
     | 
| 
      
 122 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 123 
     | 
    
         
            +
            | colors           | nicerank                        | cyan               |
         
     | 
| 
      
 124 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 125 
     | 
    
         
            +
            | backup           | auto_save_sent_posts            | false              |
         
     | 
| 
      
 126 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 127 
     | 
    
         
            +
            | backup           | auto_save_sent_messages         | false              |
         
     | 
| 
      
 128 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 129 
     | 
    
         
            +
            | backup           | auto_save_lists                 | false              |
         
     | 
| 
      
 130 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 131 
     | 
    
         
            +
            | scroll           | timer                           | 3                  |
         
     | 
| 
      
 132 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 133 
     | 
    
         
            +
            | nicerank         | threshold                       | 2.0                |
         
     | 
| 
      
 134 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 135 
     | 
    
         
            +
            | nicerank         | filter                          | true               |
         
     | 
| 
      
 136 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 137 
     | 
    
         
            +
            | nicerank         | filter_unranked                 | true               |
         
     | 
| 
      
 138 
     | 
    
         
            +
            +------------------+---------------------------------+--------------------+
         
     | 
| 
      
 139 
     | 
    
         
            +
            ```
         
     | 
| 
         @@ -0,0 +1,23 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # NOWPLAYING
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Post what you're listening to!
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            ## iTunes
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            OS X only.
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            `ayadn nowplaying`
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            `ayadn -np`
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            Ayadn will grab information from your running iTunes, format it, insert the *#nowplaying* hashtag then ask for your confirmation before posting it.
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            It will also grab a 30 seconds preview and the album art from the iTunes Store. You can prevent this behavior by adding the `--no-url` option (short: `-n`).
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            ## Last.fm
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            `ayadn nowplaying --last-fm`
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            `ayadn -np -l`
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            Same behaviour and options as above.
         
     | 
    
        data/doc/16-contact.md
    ADDED
    
    | 
         @@ -0,0 +1,29 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ## CONTACT
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            [@ericd](http://app.net/ericd)
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            [email](eric@aya.io)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            [@ayadn](http://app.net/ayadn)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            [ayadn-app.net](http://ayadn-app.net)
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            ## THANK YOU
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            [@matigo](http://app.net/matigo)
         
     | 
| 
      
 14 
     | 
    
         
            +
            [@ksniod](http://app.net/ksniod)
         
     | 
| 
      
 15 
     | 
    
         
            +
            [@donnywdavis](http://app.net/donnywdavis)
         
     | 
| 
      
 16 
     | 
    
         
            +
            [@manx](http://app.net/manx)
         
     | 
| 
      
 17 
     | 
    
         
            +
            [@bcallah](http://app.net/bcallah)
         
     | 
| 
      
 18 
     | 
    
         
            +
            [@0xmf](http://app.net/0xmf)
         
     | 
| 
      
 19 
     | 
    
         
            +
            [@sr_rolando](http://app.net/sr_rolando)
         
     | 
| 
      
 20 
     | 
    
         
            +
            [@charl](http://app.net/charl)
         
     | 
| 
      
 21 
     | 
    
         
            +
            [@jws](http://app.net/jws)
         
     | 
| 
      
 22 
     | 
    
         
            +
            [@joeltimmins](http://app.net/joeltimmins)
         
     | 
| 
      
 23 
     | 
    
         
            +
            [@berklee](http://app.net/berklee)
         
     | 
| 
      
 24 
     | 
    
         
            +
            [@nguarracino](http://app.net/nguarracino)
         
     | 
| 
      
 25 
     | 
    
         
            +
            [@matthewlang](http://app.net/matthewlang)
         
     | 
| 
      
 26 
     | 
    
         
            +
            [@schmidt_fu](http://app.net/schmidt_fu)
         
     | 
| 
      
 27 
     | 
    
         
            +
            [@jextxadore](http://app.net/jextxadore)
         
     | 
| 
      
 28 
     | 
    
         
            +
            [@jvimedia](http://app.net/jvimedia)
         
     | 
| 
      
 29 
     | 
    
         
            +
            [@fredvd](http://app.net/fredvd)
         
     | 
    
        data/doc/17-shortcuts.md
    ADDED
    
    | 
         @@ -0,0 +1,8 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # SHORTCUTS
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Most examples will include the 'complete' command followed by the 'shortcut' command. 
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Of course, using Ayadn is much faster with the shortcut commands.
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            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...  
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
    
        data/doc/18-examples.md
    ADDED
    
    | 
         @@ -0,0 +1,43 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ## EXAMPLES
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Just a few examples to give you a hint at the flexible syntax.
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Complete:    
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            `ayadn timeline`
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            `ayadn checkins --count=10 --index`
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            `ayadn global --scroll`
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            `ayadn userposts @ericd`
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            `ayadn post 'Hello guys!'`
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            `ayadn reply 23362460`
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            `ayadn convo 23362788`
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            `ayadn search movies hollywood`
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            `ayadn follow @ericd`  
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            Shortcuts:  
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            `ayadn -tl`
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            `ayadn -ck -c10 -i`
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            `ayadn -gl -s`
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            `ayadn -up @ericd`
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            `ayadn -P 'Hello guys!'`
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            `ayadn -R 23362460`
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            `ayadn -co 23362788`
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            `ayadn -se movies hollywood`
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            `ayadn -FO @ericd` 
         
     | 
    
        data/lib/ayadn/action.rb
    CHANGED
    
    | 
         @@ -132,7 +132,7 @@ module Ayadn 
     | 
|
| 
       132 
132 
     | 
    
         
             
                  begin
         
     | 
| 
       133 
133 
     | 
    
         
             
                    doing(options)
         
     | 
| 
       134 
134 
     | 
    
         
             
                    stream = @api.get_interactions
         
     | 
| 
       135 
     | 
    
         
            -
                     
     | 
| 
      
 135 
     | 
    
         
            +
                    if_raw_show(stream, options)
         
     | 
| 
       136 
136 
     | 
    
         
             
                    @view.clear_screen
         
     | 
| 
       137 
137 
     | 
    
         
             
                    @view.show_interactions(stream['data'])
         
     | 
| 
       138 
138 
     | 
    
         
             
                  rescue => e
         
     | 
| 
         @@ -162,7 +162,7 @@ module Ayadn 
     | 
|
| 
       162 
162 
     | 
    
         
             
                    stop_if_404(details, post_id)
         
     | 
| 
       163 
163 
     | 
    
         
             
                    id = get_original_id(post_id, details)
         
     | 
| 
       164 
164 
     | 
    
         
             
                    list = @api.get_whoreposted(id)
         
     | 
| 
       165 
     | 
    
         
            -
                     
     | 
| 
      
 165 
     | 
    
         
            +
                    if_raw_show(list, options)
         
     | 
| 
       166 
166 
     | 
    
         
             
                    unless list['data'].empty?
         
     | 
| 
       167 
167 
     | 
    
         
             
                      get_list(:whoreposted, list['data'], post_id)
         
     | 
| 
       168 
168 
     | 
    
         
             
                    else
         
     | 
| 
         @@ -181,7 +181,7 @@ module Ayadn 
     | 
|
| 
       181 
181 
     | 
    
         
             
                    stop_if_404(details, post_id)
         
     | 
| 
       182 
182 
     | 
    
         
             
                    id = get_original_id(post_id, details)
         
     | 
| 
       183 
183 
     | 
    
         
             
                    list = @api.get_whostarred(id)
         
     | 
| 
       184 
     | 
    
         
            -
                     
     | 
| 
      
 184 
     | 
    
         
            +
                    if_raw_show(list, options)
         
     | 
| 
       185 
185 
     | 
    
         
             
                    unless list['data'].empty?
         
     | 
| 
       186 
186 
     | 
    
         
             
                      get_list(:whostarred, list['data'], id)
         
     | 
| 
       187 
187 
     | 
    
         
             
                    else
         
     | 
| 
         @@ -201,6 +201,11 @@ module Ayadn 
     | 
|
| 
       201 
201 
     | 
    
         
             
                    id = get_original_id(post_id, details)
         
     | 
| 
       202 
202 
     | 
    
         
             
                    stream = get_convo id, options
         
     | 
| 
       203 
203 
     | 
    
         
             
                    Databases.pagination["replies:#{id}"] = stream['meta']['max_id']
         
     | 
| 
      
 204 
     | 
    
         
            +
                    options = options.dup
         
     | 
| 
      
 205 
     | 
    
         
            +
                    unless details['data']['reply_to'].nil?
         
     | 
| 
      
 206 
     | 
    
         
            +
                      options[:reply_to] = details['data']['reply_to'].to_i
         
     | 
| 
      
 207 
     | 
    
         
            +
                    end
         
     | 
| 
      
 208 
     | 
    
         
            +
                    options[:post_id] = post_id.to_i
         
     | 
| 
       204 
209 
     | 
    
         
             
                    render_view(stream, options)
         
     | 
| 
       205 
210 
     | 
    
         
             
                    Scroll.new(@api, @view).convo(id, options) if options[:scroll]
         
     | 
| 
       206 
211 
     | 
    
         
             
                  rescue => e
         
     | 
| 
         @@ -238,69 +243,93 @@ module Ayadn 
     | 
|
| 
       238 
243 
     | 
    
         
             
                  end
         
     | 
| 
       239 
244 
     | 
    
         
             
                end
         
     | 
| 
       240 
245 
     | 
    
         | 
| 
       241 
     | 
    
         
            -
                def unfollow( 
     | 
| 
      
 246 
     | 
    
         
            +
                def unfollow(usernames)
         
     | 
| 
       242 
247 
     | 
    
         
             
                  begin
         
     | 
| 
       243 
     | 
    
         
            -
                    stop_if_no_username( 
     | 
| 
       244 
     | 
    
         
            -
                     
     | 
| 
       245 
     | 
    
         
            -
                    puts Status.unfollowing( 
     | 
| 
       246 
     | 
    
         
            -
                     
     | 
| 
      
 248 
     | 
    
         
            +
                    stop_if_no_username(usernames)
         
     | 
| 
      
 249 
     | 
    
         
            +
                    users = all_but_me(usernames)
         
     | 
| 
      
 250 
     | 
    
         
            +
                    puts Status.unfollowing(users.join(','))
         
     | 
| 
      
 251 
     | 
    
         
            +
                    users.each do |user|
         
     | 
| 
      
 252 
     | 
    
         
            +
                      resp = @api.unfollow(user)
         
     | 
| 
      
 253 
     | 
    
         
            +
                      check_has_been_unfollowed(user, resp)
         
     | 
| 
      
 254 
     | 
    
         
            +
                      sleep 1 unless users.length == 1
         
     | 
| 
      
 255 
     | 
    
         
            +
                    end
         
     | 
| 
       247 
256 
     | 
    
         
             
                  rescue => e
         
     | 
| 
       248 
     | 
    
         
            -
                    Errors.global_error({error: e, caller: caller, data: [ 
     | 
| 
      
 257 
     | 
    
         
            +
                    Errors.global_error({error: e, caller: caller, data: [usernames]})
         
     | 
| 
       249 
258 
     | 
    
         
             
                  end
         
     | 
| 
       250 
259 
     | 
    
         
             
                end
         
     | 
| 
       251 
260 
     | 
    
         | 
| 
       252 
     | 
    
         
            -
                def follow( 
     | 
| 
      
 261 
     | 
    
         
            +
                def follow(usernames)
         
     | 
| 
       253 
262 
     | 
    
         
             
                  begin
         
     | 
| 
       254 
     | 
    
         
            -
                    stop_if_no_username( 
     | 
| 
       255 
     | 
    
         
            -
                     
     | 
| 
       256 
     | 
    
         
            -
                    puts Status.following( 
     | 
| 
       257 
     | 
    
         
            -
                     
     | 
| 
      
 263 
     | 
    
         
            +
                    stop_if_no_username(usernames)
         
     | 
| 
      
 264 
     | 
    
         
            +
                    users = all_but_me(usernames)
         
     | 
| 
      
 265 
     | 
    
         
            +
                    puts Status.following(users.join(','))
         
     | 
| 
      
 266 
     | 
    
         
            +
                    users.each do |user|
         
     | 
| 
      
 267 
     | 
    
         
            +
                      resp = @api.follow(user)
         
     | 
| 
      
 268 
     | 
    
         
            +
                      check_has_been_followed(user, resp)
         
     | 
| 
      
 269 
     | 
    
         
            +
                      sleep 1 unless users.length == 1
         
     | 
| 
      
 270 
     | 
    
         
            +
                    end
         
     | 
| 
       258 
271 
     | 
    
         
             
                  rescue => e
         
     | 
| 
       259 
     | 
    
         
            -
                    Errors.global_error({error: e, caller: caller, data: [ 
     | 
| 
      
 272 
     | 
    
         
            +
                    Errors.global_error({error: e, caller: caller, data: [usernames]})
         
     | 
| 
       260 
273 
     | 
    
         
             
                  end
         
     | 
| 
       261 
274 
     | 
    
         
             
                end
         
     | 
| 
       262 
275 
     | 
    
         | 
| 
       263 
     | 
    
         
            -
                def unmute( 
     | 
| 
      
 276 
     | 
    
         
            +
                def unmute(usernames)
         
     | 
| 
       264 
277 
     | 
    
         
             
                  begin
         
     | 
| 
       265 
     | 
    
         
            -
                    stop_if_no_username( 
     | 
| 
       266 
     | 
    
         
            -
                     
     | 
| 
       267 
     | 
    
         
            -
                    puts Status.unmuting( 
     | 
| 
       268 
     | 
    
         
            -
                     
     | 
| 
      
 278 
     | 
    
         
            +
                    stop_if_no_username(usernames)
         
     | 
| 
      
 279 
     | 
    
         
            +
                    users = all_but_me(usernames)
         
     | 
| 
      
 280 
     | 
    
         
            +
                    puts Status.unmuting(users.join(','))
         
     | 
| 
      
 281 
     | 
    
         
            +
                    users.each do |user|
         
     | 
| 
      
 282 
     | 
    
         
            +
                      resp = @api.unmute(user)
         
     | 
| 
      
 283 
     | 
    
         
            +
                      check_has_been_unmuted(user, resp)
         
     | 
| 
      
 284 
     | 
    
         
            +
                      sleep 1 unless users.length == 1
         
     | 
| 
      
 285 
     | 
    
         
            +
                    end
         
     | 
| 
       269 
286 
     | 
    
         
             
                  rescue => e
         
     | 
| 
       270 
     | 
    
         
            -
                    Errors.global_error({error: e, caller: caller, data: [ 
     | 
| 
      
 287 
     | 
    
         
            +
                    Errors.global_error({error: e, caller: caller, data: [usernames]})
         
     | 
| 
       271 
288 
     | 
    
         
             
                  end
         
     | 
| 
       272 
289 
     | 
    
         
             
                end
         
     | 
| 
       273 
290 
     | 
    
         | 
| 
       274 
     | 
    
         
            -
                def mute( 
     | 
| 
      
 291 
     | 
    
         
            +
                def mute(usernames)
         
     | 
| 
       275 
292 
     | 
    
         
             
                  begin
         
     | 
| 
       276 
     | 
    
         
            -
                    stop_if_no_username( 
     | 
| 
       277 
     | 
    
         
            -
                     
     | 
| 
       278 
     | 
    
         
            -
                    puts Status.muting( 
     | 
| 
       279 
     | 
    
         
            -
                     
     | 
| 
      
 293 
     | 
    
         
            +
                    stop_if_no_username(usernames)
         
     | 
| 
      
 294 
     | 
    
         
            +
                    users = all_but_me(usernames)
         
     | 
| 
      
 295 
     | 
    
         
            +
                    puts Status.muting(users.join(','))
         
     | 
| 
      
 296 
     | 
    
         
            +
                    users.each do |user|
         
     | 
| 
      
 297 
     | 
    
         
            +
                      resp = @api.mute(user)
         
     | 
| 
      
 298 
     | 
    
         
            +
                      check_has_been_muted(user, resp)
         
     | 
| 
      
 299 
     | 
    
         
            +
                      sleep 1 unless users.length == 1
         
     | 
| 
      
 300 
     | 
    
         
            +
                    end
         
     | 
| 
       280 
301 
     | 
    
         
             
                  rescue => e
         
     | 
| 
       281 
     | 
    
         
            -
                    Errors.global_error({error: e, caller: caller, data: [ 
     | 
| 
      
 302 
     | 
    
         
            +
                    Errors.global_error({error: e, caller: caller, data: [usernames]})
         
     | 
| 
       282 
303 
     | 
    
         
             
                  end
         
     | 
| 
       283 
304 
     | 
    
         
             
                end
         
     | 
| 
       284 
305 
     | 
    
         | 
| 
       285 
     | 
    
         
            -
                def unblock( 
     | 
| 
      
 306 
     | 
    
         
            +
                def unblock(usernames)
         
     | 
| 
       286 
307 
     | 
    
         
             
                  begin
         
     | 
| 
       287 
     | 
    
         
            -
                    stop_if_no_username( 
     | 
| 
       288 
     | 
    
         
            -
                     
     | 
| 
       289 
     | 
    
         
            -
                    puts Status.unblocking( 
     | 
| 
       290 
     | 
    
         
            -
                     
     | 
| 
      
 308 
     | 
    
         
            +
                    stop_if_no_username(usernames)
         
     | 
| 
      
 309 
     | 
    
         
            +
                    users = all_but_me(usernames)
         
     | 
| 
      
 310 
     | 
    
         
            +
                    puts Status.unblocking(users.join(','))
         
     | 
| 
      
 311 
     | 
    
         
            +
                    users.each do |user|
         
     | 
| 
      
 312 
     | 
    
         
            +
                      resp = @api.unblock(user)
         
     | 
| 
      
 313 
     | 
    
         
            +
                      check_has_been_unblocked(user, resp)
         
     | 
| 
      
 314 
     | 
    
         
            +
                      sleep 1 unless users.length == 1
         
     | 
| 
      
 315 
     | 
    
         
            +
                    end
         
     | 
| 
       291 
316 
     | 
    
         
             
                  rescue => e
         
     | 
| 
       292 
     | 
    
         
            -
                    Errors.global_error({error: e, caller: caller, data: [ 
     | 
| 
      
 317 
     | 
    
         
            +
                    Errors.global_error({error: e, caller: caller, data: [usernames]})
         
     | 
| 
       293 
318 
     | 
    
         
             
                  end
         
     | 
| 
       294 
319 
     | 
    
         
             
                end
         
     | 
| 
       295 
320 
     | 
    
         | 
| 
       296 
     | 
    
         
            -
                def block( 
     | 
| 
      
 321 
     | 
    
         
            +
                def block(usernames)
         
     | 
| 
       297 
322 
     | 
    
         
             
                  begin
         
     | 
| 
       298 
     | 
    
         
            -
                    stop_if_no_username( 
     | 
| 
       299 
     | 
    
         
            -
                     
     | 
| 
       300 
     | 
    
         
            -
                    puts Status.blocking( 
     | 
| 
       301 
     | 
    
         
            -
                     
     | 
| 
      
 323 
     | 
    
         
            +
                    stop_if_no_username(usernames)
         
     | 
| 
      
 324 
     | 
    
         
            +
                    users = all_but_me(usernames)
         
     | 
| 
      
 325 
     | 
    
         
            +
                    puts Status.blocking(users.join(','))
         
     | 
| 
      
 326 
     | 
    
         
            +
                    users.each do |user|
         
     | 
| 
      
 327 
     | 
    
         
            +
                      resp = @api.block(user)
         
     | 
| 
      
 328 
     | 
    
         
            +
                      check_has_been_blocked(user, resp)
         
     | 
| 
      
 329 
     | 
    
         
            +
                      sleep 1 unless users.length == 1
         
     | 
| 
      
 330 
     | 
    
         
            +
                    end
         
     | 
| 
       302 
331 
     | 
    
         
             
                  rescue => e
         
     | 
| 
       303 
     | 
    
         
            -
                    Errors.global_error({error: e, caller: caller, data: [ 
     | 
| 
      
 332 
     | 
    
         
            +
                    Errors.global_error({error: e, caller: caller, data: [usernames]})
         
     | 
| 
       304 
333 
     | 
    
         
             
                  end
         
     | 
| 
       305 
334 
     | 
    
         
             
                end
         
     | 
| 
       306 
335 
     | 
    
         | 
| 
         @@ -401,7 +430,7 @@ module Ayadn 
     | 
|
| 
       401 
430 
     | 
    
         
             
                      stream['data'].sort_by! {|obj| obj['counts']['followers']}
         
     | 
| 
       402 
431 
     | 
    
         
             
                      stream['data'].each do |obj|
         
     | 
| 
       403 
432 
     | 
    
         
             
                        puts @view.big_separator
         
     | 
| 
       404 
     | 
    
         
            -
                        @view.show_userinfos(obj, nil)
         
     | 
| 
      
 433 
     | 
    
         
            +
                        @view.show_userinfos(obj, nil, false)
         
     | 
| 
       405 
434 
     | 
    
         
             
                      end
         
     | 
| 
       406 
435 
     | 
    
         
             
                    elsif options[:channels]
         
     | 
| 
       407 
436 
     | 
    
         
             
                      @view.show_channels stream, options
         
     | 
| 
         @@ -422,7 +451,7 @@ module Ayadn 
     | 
|
| 
       422 
451 
     | 
    
         
             
                    stop_if_no_username(username)
         
     | 
| 
       423 
452 
     | 
    
         
             
                    username = add_arobase(username)
         
     | 
| 
       424 
453 
     | 
    
         
             
                    doing(options)
         
     | 
| 
       425 
     | 
    
         
            -
                     
     | 
| 
      
 454 
     | 
    
         
            +
                    if_raw_list(username, :followings, options)
         
     | 
| 
       426 
455 
     | 
    
         
             
                    list = @api.get_followings(username)
         
     | 
| 
       427 
456 
     | 
    
         
             
                    auto_save_followings(list)
         
     | 
| 
       428 
457 
     | 
    
         
             
                    no_data('followings') if list.empty?
         
     | 
| 
         @@ -438,7 +467,7 @@ module Ayadn 
     | 
|
| 
       438 
467 
     | 
    
         
             
                    stop_if_no_username(username)
         
     | 
| 
       439 
468 
     | 
    
         
             
                    username = add_arobase(username)
         
     | 
| 
       440 
469 
     | 
    
         
             
                    doing(options)
         
     | 
| 
       441 
     | 
    
         
            -
                     
     | 
| 
      
 470 
     | 
    
         
            +
                    if_raw_list(username, :followers, options)
         
     | 
| 
       442 
471 
     | 
    
         
             
                    list = @api.get_followers(username)
         
     | 
| 
       443 
472 
     | 
    
         
             
                    auto_save_followers(list)
         
     | 
| 
       444 
473 
     | 
    
         
             
                    no_data('followers') if list.empty?
         
     | 
| 
         @@ -452,7 +481,7 @@ module Ayadn 
     | 
|
| 
       452 
481 
     | 
    
         
             
                def muted(options)
         
     | 
| 
       453 
482 
     | 
    
         
             
                  begin
         
     | 
| 
       454 
483 
     | 
    
         
             
                    doing(options)
         
     | 
| 
       455 
     | 
    
         
            -
                     
     | 
| 
      
 484 
     | 
    
         
            +
                    if_raw_list(nil, :muted, options)
         
     | 
| 
       456 
485 
     | 
    
         
             
                    list = @api.get_muted
         
     | 
| 
       457 
486 
     | 
    
         
             
                    auto_save_muted(list)
         
     | 
| 
       458 
487 
     | 
    
         
             
                    no_data('muted') if list.empty?
         
     | 
| 
         @@ -466,7 +495,7 @@ module Ayadn 
     | 
|
| 
       466 
495 
     | 
    
         
             
                def blocked(options)
         
     | 
| 
       467 
496 
     | 
    
         
             
                  begin
         
     | 
| 
       468 
497 
     | 
    
         
             
                    doing(options)
         
     | 
| 
       469 
     | 
    
         
            -
                     
     | 
| 
      
 498 
     | 
    
         
            +
                    if_raw_list(nil, :blocked, options)
         
     | 
| 
       470 
499 
     | 
    
         
             
                    list = @api.get_blocked
         
     | 
| 
       471 
500 
     | 
    
         
             
                    no_data('blocked') if list.empty?
         
     | 
| 
       472 
501 
     | 
    
         
             
                    get_list(:blocked, list, nil)
         
     | 
| 
         @@ -489,7 +518,11 @@ module Ayadn 
     | 
|
| 
       489 
518 
     | 
    
         
             
                    stop_if_no_username(username)
         
     | 
| 
       490 
519 
     | 
    
         
             
                    username = add_arobase(username)
         
     | 
| 
       491 
520 
     | 
    
         
             
                    doing(options)
         
     | 
| 
       492 
     | 
    
         
            -
                     
     | 
| 
      
 521 
     | 
    
         
            +
                    if options[:raw]
         
     | 
| 
      
 522 
     | 
    
         
            +
                      resp = @api.get_user(username)
         
     | 
| 
      
 523 
     | 
    
         
            +
                      @view.show_raw(resp, options)
         
     | 
| 
      
 524 
     | 
    
         
            +
                      exit
         
     | 
| 
      
 525 
     | 
    
         
            +
                    end
         
     | 
| 
       493 
526 
     | 
    
         
             
                    stream = @api.get_user(username)
         
     | 
| 
       494 
527 
     | 
    
         
             
                    stop_if_no_user(stream, username)
         
     | 
| 
       495 
528 
     | 
    
         
             
                    same_username?(stream) ? token = @api.get_token_info['data'] : token = nil
         
     | 
| 
         @@ -503,7 +536,11 @@ module Ayadn 
     | 
|
| 
       503 
536 
     | 
    
         
             
                  begin
         
     | 
| 
       504 
537 
     | 
    
         
             
                    stop_if_bad_post_id(post_id)
         
     | 
| 
       505 
538 
     | 
    
         
             
                    doing(options)
         
     | 
| 
       506 
     | 
    
         
            -
                     
     | 
| 
      
 539 
     | 
    
         
            +
                    if options[:raw]
         
     | 
| 
      
 540 
     | 
    
         
            +
                      details = @api.get_details(post_id, options)
         
     | 
| 
      
 541 
     | 
    
         
            +
                      @view.show_raw(details, options)
         
     | 
| 
      
 542 
     | 
    
         
            +
                      exit
         
     | 
| 
      
 543 
     | 
    
         
            +
                    end
         
     | 
| 
       507 
544 
     | 
    
         
             
                    @view.clear_screen
         
     | 
| 
       508 
545 
     | 
    
         
             
                    response = @api.get_details(post_id, options)
         
     | 
| 
       509 
546 
     | 
    
         
             
                    stop_if_no_post(response, post_id)
         
     | 
| 
         @@ -520,9 +557,9 @@ module Ayadn 
     | 
|
| 
       520 
557 
     | 
    
         
             
                    end
         
     | 
| 
       521 
558 
     | 
    
         
             
                    puts "AUTHOR:\n".inverse
         
     | 
| 
       522 
559 
     | 
    
         
             
                    if response['data']['username'] == Settings.config[:identity][:username]
         
     | 
| 
       523 
     | 
    
         
            -
                      @view.show_userinfos(stream, @api.get_token_info['data'])
         
     | 
| 
      
 560 
     | 
    
         
            +
                      @view.show_userinfos(stream, @api.get_token_info['data'], true)
         
     | 
| 
       524 
561 
     | 
    
         
             
                    else
         
     | 
| 
       525 
     | 
    
         
            -
                      @view.show_userinfos(stream, nil)
         
     | 
| 
      
 562 
     | 
    
         
            +
                      @view.show_userinfos(stream, nil, true)
         
     | 
| 
       526 
563 
     | 
    
         
             
                    end
         
     | 
| 
       527 
564 
     | 
    
         
             
                  rescue => e
         
     | 
| 
       528 
565 
     | 
    
         
             
                    Errors.global_error({error: e, caller: caller, data: [post_id, options]})
         
     | 
| 
         @@ -532,7 +569,10 @@ module Ayadn 
     | 
|
| 
       532 
569 
     | 
    
         
             
                def files(options)
         
     | 
| 
       533 
570 
     | 
    
         
             
                  begin
         
     | 
| 
       534 
571 
     | 
    
         
             
                    doing(options)
         
     | 
| 
       535 
     | 
    
         
            -
                     
     | 
| 
      
 572 
     | 
    
         
            +
                    if options[:raw]
         
     | 
| 
      
 573 
     | 
    
         
            +
                      @view.show_raw(@api.get_files_list(options), options)
         
     | 
| 
      
 574 
     | 
    
         
            +
                      exit
         
     | 
| 
      
 575 
     | 
    
         
            +
                    end
         
     | 
| 
       536 
576 
     | 
    
         
             
                    list = @api.get_files_list(options)
         
     | 
| 
       537 
577 
     | 
    
         
             
                    @view.clear_screen
         
     | 
| 
       538 
578 
     | 
    
         
             
                    list.empty? ? no_data('files') : @view.show_files_list(list)
         
     | 
| 
         @@ -569,7 +609,7 @@ module Ayadn 
     | 
|
| 
       569 
609 
     | 
    
         
             
                    resp = @api.get_messages(channel_id, options)
         
     | 
| 
       570 
610 
     | 
    
         
             
                    stop_if_no_new_posts(resp, options, "channel:#{channel_id}")
         
     | 
| 
       571 
611 
     | 
    
         
             
                    Databases.save_max_id(resp)
         
     | 
| 
       572 
     | 
    
         
            -
                     
     | 
| 
      
 612 
     | 
    
         
            +
                    if_raw_show(resp, options)
         
     | 
| 
       573 
613 
     | 
    
         
             
                    stop_if_no_data(resp, 'messages')
         
     | 
| 
       574 
614 
     | 
    
         
             
                    render_view(resp, options)
         
     | 
| 
       575 
615 
     | 
    
         
             
                    Scroll.new(@api, @view).messages(channel_id, options) if options[:scroll]
         
     | 
| 
         @@ -623,14 +663,8 @@ module Ayadn 
     | 
|
| 
       623 
663 
     | 
    
         
             
                    writer = Post.new
         
     | 
| 
       624 
664 
     | 
    
         
             
                    @view.clear_screen
         
     | 
| 
       625 
665 
     | 
    
         
             
                    if options['embed']
         
     | 
| 
       626 
     | 
    
         
            -
                       
     | 
| 
       627 
     | 
    
         
            -
             
     | 
| 
       628 
     | 
    
         
            -
                        embed = [opts.shift]
         
     | 
| 
       629 
     | 
    
         
            -
                        text = opts.join(" ")
         
     | 
| 
       630 
     | 
    
         
            -
                      else
         
     | 
| 
       631 
     | 
    
         
            -
                        embed = options['embed']
         
     | 
| 
       632 
     | 
    
         
            -
                        text = args.join(" ")
         
     | 
| 
       633 
     | 
    
         
            -
                      end
         
     | 
| 
      
 666 
     | 
    
         
            +
                      embed = options['embed']
         
     | 
| 
      
 667 
     | 
    
         
            +
                      text = args.join(" ")
         
     | 
| 
       634 
668 
     | 
    
         
             
                      puts Status.uploading(embed)
         
     | 
| 
       635 
669 
     | 
    
         
             
                      resp = writer.send_embedded(text, FileOps.make_paths(embed))
         
     | 
| 
       636 
670 
     | 
    
         
             
                    else
         
     | 
| 
         @@ -752,7 +786,14 @@ module Ayadn 
     | 
|
| 
       752 
786 
     | 
    
         
             
                    FileOps.save_post(resp) if Settings.options[:backup][:auto_save_sent_posts]
         
     | 
| 
       753 
787 
     | 
    
         
             
                    @view.clear_screen
         
     | 
| 
       754 
788 
     | 
    
         
             
                    puts Status.done
         
     | 
| 
       755 
     | 
    
         
            -
             
     | 
| 
      
 789 
     | 
    
         
            +
             
     | 
| 
      
 790 
     | 
    
         
            +
                    options = options.dup
         
     | 
| 
      
 791 
     | 
    
         
            +
                    unless resp['data']['reply_to'].nil?
         
     | 
| 
      
 792 
     | 
    
         
            +
                      options[:reply_to] = resp['data']['reply_to'].to_i
         
     | 
| 
      
 793 
     | 
    
         
            +
                    end
         
     | 
| 
      
 794 
     | 
    
         
            +
                    options[:post_id] = resp['data']['id'].to_i
         
     | 
| 
      
 795 
     | 
    
         
            +
             
     | 
| 
      
 796 
     | 
    
         
            +
                    render_view(@api.get_convo(post_id), options)
         
     | 
| 
       756 
797 
     | 
    
         
             
                  rescue => e
         
     | 
| 
       757 
798 
     | 
    
         
             
                    Errors.global_error({error: e, caller: caller, data: [post_id, options]})
         
     | 
| 
       758 
799 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -793,21 +834,43 @@ module Ayadn 
     | 
|
| 
       793 
834 
     | 
    
         
             
                  end
         
     | 
| 
       794 
835 
     | 
    
         
             
                end
         
     | 
| 
       795 
836 
     | 
    
         | 
| 
      
 837 
     | 
    
         
            +
                def version
         
     | 
| 
      
 838 
     | 
    
         
            +
                  begin
         
     | 
| 
      
 839 
     | 
    
         
            +
                    puts "\nAYADN\n".color(:red)
         
     | 
| 
      
 840 
     | 
    
         
            +
                    puts "Version:\t".color(:cyan) + "#{VERSION}\n".color(:green)
         
     | 
| 
      
 841 
     | 
    
         
            +
                    puts "Changelog:\t".color(:cyan) + "https://github.com/ericdke/na/blob/master/CHANGELOG.md\n".color(Settings.options[:colors][:link])
         
     | 
| 
      
 842 
     | 
    
         
            +
                    puts "Docs:\t\t".color(:cyan) + "http://ayadn-app.net/doc/".color(Settings.options[:colors][:link])
         
     | 
| 
      
 843 
     | 
    
         
            +
                    puts "\n"
         
     | 
| 
      
 844 
     | 
    
         
            +
                  rescue => e
         
     | 
| 
      
 845 
     | 
    
         
            +
                    Errors.global_error({error: e, caller: caller, data: []})
         
     | 
| 
      
 846 
     | 
    
         
            +
                  end
         
     | 
| 
      
 847 
     | 
    
         
            +
                end
         
     | 
| 
      
 848 
     | 
    
         
            +
             
     | 
| 
       796 
849 
     | 
    
         
             
                private
         
     | 
| 
       797 
850 
     | 
    
         | 
| 
      
 851 
     | 
    
         
            +
                def if_raw_list username, what, options
         
     | 
| 
      
 852 
     | 
    
         
            +
                  if options[:raw]
         
     | 
| 
      
 853 
     | 
    
         
            +
                    @view.show_raw(@api.get_raw_list(username, what), options)
         
     | 
| 
      
 854 
     | 
    
         
            +
                    exit
         
     | 
| 
      
 855 
     | 
    
         
            +
                  end
         
     | 
| 
      
 856 
     | 
    
         
            +
                end
         
     | 
| 
      
 857 
     | 
    
         
            +
             
     | 
| 
      
 858 
     | 
    
         
            +
                def if_raw_show what, options
         
     | 
| 
      
 859 
     | 
    
         
            +
                  if options[:raw]
         
     | 
| 
      
 860 
     | 
    
         
            +
                    @view.show_raw(what, options)
         
     | 
| 
      
 861 
     | 
    
         
            +
                    exit
         
     | 
| 
      
 862 
     | 
    
         
            +
                  end
         
     | 
| 
      
 863 
     | 
    
         
            +
                end
         
     | 
| 
      
 864 
     | 
    
         
            +
             
     | 
| 
      
 865 
     | 
    
         
            +
                def all_but_me usernames
         
     | 
| 
      
 866 
     | 
    
         
            +
                  all_but_me = usernames.select {|user| user != 'me'}
         
     | 
| 
      
 867 
     | 
    
         
            +
                  Workers.at(all_but_me)
         
     | 
| 
      
 868 
     | 
    
         
            +
                end
         
     | 
| 
      
 869 
     | 
    
         
            +
             
     | 
| 
       798 
870 
     | 
    
         
             
                def np_lastfm options
         
     | 
| 
       799 
871 
     | 
    
         
             
                  require 'rss'
         
     | 
| 
       800 
872 
     | 
    
         
             
                  begin
         
     | 
| 
       801 
     | 
    
         
            -
                     
     | 
| 
       802 
     | 
    
         
            -
                      if Settings.options[:nowplaying][:lastfm]
         
     | 
| 
       803 
     | 
    
         
            -
                        user = Settings.options[:nowplaying][:lastfm]
         
     | 
| 
       804 
     | 
    
         
            -
                      else
         
     | 
| 
       805 
     | 
    
         
            -
                        user = create_lastfm_user()
         
     | 
| 
       806 
     | 
    
         
            -
                      end
         
     | 
| 
       807 
     | 
    
         
            -
                    else
         
     | 
| 
       808 
     | 
    
         
            -
                      Settings.options[:nowplaying] = {}
         
     | 
| 
       809 
     | 
    
         
            -
                      user = create_lastfm_user()
         
     | 
| 
       810 
     | 
    
         
            -
                    end
         
     | 
| 
      
 873 
     | 
    
         
            +
                    user = Settings.options[:nowplaying][:lastfm] || create_lastfm_user()
         
     | 
| 
       811 
874 
     | 
    
         
             
                    puts Status.fetching_from('Last.fm')
         
     | 
| 
       812 
875 
     | 
    
         
             
                    artist, track = get_lastfm_track_infos(user)
         
     | 
| 
       813 
876 
     | 
    
         
             
                    puts Status.itunes_store
         
     | 
| 
         @@ -852,26 +915,33 @@ module Ayadn 
     | 
|
| 
       852 
915 
     | 
    
         
             
                    @view.clear_screen
         
     | 
| 
       853 
916 
     | 
    
         
             
                    puts Status.writing
         
     | 
| 
       854 
917 
     | 
    
         
             
                    show_nowplaying("\n#{text_to_post}", options, store)
         
     | 
| 
       855 
     | 
    
         
            -
                    unless options['no_url'] || store 
     | 
| 
       856 
     | 
    
         
            -
                      #text_to_post += "\n \n[> Listen](#{store['preview']})"
         
     | 
| 
      
 918 
     | 
    
         
            +
                    unless options['no_url'] || store.nil?
         
     | 
| 
       857 
919 
     | 
    
         
             
                      text_to_post += "\n \n[iTunes Store](#{store['link']})"
         
     | 
| 
       858 
920 
     | 
    
         
             
                    end
         
     | 
| 
       859 
921 
     | 
    
         
             
                    abort(Status.canceled) unless STDIN.getch == ("y" || "Y")
         
     | 
| 
       860 
922 
     | 
    
         
             
                    puts "\n#{Status.yourpost}"
         
     | 
| 
       861 
     | 
    
         
            -
                    unless  
     | 
| 
       862 
     | 
    
         
            -
                      visible, track, artwork, artwork_thumb = true, store['track'], store['artwork'], store['artwork_thumb']
         
     | 
| 
      
 923 
     | 
    
         
            +
                    unless store.nil? || options['no_url']
         
     | 
| 
      
 924 
     | 
    
         
            +
                      visible, track, artwork, artwork_thumb, link, artist = true, store['track'], store['artwork'], store['artwork_thumb'], store['link'], store['artist']
         
     | 
| 
      
 925 
     | 
    
         
            +
                    else
         
     | 
| 
      
 926 
     | 
    
         
            +
                      visible, track, artwork, artwork_thumb, link, artist = false
         
     | 
| 
      
 927 
     | 
    
         
            +
                    end
         
     | 
| 
      
 928 
     | 
    
         
            +
                    if options['lastfm']
         
     | 
| 
      
 929 
     | 
    
         
            +
                      source = 'Last.fm'
         
     | 
| 
       863 
930 
     | 
    
         
             
                    else
         
     | 
| 
       864 
     | 
    
         
            -
                       
     | 
| 
      
 931 
     | 
    
         
            +
                      source = 'iTunes'
         
     | 
| 
       865 
932 
     | 
    
         
             
                    end
         
     | 
| 
       866 
933 
     | 
    
         
             
                    dic = {
         
     | 
| 
       867 
934 
     | 
    
         
             
                      'text' => text_to_post,
         
     | 
| 
       868 
935 
     | 
    
         
             
                      'title' => track,
         
     | 
| 
      
 936 
     | 
    
         
            +
                      'artist' => artist,
         
     | 
| 
       869 
937 
     | 
    
         
             
                      'artwork' => artwork,
         
     | 
| 
       870 
938 
     | 
    
         
             
                      'artwork_thumb' => artwork_thumb,
         
     | 
| 
       871 
939 
     | 
    
         
             
                      'width' => 1200,
         
     | 
| 
       872 
940 
     | 
    
         
             
                      'height' => 1200,
         
     | 
| 
       873 
941 
     | 
    
         
             
                      'width_thumb' => 200,
         
     | 
| 
       874 
942 
     | 
    
         
             
                      'height_thumb' => 200,
         
     | 
| 
      
 943 
     | 
    
         
            +
                      'link' => link,
         
     | 
| 
      
 944 
     | 
    
         
            +
                      'source' => source,
         
     | 
| 
       875 
945 
     | 
    
         
             
                      'visible' => visible
         
     | 
| 
       876 
946 
     | 
    
         
             
                    }
         
     | 
| 
       877 
947 
     | 
    
         
             
                    @view.show_posted(Post.new.send_nowplaying(dic))
         
     | 
| 
         @@ -958,22 +1028,11 @@ module Ayadn 
     | 
|
| 
       958 
1028 
     | 
    
         
             
                  else
         
     | 
| 
       959 
1029 
     | 
    
         
             
                    puts text + "\n\n\nThe iTunes Store thinks this track is: ".color(:green) + "'#{store['track']}'".color(:magenta) + " by ".color(:green) + "'#{store['artist']}'".color(:magenta) + ".\n\nAyadn will use these elements to insert album artwork and a link to the track.\n\n".color(:green)
         
     | 
| 
       960 
1030 
     | 
    
         
             
                  end
         
     | 
| 
       961 
     | 
    
         
            -
                  puts " 
     | 
| 
      
 1031 
     | 
    
         
            +
                  puts "Is it ok? (y/N) ".color(:yellow)
         
     | 
| 
       962 
1032 
     | 
    
         
             
                end
         
     | 
| 
       963 
1033 
     | 
    
         | 
| 
       964 
1034 
     | 
    
         
             
                def nicerank_true
         
     | 
| 
       965 
     | 
    
         
            -
                  if Settings.options[:nicerank]
         
     | 
| 
       966 
     | 
    
         
            -
                    if Settings.options[:nicerank][:filter] == true
         
     | 
| 
       967 
     | 
    
         
            -
                      return true
         
     | 
| 
       968 
     | 
    
         
            -
                    end
         
     | 
| 
       969 
     | 
    
         
            -
                  end
         
     | 
| 
       970 
     | 
    
         
            -
                end
         
     | 
| 
       971 
     | 
    
         
            -
             
     | 
| 
       972 
     | 
    
         
            -
                def option_show_raw stream, options
         
     | 
| 
       973 
     | 
    
         
            -
                  if options[:raw]
         
     | 
| 
       974 
     | 
    
         
            -
                    @view.show_raw(stream)
         
     | 
| 
       975 
     | 
    
         
            -
                    exit
         
     | 
| 
       976 
     | 
    
         
            -
                  end
         
     | 
| 
      
 1035 
     | 
    
         
            +
                  return true if Settings.options[:nicerank][:filter] == true
         
     | 
| 
       977 
1036 
     | 
    
         
             
                end
         
     | 
| 
       978 
1037 
     | 
    
         | 
| 
       979 
1038 
     | 
    
         
             
                def stop_if_bad_post_id post_id
         
     | 
| 
         @@ -1220,7 +1279,7 @@ module Ayadn 
     | 
|
| 
       1220 
1279 
     | 
    
         | 
| 
       1221 
1280 
     | 
    
         
             
                def get_infos(stream, token)
         
     | 
| 
       1222 
1281 
     | 
    
         
             
                  @view.clear_screen
         
     | 
| 
       1223 
     | 
    
         
            -
                  @view.show_userinfos(stream, token)
         
     | 
| 
      
 1282 
     | 
    
         
            +
                  @view.show_userinfos(stream, token, true)
         
     | 
| 
       1224 
1283 
     | 
    
         
             
                end
         
     | 
| 
       1225 
1284 
     | 
    
         | 
| 
       1226 
1285 
     | 
    
         
             
                def get_list(what, list, target)
         
     |