summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/images/Avatar_Pic.png (renamed from app/assets/images/Twitter_Logo_Blue.png)bin4298 -> 4298 bytes
-rw-r--r--app/assets/stylesheets/twitter.scss1
-rw-r--r--app/helpers/twitter_helper.rb36
-rw-r--r--app/views/home/_content.html.haml22
-rw-r--r--app/views/twitter/_index.html.erb19
-rw-r--r--config/initializers/assets.rb1
-rw-r--r--config/initializers/customization.rb4
-rw-r--r--doc/TWITTER_FEED.md22
-rwxr-xr-xscript/generate_bearer_token6
9 files changed, 87 insertions, 24 deletions
diff --git a/app/assets/images/Twitter_Logo_Blue.png b/app/assets/images/Avatar_Pic.png
index b5eebc8..b5eebc8 100644
--- a/app/assets/images/Twitter_Logo_Blue.png
+++ b/app/assets/images/Avatar_Pic.png
Binary files differ
diff --git a/app/assets/stylesheets/twitter.scss b/app/assets/stylesheets/twitter.scss
index b2233d0..a67c044 100644
--- a/app/assets/stylesheets/twitter.scss
+++ b/app/assets/stylesheets/twitter.scss
@@ -21,6 +21,7 @@
position: absolute;
left: 0;
top: 0;
+ // background-image: url(/Avatar_Pic.png);
}
.twitter_image_frame > img {
diff --git a/app/helpers/twitter_helper.rb b/app/helpers/twitter_helper.rb
index f824a03..f520286 100644
--- a/app/helpers/twitter_helper.rb
+++ b/app/helpers/twitter_helper.rb
@@ -22,7 +22,37 @@ module TwitterHelper
def update_twitter_info
twitter_user_info[0] = Time.now
twitter_user_info[1] = twitter_client.user(twitter_handle).name
- twitter_user_info[2] = twitter_client.user_timeline(twitter_handle).select{ |tweet| tweet.text.start_with?('RT','@')==false}.take(3)
+ twitter_user_info[2] = twitter_client.user_timeline(twitter_handle, {:count => 200}).select{ |tweet| tweet.text.start_with?('RT','@')==false}.take(3)
+ if twitter_user_info[2] == nil
+ error_handling
+ twitter_user_info[3] = "The twitter handle does not exist or the account's tweets are protected. Please change the privacy settings accordingly or contact your provider-admin."
+ end
+ rescue Twitter::Error::BadRequest
+ error_handling
+ twitter_user_info[3] = "The request for displaying tweets is invalid or cannot be otherwise served."
+ rescue Twitter::Error::Unauthorized
+ error_handling
+ twitter_user_info[3] = "Your bearer-token is invalid or the account's tweets are protected and cannot be displayed. Please change the privacy settings of the corresponding account, check your bearer-token in the secrets-file or contact your provider-admin to have the tweets shown."
+ rescue Twitter::Error::Forbidden
+ error_handling
+ twitter_user_info[3] = "The request for displaying tweets is understood, but it has been refused or access is not allowed."
+ rescue Twitter::Error::NotAcceptable
+ error_handling
+ twitter_user_info[3] = "An invalid format is specified in the request for displaying tweets."
+ rescue Twitter::Error::TooManyRequests
+ error_handling
+ twitter_user_info[3] = "The rate-limit for accessing the tweets is reached. You should be able to display tweets in a couple of minutes."
+ rescue Twitter::Error::NotFound
+ error_handling
+ twitter_user_info[3] = "The twitter hanlde does not exist."
+ rescue Twitter::Error
+ error_handling
+ twitter_user_info[3] = "An error occured while fetching the tweets."
+ end
+
+ def error_handling
+ twitter_user_info[2] = []
+ return twitter_user_info
end
def cached_info
@@ -43,4 +73,8 @@ module TwitterHelper
def tweets
cached_info[2]
end
+
+ def error_message
+ cached_info[3]
+ end
end
diff --git a/app/views/home/_content.html.haml b/app/views/home/_content.html.haml
index 3f4f36e..45afd92 100644
--- a/app/views/home/_content.html.haml
+++ b/app/views/home/_content.html.haml
@@ -1,4 +1,18 @@
-.col-md-8
+- if twitter_enabled == true
+ .col-md-8
+ .row
+ %h1= t(:welcome, :provider => APP_CONFIG[:domain])
+ .p=t(:welcome_message_html)
+
+ .row
+ = home_page_buttons
+
+ .col-md-1
+
+ .col-md-3
+ .row
+ = render 'twitter/index'
+- else
.row
%h1= t(:welcome, :provider => APP_CONFIG[:domain])
.p=t(:welcome_message_html)
@@ -8,12 +22,6 @@
.row
= render 'home/provider_message'
-.col-md-1
-
-.col-md-3
- .row
- = render 'twitter/index'
-
- if Rails.env == 'development'
.row
%hr
diff --git a/app/views/twitter/_index.html.erb b/app/views/twitter/_index.html.erb
index a7ebd1b..cdfff4b 100644
--- a/app/views/twitter/_index.html.erb
+++ b/app/views/twitter/_index.html.erb
@@ -3,20 +3,21 @@
<div class="twitter_header">
<div class="twitter_id">
- <div class="twitter_image_frame"><%= image_tag("Twitter_Logo_Blue.png") %></div>
- <div class="twitter_name"><%= twitter_name%><br><a href="https://twitter.com/loadtocode">@<%= twitter_handle %></a></div>
+ <div class="twitter_image_frame"><%= image_tag("Avatar_Pic.png") %></div>
+ <div class="twitter_name"><%= twitter_name%><br><a href="https://twitter.com/<%= twitter_handle %>">@<%= twitter_handle %></a></div>
</div>
</div>
<div class="twitter_list">
- <% tweets.each do |e| %>
- <div class="tweet">
- <div class="tweet_text"><%= " #{e.text}" %>
+ <%if tweets == [] then%><%= error_message %><% end %>
+ <% tweets.each do |e| %>
+ <div class="tweet">
+ <div class="tweet_text"><%= sanitize(e.text) %>
+ </div>
+ <div class="tweet_text_date">tweeted on <% t = e.created_at%> <%= t.strftime("%m/%d/%y").to_s %>
+ </div>
</div>
- <div class="tweet_text_date">tweeted on <% t = e.created_at%> <%= t.strftime("%m/%d/%y").to_s %>
- </div>
- </div>
- <% end %>
+ <% end %>
</div>
<div class="twitter_footer">
diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb
new file mode 100644
index 0000000..ccb32b6
--- /dev/null
+++ b/config/initializers/assets.rb
@@ -0,0 +1 @@
+Rails.application.config.assets.precompile += %w( Avatar_Pic.png )
diff --git a/config/initializers/customization.rb b/config/initializers/customization.rb
index 9f537e9..6d9c741 100644
--- a/config/initializers/customization.rb
+++ b/config/initializers/customization.rb
@@ -1,10 +1,8 @@
-#
# When deploying, common customizations can be dropped in config/customizations. This initializer makes this work.
#
APP_CONFIG["customization_directory"] ||= "#{Rails.root}/config/customization"
customization_directory = APP_CONFIG["customization_directory"]
-#
# Set customization views as the first view path
#
# Rails.application.config.paths['app/views'].unshift "config/customization/views"
@@ -21,8 +19,8 @@ customization_directory = APP_CONFIG["customization_directory"]
# * For this to work, config.assets.initialize_on_precompile MUST be set to true, otherwise
# this initializer will never get called in production mode when the assets are precompiled.
#
+Rails.application.config.assets.paths.unshift "#{customization_directory}/images"
Rails.application.config.assets.paths.unshift "#{customization_directory}/stylesheets"
-
#
# Copy files to public
#
diff --git a/doc/TWITTER_FEED.md b/doc/TWITTER_FEED.md
index dd3954c..6deb432 100644
--- a/doc/TWITTER_FEED.md
+++ b/doc/TWITTER_FEED.md
@@ -19,12 +19,29 @@ LEAP web app (as part of the main view).
* Activate the feature within your local LEAP Web Application
* If not already existing create a secrets-file in /config with the name secrets.yml (`/config/secrets.yml`)
* Secrets-file should contain the following, make sure its in YAML: {"development"=> {"twitter"=>{"enabled"=>false, "twitter_handle"=>"", "bearer_token"=>"", "twitter_picture"=>nil}}, "test"=>{"twitter"=>{"enabled"=>false, "twitter_handle"=>"", "bearer_token"=>"", "twitter_picture"=>nil}}}
+```
+development:
+ twitter:
+ enabled: false # set to true for usage
+ twitter_handle: XXXXX #put your twitter handle here
+ bearer_token: XXXXX #put your bearer token here
+test:
+ twitter:
+ enabled: false # set to true for usage
+ twitter_handle: XXXXX #put your twitter handle here
+ bearer_token: XXXXX #put your bearer token here
+production:
+ twitter:
+ enabled: false # set to true for usage
+ twitter_handle: XXXXX #put your twitter handle here
+ bearer_token: XXXXX #put your bearer token here
+```
* To have your bearer token created, run script in terminal being in the file of leap_web: `script/generate_bearer_token`
* To have the script run properly you have to add before running: `--key your_consumerkey --secret your_consumersecret`
* Add also `--projectroot your_projectroot --twitterhandle your_twitterhandle` as well to not have manually put the data in your secrets-file
* The full command looks like this: `script/generate_bearer_token --key your_consumerkey --secret your_consumersecret --projectroot your_projectroot --twitterhandle your_twitterhandle`
* If you didn't give all your information to the script, had a typo or want to change anything else, please do so by finding the secrets-file at `/config/secrets.yml`
- * Make sure that the correct twitterhandle and bearer-token is included
+ * Make sure that the correct twitter-handle and bearer-token is included. The account's tweets must not be protected, otherwise they cannot be displayed.
* Deactivate your bearer token
* To deactivate your generated bearer token you can run script/invalidate_bearer_token
@@ -32,4 +49,5 @@ LEAP web app (as part of the main view).
### Default avatar image ###
-This feature uses by default the twitter bird as avatar picture (Twitter_Logo_Blue.png). By using the Twitter trademarks, you agree to follow the Twitter Trademark Guidelines as well as Twitter's Terms of Service and all other Twitter rules and policies. Please find more details here: https://brand.twitter.com/.
+This feature uses by default the twitter bird as avatar picture, you can find here (app/assets/images/Avatar_Pic.png). For customization you can upload your own avatar picture to 'config/customization/images' naming the image file 'Avatar_Pic.png'. This will replace the default image file.
+By using the Twitter trademarks, you agree to follow the Twitter Trademark Guidelines as well as Twitter's Terms of Service and all other Twitter rules and policies. Please find more details here: https://brand.twitter.com/.
diff --git a/script/generate_bearer_token b/script/generate_bearer_token
index 7091a8d..3a09382 100755
--- a/script/generate_bearer_token
+++ b/script/generate_bearer_token
@@ -55,8 +55,8 @@ if options[:projectroot].nil? then
puts "You didn't tell us the directory to have your secrets-file created or being filled. Feel free to copy/paste your bearer_token:"
puts $bearer_token
else
- if File.exist?("#{options[:projectroot]}/leap_web/config/secrets.yml")
- secrets = YAML.load_file("#{options[:projectroot]}/leap_web/config/secrets.yml")
+ if File.exist?("#{options[:projectroot]}/config/secrets.yml")
+ secrets = YAML.load_file("#{options[:projectroot]}/config/secrets.yml")
else
puts "Please make sure that you created a secrets-file as described in the documentation or have given the correct directory. No secrets-file could be found."
exit
@@ -73,10 +73,12 @@ else
else
secrets["development"]["twitter"]["twitter_handle"] = options[:twitterhandle]
secrets["test"]["twitter"]["twitter_handle"] = options[:twitterhandle]
+ secrets["production"]["twitter"]["twitter_handle"] = options[:twitterhandle]
end
secrets["development"]["twitter"]["bearer_token"] = $bearer_token
secrets["test"]["twitter"]["bearer_token"] = $bearer_token
+ secrets["production"]["twitter"]["twitter_handle"] = $bearer_token
File.open("#{options[:projectroot]}/leap_web/config/secrets.yml", "r+") do |file|
file.write(secrets.to_yaml)