diff --git a/api.js b/api.js index d58515aa..24860ef7 100644 --- a/api.js +++ b/api.js @@ -107,7 +107,7 @@ function handleChannelData(params, req, res) { var data = []; for(var j = 0; j < clist.length; j++) { var cname = clist[j]; - if(!cname.match(/^[a-zA-Z0-9]+$/)) { + if(!cname.match(/^[a-zA-Z0-9-_]+$/)) { continue; } var d = { diff --git a/www/assets/js/callbacks.js b/www/assets/js/callbacks.js index c422902f..57387109 100644 --- a/www/assets/js/callbacks.js +++ b/www/assets/js/callbacks.js @@ -60,7 +60,7 @@ Callbacks = { channelNotRegistered: function() { var div = $("
").addClass("alert alert-info").attr("id", "chregnotice") - .insertAfter($(".row")[0]); + .insertBefore($("#main")); $("").addClass("close pull-right").text("×") .appendTo(div) .click(function() { div.remove(); }); diff --git a/www/assets/js/functions.js b/www/assets/js/functions.js index b1438eb1..a17c17f9 100644 --- a/www/assets/js/functions.js +++ b/www/assets/js/functions.js @@ -537,7 +537,7 @@ function parseYTPlaylist(url) { } function parseTwitch(url) { - var m = url.match(/twitch\.tv\/([a-zA-Z0-9]+)/); + var m = url.match(/twitch\.tv\/([^#\?\/]+)/); if(m) { return m[1]; } @@ -545,7 +545,7 @@ function parseTwitch(url) { } function parseJustinTV(url) { - var m = url.match(/justin\.tv\/([a-zA-Z0-9]+)/); + var m = url.match(/justin\.tv\/([^#\?\/]+)/); if(m) { return m[1]; } @@ -553,7 +553,7 @@ function parseJustinTV(url) { } function parseLivestream(url) { - var m = url.match(/livestream\.com\/([a-zA-Z0-9]+)/); + var m = url.match(/livestream\.com\/([^#\?\/]+)/); if(m) { return m[1]; } @@ -561,7 +561,7 @@ function parseLivestream(url) { } function parseUstream(url) { - var m = url.match(/ustream\.tv\/([a-zA-Z0-9-]+)/); + var m = url.match(/ustream\.tv\/([^#\?\/]+)/); if(m) { return m[1]; }