chatterbot 2.0.3 → 2.0.4
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/.travis.yml +3 -5
- data/Gemfile +9 -17
- data/Rakefile +2 -18
- data/chatterbot.gemspec +10 -11
- data/docs/Gemfile +3 -0
- data/docs/README.md +3 -0
- data/docs/_config.yml +37 -0
- data/docs/_includes/footer.html +3 -0
- data/docs/_includes/header.html +4 -0
- data/docs/_includes/navigation.html +23 -0
- data/docs/_layouts/default.html +98 -0
- data/docs/_layouts/page.html +11 -0
- data/docs/_posts/.gitkeep +0 -0
- data/docs/_site/Gemfile +3 -0
- data/docs/_site/advanced.html +476 -0
- data/docs/_site/configuration.html +456 -0
- data/docs/_site/contributing.html +433 -0
- data/docs/_site/css/main.css +58 -0
- data/docs/_site/css/syntax.css +61 -0
- data/docs/_site/deploying.html +468 -0
- data/docs/_site/examples.html +574 -0
- data/docs/_site/features.html +497 -0
- data/docs/_site/images/01-create-application.png +0 -0
- data/docs/_site/images/02-application-permissions.png +0 -0
- data/docs/_site/images/03-mobile-number.png +0 -0
- data/docs/_site/images/04-access-token.png +0 -0
- data/docs/_site/index.html +482 -0
- data/docs/_site/javascripts/main.js +1 -0
- data/docs/_site/other-tools.html +438 -0
- data/docs/_site/params.json +1 -0
- data/docs/_site/rdoc.html +428 -0
- data/docs/_site/setup.html +500 -0
- data/docs/_site/streaming.html +506 -0
- data/docs/_site/stylesheets/pygment_trac.css +68 -0
- data/docs/_site/stylesheets/stylesheet.css +247 -0
- data/docs/_site/tut.html +422 -0
- data/docs/_site/twitter-docs.html +428 -0
- data/docs/_site/walkthrough.html +463 -0
- data/docs/advanced.md +67 -0
- data/docs/basics.md +12 -0
- data/docs/bin/jekyll-page +109 -0
- data/docs/configuration.md +32 -0
- data/docs/contributing.md +14 -0
- data/docs/css/main.css +58 -0
- data/docs/css/syntax.css +61 -0
- data/docs/deploying.md +53 -0
- data/docs/examples.md +168 -0
- data/docs/features.md +88 -0
- data/docs/images/01-create-application.png +0 -0
- data/docs/images/02-application-permissions.png +0 -0
- data/docs/images/03-mobile-number.png +0 -0
- data/docs/images/04-access-token.png +0 -0
- data/docs/index.md +70 -0
- data/docs/javascripts/main.js +1 -0
- data/docs/other-tools.md +17 -0
- data/docs/params.json +1 -0
- data/docs/rdoc.md +6 -0
- data/docs/setup.md +84 -0
- data/docs/streaming.md +98 -0
- data/docs/stylesheets/pygment_trac.css +68 -0
- data/docs/stylesheets/stylesheet.css +247 -0
- data/docs/tips.md +22 -0
- data/docs/tut.md +6 -0
- data/docs/twitter-docs.md +6 -0
- data/docs/walkthrough.md +46 -0
- data/examples/streaming_bot.rb +11 -10
- data/ext/mkrf_conf.rb +28 -0
- data/lib/chatterbot/bot.rb +5 -1
- data/lib/chatterbot/config.rb +1 -1
- data/lib/chatterbot/home_timeline.rb +1 -1
- data/lib/chatterbot/streaming.rb +11 -1
- data/lib/chatterbot/version.rb +1 -1
- data/spec/spec_helper.rb +1 -4
- metadata +71 -122
- data/examples/tweet_logger.rb +0 -68
| @@ -0,0 +1,247 @@ | |
| 1 | 
            +
            body {
         | 
| 2 | 
            +
              margin: 0;
         | 
| 3 | 
            +
              padding: 0;
         | 
| 4 | 
            +
              background: #151515 url("../images/bkg.png") 0 0;
         | 
| 5 | 
            +
              color: #eaeaea;
         | 
| 6 | 
            +
              font: 16px;
         | 
| 7 | 
            +
              line-height: 1.5;
         | 
| 8 | 
            +
              font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
         | 
| 9 | 
            +
            }
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            /* General & 'Reset' Stuff */
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            .container {
         | 
| 14 | 
            +
              width: 90%;
         | 
| 15 | 
            +
              max-width: 600px;
         | 
| 16 | 
            +
              margin: 0 auto;
         | 
| 17 | 
            +
            }
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            section {
         | 
| 20 | 
            +
              display: block;
         | 
| 21 | 
            +
              margin: 0 0 20px 0;
         | 
| 22 | 
            +
            }
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            h1, h2, h3, h4, h5, h6 {
         | 
| 25 | 
            +
              margin: 0 0 20px;
         | 
| 26 | 
            +
            }
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            li {
         | 
| 29 | 
            +
              line-height: 1.4 ;
         | 
| 30 | 
            +
            }
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            /* Header, <header>
         | 
| 33 | 
            +
               header   - container
         | 
| 34 | 
            +
               h1       - project name
         | 
| 35 | 
            +
               h2       - project description
         | 
| 36 | 
            +
            */
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            header {
         | 
| 39 | 
            +
              background: rgba(0, 0, 0, 0.1);
         | 
| 40 | 
            +
              width: 100%;
         | 
| 41 | 
            +
              border-bottom: 1px dashed #b5e853;
         | 
| 42 | 
            +
              padding: 20px 0;
         | 
| 43 | 
            +
              margin: 0 0 40px 0;
         | 
| 44 | 
            +
            }
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            header h1 {
         | 
| 47 | 
            +
              font-size: 30px;
         | 
| 48 | 
            +
              line-height: 1.5;
         | 
| 49 | 
            +
              margin: 0 0 0 -40px;
         | 
| 50 | 
            +
              font-weight: bold;
         | 
| 51 | 
            +
              font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
         | 
| 52 | 
            +
              color: #b5e853;
         | 
| 53 | 
            +
              text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1),
         | 
| 54 | 
            +
                           0 0 5px rgba(181, 232, 83, 0.1),
         | 
| 55 | 
            +
                           0 0 10px rgba(181, 232, 83, 0.1);
         | 
| 56 | 
            +
              letter-spacing: -1px;
         | 
| 57 | 
            +
              -webkit-font-smoothing: antialiased;
         | 
| 58 | 
            +
            }
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            header h1:before {
         | 
| 61 | 
            +
              content: "./ ";
         | 
| 62 | 
            +
              font-size: 24px;
         | 
| 63 | 
            +
            }
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            header h2 {
         | 
| 66 | 
            +
              font-size: 18px;
         | 
| 67 | 
            +
              font-weight: 300;
         | 
| 68 | 
            +
              color: #666;
         | 
| 69 | 
            +
            }
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            #downloads .btn {
         | 
| 72 | 
            +
              display: inline-block;
         | 
| 73 | 
            +
              text-align: center;
         | 
| 74 | 
            +
              margin: 0;
         | 
| 75 | 
            +
            }
         | 
| 76 | 
            +
             | 
| 77 | 
            +
            /* Main Content
         | 
| 78 | 
            +
            */
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            #main_content {
         | 
| 81 | 
            +
              width: 100%;
         | 
| 82 | 
            +
              -webkit-font-smoothing: antialiased;
         | 
| 83 | 
            +
            }
         | 
| 84 | 
            +
            section img {
         | 
| 85 | 
            +
              max-width: 100%
         | 
| 86 | 
            +
            }
         | 
| 87 | 
            +
             | 
| 88 | 
            +
            h1, h2, h3, h4, h5, h6 {
         | 
| 89 | 
            +
              font-weight: normal;
         | 
| 90 | 
            +
              font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
         | 
| 91 | 
            +
              color: #b5e853;
         | 
| 92 | 
            +
              letter-spacing: -0.03em;
         | 
| 93 | 
            +
              text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1),
         | 
| 94 | 
            +
                           0 0 5px rgba(181, 232, 83, 0.1),
         | 
| 95 | 
            +
                           0 0 10px rgba(181, 232, 83, 0.1);
         | 
| 96 | 
            +
            }
         | 
| 97 | 
            +
             | 
| 98 | 
            +
            #main_content h1 {
         | 
| 99 | 
            +
              font-size: 30px;
         | 
| 100 | 
            +
            }
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            #main_content h2 {
         | 
| 103 | 
            +
              font-size: 24px;
         | 
| 104 | 
            +
            }
         | 
| 105 | 
            +
             | 
| 106 | 
            +
            #main_content h3 {
         | 
| 107 | 
            +
              font-size: 18px;
         | 
| 108 | 
            +
            }
         | 
| 109 | 
            +
             | 
| 110 | 
            +
            #main_content h4 {
         | 
| 111 | 
            +
              font-size: 14px;
         | 
| 112 | 
            +
            }
         | 
| 113 | 
            +
             | 
| 114 | 
            +
            #main_content h5 {
         | 
| 115 | 
            +
              font-size: 12px;
         | 
| 116 | 
            +
              text-transform: uppercase;
         | 
| 117 | 
            +
              margin: 0 0 5px 0;
         | 
| 118 | 
            +
            }
         | 
| 119 | 
            +
             | 
| 120 | 
            +
            #main_content h6 {
         | 
| 121 | 
            +
              font-size: 12px;
         | 
| 122 | 
            +
              text-transform: uppercase;
         | 
| 123 | 
            +
              color: #999;
         | 
| 124 | 
            +
              margin: 0 0 5px 0;
         | 
| 125 | 
            +
            }
         | 
| 126 | 
            +
             | 
| 127 | 
            +
            dt {
         | 
| 128 | 
            +
              font-style: italic;
         | 
| 129 | 
            +
              font-weight: bold;
         | 
| 130 | 
            +
            }
         | 
| 131 | 
            +
             | 
| 132 | 
            +
            ul li {
         | 
| 133 | 
            +
              list-style: none;
         | 
| 134 | 
            +
            }
         | 
| 135 | 
            +
             | 
| 136 | 
            +
            ul li:before {
         | 
| 137 | 
            +
              content: ">>";
         | 
| 138 | 
            +
              font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
         | 
| 139 | 
            +
              font-size: 13px;
         | 
| 140 | 
            +
              color: #b5e853;
         | 
| 141 | 
            +
              margin-left: -37px;
         | 
| 142 | 
            +
              margin-right: 21px;
         | 
| 143 | 
            +
              line-height: 16px;
         | 
| 144 | 
            +
            }
         | 
| 145 | 
            +
             | 
| 146 | 
            +
            blockquote {
         | 
| 147 | 
            +
              color: #aaa;
         | 
| 148 | 
            +
              padding-left: 10px;
         | 
| 149 | 
            +
              border-left: 1px dotted #666;
         | 
| 150 | 
            +
            }
         | 
| 151 | 
            +
             | 
| 152 | 
            +
            pre {
         | 
| 153 | 
            +
              background: rgba(0, 0, 0, 0.9);
         | 
| 154 | 
            +
              border: 1px solid rgba(255, 255, 255, 0.15);
         | 
| 155 | 
            +
              padding: 10px;
         | 
| 156 | 
            +
              font-size: 14px;
         | 
| 157 | 
            +
              color: #b5e853;
         | 
| 158 | 
            +
              border-radius: 2px;
         | 
| 159 | 
            +
              -moz-border-radius: 2px;
         | 
| 160 | 
            +
              -webkit-border-radius: 2px;
         | 
| 161 | 
            +
              text-wrap: normal;
         | 
| 162 | 
            +
              overflow: auto;
         | 
| 163 | 
            +
              overflow-y: hidden;
         | 
| 164 | 
            +
            }
         | 
| 165 | 
            +
             | 
| 166 | 
            +
            table {
         | 
| 167 | 
            +
              width: 100%;
         | 
| 168 | 
            +
              margin: 0 0 20px 0;
         | 
| 169 | 
            +
            }
         | 
| 170 | 
            +
             | 
| 171 | 
            +
            th {
         | 
| 172 | 
            +
              text-align: left;
         | 
| 173 | 
            +
              border-bottom: 1px dashed #b5e853;
         | 
| 174 | 
            +
              padding: 5px 10px;
         | 
| 175 | 
            +
            }
         | 
| 176 | 
            +
             | 
| 177 | 
            +
            td {
         | 
| 178 | 
            +
              padding: 5px 10px;
         | 
| 179 | 
            +
            }
         | 
| 180 | 
            +
             | 
| 181 | 
            +
            hr {
         | 
| 182 | 
            +
              height: 0;
         | 
| 183 | 
            +
              border: 0;
         | 
| 184 | 
            +
              border-bottom: 1px dashed #b5e853;
         | 
| 185 | 
            +
              color: #b5e853;
         | 
| 186 | 
            +
            }
         | 
| 187 | 
            +
             | 
| 188 | 
            +
            /* Buttons
         | 
| 189 | 
            +
            */
         | 
| 190 | 
            +
             | 
| 191 | 
            +
            .btn {
         | 
| 192 | 
            +
              display: inline-block;
         | 
| 193 | 
            +
              background: -webkit-linear-gradient(top, rgba(40, 40, 40, 0.3), rgba(35, 35, 35, 0.3) 50%, rgba(10, 10, 10, 0.3) 50%, rgba(0, 0, 0, 0.3));
         | 
| 194 | 
            +
              padding: 8px 18px;
         | 
| 195 | 
            +
              border-radius: 50px;
         | 
| 196 | 
            +
              border: 2px solid rgba(0, 0, 0, 0.7);
         | 
| 197 | 
            +
              border-bottom: 2px solid rgba(0, 0, 0, 0.7);
         | 
| 198 | 
            +
              border-top: 2px solid rgba(0, 0, 0, 1);
         | 
| 199 | 
            +
              color: rgba(255, 255, 255, 0.8);
         | 
| 200 | 
            +
              font-family: Helvetica, Arial, sans-serif;
         | 
| 201 | 
            +
              font-weight: bold;
         | 
| 202 | 
            +
              font-size: 13px;
         | 
| 203 | 
            +
              text-decoration: none;
         | 
| 204 | 
            +
              text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.75);
         | 
| 205 | 
            +
              box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
         | 
| 206 | 
            +
            }
         | 
| 207 | 
            +
             | 
| 208 | 
            +
            .btn:hover {
         | 
| 209 | 
            +
              background: -webkit-linear-gradient(top, rgba(40, 40, 40, 0.6), rgba(35, 35, 35, 0.6) 50%, rgba(10, 10, 10, 0.8) 50%, rgba(0, 0, 0, 0.8));
         | 
| 210 | 
            +
            }
         | 
| 211 | 
            +
             | 
| 212 | 
            +
            .btn .icon {
         | 
| 213 | 
            +
              display: inline-block;
         | 
| 214 | 
            +
              width: 16px;
         | 
| 215 | 
            +
              height: 16px;
         | 
| 216 | 
            +
              margin: 1px 8px 0 0;
         | 
| 217 | 
            +
              float: left;
         | 
| 218 | 
            +
            }
         | 
| 219 | 
            +
             | 
| 220 | 
            +
            .btn-github .icon {
         | 
| 221 | 
            +
              opacity: 0.6;
         | 
| 222 | 
            +
              background: url("../images/blacktocat.png") 0 0 no-repeat;
         | 
| 223 | 
            +
            }
         | 
| 224 | 
            +
             | 
| 225 | 
            +
            /* Links
         | 
| 226 | 
            +
               a, a:hover, a:visited
         | 
| 227 | 
            +
            */
         | 
| 228 | 
            +
             | 
| 229 | 
            +
            a {
         | 
| 230 | 
            +
              color: #63c0f5;
         | 
| 231 | 
            +
              text-shadow: 0 0 5px rgba(104, 182, 255, 0.5);
         | 
| 232 | 
            +
            }
         | 
| 233 | 
            +
             | 
| 234 | 
            +
            /* Clearfix */
         | 
| 235 | 
            +
             | 
| 236 | 
            +
            .cf:before, .cf:after {
         | 
| 237 | 
            +
              content:"";
         | 
| 238 | 
            +
              display:table;
         | 
| 239 | 
            +
            }
         | 
| 240 | 
            +
             | 
| 241 | 
            +
            .cf:after {
         | 
| 242 | 
            +
              clear:both;
         | 
| 243 | 
            +
            }
         | 
| 244 | 
            +
             | 
| 245 | 
            +
            .cf {
         | 
| 246 | 
            +
              zoom:1;
         | 
| 247 | 
            +
            }
         | 
    
        data/docs/tips.md
    ADDED
    
    | @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            layout: page
         | 
| 3 | 
            +
            title: "Tips and Tricks"
         | 
| 4 | 
            +
            category: doc
         | 
| 5 | 
            +
            published: false
         | 
| 6 | 
            +
            ---
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            setting profile data
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            resetting since_id/since_id_reply
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            deleting tweets
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            making sure a user is following your bot
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            posting images
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            running multiple searches
         | 
| 19 | 
            +
             | 
| 20 | 
            +
             | 
| 21 | 
            +
             | 
| 22 | 
            +
             | 
    
        data/docs/tut.md
    ADDED
    
    
    
        data/docs/walkthrough.md
    ADDED
    
    | @@ -0,0 +1,46 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            layout: page
         | 
| 3 | 
            +
            title: "Walkthrough"
         | 
| 4 | 
            +
            category: tut
         | 
| 5 | 
            +
            ---
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            Make a Twitter account
         | 
| 8 | 
            +
            ----------------------
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            First thing you'll need to do is create an account for your bot on
         | 
| 11 | 
            +
            Twitter.  That's the easy part.
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            Run the generator
         | 
| 14 | 
            +
            -----------------
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            Chatterbot comes with a script named `chatterbot-register` which will
         | 
| 17 | 
            +
            handle two tasks -- it will authorize your bot with Twitter and it
         | 
| 18 | 
            +
            will generate a skeleton script, which you use to implement your
         | 
| 19 | 
            +
            actual bot.
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            When you run `chatterbot-register` it will walk you through the
         | 
| 22 | 
            +
            authorization process. If you prefer, you can do this manually. If
         | 
| 23 | 
            +
            you'd like to learn more about it, you can read the
         | 
| 24 | 
            +
            [Authorizing your Bot](setup.html) section.
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            Write your bot
         | 
| 27 | 
            +
            --------------
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            Chatterbot is written in ruby, but it accepts some very simple
         | 
| 30 | 
            +
            scripting commands which can handle almost everything you might need
         | 
| 31 | 
            +
            to do on Twitter.  You can get some ideas of things you can do on the
         | 
| 32 | 
            +
            [Examples](examples.html) page.
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                require 'chatterbot/dsl'
         | 
| 35 | 
            +
                search("'surely you must be joking'") do |tweet|
         | 
| 36 | 
            +
                  reply "@#{tweet_user(tweet)} I am serious, and don't call me Shirley!", tweet
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            Or, you can create a bot object yourself, extend it if needed, and use it like so:
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                bot = Chatterbot::Bot.new
         | 
| 42 | 
            +
                bot.search("'surely you must be joking'") do |tweet|
         | 
| 43 | 
            +
                 bot.reply "@#{tweet_user(tweet)} I am serious, and don't call me Shirley!", tweet
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            That's it!
         | 
    
        data/examples/streaming_bot.rb
    CHANGED
    
    | @@ -21,16 +21,7 @@ exclude "http://", "https://" | |
| 21 21 |  | 
| 22 22 | 
             
            blocklist "mean_user, private_user"
         | 
| 23 23 |  | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
            favorited do |user, tweet|
         | 
| 27 | 
            -
              reply "@#{user.screen_name} thanks for the fave!", tweet
         | 
| 28 | 
            -
            end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
            followed do |user|
         | 
| 31 | 
            -
              tweet "@#{user.screen_name} just followed me!"
         | 
| 32 | 
            -
              follow user
         | 
| 33 | 
            -
            end
         | 
| 24 | 
            +
            use_streaming
         | 
| 34 25 |  | 
| 35 26 | 
             
            replies do |tweet|
         | 
| 36 27 | 
             
              favorite tweet
         | 
| @@ -46,3 +37,13 @@ direct_messages do |tweet| | |
| 46 37 | 
             
              direct_message "got it", tweet.sender
         | 
| 47 38 | 
             
            end
         | 
| 48 39 |  | 
| 40 | 
            +
            favorited do |user, tweet|
         | 
| 41 | 
            +
              reply "@#{user.screen_name} thanks for the fave!", tweet
         | 
| 42 | 
            +
            end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            followed do |user|
         | 
| 45 | 
            +
              tweet "@#{user.screen_name} just followed me!"
         | 
| 46 | 
            +
              follow user
         | 
| 47 | 
            +
            end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
             | 
    
        data/ext/mkrf_conf.rb
    ADDED
    
    | @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            require 'rubygems/dependency_installer'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            #
         | 
| 4 | 
            +
            # limit activesupport version if not on ruby 2.2 or higher
         | 
| 5 | 
            +
            # @see https://www.tiredpixel.com/2014/01/05/curses-conditional-ruby-gem-installation-within-a-gemspec/
         | 
| 6 | 
            +
            #
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            di = Gem::DependencyInstaller.new
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            begin
         | 
| 11 | 
            +
              if RUBY_VERSION >= '2.2'
         | 
| 12 | 
            +
                di.install "activesupport", "~> 4.2.8"
         | 
| 13 | 
            +
              else
         | 
| 14 | 
            +
                di.install "activesupport", "< 5.0.0"
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
            rescue => e
         | 
| 17 | 
            +
              warn "#{$0}: #{e}"
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              exit!
         | 
| 20 | 
            +
            end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
             | 
| 23 | 
            +
            # https://en.wikibooks.org/wiki/Ruby_Programming/RubyGems#How_to_install_different_versions_of_gems_depending_on_which_version_of_ruby_the_installee_is_using
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            # create dummy rakefile to indicate success
         | 
| 26 | 
            +
            f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w")
         | 
| 27 | 
            +
            f.write("task :default\n")
         | 
| 28 | 
            +
            f.close
         | 
    
        data/lib/chatterbot/bot.rb
    CHANGED
    
    | @@ -54,6 +54,11 @@ module Chatterbot | |
| 54 54 | 
             
                  @handlers = {}
         | 
| 55 55 | 
             
                end
         | 
| 56 56 |  | 
| 57 | 
            +
                def screen_name
         | 
| 58 | 
            +
                  @screen_name ||= client.settings.screen_name
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                
         | 
| 57 62 | 
             
                #
         | 
| 58 63 | 
             
                # determine the right API to use and run the bot
         | 
| 59 64 | 
             
                #
         | 
| @@ -113,7 +118,6 @@ module Chatterbot | |
| 113 118 |  | 
| 114 119 | 
             
                  HANDLER_CALLS.each { |c|
         | 
| 115 120 | 
             
                    if (h = @handlers[c])
         | 
| 116 | 
            -
                      puts "calling #{c} #{h.opts.inspect}"
         | 
| 117 121 | 
             
                      send(c, *(h.opts)) do |obj|
         | 
| 118 122 | 
             
                        h.call(obj)
         | 
| 119 123 | 
             
                      end
         | 
    
        data/lib/chatterbot/config.rb
    CHANGED
    
    | @@ -212,7 +212,7 @@ module Chatterbot | |
| 212 212 | 
             
                    :consumer_key => ENV["chatterbot_consumer_key"],
         | 
| 213 213 | 
             
                    :consumer_secret => ENV["chatterbot_consumer_secret"],
         | 
| 214 214 | 
             
                    :access_token => ENV["chatterbot_access_token"],
         | 
| 215 | 
            -
                    :access_token_secret => ENV["chatterbot_access_secret"]
         | 
| 215 | 
            +
                    :access_token_secret => ENV["chatterbot_access_secret"] || ENV["chatterbot_access_token_secret"]
         | 
| 216 216 | 
             
                  }.delete_if { |k, v| v.nil? }.merge(slurp_file(config_file) || {})
         | 
| 217 217 | 
             
                end
         | 
| 218 218 |  | 
| @@ -7,7 +7,7 @@ module Chatterbot | |
| 7 7 | 
             
                # handle the bots timeline
         | 
| 8 8 | 
             
                def home_timeline(*args, &block)
         | 
| 9 9 | 
             
                  return unless require_login
         | 
| 10 | 
            -
                  debug "check for home_timeline tweets since #{ | 
| 10 | 
            +
                  debug "check for home_timeline tweets since #{since_id_home_timeline}"
         | 
| 11 11 |  | 
| 12 12 | 
             
                  opts = {
         | 
| 13 13 | 
             
                    :since_id => since_id_home_timeline,
         | 
    
        data/lib/chatterbot/streaming.rb
    CHANGED
    
    | @@ -7,7 +7,17 @@ module Chatterbot | |
| 7 7 | 
             
                def streaming_tweet_handler
         | 
| 8 8 | 
             
                  usable_handlers = [:home_timeline, :search]
         | 
| 9 9 | 
             
                  name, block = @handlers.find { |k, v| usable_handlers.include?(k) }
         | 
| 10 | 
            -
             | 
| 10 | 
            +
             | 
| 11 | 
            +
                   if block.nil? && ( block = @handlers[:replies] )
         | 
| 12 | 
            +
                     debug "No default handler, wrapping the replies handler"
         | 
| 13 | 
            +
                     return Proc.new { |tweet|
         | 
| 14 | 
            +
                       if tweet.text =~ /^@#{bot.screen_name}/i
         | 
| 15 | 
            +
                         block.call(tweet)
         | 
| 16 | 
            +
                       end
         | 
| 17 | 
            +
                     }
         | 
| 18 | 
            +
                   end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                   block
         | 
| 11 21 | 
             
                end
         | 
| 12 22 |  | 
| 13 23 | 
             
                #
         |