Delete tweet_tag.rb

This commit is contained in:
Sonya Mann 2018-07-12 15:53:26 -07:00 committed by GitHub
parent df8ded5070
commit da8fa1b10d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 0 additions and 97 deletions

View File

@ -1,97 +0,0 @@
# A Liquid tag for Jekyll sites that allows embedding tweets using Twitter's
# oEmbed API, and showing the tweet as a blockquote for non-JavaScript enabled
# browsers and readers.
#
# Author: Scott W. Bradley
# Source URL: https://github.com/scottwb/jekyll-tweet-tag
#
# Example usage:
# {% tweet https://twitter.com/DEVOPS_BORAT/status/159849628819402752 %}
#
# Documentation:
# https://github.com/scottwb/jekyll-tweet-tag/blob/master/README.md
#
# Note from Sonya: I am not sure that this will work but it seems unlikely to do any harm.
#
require 'json'
module Jekyll
class TweetTag < Liquid::Tag
TWITTER_OEMBED_URL = "https://api.twitter.com/1/statuses/oembed.json"
def initialize(tag_name, text, tokens)
super
@text = text
@cache_disabled = false
@cache_folder = File.expand_path "../.tweet-cache", File.dirname(__FILE__)
FileUtils.mkdir_p @cache_folder
end
def render(context)
args = @text.split(/\s+/).map(&:strip)
api_params = {'url' => args.shift}
args.each do |arg|
k,v = arg.split('=').map(&:strip)
if k && v
if v =~ /^'(.*)'$/
v = $1
end
api_params[k] = v
end
end
html_output_for(api_params)
end
def html_output_for(api_params)
body = "Tweet could not be processed"
if response = cached_response(api_params) || live_response(api_params)
body = response['html'] || response['error'] || body
end
"<div class='embed tweet'>#{body}</div>"
end
def cache(api_params, data)
cache_file = cache_file_for(api_params)
File.open(cache_file, "w") do |f|
f.write(data)
end
end
def cached_response(api_params)
return nil if @cache_disabled
cache_file = cache_file_for(api_params)
JSON.parse(File.read(cache_file)) if File.exist?(cache_file)
end
def url_params_for(api_params)
api_params.keys.sort.map do |k|
"#{CGI::escape(k)}=#{CGI::escape(api_params[k])}"
end.join('&')
end
def cache_file_for(api_params)
filename = "#{Digest::MD5.hexdigest(url_params_for(api_params))}.cache"
File.join(@cache_folder, filename)
end
def live_response(api_params)
api_uri = URI.parse(TWITTER_OEMBED_URL + "?#{url_params_for(api_params)}")
response = Net::HTTP.get(api_uri.host, api_uri.request_uri)
cache(api_params, response) unless @cache_disabled
JSON.parse(response)
end
end
class TweetTagNoCache < TweetTag
def initialize(tag_name, text, token)
super
@cache_disabled = true
end
end
end
Liquid::Template.register_tag('tweet', Jekyll::TweetTag)
Liquid::Template.register_tag('tweetnocache', Jekyll::TweetTagNoCache)