Merge branch 'master' of github.com:magnolia-fan/BeatHaven
Conflicts: rails/app/views/artist/view.rhtml rails/config/routes.rb rails/public/stylesheets/beathaven.css
This commit is contained in:
commit
092ef8f389
|
@ -6,6 +6,9 @@ gem 'rails', '3.0.5'
|
|||
# gem 'rails', :git => 'git://github.com/rails/rails.git'
|
||||
|
||||
gem 'pg'
|
||||
gem 'mongo', '1.3.0'
|
||||
gem 'bson_ext', '1.3.0'
|
||||
gem 'mongoid', '~> 2.0'
|
||||
|
||||
# Use unicorn as the web server
|
||||
# gem 'unicorn'
|
||||
|
|
|
@ -29,6 +29,8 @@ GEM
|
|||
activesupport (= 3.0.5)
|
||||
activesupport (3.0.5)
|
||||
arel (2.0.9)
|
||||
bson (1.3.0)
|
||||
bson_ext (1.3.0)
|
||||
builder (2.1.2)
|
||||
erubis (2.6.6)
|
||||
abstract (>= 1.0.0)
|
||||
|
@ -39,6 +41,13 @@ GEM
|
|||
mime-types (~> 1.16)
|
||||
treetop (~> 1.4.8)
|
||||
mime-types (1.16)
|
||||
mongo (1.3.0)
|
||||
bson (>= 1.3.0)
|
||||
mongoid (2.0.1)
|
||||
activemodel (~> 3.0)
|
||||
mongo (~> 1.3)
|
||||
tzinfo (~> 0.3.22)
|
||||
will_paginate (~> 3.0.pre)
|
||||
pg (0.10.1)
|
||||
polyglot (0.3.1)
|
||||
rack (1.2.2)
|
||||
|
@ -64,10 +73,14 @@ GEM
|
|||
treetop (1.4.9)
|
||||
polyglot (>= 0.3.1)
|
||||
tzinfo (0.3.26)
|
||||
will_paginate (3.0.pre2)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
bson_ext (= 1.3.0)
|
||||
mongo (= 1.3.0)
|
||||
mongoid (~> 2.0)
|
||||
pg
|
||||
rails (= 3.0.5)
|
||||
|
|
|
@ -2,7 +2,12 @@
|
|||
class ArtistController < ApplicationController
|
||||
require 'open-uri'
|
||||
def view
|
||||
@artist = Artist.getByName(params[:name].gsub('+', ' ').gsub('%20', ' '))
|
||||
if params[:name].nil?
|
||||
name = ''
|
||||
else
|
||||
name = params[:name].gsub('+', ' ').gsub('%20', ' ')
|
||||
end
|
||||
@artist = Artist.getByName(name)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
class TrackController < ApplicationController
|
||||
require 'net/http'
|
||||
require 'uri'
|
||||
def listen
|
||||
render :json => YAML.load_file("#{RAILS_ROOT}/config/vk_accounts.yml")
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def fetchSearch q
|
||||
|
||||
end
|
||||
end
|
|
@ -0,0 +1,2 @@
|
|||
module TrackHelper
|
||||
end
|
|
@ -0,0 +1,19 @@
|
|||
module Vkontakte
|
||||
@@accounts = YAML.load_file("#{RAILS_ROOT}/config/vk_accounts.yml")
|
||||
|
||||
def get artist, track, length
|
||||
|
||||
end
|
||||
|
||||
def getHtml q
|
||||
|
||||
end
|
||||
|
||||
def parseHtml html
|
||||
|
||||
end
|
||||
|
||||
def calcWeight files
|
||||
|
||||
end
|
||||
end
|
|
@ -1,5 +1,35 @@
|
|||
# encoding: UTF-8
|
||||
class Album < ActiveRecord::Base
|
||||
set_table_name 'musicbrainz.bh_release_group'
|
||||
belongs_to :artist
|
||||
has_many :releases, :conditions => "release_type = 1", :order => 'date ASC, id ASC'
|
||||
|
||||
require 'iconv'
|
||||
|
||||
def cover artist
|
||||
covers = AlbumPic.where(album_id: id)
|
||||
unless covers.empty?
|
||||
covers.first.extralarge
|
||||
else
|
||||
q_artist = CGI::escape(artist)
|
||||
q_album = CGI::escape(name)
|
||||
path = open(
|
||||
'http://ws.audioscrobbler.com/2.0/' <<
|
||||
'?method=album.getinfo' <<
|
||||
'&api_key=04fda005dbf61a50af5abc3e90f111f2' <<
|
||||
'&artist=' << q_artist <<
|
||||
'&album=' << q_album
|
||||
).read
|
||||
m = path.scan(/<image\ssize=\"(.*)\">(.*)<\/image>/i)
|
||||
AlbumPic.new(
|
||||
album_id: id,
|
||||
small: m[0][1],
|
||||
medium: m[1][1],
|
||||
large: m[2][1],
|
||||
extralarge: m[3][1],
|
||||
mega: m[4][1]
|
||||
)
|
||||
m[3][1]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
class AlbumPic
|
||||
include Mongoid::Document
|
||||
store_in :album_pics
|
||||
|
||||
key :album_id, Integer
|
||||
key :small, String
|
||||
key :medium, String
|
||||
key :large, String
|
||||
key :extralarge, String
|
||||
key :mega, String
|
||||
end
|
|
@ -2,11 +2,7 @@ class Track < ActiveRecord::Base
|
|||
set_table_name 'musicbrainz.bh_track'
|
||||
belongs_to :release
|
||||
|
||||
def convertLength
|
||||
(length /= 1000).round!
|
||||
end
|
||||
|
||||
def clearName
|
||||
name.gsub('&', 'and').gsub(/[^a-z0-9]/, '').downcase
|
||||
def inDb
|
||||
! TrackData.where(id: id.to_s).empty?
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
class TrackData
|
||||
include Mongoid::Document
|
||||
store_in :track_data
|
||||
|
||||
key :id, Integer
|
||||
key :artist, String
|
||||
key :title, String
|
||||
key :length, Integer
|
||||
key :files, Array
|
||||
end
|
|
@ -8,7 +8,7 @@
|
|||
<% @artist.albums.each do |album| %>
|
||||
<% unless album.releases.empty? %>
|
||||
<div class="album">
|
||||
<div class="pic"></div>
|
||||
<div class="pic"><img src="<%= album.cover(@artist.name) %>" width="250" height="250" alt=""/></div>
|
||||
<h3 class="name"><%= album.name %> <%= (album.year ? album.year : '') %></h3>
|
||||
<%
|
||||
releases = album.releases
|
||||
|
@ -16,8 +16,8 @@
|
|||
%>
|
||||
<ul class="tracks">
|
||||
<% first_release.tracks.each do |track| %>
|
||||
<li>
|
||||
<span class="play"></span>
|
||||
<li id="<%= track.id %>">
|
||||
<span class="play<%= (track.inDb ? '' : ' disabled') %>"></span>
|
||||
<span class="track-name"><%= track.name %></span>
|
||||
<span class="duration"><%= track.length.toTime %></span>
|
||||
</li>
|
||||
|
|
|
@ -3,12 +3,18 @@
|
|||
<head>
|
||||
<title>BeatHaven</title>
|
||||
<%= stylesheet_link_tag :all %>
|
||||
<%= javascript_include_tag :defaults %>
|
||||
<%= javascript_include_tag :all %>
|
||||
<%= csrf_meta_tag %>
|
||||
</head>
|
||||
<body>
|
||||
<div id="contents">
|
||||
<div class="inner-1">
|
||||
<div id="player">
|
||||
<span id="artist"></span>
|
||||
<span id="dash"> - </span>
|
||||
<span id="title"></span>
|
||||
<audio controls preload style="width:1000px;"></audio>
|
||||
</div>
|
||||
<%= yield %>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
defaults: &defaults
|
||||
host: localhost
|
||||
# slaves:
|
||||
# - host: slave1.local
|
||||
# port: 27018
|
||||
# - host: slave2.local
|
||||
# port: 27019
|
||||
|
||||
development:
|
||||
<<: *defaults
|
||||
database: beathaven
|
||||
|
||||
test:
|
||||
<<: *defaults
|
||||
database: beathaven_test
|
||||
|
||||
# set these environment variables on your prod server
|
||||
production:
|
||||
host: <%= ENV['MONGOID_HOST'] %>
|
||||
port: <%= ENV['MONGOID_PORT'] %>
|
||||
username: <%= ENV['MONGOID_USERNAME'] %>
|
||||
password: <%= ENV['MONGOID_PASSWORD'] %>
|
||||
database: <%= ENV['MONGOID_DATABASE'] %>
|
|
@ -58,7 +58,7 @@ Beathaven::Application.routes.draw do
|
|||
# This is a legacy wild controller route that's not recommended for RESTful applications.
|
||||
# Note: This route will make all actions in every controller accessible via GET requests.
|
||||
# match ':controller(/:action(/:id(.:format)))'
|
||||
|
||||
match 'artist(/:name)' => 'artist#view'
|
||||
match 'listen/:id' => 'track#listen'
|
||||
end
|
||||
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
# Vkontake accounts config
|
||||
|
||||
Bach: # Bach himself
|
||||
user_id: 5728795
|
||||
email: chezzzy@yandex.ru
|
||||
password: yabach!
|
||||
remixsid: 47c2f5501b22a3e3aa6947e5e74d1a72381267df2502570eb75c94481ade
|
||||
remixchk: 5
|
||||
user_agent: "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"
|
||||
|
||||
Mozart: # Hedg
|
||||
user_id: 69139853
|
||||
email: alexgreen1978@gmail.com
|
||||
password: fbcn136
|
||||
remixsid: bc5386a4f49f8bf7df20e11bdd311a7120818d83c23d93cd08177d5d3674
|
||||
remixchk: 5
|
||||
user_agent: "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.307.9 Safari/532.9"
|
||||
|
||||
Schubert: # Chez
|
||||
user_id: 1217744
|
||||
email: phpdev.ru@gmail.com
|
||||
password: yanebach!
|
||||
remixsid: fc27c3a7874bc0b84477015e187e5e0bd3a71bdca02d98327595ef255773
|
||||
remixchk: 5
|
||||
user_agent: "Mozilla/5.0 (Macintosh; U; PPC Max OS X Mach-O; en-US; rv:1.8.0.7) Gecko/200609211 Camino/1.0.3"
|
||||
|
||||
Vivaldi: # Flint
|
||||
user_id: 382067
|
||||
remixsid: 9afa6f2e6d352b01d1a3742b2c0f6c09dbefe2158f3dcb61d30fe438dbc2
|
||||
remixchk: 5
|
||||
user_agent: "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16"
|
||||
|
||||
Prokofiev: # Daddy
|
||||
user_id:24538630
|
||||
remixsid: 832fae47c8dfc8df66551b8c72927ca26f6ee49f5754b24e9a9a317805c5
|
||||
remixchk: 5
|
||||
user_agent: "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; WebMoney Advisor; GTB6.3; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
|
||||
|
||||
Paganini: # Tom_Orrow
|
||||
user_id: 1554168
|
||||
email: agent_smith@gmail.ru
|
||||
password: GoTo17db14DB
|
||||
remixsid: cf89c2e8ef6ab2337c3b4ef22bdd38be70c880da7f9ef73ff7d02ff9608e
|
||||
remixchk: 5
|
||||
user_agent: "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16"
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.8 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 297 KiB |
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,12 @@
|
|||
$(function(){
|
||||
$('.play').click(function(){
|
||||
$.get('/listen/'+ $(this).parent().attr('id') +'/', function(res){
|
||||
if (res.status == 'ok') {
|
||||
$('#player audio').attr('src', res.data.url);
|
||||
$('#player #artist').html(res.data.artist);
|
||||
$('#player #title').html(res.data.track);
|
||||
$('#player audio').play();
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
|
@ -21,7 +21,7 @@ body {
|
|||
display: block;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
margin: 0 0 0.5em 0;
|
||||
margin: 4em 0 0.5em 0;
|
||||
font-size: 3em;
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ body {
|
|||
.album .name {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 400px;
|
||||
width: 450px;
|
||||
font-size: 1.5em;
|
||||
margin: 0 0 0.5em 0;
|
||||
/* background-color: yellowgreen;*/
|
||||
|
@ -50,7 +50,7 @@ body {
|
|||
.album .tracks {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 400px;
|
||||
width: 450px;
|
||||
margin-bottom: 1em;
|
||||
/* background-color: lightblue;*/
|
||||
}
|
||||
|
@ -75,6 +75,32 @@ body {
|
|||
width: 31px;
|
||||
height: 30px;
|
||||
margin: 0 0.3em 0 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.album .tracks li .play.disabled {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
#player {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
margin-left: -500px;
|
||||
width: 1000px;
|
||||
height: 111px;
|
||||
background-color: #333;
|
||||
border: #222 1px solid;
|
||||
}
|
||||
|
||||
#artist, #dash, #title {
|
||||
line-height: 87px;
|
||||
font-size: 2em;
|
||||
color: #AAA;
|
||||
}
|
||||
|
||||
#dash {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.search {
|
||||
|
|
|
@ -0,0 +1,448 @@
|
|||
/*
|
||||
* Skin for jPlayer Plugin (jQuery JavaScript Library)
|
||||
* http://www.happyworm.com/jquery/jplayer
|
||||
*
|
||||
* Skin Name: Blue Monday
|
||||
*
|
||||
* Copyright (c) 2010 Happyworm Ltd
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* - http://www.opensource.org/licenses/mit-license.php
|
||||
* - http://www.gnu.org/copyleft/gpl.html
|
||||
*
|
||||
* Author: Silvia Benvenuti
|
||||
* Skin Version: 3.0 (jPlayer 2.0.0)
|
||||
* Date: 20th December 2010
|
||||
*/
|
||||
|
||||
div.jp-audio,
|
||||
div.jp-video {
|
||||
|
||||
/* Edit the font-size to counteract inherited font sizing.
|
||||
* Eg. 1.25em = 1 / 0.8em
|
||||
*/
|
||||
|
||||
font-size:1.25em;
|
||||
|
||||
font-family:Verdana, Arial, sans-serif;
|
||||
line-height:1.6;
|
||||
color: #666;
|
||||
}
|
||||
div.jp-audio {
|
||||
width:1000px;
|
||||
}
|
||||
div.jp-video-270p {
|
||||
width:480px;
|
||||
}
|
||||
div.jp-video-360p {
|
||||
width:640px;
|
||||
}
|
||||
div.jp-interface {
|
||||
position: relative;
|
||||
background-color:#eee;
|
||||
/* width:418px; */
|
||||
width:100%;
|
||||
/* border:1px solid #009be3;*/
|
||||
}
|
||||
div.jp-audio div.jp-type-single div.jp-interface {
|
||||
height:80px;
|
||||
border-bottom:none;
|
||||
}
|
||||
div.jp-audio div.jp-type-playlist div.jp-interface {
|
||||
height:80px;
|
||||
}
|
||||
div.jp-video div.jp-type-single div.jp-interface {
|
||||
height:60px;
|
||||
border-bottom:none;
|
||||
}
|
||||
div.jp-video div.jp-type-playlist div.jp-interface {
|
||||
height:60px;
|
||||
}
|
||||
div.jp-interface ul.jp-controls {
|
||||
list-style-type:none;
|
||||
padding:0;
|
||||
margin: 0;
|
||||
}
|
||||
div.jp-interface ul.jp-controls li {
|
||||
/* position: absolute; */
|
||||
display:inline;
|
||||
}
|
||||
div.jp-interface ul.jp-controls a {
|
||||
position: absolute;
|
||||
overflow:hidden;
|
||||
text-indent:-9999px;
|
||||
}
|
||||
a.jp-play,
|
||||
a.jp-pause {
|
||||
width:40px;
|
||||
height:40px;
|
||||
z-index:1;
|
||||
}
|
||||
div.jp-audio div.jp-type-single a.jp-play,
|
||||
div.jp-audio div.jp-type-single a.jp-pause {
|
||||
top:20px;
|
||||
left:40px;
|
||||
}
|
||||
div.jp-audio div.jp-type-playlist a.jp-play,
|
||||
div.jp-audio div.jp-type-playlist a.jp-pause {
|
||||
top:20px;
|
||||
left:48px;
|
||||
}
|
||||
div.jp-video a.jp-play,
|
||||
div.jp-video a.jp-pause {
|
||||
top:15px;
|
||||
}
|
||||
div.jp-video-270p div.jp-type-single a.jp-play,
|
||||
div.jp-video-270p div.jp-type-single a.jp-pause {
|
||||
left:195px;
|
||||
}
|
||||
div.jp-video-270p div.jp-type-playlist a.jp-play,
|
||||
div.jp-video-270p div.jp-type-playlist a.jp-pause {
|
||||
left:220px;
|
||||
}
|
||||
div.jp-video-360p div.jp-type-single a.jp-play,
|
||||
div.jp-video-360p div.jp-type-single a.jp-pause {
|
||||
left:275px;
|
||||
}
|
||||
div.jp-video-360p div.jp-type-playlist a.jp-play,
|
||||
div.jp-video-360p div.jp-type-playlist a.jp-pause {
|
||||
left:300px;
|
||||
}
|
||||
a.jp-play {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") 0 0 no-repeat;
|
||||
}
|
||||
a.jp-play:hover {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") -41px 0 no-repeat;
|
||||
}
|
||||
a.jp-pause {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") 0 -42px no-repeat;
|
||||
display: none;
|
||||
}
|
||||
a.jp-pause:hover {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") -41px -42px no-repeat;
|
||||
}
|
||||
div.jp-audio div.jp-type-single a.jp-stop {
|
||||
top:26px;
|
||||
left:90px;
|
||||
}
|
||||
div.jp-audio div.jp-type-playlist a.jp-stop {
|
||||
top:26px;
|
||||
left:126px;
|
||||
}
|
||||
div.jp-video a.jp-stop {
|
||||
top:21px;
|
||||
}
|
||||
div.jp-video-270p div.jp-type-single a.jp-stop {
|
||||
left:245px;
|
||||
}
|
||||
div.jp-video-270p div.jp-type-playlist a.jp-stop {
|
||||
left:298px;
|
||||
}
|
||||
div.jp-video-360p div.jp-type-single a.jp-stop {
|
||||
left:325px;
|
||||
}
|
||||
div.jp-video-360p div.jp-type-playlist a.jp-stop {
|
||||
left:378px;
|
||||
}
|
||||
a.jp-stop {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") 0 -83px no-repeat;
|
||||
width:28px;
|
||||
height:28px;
|
||||
z-index:1;
|
||||
}
|
||||
a.jp-stop:hover {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") -29px -83px no-repeat;
|
||||
}
|
||||
div.jp-audio div.jp-type-playlist a.jp-previous {
|
||||
left:20px;
|
||||
top:26px;
|
||||
}
|
||||
div.jp-video div.jp-type-playlist a.jp-previous {
|
||||
top:21px;
|
||||
}
|
||||
div.jp-video-270p div.jp-type-playlist a.jp-previous {
|
||||
left:192px;
|
||||
}
|
||||
div.jp-video-360p div.jp-type-playlist a.jp-previous {
|
||||
left:272px;
|
||||
}
|
||||
a.jp-previous {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") 0 -112px no-repeat;
|
||||
width:28px;
|
||||
height:28px;
|
||||
}
|
||||
a.jp-previous:hover {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") -29px -112px no-repeat;
|
||||
}
|
||||
div.jp-audio div.jp-type-playlist a.jp-next {
|
||||
left:88px;
|
||||
top:26px;
|
||||
}
|
||||
div.jp-video div.jp-type-playlist a.jp-next {
|
||||
top:21px;
|
||||
}
|
||||
div.jp-video-270p div.jp-type-playlist a.jp-next {
|
||||
left:260px;
|
||||
}
|
||||
div.jp-video-360p div.jp-type-playlist a.jp-next {
|
||||
left:340px;
|
||||
}
|
||||
a.jp-next {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") 0 -141px no-repeat;
|
||||
width:28px;
|
||||
height:28px;
|
||||
}
|
||||
a.jp-next:hover {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") -29px -141px no-repeat;
|
||||
}
|
||||
div.jp-progress {
|
||||
position: absolute;
|
||||
overflow:hidden;
|
||||
background-color: #ddd;
|
||||
}
|
||||
div.jp-audio div.jp-type-single div.jp-progress {
|
||||
top:32px;
|
||||
left:130px;
|
||||
width:122px;
|
||||
height:15px;
|
||||
}
|
||||
div.jp-audio div.jp-type-playlist div.jp-progress {
|
||||
top:32px;
|
||||
left:164px;
|
||||
width:122px;
|
||||
height:15px;
|
||||
}
|
||||
div.jp-video div.jp-progress {
|
||||
top:0px;
|
||||
left:0px;
|
||||
width:100%;
|
||||
height:10px;
|
||||
}
|
||||
div.jp-seek-bar {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") 0 -202px repeat-x;
|
||||
width:0px;
|
||||
/* height:15px; */
|
||||
height:100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
div.jp-play-bar {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") 0 -218px repeat-x ;
|
||||
width:0px;
|
||||
/* height:15px; */
|
||||
height:100%;
|
||||
}
|
||||
|
||||
/* The seeking class is added/removed inside jPlayer */
|
||||
div.jp-seeking-bg {
|
||||
background: url("pbar-ani.gif");
|
||||
}
|
||||
|
||||
a.jp-mute,
|
||||
a.jp-unmute {
|
||||
width:18px;
|
||||
height:15px;
|
||||
}
|
||||
div.jp-audio div.jp-type-single a.jp-mute,
|
||||
div.jp-audio div.jp-type-single a.jp-unmute {
|
||||
top:32px;
|
||||
left:274px;
|
||||
}
|
||||
div.jp-audio div.jp-type-playlist a.jp-mute,
|
||||
div.jp-audio div.jp-type-playlist a.jp-unmute {
|
||||
top:32px;
|
||||
left:296px;
|
||||
}
|
||||
div.jp-video a.jp-mute,
|
||||
div.jp-video a.jp-unmute {
|
||||
top:27px;
|
||||
}
|
||||
div.jp-video-270p div.jp-type-single a.jp-mute,
|
||||
div.jp-video-270p div.jp-type-single a.jp-unmute {
|
||||
left:304px;
|
||||
}
|
||||
div.jp-video-270p div.jp-type-playlist a.jp-unmute,
|
||||
div.jp-video-270p div.jp-type-playlist a.jp-mute {
|
||||
left:363px;
|
||||
}
|
||||
div.jp-video-360p div.jp-type-single a.jp-mute,
|
||||
div.jp-video-360p div.jp-type-single a.jp-unmute {
|
||||
left:384px;
|
||||
}
|
||||
div.jp-video-360p div.jp-type-playlist a.jp-mute,
|
||||
div.jp-video-360p div.jp-type-playlist a.jp-unmute {
|
||||
left:443px;
|
||||
}
|
||||
a.jp-mute {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") 0 -186px no-repeat;
|
||||
}
|
||||
a.jp-mute:hover {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") -19px -170px no-repeat;
|
||||
}
|
||||
a.jp-unmute {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") 0 -170px no-repeat;
|
||||
display: none;
|
||||
}
|
||||
a.jp-unmute:hover {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") -19px -186px no-repeat;
|
||||
}
|
||||
div.jp-volume-bar {
|
||||
position: absolute;
|
||||
overflow:hidden;
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") 0 -250px repeat-x;
|
||||
width:46px;
|
||||
height:5px;
|
||||
cursor: pointer;
|
||||
}
|
||||
div.jp-audio div.jp-type-single div.jp-volume-bar {
|
||||
top:37px;
|
||||
left:302px;
|
||||
}
|
||||
div.jp-audio div.jp-type-playlist div.jp-volume-bar {
|
||||
top:37px;
|
||||
left:324px;
|
||||
}
|
||||
div.jp-video div.jp-volume-bar {
|
||||
top:32px;
|
||||
}
|
||||
div.jp-video-270p div.jp-type-single div.jp-volume-bar {
|
||||
left:332px;
|
||||
}
|
||||
div.jp-video-270p div.jp-type-playlist div.jp-volume-bar {
|
||||
left:391px;
|
||||
}
|
||||
div.jp-video-360p div.jp-type-single div.jp-volume-bar {
|
||||
left:412px;
|
||||
}
|
||||
div.jp-video-360p div.jp-type-playlist div.jp-volume-bar {
|
||||
left:471px;
|
||||
}
|
||||
div.jp-volume-bar-value {
|
||||
background: url("../images/jplayer/jplayer.blue.monday.jpg") 0 -256px repeat-x;
|
||||
width:0px;
|
||||
height:5px;
|
||||
}
|
||||
div.jp-current-time,
|
||||
div.jp-duration {
|
||||
position: absolute;
|
||||
font-size:.64em;
|
||||
font-style:oblique;
|
||||
}
|
||||
div.jp-duration {
|
||||
text-align: right;
|
||||
}
|
||||
div.jp-audio div.jp-type-single div.jp-current-time,
|
||||
div.jp-audio div.jp-type-single div.jp-duration {
|
||||
top:49px;
|
||||
left:130px;
|
||||
width:122px;
|
||||
}
|
||||
div.jp-audio div.jp-type-playlist div.jp-current-time,
|
||||
div.jp-audio div.jp-type-playlist div.jp-duration {
|
||||
top:49px;
|
||||
left:164px;
|
||||
width:122px;
|
||||
}
|
||||
div.jp-video div.jp-current-time,
|
||||
div.jp-video div.jp-duration {
|
||||
top:10px;
|
||||
left:0px;
|
||||
width:98%;
|
||||
padding:0 1%;
|
||||
}
|
||||
div.jp-playlist {
|
||||
/* width:418px; */
|
||||
width:100%;
|
||||
background-color:#ccc;
|
||||
/* border:1px solid #009be3;*/
|
||||
border-top:none;
|
||||
}
|
||||
div.jp-playlist ul {
|
||||
list-style-type:none;
|
||||
margin:0;
|
||||
padding:0 20px;
|
||||
/* background-color:#ccc; */
|
||||
/* border:1px solid #009be3; */
|
||||
/* border-top:none; */
|
||||
/* width:378px; */
|
||||
font-size:.72em;
|
||||
}
|
||||
|
||||
|
||||
div.jp-type-single div.jp-playlist li {
|
||||
padding:5px 0 5px 20px;
|
||||
font-weight:bold;
|
||||
}
|
||||
div.jp-type-playlist div.jp-playlist li {
|
||||
padding:5px 0 4px 20px;
|
||||
border-bottom:1px solid #eee;
|
||||
}
|
||||
/*
|
||||
div.jp-video div.jp-playlist li {
|
||||
padding:5px 0 5px 20px;
|
||||
font-weight:bold;
|
||||
}
|
||||
*/
|
||||
div.jp-type-playlist div.jp-playlist li.jp-playlist-last {
|
||||
padding:5px 0 5px 20px;
|
||||
border-bottom:none;
|
||||
}
|
||||
div.jp-type-playlist div.jp-playlist li.jp-playlist-current {
|
||||
list-style-type:square;
|
||||
list-style-position:inside;
|
||||
padding-left:8px;
|
||||
}
|
||||
div.jp-type-playlist div.jp-playlist a {
|
||||
color: #666;
|
||||
text-decoration: none;
|
||||
}
|
||||
div.jp-type-playlist div.jp-playlist a:hover {
|
||||
color:#0d88c1;
|
||||
}
|
||||
div.jp-type-playlist div.jp-playlist a.jp-playlist-current {
|
||||
color:#0d88c1;
|
||||
}
|
||||
div.jp-type-playlist div.jp-playlist div.jp-free-media {
|
||||
display:inline;
|
||||
margin-left:20px;
|
||||
}
|
||||
|
||||
div.jp-video div.jp-video-play {
|
||||
background: transparent url("../images/jplayer/jplayer.blue.monday.video.play.png") no-repeat center;
|
||||
/* position: relative; */
|
||||
position: absolute;
|
||||
cursor:pointer;
|
||||
z-index:2;
|
||||
}
|
||||
div.jp-video div.jp-video-play:hover {
|
||||
background: transparent url("../images/jplayer/jplayer.blue.monday.video.play.hover.png") no-repeat center;
|
||||
}
|
||||
div.jp-video-270p div.jp-video-play {
|
||||
top:-270px;
|
||||
width:480px;
|
||||
height:270px;
|
||||
}
|
||||
div.jp-video-360p div.jp-video-play {
|
||||
top:-360px;
|
||||
width:640px;
|
||||
height:360px;
|
||||
}
|
||||
|
||||
div.jp-jplayer {
|
||||
width:0px;
|
||||
height:0px;
|
||||
}
|
||||
div.jp-video div.jp-jplayer {
|
||||
/* border:1px solid #009be3;*/
|
||||
border-bottom:none;
|
||||
z-index:1;
|
||||
}
|
||||
div.jp-video-270p div.jp-jplayer {
|
||||
width:480px;
|
||||
height:270px;
|
||||
}
|
||||
div.jp-video-360p div.jp-jplayer {
|
||||
width:640px;
|
||||
height:360px;
|
||||
}
|
||||
div.jp-jplayer {
|
||||
background-color: #000000;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
|
||||
# This model initially had no columns defined. If you add columns to the
|
||||
# model remove the '{}' from the fixture names and add the columns immediately
|
||||
# below each fixture, per the syntax in the comments below
|
||||
#
|
||||
one: {}
|
||||
# column: value
|
||||
#
|
||||
two: {}
|
||||
# column: value
|
|
@ -0,0 +1,11 @@
|
|||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
|
||||
# This model initially had no columns defined. If you add columns to the
|
||||
# model remove the '{}' from the fixture names and add the columns immediately
|
||||
# below each fixture, per the syntax in the comments below
|
||||
#
|
||||
one: {}
|
||||
# column: value
|
||||
#
|
||||
two: {}
|
||||
# column: value
|
|
@ -0,0 +1,8 @@
|
|||
require 'test_helper'
|
||||
|
||||
class TrackControllerTest < ActionController::TestCase
|
||||
# Replace this with your real tests.
|
||||
test "the truth" do
|
||||
assert true
|
||||
end
|
||||
end
|
|
@ -0,0 +1,8 @@
|
|||
require 'test_helper'
|
||||
|
||||
class AlbumPicTest < ActiveSupport::TestCase
|
||||
# Replace this with your real tests.
|
||||
test "the truth" do
|
||||
assert true
|
||||
end
|
||||
end
|
|
@ -0,0 +1,4 @@
|
|||
require 'test_helper'
|
||||
|
||||
class TrackHelperTest < ActionView::TestCase
|
||||
end
|
|
@ -0,0 +1,8 @@
|
|||
require 'test_helper'
|
||||
|
||||
class TrackDataTest < ActiveSupport::TestCase
|
||||
# Replace this with your real tests.
|
||||
test "the truth" do
|
||||
assert true
|
||||
end
|
||||
end
|
|
@ -1 +0,0 @@
|
|||
2408
|
Loading…
Reference in New Issue