ebooks 0.1.0 → 0.2.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/History.markdown +3 -0
- data/ebooks.gemspec +1 -1
- data/lib/ebooks.rb +31 -31
- data/lib/ebooks/generator.rb +2 -2
- data/lib/ebooks/twitter.rb +7 -6
- data/lib/ebooks/version.rb +1 -1
- metadata +19 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c27c66d737ceb553a92fdf5ff43988e814d9e6c
|
4
|
+
data.tar.gz: d3541f051138de3992c20fbb59ab36629954a691
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bda3e52be0ba90d94c56c94c435b2a162e503df1fa3760707189fbf32eef15d3859665e32ecdf7f48854475c06ee45b2d92d8e9bb62189f9319f85b5c2867cb1
|
7
|
+
data.tar.gz: 1f9f2b58633df4502436a253cf79c7ae39c32c0b48ca3c9ad90f99829c5aa017ace407c36bd0358fbd3479da57e1f6555ba216bbdf563b91e640413f54a7a786
|
data/History.markdown
ADDED
data/ebooks.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_runtime_dependency "thread"
|
22
|
-
spec.add_runtime_dependency "twitter"
|
22
|
+
spec.add_runtime_dependency "twitter", "~> 5.0"
|
23
23
|
spec.add_runtime_dependency "marky_markov"
|
24
24
|
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.3"
|
data/lib/ebooks.rb
CHANGED
@@ -14,37 +14,37 @@ module Ebooks
|
|
14
14
|
autoload :Generator, 'ebooks/generator'
|
15
15
|
autoload :Twitter, 'ebooks/twitter'
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
class << self
|
18
|
+
def read_config_file(file = '~/.ebooks')
|
19
|
+
contents = File.read(file.sub('~', ENV["HOME"]))
|
20
|
+
YAML.load(contents)
|
21
|
+
end
|
22
|
+
|
23
|
+
def configuration(overrides = {})
|
24
|
+
{
|
25
|
+
:tweets_csv_path => 'tweets.csv',
|
26
|
+
:corpus_path => 'markov_dict.txt',
|
27
|
+
:dictionary_name => 'dictionary', # don't include the .mmd
|
28
|
+
:twitter => {
|
29
|
+
:consumer_key => '',
|
30
|
+
:consumer_secret => '',
|
31
|
+
:oauth_token => '',
|
32
|
+
:oauth_token_secret => ''
|
33
|
+
}
|
34
|
+
}.deep_merge(overrides)
|
35
|
+
end
|
36
|
+
|
37
|
+
def generate(overrides = {})
|
38
|
+
config = configuration(overrides)
|
39
|
+
generator = Ebooks::Generator.new(config)
|
40
|
+
|
41
|
+
generator.generate_sentence
|
42
|
+
end
|
43
|
+
|
44
|
+
def tweet(overrides = {})
|
45
|
+
config = configuration(overrides)
|
46
|
+
Ebooks::Twitter.new(config[:twitter]).tweet(generate(overrides))
|
47
|
+
end
|
20
48
|
end
|
21
49
|
|
22
|
-
def self.configuration(overrides = {})
|
23
|
-
{
|
24
|
-
:tweets_csv_path => 'tweets.csv',
|
25
|
-
:corpus_path => 'markov_dict.txt',
|
26
|
-
:dictionary_name => 'dictionary', # don't include the .mmd
|
27
|
-
:twitter => {
|
28
|
-
:consumer_key => '',
|
29
|
-
:consumer_secret => '',
|
30
|
-
:oauth_token => '',
|
31
|
-
:oauth_token_secret => ''
|
32
|
-
}
|
33
|
-
}.deep_merge(overrides)
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.generate(overrides = {})
|
37
|
-
config = self.configuration(overrides)
|
38
|
-
generator = Ebooks::Generator.new(config)
|
39
|
-
|
40
|
-
generator.generate_sentence
|
41
|
-
end
|
42
|
-
|
43
|
-
def self.tweet(overrides = {})
|
44
|
-
config = self.configuration(overrides)
|
45
|
-
|
46
|
-
sentence = self.generate(overrides)
|
47
|
-
|
48
|
-
Ebooks::Twitter.new(config[:twitter]).tweet(sentence)
|
49
|
-
end
|
50
50
|
end
|
data/lib/ebooks/generator.rb
CHANGED
@@ -14,11 +14,11 @@ module Ebooks
|
|
14
14
|
def generate_twitter_corpus
|
15
15
|
# Go to Twitter.com -> Settings -> Download Archive.
|
16
16
|
# This tweets.csv file is in the top directory. Put it in the same directory as this script.
|
17
|
-
csv_text = CSV.
|
17
|
+
csv_text = CSV.read(@tweets_csv_path)
|
18
18
|
|
19
19
|
# Create a new clean file of text that acts as the seed for your Markov chains
|
20
20
|
File.open(@corpus_path, 'w') do |file|
|
21
|
-
csv_text.
|
21
|
+
csv_text.reverse_each do |row|
|
22
22
|
# Strip links and new lines
|
23
23
|
tweet_text = row[5].gsub(/(?:f|ht)tps?:\/[^\s]+/, '').gsub(/\n/,' ')
|
24
24
|
# Save the text
|
data/lib/ebooks/twitter.rb
CHANGED
@@ -6,20 +6,21 @@ module Ebooks
|
|
6
6
|
@consumer_secret = credentials.fetch(:consumer_secret)
|
7
7
|
@access_token = credentials.fetch(:oauth_token)
|
8
8
|
@access_token_secret = credentials.fetch(:oauth_token_secret)
|
9
|
+
end
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
config.
|
11
|
+
def twitter_client
|
12
|
+
::Twitter::REST::Client.new do |config|
|
13
|
+
config.consumer_key = @consumer_key
|
14
|
+
config.consumer_secret = @consumer_secret
|
15
|
+
config.access_token = @access_token
|
16
|
+
config.access_token_secret = @access_token_secret
|
13
17
|
end
|
14
18
|
end
|
15
19
|
|
16
20
|
def tweet(tweet_text)
|
17
|
-
twitter_client = ::Twitter::Client.new(:oauth_token => @access_token,
|
18
|
-
:oauth_token_secret => @access_token_secret)
|
19
21
|
tweet_text = tweet_text.gsub('@', '')[0..139]
|
20
22
|
p "#{Time.now}: #{tweet_text}"
|
21
23
|
twitter_client.update(tweet_text)
|
22
24
|
end
|
23
|
-
|
24
25
|
end
|
25
26
|
end
|
data/lib/ebooks/version.rb
CHANGED
metadata
CHANGED
@@ -1,83 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ebooks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Parker Moore
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thread
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: twitter
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '5.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
40
|
+
version: '5.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: marky_markov
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '1.3'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.3'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
description: Generate your own horse_ebooks for fun and for profit
|
@@ -88,8 +88,9 @@ executables:
|
|
88
88
|
extensions: []
|
89
89
|
extra_rdoc_files: []
|
90
90
|
files:
|
91
|
-
- .gitignore
|
91
|
+
- ".gitignore"
|
92
92
|
- Gemfile
|
93
|
+
- History.markdown
|
93
94
|
- LICENSE.txt
|
94
95
|
- README.md
|
95
96
|
- Rakefile
|
@@ -110,17 +111,17 @@ require_paths:
|
|
110
111
|
- lib
|
111
112
|
required_ruby_version: !ruby/object:Gem::Requirement
|
112
113
|
requirements:
|
113
|
-
- -
|
114
|
+
- - ">="
|
114
115
|
- !ruby/object:Gem::Version
|
115
116
|
version: '0'
|
116
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
118
|
requirements:
|
118
|
-
- -
|
119
|
+
- - ">="
|
119
120
|
- !ruby/object:Gem::Version
|
120
121
|
version: '0'
|
121
122
|
requirements: []
|
122
123
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
124
|
+
rubygems_version: 2.2.2
|
124
125
|
signing_key:
|
125
126
|
specification_version: 4
|
126
127
|
summary: horse_ebooks with and without twitter
|