cosgrove 0.0.1rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 95702814dc6660cd0cc27bcb877ba99aca124e67
4
+ data.tar.gz: 602bfbac6a5ceb141b70ca3ebc25a324a97dd76f
5
+ SHA512:
6
+ metadata.gz: 612ae734c309582c7efe232a0f656ab366336da8e61075418a668ec22ca3c529147f7547f32ca5ab5638346830d2cd7a1645097c7bbc005664cad271380069f4
7
+ data.tar.gz: ea77bb291cf19f601eb7bafad96a04aa60b4b06b260d363173a06203ba1fc9ce50c86ef6e23ecc0f2d9f4f97de42afec62fc0c0ec3a8ae8263e3daffca1e057b
@@ -0,0 +1,50 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+
13
+ # Used by dotenv library to load environment variables.
14
+ # .env
15
+
16
+ ## Specific to RubyMotion:
17
+ .dat*
18
+ .repl_history
19
+ build/
20
+ *.bridgesupport
21
+ build-iPhoneOS/
22
+ build-iPhoneSimulator/
23
+
24
+ ## Specific to RubyMotion (use of CocoaPods):
25
+ #
26
+ # We recommend against adding the Pods directory to your .gitignore. However
27
+ # you should judge for yourself, the pros and cons are mentioned at:
28
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
29
+ #
30
+ # vendor/Pods/
31
+
32
+ ## Documentation cache and generated files:
33
+ /.yardoc/
34
+ /_yardoc/
35
+ /doc/
36
+ /rdoc/
37
+
38
+ ## Environment normalization:
39
+ /.bundle/
40
+ /vendor/bundle
41
+ /lib/bundler/man/
42
+
43
+ # for a library or gem, you might want to ignore these files since the code is
44
+ # intended to run in multiple environments; otherwise, check them in:
45
+ # Gemfile.lock
46
+ # .ruby-version
47
+ # .ruby-gemset
48
+
49
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
50
+ .rvmrc
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'radiator'
4
+ gem 'steemdata-rb', require: 'steemdata', git: 'git@github.com:steem-third-party/steemdata-rb.git'
5
+ gem 'cleverbot_rb', git: 'git@github.com:Reaver01/cleverbot_rb.git', branch: 'master'
6
+
7
+ gemspec
@@ -0,0 +1,229 @@
1
+ GIT
2
+ remote: git@github.com:Reaver01/cleverbot_rb.git
3
+ revision: b051f5df41ccc44e527229f7b5f59d58a4298ef2
4
+ branch: master
5
+ specs:
6
+ cleverbot_rb (1.0.0)
7
+ json
8
+ rest-client
9
+
10
+ GIT
11
+ remote: git@github.com:steem-third-party/steemdata-rb.git
12
+ revision: b98b24bf6ec62cf125a46a60c0d23fbc10152103
13
+ specs:
14
+ steemdata-rb (0.0.1f)
15
+ mongoid (~> 6.1, >= 6.1.0)
16
+
17
+ PATH
18
+ remote: .
19
+ specs:
20
+ cosgrove (0.0.1rc1)
21
+ activeview
22
+ ai4r
23
+ discordrb
24
+ mechanize
25
+ mongoid
26
+ phantomjs
27
+ radiator
28
+ rdiscount
29
+ rmagick
30
+ ruby-cleverbot-api
31
+ steem-slap
32
+ steemdata-rb
33
+ wolfram-alpha
34
+
35
+ GEM
36
+ remote: https://rubygems.org/
37
+ specs:
38
+ actionpack (5.1.1)
39
+ actionview (= 5.1.1)
40
+ activesupport (= 5.1.1)
41
+ rack (~> 2.0)
42
+ rack-test (~> 0.6.3)
43
+ rails-dom-testing (~> 2.0)
44
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
45
+ actionview (5.1.1)
46
+ activesupport (= 5.1.1)
47
+ builder (~> 3.1)
48
+ erubi (~> 1.4)
49
+ rails-dom-testing (~> 2.0)
50
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
51
+ activemodel (5.1.1)
52
+ activesupport (= 5.1.1)
53
+ activesupport (5.1.1)
54
+ concurrent-ruby (~> 1.0, >= 1.0.2)
55
+ i18n (~> 0.7)
56
+ minitest (~> 5.1)
57
+ tzinfo (~> 1.1)
58
+ activeview (0)
59
+ activesupport (~> 5.0)
60
+ railties (~> 5.0)
61
+ addressable (2.5.1)
62
+ public_suffix (~> 2.0, >= 2.0.2)
63
+ ai4r (1.13)
64
+ awesome_print (1.7.0)
65
+ bitcoin-ruby (0.0.10)
66
+ bson (4.2.1)
67
+ builder (3.2.3)
68
+ byebug (9.0.6)
69
+ coderay (1.1.1)
70
+ concurrent-ruby (1.0.5)
71
+ crack (0.4.3)
72
+ safe_yaml (~> 1.0.0)
73
+ discordrb (3.2.1)
74
+ discordrb-webhooks (~> 3.2.0.1)
75
+ opus-ruby
76
+ rbnacl (~> 3.4.0)
77
+ rest-client
78
+ websocket-client-simple (>= 0.3.0)
79
+ discordrb-webhooks (3.2.0.1)
80
+ rest-client
81
+ docile (1.1.5)
82
+ domain_name (0.5.20170404)
83
+ unf (>= 0.0.5, < 1.0.0)
84
+ erubi (1.6.0)
85
+ ethon (0.10.1)
86
+ ffi (>= 1.3.0)
87
+ event_emitter (0.2.5)
88
+ faraday (0.12.1)
89
+ multipart-post (>= 1.2, < 3)
90
+ ffi (1.9.18)
91
+ hashdiff (0.3.4)
92
+ hashie (3.5.5)
93
+ http-cookie (1.0.3)
94
+ domain_name (~> 0.5)
95
+ i18n (0.8.4)
96
+ json (1.8.6)
97
+ little-plugger (1.1.4)
98
+ logging (2.2.2)
99
+ little-plugger (~> 1.1)
100
+ multi_json (~> 1.10)
101
+ loofah (2.0.3)
102
+ nokogiri (>= 1.5.9)
103
+ mechanize (2.7.5)
104
+ domain_name (~> 0.5, >= 0.5.1)
105
+ http-cookie (~> 1.0)
106
+ mime-types (>= 1.17.2)
107
+ net-http-digest_auth (~> 1.1, >= 1.1.1)
108
+ net-http-persistent (~> 2.5, >= 2.5.2)
109
+ nokogiri (~> 1.6)
110
+ ntlm-http (~> 0.1, >= 0.1.1)
111
+ webrobots (>= 0.0.9, < 0.2)
112
+ method_source (0.8.2)
113
+ mime-types (3.1)
114
+ mime-types-data (~> 3.2015)
115
+ mime-types-data (3.2016.0521)
116
+ mini_portile2 (2.2.0)
117
+ minitest (5.10.2)
118
+ minitest-line (0.6.3)
119
+ minitest (~> 5.0)
120
+ minitest-proveit (1.0.0)
121
+ minitest (> 5, < 7)
122
+ mongo (2.4.2)
123
+ bson (>= 4.2.1, < 5.0.0)
124
+ mongoid (6.2.0)
125
+ activemodel (~> 5.1)
126
+ mongo (>= 2.4.1, < 3.0.0)
127
+ multi_json (1.12.1)
128
+ multipart-post (2.0.0)
129
+ net-http-digest_auth (1.4.1)
130
+ net-http-persistent (2.9.4)
131
+ netrc (0.11.0)
132
+ nokogiri (1.8.0)
133
+ mini_portile2 (~> 2.2.0)
134
+ ntlm-http (0.1.1)
135
+ opus-ruby (1.0.1)
136
+ ffi
137
+ phantomjs (2.1.1.0)
138
+ pry (0.10.4)
139
+ coderay (~> 1.1.0)
140
+ method_source (~> 0.8.1)
141
+ slop (~> 3.4)
142
+ public_suffix (2.0.5)
143
+ rack (2.0.3)
144
+ rack-test (0.6.3)
145
+ rack (>= 1.0)
146
+ radiator (0.2.2)
147
+ bitcoin-ruby (= 0.0.10)
148
+ ffi (= 1.9.18)
149
+ hashie (~> 3.5, >= 3.5.5)
150
+ json (~> 1.8, >= 1.8.6)
151
+ logging (~> 2.2, >= 2.2.0)
152
+ net-http-persistent (~> 2.9, >= 2.9.4)
153
+ rails-dom-testing (2.0.3)
154
+ activesupport (>= 4.2.0)
155
+ nokogiri (>= 1.6)
156
+ rails-html-sanitizer (1.0.3)
157
+ loofah (~> 2.0)
158
+ railties (5.1.1)
159
+ actionpack (= 5.1.1)
160
+ activesupport (= 5.1.1)
161
+ method_source
162
+ rake (>= 0.8.7)
163
+ thor (>= 0.18.1, < 2.0)
164
+ rake (11.2.2)
165
+ rbnacl (3.4.0)
166
+ ffi
167
+ rdiscount (2.2.0.1)
168
+ rest-client (2.0.2)
169
+ http-cookie (>= 1.0.2, < 2.0)
170
+ mime-types (>= 1.16, < 4.0)
171
+ netrc (~> 0.8)
172
+ rmagick (2.16.0)
173
+ ruby-cleverbot-api (1.0.6)
174
+ safe_yaml (1.0.4)
175
+ simplecov (0.14.1)
176
+ docile (~> 1.1.0)
177
+ json (>= 1.8, < 3)
178
+ simplecov-html (~> 0.10.0)
179
+ simplecov-html (0.10.1)
180
+ slop (3.6.0)
181
+ steem-slap (0.0.2)
182
+ thor (0.19.4)
183
+ thread_safe (0.3.6)
184
+ typhoeus (1.1.2)
185
+ ethon (>= 0.9.0)
186
+ tzinfo (1.2.3)
187
+ thread_safe (~> 0.1)
188
+ unf (0.1.4)
189
+ unf_ext
190
+ unf_ext (0.0.7.4)
191
+ vcr (3.0.3)
192
+ webmock (3.0.1)
193
+ addressable (>= 2.3.6)
194
+ crack (>= 0.3.2)
195
+ hashdiff
196
+ webrobots (0.1.2)
197
+ websocket (1.2.4)
198
+ websocket-client-simple (0.3.0)
199
+ event_emitter
200
+ websocket
201
+ wolfram-alpha (0.3.1)
202
+ nokogiri
203
+ yard (0.9.9)
204
+
205
+ PLATFORMS
206
+ ruby
207
+
208
+ DEPENDENCIES
209
+ awesome_print
210
+ bundler (~> 1.11)
211
+ byebug
212
+ cleverbot_rb!
213
+ cosgrove!
214
+ faraday
215
+ minitest
216
+ minitest-line
217
+ minitest-proveit
218
+ pry
219
+ radiator
220
+ rake (~> 11.2.2)
221
+ simplecov
222
+ steemdata-rb!
223
+ typhoeus
224
+ vcr
225
+ webmock
226
+ yard
227
+
228
+ BUNDLED WITH
229
+ 1.14.6
data/LICENSE ADDED
@@ -0,0 +1,41 @@
1
+ CC0 1.0 Universal (CC0 1.0)
2
+ Public Domain Dedication
3
+ https://creativecommons.org/publicdomain/zero/1.0/
4
+
5
+ This is a human-readable summary of the Legal Code:
6
+ https://creativecommons.org/publicdomain/zero/1.0/legalcode
7
+
8
+ Disclaimer
9
+
10
+ The Commons Deed is not a legal instrument. It is simply a handy reference for
11
+ understanding the CC0 Legal Code, a human-readable expression of some of its key
12
+ terms. Think of it as the user-friendly interface to the CC0 Legal Code beneath.
13
+ This Deed itself has no legal value, and its contents do not appear in CC0.
14
+ Creative Commons is not a law firm and does not provide legal services.
15
+ Distributing, displaying, or linking to this Commons Deed does not create an
16
+ attorney-client relationship.
17
+
18
+ Creative Commons has not verified the copyright status of any work to which CC0
19
+ has been applied. CC makes no warranties about any work or its copyright status
20
+ in any jurisdiction, and disclaims all liability for all uses of any work.
21
+
22
+ No Copyright
23
+
24
+ The person who associated a work with this deed has dedicated the work to the
25
+ public domain by waiving all of his or her rights to the work worldwide under
26
+ copyright law, including all related and neighboring rights, to the extent
27
+ allowed by law.
28
+
29
+ You can copy, modify, distribute and perform the work, even for commercial
30
+ purposes, all without asking permission. See Other Information below.
31
+
32
+ Other Information
33
+
34
+ * In no way are the patent or trademark rights of any person affected by CC0,
35
+ nor are the rights that other persons may have in the work or in how the work
36
+ is used, such as publicity or privacy rights.
37
+ * Unless expressly stated otherwise, the person who associated a work with this
38
+ deed makes no warranties about the work, and disclaims liability for all uses
39
+ of the work, to the fullest extent permitted by applicable law.
40
+ * When using or citing the work, you should not imply endorsement by the author
41
+ or the affirmer.
@@ -0,0 +1,131 @@
1
+ # [Cosgrove](https://github.com/steem-third-party/cosgrove)
2
+
3
+ Cosgrove is a STEEM Centric Discord Bot Framework that allows you to write your own Discord bots that interact with the STEEM blockchain.
4
+
5
+ One example of a bot that uses this framework is [@banjo](https://steemit.com/steemdata/@inertia/introducing-banjo) on SteemSpeak.
6
+
7
+ Many (not all) features work on Golos as well.
8
+
9
+ ## New features
10
+
11
+ * Added the ability for each discord channel to have its own upvote weight, as well as have a default. Upvote voting weight can be:
12
+ * `dynamic` - uses the bot's current voting recharge percent as the upvote percent.
13
+ * `upvote_rules` - uses channel specific rules.
14
+ * `100.00 %` - can be any valid voting percentage.
15
+ * Added `CommentJob` for creating automated replies.
16
+ * Added callback `on_success_upvote_job` which can be used to, for example, reply to the post after being upvoted.
17
+
18
+ ## Features
19
+
20
+ * **Registration**
21
+ * `$register <account> [chain]` - associate `account` with your Discord user (`chain` default `steem`)
22
+ * **Verification**
23
+ * `$verify <account> [chain]` - check `account` association with Discord users (`chain` default `steem`)
24
+ * **Up Voting**
25
+ * `$upvote [url]` - upvote from cosgrove; empty or `^` to upvote last steemit link
26
+
27
+ ## Installation
28
+
29
+ ```bash
30
+ $ gem install cosgrove
31
+ ```
32
+
33
+ ... or in your `Gemfile`
34
+
35
+ ```ruby
36
+ gem 'steemdata-rb', require: 'steemdata', git: 'git@github.com:steem-third-party/steemdata-rb.git'
37
+ gem 'cosgrove'
38
+ ```
39
+
40
+ ## Setup
41
+
42
+ Add a config file to your `ruby` project called `config.yml`:
43
+
44
+ ```yaml
45
+ :cosgrove:
46
+ :token:
47
+ :client_id:
48
+ :secret: set this
49
+ :upvote_weight: upvote_rules
50
+ :upvote_rules:
51
+ :channels:
52
+ :default:
53
+ :upvote_weight: 50.00 %
54
+ :general_text:
55
+ :channel_id: <Your Favorite Channel ID>
56
+ :upvote_weight: 100.00 %
57
+ :chain:
58
+ :steem_account:
59
+ :steem_posting_wif:
60
+ :golos_account:
61
+ :golos_posting_wif:
62
+ :steem_api_url: https://steemd.steemit.com
63
+ :golos_api_url: https://ws.golos.io
64
+ :discord:
65
+ :log_mode: info
66
+ ```
67
+
68
+ You will need to request a `token` and `client_id` from Discord (see below).
69
+
70
+ Provide the accounts and `wif` private postings keys if you want your bot to upvote posts.
71
+
72
+ You should change the `secret` key using the output of:
73
+
74
+ ```ruby
75
+ SecureRandom.hex(32)
76
+ ```
77
+
78
+ ## Bot Registration
79
+
80
+ 1. Request a new bot here: https://discordapp.com/developers/applications/me#top
81
+ 2. Register an `application` and create an `app bot user`.
82
+ 3. Replace `APP_CLIENT_ID` with the App's Client ID in this URL: https://discordapp.com/oauth2/authorize?&client_id=APP_CLIENT_ID&scope=bot&permissions=153600
83
+ 4. Give that URL to the Discord server/guild owner and have them authorize the bot.
84
+ 5. Set the `token` and `client_id` in your bot constructor (see below).
85
+
86
+ ## Usage
87
+
88
+ Cosgrove is based on `discordrb`, see: https://github.com/meew0/discordrb
89
+
90
+ All features offered by `discordrb` are available in Cosgrove. In addition, Cosgrove comes with pre-defined commands. See them by typing: `$help`
91
+
92
+ You can add you features thusly:
93
+
94
+ ```ruby
95
+ require 'cosgrove'
96
+
97
+ bot = Cosgrove::Bot.new
98
+
99
+ bot.message(with_text: 'Ping!') do |event|
100
+ event.respond 'Pong!'
101
+ end
102
+
103
+ bot.run
104
+ ```
105
+
106
+ ## Tests
107
+
108
+ * Clone the client repository into a directory of your choice:
109
+ * `git clone git@github.com:steem-third-party/cosgrove.git`
110
+ * Navigate into the new folder
111
+ * `cd cosgrove`
112
+ * Basic tests can be invoked as follows:
113
+ * `rake`
114
+ * To run tests with parallelization and local code coverage:
115
+ * `HELL_ENABLED=true rake`
116
+
117
+ ---
118
+
119
+ <center>
120
+ <img src="http://i.imgur.com/7V09fNf.jpg" />
121
+ </center>
122
+
123
+ See my previous Ruby How To posts in: [#radiator](https://steemit.com/created/radiator) [#ruby](https://steemit.com/created/ruby)
124
+
125
+ ## Get in touch!
126
+
127
+ If you're using Cosgrove, I'd love to hear from you. Drop me a line and tell me what you think! I'm @inertia on STEEM and Discord.
128
+
129
+ ## License
130
+
131
+ I don't believe in intellectual "property". If you do, consider Cosgrove as licensed under a Creative Commons [![CC0](http://i.creativecommons.org/p/zero/1.0/80x15.png)](http://creativecommons.org/publicdomain/zero/1.0/) License.