Vkontakte session battle
This commit is contained in:
@@ -19,12 +19,12 @@ class Session
|
||||
@user
|
||||
|
||||
query: (url, params, callback) ->
|
||||
q_params = @vk_params
|
||||
$.each params, (key, val) ->
|
||||
q_params[key] = val
|
||||
q_params = $.extend {}, @vk_params, params
|
||||
$.post url, q_params, callback
|
||||
false
|
||||
|
||||
reloadSession: ->
|
||||
_session.query '/user/auth', {}, (ar) ->
|
||||
_session.setUser ar.user
|
||||
_session.setUser ar.user
|
||||
false
|
||||
false
|
||||
|
||||
@@ -13,7 +13,8 @@ class Vkontakte
|
||||
|
||||
window.vkAsyncInit = ->
|
||||
VK.init apiId: _vkontakte.getApiId()
|
||||
VK.Auth.getLoginStatus _vkontakte.authInfo
|
||||
VK.Auth.getLoginStatus (response) ->
|
||||
_vkontakte.authInfo(response)
|
||||
|
||||
|
||||
setTimeout ->
|
||||
@@ -42,6 +43,12 @@ class Vkontakte
|
||||
$('.header-container .hello').show()
|
||||
$('.header-container .hello .greating')
|
||||
.html 'Tēnā koe, <span class="settings">' +(if _session.getUser().name then _session.getUser().name else '%username%')+ '</span>!'
|
||||
|
||||
if response.session.expire?
|
||||
setTimeout ->
|
||||
_vkontakte.auth()
|
||||
false
|
||||
, response.session.expire * 1000 - new Date().getTime() + 1000
|
||||
else
|
||||
_session = new Session({})
|
||||
_session.setUser {}
|
||||
@@ -49,6 +56,13 @@ class Vkontakte
|
||||
$('.header-container .hello').hide()
|
||||
window._session = _session
|
||||
|
||||
auth: ->
|
||||
VK.Auth.login (response) ->
|
||||
_vkontakte.authInfo(response)
|
||||
false
|
||||
, 8
|
||||
false
|
||||
|
||||
loadTracksData: (artist, track, duration, callback) ->
|
||||
track_prepared = track.replace(/\(.*\)/i, '').split('/')[0];
|
||||
query = artist+' '+track_prepared;
|
||||
@@ -56,46 +70,45 @@ class Vkontakte
|
||||
callback url
|
||||
else
|
||||
VK.Api.call 'audio.search', q: query, (r) ->
|
||||
r.response.splice 0, 1
|
||||
url = _vkontakte.matchPerfectResult r.response, artist, track, duration
|
||||
_vkontakte.addQR query, url
|
||||
callback url
|
||||
|
||||
matchPerfectResult: (data, artist, track, duration) ->
|
||||
duration = duration.split ':'
|
||||
|
||||
duration = parseInt(duration[0], 10) * 60 + parseInt(duration[1], 10)
|
||||
best_score = 0;
|
||||
best_result = null;
|
||||
for item in data
|
||||
score = 0;
|
||||
item.artist = item.artist.trim();
|
||||
item.title = item.title.trim();
|
||||
if typeof item is 'object'
|
||||
score = 0;
|
||||
item.artist = item.artist.trim();
|
||||
item.title = item.title.trim();
|
||||
|
||||
if item.artist == artist
|
||||
score += 10
|
||||
else if item.artist.split(artist).length is 2
|
||||
score += 5
|
||||
else if item.title.split(artist).length is 2
|
||||
score += 4
|
||||
if item.artist == artist
|
||||
score += 10
|
||||
else if item.artist.split(artist).length is 2
|
||||
score += 5
|
||||
else if item.title.split(artist).length is 2
|
||||
score += 4
|
||||
|
||||
if item.title == track
|
||||
score += 10
|
||||
else if item.title.split(track).length is 2
|
||||
score += 5
|
||||
if item.title == track
|
||||
score += 10
|
||||
else if item.title.split(track).length is 2
|
||||
score += 5
|
||||
|
||||
if parseInt(item.duration, 10) == duration
|
||||
score += 15
|
||||
else
|
||||
delta = Math.abs parseInt(item.duration, 10) - duration
|
||||
score += (10 - delta) if delta < 10
|
||||
if parseInt(item.duration, 10) == duration
|
||||
score += 15
|
||||
else
|
||||
delta = Math.abs parseInt(item.duration, 10) - duration
|
||||
score += (10 - delta) if delta < 10
|
||||
|
||||
if score > best_score
|
||||
best_score = score
|
||||
best_result = item
|
||||
if score > best_score
|
||||
best_score = score
|
||||
best_result = item
|
||||
|
||||
if score is 35
|
||||
return best_result.url
|
||||
if score is 35
|
||||
return best_result.url
|
||||
|
||||
return best_result.url
|
||||
|
||||
@@ -108,12 +121,11 @@ class Vkontakte
|
||||
false
|
||||
|
||||
$('#vk_login').live 'click', ->
|
||||
VK.Auth.login (response) ->
|
||||
_vkontakte.authInfo(response)
|
||||
false
|
||||
, 8
|
||||
_vkontakte.auth()
|
||||
false
|
||||
$('#vk_logout').live 'click', ->
|
||||
_ajax.go '/search/';
|
||||
VK.Auth.logout _vkontakte.authInfo
|
||||
VK.Auth.logout (response) ->
|
||||
_vkontakte.authInfo(response)
|
||||
false
|
||||
false
|
||||
|
||||
Reference in New Issue
Block a user