aweplug 1.0.0.a21 → 1.0.0.a22
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.
- data/README.md +2 -28
- data/lib/aweplug/helpers/vimeo.rb +68 -22
- data/lib/aweplug/version.rb +1 -1
- metadata +3 -3
data/README.md
CHANGED
@@ -1,29 +1,3 @@
|
|
1
|
-
|
1
|
+
== aweplug
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
## Installation
|
6
|
-
|
7
|
-
Add this line to your application's Gemfile:
|
8
|
-
|
9
|
-
gem 'aweplug'
|
10
|
-
|
11
|
-
And then execute:
|
12
|
-
|
13
|
-
$ bundle
|
14
|
-
|
15
|
-
Or install it yourself as:
|
16
|
-
|
17
|
-
$ gem install aweplug
|
18
|
-
|
19
|
-
## Usage
|
20
|
-
|
21
|
-
TODO: Write usage instructions here
|
22
|
-
|
23
|
-
## Contributing
|
24
|
-
|
25
|
-
1. Fork it
|
26
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
-
5. Create new Pull Request
|
3
|
+
A set of Awestruct extensions aimed at creating OSS project websites.
|
@@ -15,14 +15,14 @@ module Aweplug
|
|
15
15
|
# Returns the html snippet
|
16
16
|
#
|
17
17
|
def vimeo(url)
|
18
|
-
video =
|
18
|
+
video = get_video(url)
|
19
19
|
#out = %Q[<div class="embedded-media">] +
|
20
20
|
%Q[<h4>#{video.title}</h4><div class="flex-video widescreen vimeo">] +
|
21
21
|
%Q[<iframe src="//player.vimeo.com/video/#{video.id}\?title=0&byline=0&portrait=0&badge=0&color=2664A2" width="500" height="313" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen}></iframe>] +
|
22
22
|
%Q[</div>]
|
23
23
|
#video.cast.each do |c|
|
24
24
|
#out += %Q[<div class="follow-links">] +
|
25
|
-
#%Q[<span class="title">Follow #{first_name(c.
|
25
|
+
#%Q[<span class="title">Follow #{first_name(c.display_name)}</span>] +
|
26
26
|
## TODO add in follow links
|
27
27
|
#%Q[<a><i class="icon-rss"></i></a>] +
|
28
28
|
#%Q[<a><i class="icon-facebook"></i></a>] +
|
@@ -39,16 +39,16 @@ module Aweplug
|
|
39
39
|
#
|
40
40
|
# Returns the html snippet.
|
41
41
|
def vimeo_thumb(url)
|
42
|
-
video =
|
43
|
-
out = %Q{<a href="#{
|
42
|
+
video = get_video(url)
|
43
|
+
out = %Q{<a href="#{video.detail_url}">} +
|
44
44
|
%Q{<img src="#{video.thumb_url}" />} +
|
45
45
|
%Q{</a>} +
|
46
46
|
%Q{<span class="label material-duration">#{video.duration}</span>} +
|
47
47
|
# TODO Add this in once the DCP supports manually adding tags
|
48
48
|
# %Q{<span class="label material-level-beginner">Beginner<span>} +
|
49
|
-
%Q{<h4><a href="#{video.
|
49
|
+
%Q{<h4><a href="#{video.detail_url}">#{video.title}</a></h4>} +
|
50
50
|
# TODO Wire in link to profile URL
|
51
|
-
%Q{<p class="author">Author: <a href="#">#{video.author.
|
51
|
+
%Q{<p class="author">Author: <a href="#">#{video.author.display_name}</a></p>} +
|
52
52
|
%Q{<p class="material-datestamp">Added #{video.upload_date}</p>} +
|
53
53
|
# TODO wire in ratings
|
54
54
|
#%Q{<p class="rating">Video<i class="fa fa-star"></i><i class="fa fa-star"></i><i class="fa fa-star"></i><i class="fa fa-star-half-empty"></i><i class="fa fa-star-empty"></i></p>} +
|
@@ -56,6 +56,24 @@ module Aweplug
|
|
56
56
|
out
|
57
57
|
end
|
58
58
|
|
59
|
+
# Internal: Retrieves the video object
|
60
|
+
#
|
61
|
+
# url: the Vimeo URL to retrieve the video from
|
62
|
+
def get_video(url)
|
63
|
+
if site.video_cache.nil?
|
64
|
+
site.send('video_cache=', {})
|
65
|
+
end
|
66
|
+
if site.video_cache.key?(url)
|
67
|
+
site.video_cache[url]
|
68
|
+
else
|
69
|
+
video = Video.new(url, access_token, site)
|
70
|
+
site.video_cache[url] = video
|
71
|
+
video
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
|
59
77
|
# Internal: Extracts a firstname from a full name
|
60
78
|
#
|
61
79
|
# full_name - the full name, e.g. Pete Muir
|
@@ -78,6 +96,15 @@ module Aweplug
|
|
78
96
|
fetch_info
|
79
97
|
fetch_cast
|
80
98
|
fetch_thumb_url
|
99
|
+
#log
|
100
|
+
end
|
101
|
+
|
102
|
+
def log
|
103
|
+
File.open("_tmp/vimeo_fetch.log", 'a') { |f| f.write(
|
104
|
+
"------------------------------------\n" +
|
105
|
+
"Id: #{@id}\n" +
|
106
|
+
"Cast: #{@cast}\n" +
|
107
|
+
"Author: #{author}\n") }
|
81
108
|
end
|
82
109
|
|
83
110
|
def id
|
@@ -93,9 +120,16 @@ module Aweplug
|
|
93
120
|
Time.at(t).utc.strftime("%T")
|
94
121
|
end
|
95
122
|
|
123
|
+
def modified_date
|
124
|
+
pretty_date(@video["modified_date"])
|
125
|
+
end
|
126
|
+
|
96
127
|
def upload_date
|
97
|
-
|
98
|
-
|
128
|
+
pretty_date(@video["upload_date"])
|
129
|
+
end
|
130
|
+
|
131
|
+
def detail_url
|
132
|
+
"#{@site.base_url}/video/vimeo/#{id}"
|
99
133
|
end
|
100
134
|
|
101
135
|
def description
|
@@ -112,30 +146,20 @@ module Aweplug
|
|
112
146
|
out += s
|
113
147
|
end
|
114
148
|
end
|
149
|
+
# Deal with the case that the description has no sentence end in it
|
150
|
+
out = out.empty? ? d : out
|
115
151
|
end
|
116
|
-
out
|
152
|
+
out
|
117
153
|
end
|
118
154
|
|
119
155
|
def author
|
120
|
-
|
121
|
-
@cast[0]
|
122
|
-
else
|
123
|
-
@cast = OpenStruct.new({"realname" => "Unknown"})
|
124
|
-
end
|
156
|
+
@author
|
125
157
|
end
|
126
158
|
|
127
159
|
def cast
|
128
160
|
@cast || ''
|
129
161
|
end
|
130
162
|
|
131
|
-
def modified_date
|
132
|
-
if @video["upload_date"]
|
133
|
-
DateTime.parse(@video["upload_date"]).strftime("%F %T")
|
134
|
-
else
|
135
|
-
"UNKOWN DATE"
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
163
|
def tags
|
140
164
|
if @video['tags'].is_a? Hash
|
141
165
|
@video['tags']['tag'].inject([]) do |result, element|
|
@@ -190,6 +214,7 @@ module Aweplug
|
|
190
214
|
end
|
191
215
|
end
|
192
216
|
end
|
217
|
+
@author = @cast[0] ? @cast[0] : OpenStruct.new({"display_name" => "Unknown"})
|
193
218
|
end
|
194
219
|
|
195
220
|
# Internal: Execute a method against the Vimeo API
|
@@ -204,6 +229,27 @@ module Aweplug
|
|
204
229
|
access_token.get(query).body
|
205
230
|
end
|
206
231
|
end
|
232
|
+
|
233
|
+
def pretty_date(date_str)
|
234
|
+
date = DateTime.parse(date_str)
|
235
|
+
a = (Time.now-date.to_time).to_i
|
236
|
+
|
237
|
+
case a
|
238
|
+
when 0 then 'just now'
|
239
|
+
when 1 then 'a second ago'
|
240
|
+
when 2..59 then a.to_s+' seconds ago'
|
241
|
+
when 60..119 then 'a minute ago' #120 = 2 minutes
|
242
|
+
when 120..3540 then (a/60).to_i.to_s+' minutes ago'
|
243
|
+
when 3541..7100 then 'an hour ago' # 3600 = 1 hour
|
244
|
+
when 7101..82800 then ((a+99)/3600).to_i.to_s+' hours ago'
|
245
|
+
when 82801..172000 then 'a day ago' # 86400 = 1 day
|
246
|
+
when 172001..518400 then ((a+800)/(60*60*24)).to_i.to_s+' days ago'
|
247
|
+
when 518400..1036800 then 'a week ago'
|
248
|
+
when 1036800..4147200 then ((a+180000)/(60*60*24*7)).to_i.to_s+' weeks ago'
|
249
|
+
else date.strftime("%F")
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
207
253
|
end
|
208
254
|
|
209
255
|
# Internal: Obtains an OAuth::AcccessToken for the Vimeo API, using the
|
data/lib/aweplug/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aweplug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.a22
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-03-
|
12
|
+
date: 2014-03-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: octokit
|
@@ -191,7 +191,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
191
191
|
version: '0'
|
192
192
|
segments:
|
193
193
|
- 0
|
194
|
-
hash:
|
194
|
+
hash: 930035991948049599
|
195
195
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
196
|
none: false
|
197
197
|
requirements:
|