Skip to content

Commit

Permalink
use regex for sites that don't split artist/title
Browse files Browse the repository at this point in the history
  • Loading branch information
untamed0 committed May 30, 2013
1 parent 7ad4f9f commit c25933c
Show file tree
Hide file tree
Showing 3 changed files with 116 additions and 21 deletions.
107 changes: 101 additions & 6 deletions content.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ $(document).ready(function()
{
if ($('.now_playing').length && $('#pause').is(':visible'))
{
var play = 'AH.FM - ' + $('.now_playing > div > .blank').text();
var play = $('.now_playing > div > .blank').text();
var matches = play.match('^(.+) - (.+) on AH.FM$');

if (last !== play)
{
Expand All @@ -49,7 +50,8 @@ $(document).ready(function()
nowPlaying(
{
nowPlaying : play,
duration : ((duration == null) ? '?' : duration[1])
trackName : matches[2],
artistName : matches[1]
});
}
};
Expand Down Expand Up @@ -87,6 +89,7 @@ $(document).ready(function()
if ($('#ctl-play').hasClass('pause'))
{
var play = $('.title').text();
var matches = play.match('^(.+) - (.+)$');

if (last !== play)
{
Expand All @@ -97,6 +100,9 @@ $(document).ready(function()
nowPlaying(
{
nowPlaying : play,
trackName : matches[2],
artistName : matches[1],
albumArt : $('#art').find('img').attr('src'),
duration : (remainingTime == '') ? $('.elapsed').text() : secToHms(hmsToSec(remainingTime.substr(1,remainingTime.length)) + hmsToSec($('.elapsed').text()))
});
}
Expand Down Expand Up @@ -264,6 +270,18 @@ $(document).ready(function()
if ($('#pause').is(':visible'))
{
var play = $('#currentTitle').text();
var parse;

if (parse = parseArtistTitle(play))
{
var artistName = parse[0];
var trackName = parse[1];
}
else
{
var artistName = '?';
var trackName = play;
}

if (last !== play)
{
Expand All @@ -272,6 +290,8 @@ $(document).ready(function()
nowPlaying(
{
nowPlaying : play,
trackName : trackName,
artistName : artistName,
duration : secToHms(hmsToSec($('#duration').text()))
});
}
Expand Down Expand Up @@ -367,14 +387,28 @@ $(document).ready(function()
setInterval(function()
{
var play = $('#now-playing-value').text();
var parse;

if (parse = parseArtistTitle(play))
{
var artistName = parse[0];
var trackName = parse[1];
}
else
{
var artistName = '?';
var trackName = play;
}

if (last !== play)
{
last = play;

nowPlaying(
{
nowPlaying : play
nowPlaying : play,
trackName : trackName,
artistName : artistName
});
}
}, 10000);
Expand Down Expand Up @@ -578,17 +612,32 @@ $(document).ready(function()
case 'tunein.com':
setInterval(function()
{
if ($('#tuner').hasClass('playing'))
if ($('.playbutton-cont').find('a').hasClass('playing'))
{
var play = $('.line1').find('.info').text() + ' - ' + $('.line2').find('.title').text();
var play = $('.line1').text();
var parse;

if (parse = parseArtistTitle(play))
{
var artistName = parse[1];
var trackName = parse[0] + ' [' + $('.line2').find('.title').text() + ']';
}
else
{
var artistName = $('.line2').find('.title').text();
var trackName = play;
}

if (last !== play)
{
last = play;

nowPlaying(
{
nowPlaying : play
nowPlaying : play,
trackName : trackName,
artistName : artistName,
albumArt : $('.image').find('img').attr('src')
});
}
};
Expand Down Expand Up @@ -686,12 +735,40 @@ $(document).ready(function()
{
var duration = $('body').text().match(/\"length_seconds\"\: (\d+)/)[1];
var play = $('meta[name=title]').attr('content');
var parse;

if ($('#eow-title').find('a').length)
{
var artistName = $('#eow-title').find('a').text();
var trackName = $.trim($('#eow-title').contents().filter(function(){ return this.nodeType == Node.TEXT_NODE; }).text());
var matches;

if (matches = trackName.match('^(-|\u2012|\u2013|\u2014|\u2015]|\|)'))
{
if (matches[0] != '')
{
trackName = $.trim(trackName.substring(1));
}
}
}
else if (parse = parseArtistTitle(play))
{
var artistName = parse[0];
var trackName = parse[1];
}
else
{
var artistName = '?';
var trackName = play;
}

last = play;

nowPlaying(
{
nowPlaying : play,
trackName : trackName,
artistName : artistName,
duration : secToHms(duration),
albumArt : $('link[itemprop="thumbnailUrl"]').attr('href'),
url : $('link[itemprop="url"]').attr('href')
Expand Down Expand Up @@ -775,6 +852,24 @@ function optionGet(callback)
});
}

function parseArtistTitle(input)
{
var match;

if (match = input.match(/(.+)[ ]?(-|\u[2012-2015]|\||:)[ ]?(.+)/))
{
return [ $.trim(match[1]) , $.trim(match[3]) ];
}
else if (match = input.match(/(.+)\|(.+)/))
{
return [ $.trim(match[1]) , $.trim(match[2]) ];
}
else
{
return false;
}
}

function hmsToSec(hms)
{
var p = hms.split(':');
Expand Down
Binary file added ico/magnifier.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 15 additions & 15 deletions options.html
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ <h1>Options</h1>
<div id="sites" class="main_content container">
<h1>Site Features</h1>
<p>This is a list of the supported sites, and their available features. <strong>This information is only for users who want more customisation, and is irrelevant for the majority of users.</strong> The symbols in brackets are the variables used for formatting the "Plain text" save as option.</p>
<p><strong>"Now Playing" (%s%), "Time Started" (%t%) and "URL" (%u%) variables are supported by all the below sites.</strong> For sites such as YouTube which doesn't give the artist and title information seperately, the "Now Playing" variable will be the title of the video. For sites that support artist and title, the "Now Playing" variable is made up of "Artist - Title".</p>
<p><strong>"Now Playing" (%s%), "Time Started" (%t%) and "URL" (%u%) variables are fully supported by every site.</strong> The magnifying glass icon denotes sites which don't display the artist and title information seperately, for these sites UNP will try to split the information into Artist and Title, but accuracy can't be guaranteed.</p>
<table id="sites_table" class="table table-bordered table-hover table-condensed">
<thead>
<tr>
Expand All @@ -180,8 +180,8 @@ <h1>Site Features</h1>
</tr>
<tr>
<td><a target="_blank" href="http://ah.fm">ah.fm</a></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="Yes" src="ico/tick.png"></td>
<td><img alt="Yes" src="ico/tick.png"></td>
<td><img alt="Yes" src="ico/tick.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
Expand All @@ -196,11 +196,11 @@ <h1>Site Features</h1>
</tr>
<tr>
<td><a target="_blank" href="http://di.fm">di.fm</a></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="Yes" src="ico/tick.png"></td>
<td><img alt="Yes" src="ico/tick.png"></td>
<td><img alt="Yes" src="ico/tick.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="Yes" src="ico/tick.png"></td>
</tr>
<tr>
<td><a target="_blank" href="http://grooveshark.com">grooveshark.com</a></td>
Expand Down Expand Up @@ -244,8 +244,8 @@ <h1>Site Features</h1>
</tr>
<tr>
<td><a target="_blank" href="http://nightbot.tv">nightbot.tv</a></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="Possibly" src="ico/magnifier.png"></td>
<td><img alt="Possibly" src="ico/magnifier.png"></td>
<td><img alt="Yes" src="ico/tick.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
Expand Down Expand Up @@ -276,8 +276,8 @@ <h1>Site Features</h1>
</tr>
<tr>
<td><a target="_blank" href="http://plug.dj">plug.dj</a></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="Possibly" src="ico/magnifier.png"></td>
<td><img alt="Possibly" src="ico/magnifier.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
Expand Down Expand Up @@ -332,11 +332,11 @@ <h1>Site Features</h1>
</tr>
<tr>
<td><a target="_blank" href="http://tunein.com">tunein.com</a></td>
<td><img alt="Possibly" src="ico/magnifier.png"></td>
<td><img alt="Possibly" src="ico/magnifier.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="Yes" src="ico/tick.png"></td>
</tr>
<tr>
<td><a target="_blank" href="http://turntable.fm">turntable.fm</a></td>
Expand Down Expand Up @@ -364,8 +364,8 @@ <h1>Site Features</h1>
</tr>
<tr>
<td><a target="_blank" href="http://youtube.com">youtube.com</a></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="Possibly" src="ico/magnifier.png"></td>
<td><img alt="Possibly" src="ico/magnifier.png"></td>
<td><img alt="Yes" src="ico/tick.png"></td>
<td><img alt="No" src="ico/cross.png"></td>
<td><img alt="Yes" src="ico/tick.png"></td>
Expand Down

0 comments on commit c25933c

Please sign in to comment.