grailbird_updater 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -8,14 +8,72 @@ Turns out the contents in the archive are partial/trimmed API responses from
8
8
  the Twitter API, so it is actually possible to drop a whole API response in
9
9
  there, do some sorting and update the archive.
10
10
 
11
- This currently does not work with a private/protected Twitter account, see
12
- [this issue](https://github.com/DeMarko/grailbird_updater/issues/6)
13
11
 
14
- ## How do I know if I have a Twitter archive?
12
+ ## Installation
13
+
14
+ Install it yourself as:
15
+
16
+ $ gem install grailbird_updater
17
+
18
+ Or add this line to your application's Gemfile:
19
+
20
+ gem 'grailbird_updater'
21
+
22
+ And then execute:
23
+
24
+ $ bundle
25
+
26
+ ## Usage
27
+
28
+ ```
29
+ grailbird_updater /path/to/twitter/archive
30
+ ```
31
+
32
+ ## Contributing
33
+
34
+ 1. Fork it
35
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
36
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
37
+ 4. Push to the branch (`git push origin my-new-feature`)
38
+ 5. Create new Pull Request
39
+
40
+ ## FAQ
41
+
42
+ * _I have a protected Twitter account, can I still use this updater with my Twitter archive?_
43
+
44
+ Actually, yes! However, you will need to create your own "application" on
45
+ Twitter and then use your own consumer key/secret pair to let the application
46
+ use the oauth tokens for a user and then follow the authorization steps for
47
+ a given protected user.
48
+
49
+ Once you have auth'd the application for a protected user, you do not have to do
50
+ it again, the consumer key/secret and oauth token/secret are stored in a YAML file
51
+ at the root of your tweet archive.
52
+
53
+ __IMPORTANT__ Do NOT commit or post your own consumer key/secret or your oauth
54
+ token/secret anywhere.
55
+
56
+ Note: you will only need to create a single application on Twitter even if you
57
+ are using this to update multiple protected account. You can reuse the consumer
58
+ key/secret and just authorize each account individually.
59
+
60
+ Please see [this wiki article](https://github.com/DeMarko/grailbird_updater/wiki/Authorizing-grailbird_updater-to-work-with-Protected-Twitter-accounts) for step-by-step instructions.
61
+
62
+ * _How do I know if I have a Twitter archive?_
63
+
64
+ Hopefully, you downloaded it from Twitter once the feature was made available
65
+ to you and have their web application which can consume it.
66
+
67
+ This gem only modifies what's in the `data` directory for a given archive,
68
+ the rest of the files are provided by Twitter.
69
+
70
+ To check if you can download a copy of your Twitter archive, go to your
71
+ [Account Settings](https://twitter.com/settings/account) and scroll all
72
+ the way to the bottom. If the feature is enabled for you, you should see
73
+ a section labeled "Your Twitter Archive".
74
+
75
+ The file structure looks somewhat like this (as of 19.12.12):
15
76
 
16
- Hopefully, you downloaded it from Twitter once the feature was made available
17
- to you and have their web application which can consume it. The file structure
18
- looks somewhat like this (as of 19.12.12):
19
77
 
20
78
  ```
21
79
  tweets
@@ -52,36 +110,3 @@ tweets
52
110
  └─ ... // provided by Twitter
53
111
  ```
54
112
 
55
- This gem only modifies what's in the data directory for a given archive,
56
- the rest of the files are provided by Twitter. To check if you can download
57
- a copy of your Twitter archive, go to your [Account Settings](https://twitter.com/settings/account)
58
- and scroll all the way to the bottom. If the feature is enabled for you, you should
59
- see a section labeled "Your Twitter Archive".
60
-
61
- ## Installation
62
-
63
- Add this line to your application's Gemfile:
64
-
65
- gem 'grailbird_updater'
66
-
67
- And then execute:
68
-
69
- $ bundle
70
-
71
- Or install it yourself as:
72
-
73
- $ gem install grailbird_updater
74
-
75
- ## Usage
76
-
77
- ```
78
- grailbird_updater /path/to/twitter/archive
79
- ```
80
-
81
- ## Contributing
82
-
83
- 1. Fork it
84
- 2. Create your feature branch (`git checkout -b my-new-feature`)
85
- 3. Commit your changes (`git commit -am 'Add some feature'`)
86
- 4. Push to the branch (`git push origin my-new-feature`)
87
- 5. Create new Pull Request
@@ -98,19 +98,24 @@ class GrailbirdUpdater
98
98
  :include_entities => true}
99
99
  twitter_uri.query = URI.encode_www_form(params)
100
100
 
101
- vputs "Making request to #{twitter_uri}"
101
+ vputs "\nMaking request to #{twitter_uri}"
102
102
  response = Net::HTTP.get_response(twitter_uri)
103
103
 
104
104
  if response.is_a?(Net::HTTPUnauthorized)
105
105
  access_token = do_oauth_dance(screen_name)
106
106
  response = access_token.request(:get, twitter_uri.to_s)
107
+ if response.is_a?(Net::HTTPUnauthorized)
108
+ puts "\nSomething went wrong trying to authorize grailbird_updater with the account: " + "@#{screen_name}".blue
109
+ puts "Please delete #{@base_dir}/#{screen_name}_keys.yaml and follow the authorize steps again."
110
+ exit
111
+ end
107
112
  end
108
113
 
109
114
  return response.body
110
115
  end
111
116
 
112
117
  def do_oauth_dance(screen_name)
113
- puts "It seems " + "@#{screen_name}".blue + " has a protected account."
118
+ puts "\nIt seems " + "@#{screen_name}".blue + " has a protected account."
114
119
  key_file_path = "#{@base_dir}/#{screen_name}_keys.yaml"
115
120
  if File.exists?(key_file_path)
116
121
  keys = YAML.load_file(key_file_path)
@@ -120,23 +125,23 @@ class GrailbirdUpdater
120
125
  token_secret = keys['secret']
121
126
  else
122
127
  puts <<-EOS
123
- To be able to retrieve your protected tweets, you will need a consumer key/secret
128
+ To be able to retrieve your protected tweets, you will need a consumer key/secret
124
129
 
125
- Please follow these steps to authorize grailbird_updater to download tweets:
126
- 1. Go to https://dev.twitter.com/apps/new
127
- 2. Give it a name (I recommend #{screen_name}_grailbird), description and URL
128
- 3. Create application
129
- 4. Go to your application page, you should see a "Consumer key" and a "Consumer secret"
130
+ Please follow these steps to authorize grailbird_updater to download tweets:
131
+ 1. Go to https://dev.twitter.com/apps/new
132
+ 2. Give it a name (I recommend #{screen_name}_grailbird), description and URL
133
+ 3. Create application
134
+ 4. Go to your application page, you should see a "Consumer key" and a "Consumer secret"
130
135
 
131
- Note: you will only need to create this application once!
136
+ Note: you will only need to create this application once!
132
137
 
133
- So you don't have to enter these again, we'll save a copy of your keys in a file called #{screen_name}_keys.yaml
138
+ So you don't have to enter these again, we'll save a copy of your keys in a file called #{screen_name}_keys.yaml
134
139
 
135
- IMPORTANT: Do NOT store the folder of your tweets on a public server. If someone gets access to #{screen_name}_keys.yaml they can access your entire account!
136
- Did I mention that was IMPORTANT? BECAUSE IT IS.
140
+ #{"IMPORTANT".red.blink} Do NOT store the folder of your tweets on a public server.
141
+ If someone gets access to #{screen_name}_keys.yaml they can access your entire account!
137
142
  EOS
138
143
 
139
- puts "Enter your 'Consumer key'"
144
+ puts "\nEnter your 'Consumer key'"
140
145
  consumer_key = STDIN.gets.chomp
141
146
  puts "Enter your 'Consumer secret'"
142
147
  consumer_secret = STDIN.gets.chomp
@@ -149,7 +154,7 @@ class GrailbirdUpdater
149
154
  :authorize_path => '/oauth/authorize' }
150
155
  )
151
156
  request_token = consumer.get_request_token
152
- puts "Go to this URL: #{request_token.authorize_url()}"
157
+ puts "\nGo to this URL: #{request_token.authorize_url()}"
153
158
  puts "Authorize the application and you will receive a PIN"
154
159
  puts "Enter the PIN here:"
155
160
  pin = STDIN.gets.chomp
@@ -1,3 +1,3 @@
1
1
  class GrailbirdUpdater
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grailbird_updater
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: