/
player.js.coffee
78 lines (59 loc) · 1.36 KB
/
player.js.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
$ = jQuery
youtube = null
overlay =
element: -> $('#overlay')
show: ->
el = @element()
return unless el
el.css opacity: 0
el.show()
window.setTimeout(=>
el.animate opacity: 1, 200
, 0)
hide: ->
el = @element()
return unless el
el.animate opacity: 0, 400, =>
el.hide()
hideWithoutAnimation: ->
el = @element()
return unless el
el.hide()
player =
youtube: null
channels: ['kittens'] # TODO caricare dalla profilazione; TODO 2 usa backbone.js
loadChannel: (chan) ->
performLoading = =>
$.ajax
url: 'https://gdata.youtube.com/feeds/api/videos',
method: 'GET',
data:
q: chan
v: 2
alt: 'jsonc'
dataType: 'json'
success: (response) =>
items = response.data.items
@youtube.loadPlaylist(video.id for video in items, 0, 0, 'hd720')
if @youtube
performLoading()
else
@nextChannelLoad = performLoading
ready: (@youtube) ->
return unless @youtube
if @nextChannelLoad
@nextChannelLoad()
@nextChannelLoad = null
@onYouTubePlayerReady = (ident) ->
youtube = $('#player object')[0]
unless youtube.playVideo
youtube = $('#player embed')[0]
player.ready(youtube)
$(document).ready ->
body = $(document.body)
overlay.hideWithoutAnimation()
player.loadChannel('kittens')
body.mouseenter ->
overlay.show()
body.mouseleave ->
overlay.hide()