acts_as_unvlogable_fork 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +6 -0
- data/.travis.yml +16 -0
- data/Gemfile +14 -0
- data/MIT-LICENSE +20 -0
- data/README.markdown +130 -0
- data/Rakefile +2 -0
- data/acts_as_unvlogable.gemspec +25 -0
- data/lib/acts_as_unvlogable/flickr.rb +713 -0
- data/lib/acts_as_unvlogable/object_base.rb +15 -0
- data/lib/acts_as_unvlogable/string_base.rb +24 -0
- data/lib/acts_as_unvlogable/string_extend.rb +8 -0
- data/lib/acts_as_unvlogable/version.rb +3 -0
- data/lib/acts_as_unvlogable/vg_11870.rb +48 -0
- data/lib/acts_as_unvlogable/vg_blip.rb +48 -0
- data/lib/acts_as_unvlogable/vg_collegehumor.rb +58 -0
- data/lib/acts_as_unvlogable/vg_dailymotion.rb +67 -0
- data/lib/acts_as_unvlogable/vg_dalealplay.rb +50 -0
- data/lib/acts_as_unvlogable/vg_flickr.rb +70 -0
- data/lib/acts_as_unvlogable/vg_marca.rb +48 -0
- data/lib/acts_as_unvlogable/vg_metacafe.rb +77 -0
- data/lib/acts_as_unvlogable/vg_myspace.rb +48 -0
- data/lib/acts_as_unvlogable/vg_prostopleer.rb +46 -0
- data/lib/acts_as_unvlogable/vg_qik.rb +64 -0
- data/lib/acts_as_unvlogable/vg_rutube.rb +80 -0
- data/lib/acts_as_unvlogable/vg_ted.rb +51 -0
- data/lib/acts_as_unvlogable/vg_vimeo.rb +89 -0
- data/lib/acts_as_unvlogable/vg_youtu.rb +11 -0
- data/lib/acts_as_unvlogable/vg_youtube.rb +67 -0
- data/lib/acts_as_unvlogable.rb +117 -0
- data/test/acts_as_unvlogable_test.rb +392 -0
- data/test/video_factory_test.rb +66 -0
- data/unvlogable_sample.yml +5 -0
- metadata +137 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 545aa3f92a727be2a2e858696d9c4ec0302840c6
|
4
|
+
data.tar.gz: 418e212fd1e518789177f1cbc8ac2b6cad83ccbd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ca5d1ae0c6ed2f958b61740c07765aa917acf8fe69228a939ccad5292f5fef8b027ad899b7ac5b2c0ece5037a495974a2ffe9b36a2cbdbb90a2d8ec43f90a575
|
7
|
+
data.tar.gz: 8d4a5a3d1d59cc0272e8e664264be1cdda30b147947f01e19e1c479761c43262faf58ea3380e3c22d969a060664c55c9ab08ae8f78b845e63d1844dcb409c562
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2008 unvlog.com
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.markdown
ADDED
@@ -0,0 +1,130 @@
|
|
1
|
+
Acts as unvlogable
|
2
|
+
==================
|
3
|
+
|
4
|
+
What the hell is this!
|
5
|
+
----------------------
|
6
|
+
|
7
|
+
This is the plugin that we use in [unvlog.com](http://unvlog.com) to manage the supported video services. It is an easy way to obtain a few basics about a video only through its url.
|
8
|
+
|
9
|
+
A quick example:
|
10
|
+
|
11
|
+
To include [this video](http://www.youtube.com/watch?v=GPQnbtldFyo) in [this post](http://unvlog.com/blat/2008/3/10/otro-pelotazo) we need to know its title, the correct way to embed it and its thumbnail url. With this plugin we have an easy access to this data:
|
12
|
+
|
13
|
+
@aha = UnvlogIt.new("http://www.youtube.com/watch?v=GPQnbtldFyo")
|
14
|
+
@aha.title => "paradon del portero"
|
15
|
+
@aha.thumbnail => "http://i4.ytimg.com/vi/GPQnbtldFyo/default.jpg"
|
16
|
+
@aha.embed_url => "http://www.youtube.com/v/GPQnbtldFyo"
|
17
|
+
@aha.embed_html(width, height) => "<object [...]</object>"
|
18
|
+
@aha.flv => "http://...flv"
|
19
|
+
# all together :)
|
20
|
+
@aha.video_details(width, height) => {
|
21
|
+
:title => ...,
|
22
|
+
:thumbnail => ...,
|
23
|
+
:embed_url => ...,
|
24
|
+
:embed_html => ...,
|
25
|
+
:flv => ...
|
26
|
+
}
|
27
|
+
|
28
|
+
With this plugin we have an unique way to manage multiple services :)
|
29
|
+
|
30
|
+
|
31
|
+
Install it!
|
32
|
+
-----------
|
33
|
+
|
34
|
+
1. Install it as a gem:
|
35
|
+
|
36
|
+
gem "acts_as_unvlogable"
|
37
|
+
|
38
|
+
2. Optionally you can create the `config/unvlogable.yml` to store keys for the different services. You have in the plugin a [sample file](http://github.com/mamuso/acts_as_unvlogable/tree/master/unvlogable_sample.yml). At this moment you only need specify keys for flickr.
|
39
|
+
|
40
|
+
|
41
|
+
Dependencies
|
42
|
+
------------
|
43
|
+
|
44
|
+
The plugin depends on [youtube-it](https://github.com/kylejginavan/youtube_it), [xml-simple](http://xml-simple.rubyforge.org/) and [hpricot](https://code.whytheluckystiff.net/hpricot/).
|
45
|
+
|
46
|
+
We have included a modified version of the flickr gem to skip the gem dependency and manage video capabilities.
|
47
|
+
|
48
|
+
|
49
|
+
Use it!
|
50
|
+
-------
|
51
|
+
|
52
|
+
|
53
|
+
The idea is make it as simple as possible. For a given video URL as <http://vimeo.com/1785993>:
|
54
|
+
|
55
|
+
videotron = UnvlogIt.new("http://vimeo.com/1785993")
|
56
|
+
|
57
|
+
Then we have methods to know the 'basics' for use this video on your application.
|
58
|
+
|
59
|
+
- __title:__ A method to know the title of the video on the service.
|
60
|
+
|
61
|
+
videotron.title
|
62
|
+
=> "Beached"
|
63
|
+
|
64
|
+
- __service:__ A method to know the name of the video provider service.
|
65
|
+
|
66
|
+
videotron.service
|
67
|
+
=> "Vimeo"
|
68
|
+
|
69
|
+
- __thumbnail:__ An image representation of the video. Each service has a different size, but... it works :)
|
70
|
+
|
71
|
+
videotron.thumbnail
|
72
|
+
=> "http://bc1.vimeo.com/vimeo/thumbs/143104745_640.jpg"
|
73
|
+
|
74
|
+
- __embed\_url:__ The url (with flashvars) of the video player.
|
75
|
+
|
76
|
+
videotron.embed_url
|
77
|
+
=> "http://vimeo.com/moogaloop.swf?clip_id=1785993 [...] &show_portrait=1"
|
78
|
+
|
79
|
+
- __embed\_html(width, height):__ Uses the embed\_url to build an oembed string. The default width x height is 425 x 344, but we can specify a different one.
|
80
|
+
|
81
|
+
videotron.embed_html(400, 300)
|
82
|
+
=> "<object width='400' height='300'><param name='mo [...] 300'></embed></object>"
|
83
|
+
|
84
|
+
- __flv:__ Gets the flv url. In this edition we implement this method in all the services, but is possible that we can't get the flv in some scenarios. Remember that in some services the flv url expires and in most of their terms don't allow use the flv without its player.
|
85
|
+
|
86
|
+
videotron.flv
|
87
|
+
=> "http://www.vimeo.com/moogaloop/play/clip:1785993/ [...] 8ee400/video.flv"
|
88
|
+
|
89
|
+
- __video\_details(width, height):__ All together :), returns all the previous elements in a hash. Width and height can be specified to build the embed\_html.
|
90
|
+
|
91
|
+
videotron.video_details
|
92
|
+
=> "{ [...] }"
|
93
|
+
|
94
|
+
|
95
|
+
Supported services
|
96
|
+
------------------
|
97
|
+
|
98
|
+
At this moment we support the following video services:
|
99
|
+
|
100
|
+
- [Youtube](http://www.youtube.com/)
|
101
|
+
- [Vimeo](http://vimeo.com/)
|
102
|
+
- [Flickr (videos)](http://flickr.com/)
|
103
|
+
- [Metacafe](http://metacafe.com/)
|
104
|
+
- [Dailymotion](http://dailymotion.com/)
|
105
|
+
- [Collegehumor](http://collegehumor.com/)
|
106
|
+
- [Blip.tv](http://blip.tv/)
|
107
|
+
- [Myspace](http://vids.myspace.com/)
|
108
|
+
- [Ted Talks](http://www.ted.com/talks/)
|
109
|
+
- [11870.com](http://11870.com/)
|
110
|
+
- [Marca.tv](http://www.marca.tv/)
|
111
|
+
- [Dalealplay](http://www.dalealplay.com/)
|
112
|
+
- [RuTube](http://www.rutube.ru/)
|
113
|
+
|
114
|
+
Broken services
|
115
|
+
---------------
|
116
|
+
|
117
|
+
These services were implemented but due to changes in the website they don't work anymore. Any patch for fixing them would be great ;)
|
118
|
+
|
119
|
+
- [Qik](http://qik.com/)
|
120
|
+
- [MTV](http://www.mtvhive.com/)
|
121
|
+
|
122
|
+
You can detect new broken services when running the tests.
|
123
|
+
|
124
|
+
We are always open to incude new services.
|
125
|
+
|
126
|
+
And... what else?
|
127
|
+
-----------------
|
128
|
+
If you find a bug or want to suggest a new video service, please tell it to us in [a ticket](http://github.com/mamuso/acts_as_unvlogable/issues).
|
129
|
+
|
130
|
+
Thanks!!
|
data/Rakefile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "acts_as_unvlogable/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "acts_as_unvlogable_fork"
|
7
|
+
s.version = ActsAsUnvlogable::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Manuel Muñoz", "Fernando Blat", "Alberto Romero"]
|
10
|
+
s.email = ["mamusino@gmail.com", "ferblape@gmail.com", "denegro@gmail.com"]
|
11
|
+
s.homepage = "https://github.com/mamuso/acts_as_unvlogable"
|
12
|
+
s.summary = %q{An easy way to include external video services in a rails app}
|
13
|
+
s.description = %q{An easy way to include external video services in a rails app. This gem provides you wrappers for the most common video services, such as Youtube, Vimeo, Flickr, and so on...}
|
14
|
+
|
15
|
+
s.rubyforge_project = "acts_as_unvlogable"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
s.add_development_dependency "shoulda"
|
22
|
+
s.add_dependency("xml-simple")
|
23
|
+
s.add_dependency("youtube_it")
|
24
|
+
s.add_dependency("hpricot")
|
25
|
+
end
|