mirror of https://github.com/calzoneman/sync.git
Start updating to new API
This commit is contained in:
parent
0bf80a375d
commit
4aa0e7a4ef
4
api.js
4
api.js
|
@ -131,18 +131,17 @@ module.exports = function (Server) {
|
|||
if(!pw && !session) {
|
||||
res.jsonp({
|
||||
success: false,
|
||||
error_code: "need_pw_or_session",
|
||||
error: "You must provide a password"
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
var row = Auth.login(name, pw, session);
|
||||
console.log(row);
|
||||
if(!row) {
|
||||
if(session && !pw) {
|
||||
res.jsonp({
|
||||
success: false,
|
||||
error_code: "invalid_session",
|
||||
error: "Session expired"
|
||||
});
|
||||
return;
|
||||
|
@ -151,7 +150,6 @@ module.exports = function (Server) {
|
|||
"invalid_password");
|
||||
res.jsonp({
|
||||
success: false,
|
||||
error_code: "invalid_password",
|
||||
error: "Provided username/password pair is invalid"
|
||||
});
|
||||
return;
|
||||
|
|
|
@ -11,17 +11,16 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||
|
||||
var uname = readCookie("cytube_uname") || "";
|
||||
var session = readCookie("cytube_session") || "";
|
||||
var api = WEB_URL + "/api/json/";
|
||||
var loggedin = false;
|
||||
|
||||
if(uname && session) {
|
||||
var loginstr = "name=" + encodeURIComponent(uname)
|
||||
+ "&session=" + session;
|
||||
var url = api + "login?" + loginstr + "&callback=?";
|
||||
$.getJSON(url, function(data) {
|
||||
if(data.success) {
|
||||
var data = {
|
||||
name: uname,
|
||||
session: session
|
||||
};
|
||||
$.post(WEB_URL + "/api/login?callback=?", data, function (data) {
|
||||
if(data.success)
|
||||
onLogin();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -57,7 +56,8 @@ $("#email").click(makeTabCallback("#email", "#changeemailpane"));
|
|||
$("#profile").click(makeTabCallback("#profile", "#profilepane"));
|
||||
$("#profile").click(function() {
|
||||
if(uname != "") {
|
||||
$.getJSON(api + "getprofile?name=" + encodeURIComponent(uname) + "&callback=?", function(data) {
|
||||
$.getJSON(WEB_URL+"/api/users/"+uname+"/profile?callback=?",
|
||||
function (data) {
|
||||
if(data.success) {
|
||||
$("#profiletext").val(data.profile_text);
|
||||
$("#profileimg").val(data.profile_image);
|
||||
|
@ -82,8 +82,10 @@ $("#channels").click(function () {
|
|||
return;
|
||||
}
|
||||
|
||||
$.getJSON(api + "listuserchannels?name=" + encodeURIComponent(uname) +
|
||||
"&session=" + session + "&callback=?", function(data) {
|
||||
var auth = "name=" + encodeURIComponent(uname) + "&session=" +
|
||||
encodeURIComponent(session);
|
||||
$.getJSON(WEB_URL+"/api/account/mychannels?"+auth+"&callback=?",
|
||||
function (data) {
|
||||
$("#channellist tbody").remove();
|
||||
data.channels.forEach(function (chan) {
|
||||
var tr = $("<tr/>").appendTo($("#channellist"));
|
||||
|
@ -134,12 +136,12 @@ $("#registerbtn").click(function() {
|
|||
}
|
||||
|
||||
// Input valid, try registering
|
||||
var url = api + "register?" + [
|
||||
"name=" + encodeURIComponent(name),
|
||||
"pw=" + encodeURIComponent(pw)
|
||||
].join("&") + "&callback=?";
|
||||
var data = {
|
||||
name: name,
|
||||
pw: pw
|
||||
};
|
||||
|
||||
$.getJSON(url, function(data) {
|
||||
$.pos(WEB_URL + "/api/register?callback=?", data, function (data) {
|
||||
if(data.success) {
|
||||
uname = name;
|
||||
session = data.session;
|
||||
|
@ -170,10 +172,11 @@ $("#loginbtn").click(function() {
|
|||
return;
|
||||
}
|
||||
uname = $("#loginusername").val();
|
||||
var loginstr = "name=" + encodeURIComponent(uname)
|
||||
+ "&pw=" + encodeURIComponent($("#loginpw").val());
|
||||
var url = api + "login?" + loginstr + "&callback=?";
|
||||
$.getJSON(url, function(data) {
|
||||
var data = {
|
||||
name: uname,
|
||||
pw: $("#loginpw").val()
|
||||
};
|
||||
$.getJSON(WEB_URL+"/api/login?callback=?", data, function(data) {
|
||||
if(data.success) {
|
||||
session = data.session;
|
||||
onLogin();
|
||||
|
@ -230,12 +233,13 @@ $("#cpwbtn").click(function() {
|
|||
}
|
||||
|
||||
// Input valid, try changing password
|
||||
var url = api + "changepass?" + [
|
||||
"name=" + encodeURIComponent(name),
|
||||
"oldpw=" + encodeURIComponent(oldpw),
|
||||
"newpw=" + encodeURIComponent(newpw)
|
||||
].join("&") + "&callback=?";
|
||||
$.getJSON(url, function(data) {
|
||||
var data = {
|
||||
name: name,
|
||||
oldpw: oldpw,
|
||||
newpw: newpw
|
||||
};
|
||||
$.post(WEB_URL + "/api/account/passwordchange?callback=?", data,
|
||||
function (data) {
|
||||
if(data.success) {
|
||||
$("<div/>").addClass("alert alert-success")
|
||||
.text("Password changed.")
|
||||
|
@ -266,7 +270,7 @@ $("#cebtn").click(function() {
|
|||
return;
|
||||
}
|
||||
|
||||
if(!email.match(/^[a-z0-9_\.]+@[a-z0-9_\.]+[a-z]+$/)) {
|
||||
if(!email.match(/^[\w_\.]+@[\w_\.]+[a-zA-Z]+$/)) {
|
||||
$("<div/>").addClass("alert alert-error")
|
||||
.text("Invalid email")
|
||||
.insertAfter($("#ceemail").parent().parent());
|
||||
|
@ -282,12 +286,13 @@ $("#cebtn").click(function() {
|
|||
return;
|
||||
}
|
||||
|
||||
var url = api + "setemail?" + [
|
||||
"name=" + encodeURIComponent(name),
|
||||
"pw=" + encodeURIComponent(pw),
|
||||
"email=" + encodeURIComponent(email)
|
||||
].join("&") + "&callback=?";
|
||||
$.getJSON(url, function(data) {
|
||||
var data = {
|
||||
name: name,
|
||||
pw: pw,
|
||||
email: email
|
||||
};
|
||||
$.post(WEB_URL + "/api/account/email?callback=?", data,
|
||||
function (data) {
|
||||
if(data.success) {
|
||||
$("<div/>").addClass("alert alert-success")
|
||||
.text("Email updated")
|
||||
|
@ -312,11 +317,12 @@ $("#rpbtn").click(function() {
|
|||
var name = $("#rpusername").val();
|
||||
var email = $("#rpemail").val();
|
||||
|
||||
var url = api + "resetpass?" + [
|
||||
"name=" + encodeURIComponent(name),
|
||||
"email=" + encodeURIComponent(email)
|
||||
].join("&") + "&callback=?";
|
||||
$.getJSON(url, function(data) {
|
||||
var data = {
|
||||
name: name,
|
||||
email: email
|
||||
};
|
||||
$.post(WEB_URL + "/api/account/passwordreset?callback=?", data,
|
||||
function (data) {
|
||||
$("#rpbtn").text("Send Reset");
|
||||
if(data.success) {
|
||||
$("<div/>").addClass("alert alert-success")
|
||||
|
@ -336,20 +342,16 @@ $("#profilesave").click(function() {
|
|||
$("#profilepane").find(".alert-error").remove();
|
||||
$("#profilepane").find(".alert-success").remove();
|
||||
var img = $("#profileimg").val();
|
||||
/*
|
||||
img = escape(img).replace(/\//g, "%2F")
|
||||
.replace(/&/g, "%26")
|
||||
.replace(/=/g, "%3D")
|
||||
.replace(/\?/g, "%3F");
|
||||
*/
|
||||
var url = api + "setprofile?" + [
|
||||
"name=" + encodeURIComponent(uname),
|
||||
"session=" + session,
|
||||
"profile_image=" + encodeURIComponent(img),
|
||||
"profile_text=" + encodeURIComponent($("#profiletext").val())
|
||||
].join("&") + "&callback=?";
|
||||
var text = $("#profiletext").val();
|
||||
var data = {
|
||||
name: uname,
|
||||
session: session,
|
||||
profile_image: img,
|
||||
profile_text: text
|
||||
};
|
||||
|
||||
$.getJSON(url, function(data) {
|
||||
$.post(WEB_URL+"/api/account/profile?callback=?", data,
|
||||
function (data) {
|
||||
if(data.success) {
|
||||
$("<div/>").addClass("alert alert-success")
|
||||
.text("Profile updated.")
|
||||
|
|
|
@ -1,200 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CyTube</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="A free, open source synchtube replacement">
|
||||
<meta name="author" content="Calvin 'calzoneman' Montgomery">
|
||||
|
||||
<link href="./assets/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="./assets/css/bootstrap-responsive.css" rel="stylesheet">
|
||||
<link href="./assets/css/ytsync.css" rel="stylesheet" id="defaultcss">
|
||||
<link href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" rel="stylesheet">
|
||||
<style>
|
||||
body {
|
||||
padding-top: 60px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<!-- begin navbar -->
|
||||
<div class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="navbar-inner">
|
||||
<div class="container">
|
||||
<a class="brand" href="index.html">CyTube</a>
|
||||
<ul class="nav">
|
||||
<li class="active"><a href="index.html">Home</a></li>
|
||||
<li><a href="help.html">Help</a></li>
|
||||
<li><a href="account.html">Account</a></li>
|
||||
<li><a href="javascript:void(0)" id="optlink">Options</a></li>
|
||||
</ul>
|
||||
<div class="navbar-form pull-right" id="loginform">
|
||||
<input type="text" id="guestname" placeholder="Name">
|
||||
<button class="btn" id="guestlogin">Guest Login</button>
|
||||
<button class="btn" id="login">Login/Register</button>
|
||||
</div>
|
||||
<div class="navbar-form pull-right" id="logoutform" style="display: none;">
|
||||
<span id="welcome"></span>
|
||||
<button class="btn" id="logout">Logout</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end navbar -->
|
||||
<!-- begin main page -->
|
||||
<div class="container" id="mainpage">
|
||||
<!-- top row (MOTD, drink count) -->
|
||||
<div class="row-fluid" id="toprow">
|
||||
<div class="well span12" id="motd">
|
||||
</div>
|
||||
<div class="span12" id="drinkbar">
|
||||
<h1 id="drinkcount"></h1>
|
||||
</div>
|
||||
</div>
|
||||
<!-- announcement area -->
|
||||
<div class="row-fluid" id="announcements">
|
||||
</div>
|
||||
<!-- main row -->
|
||||
<div class="row" id="main">
|
||||
<!-- chat container -->
|
||||
<div class="span5" id="chatwrap">
|
||||
<!-- user count -->
|
||||
<div id="usercountwrap" class="pointer">
|
||||
<i class="icon-chevron-up pull-left" id="userlisttoggle" title="Show/Hide Userlist"></i>
|
||||
<p id="usercount">Not connected</p>
|
||||
</div>
|
||||
<!-- userlist -->
|
||||
<div id="userlist">
|
||||
</div>
|
||||
<!-- message buffer -->
|
||||
<div id="messagebuffer">
|
||||
</div>
|
||||
<!-- chat input -->
|
||||
<input type="text" id="chatline" maxlength="240" class="span5">
|
||||
</div>
|
||||
<!-- video container -->
|
||||
<div class="span7" id="videowrap">
|
||||
<!-- current video display -->
|
||||
<p id="currenttitle">Nothing playing</p>
|
||||
<!-- video frame -->
|
||||
<div id="ytapiplayer">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- playlist row -->
|
||||
<div class="row" id="playlistrow">
|
||||
<!-- left pane - Library + user playlists -->
|
||||
<div class="span5" id="leftpane-outer">
|
||||
<div class="row-fluid" id="leftpane-inner">
|
||||
<!-- poll container -->
|
||||
<div class="span12" id="pollwrap">
|
||||
<!-- new poll controls -->
|
||||
<button class="btn btn-primary btn-small" id="newpollbtn">New Poll</button>
|
||||
</div>
|
||||
<!-- library search -->
|
||||
<div class="span12 pointer" id="librarytoggle">
|
||||
<i class="icon-chevron-down pull-left"></i>
|
||||
<p>Show Library</p>
|
||||
</div>
|
||||
<div id="librarywrap">
|
||||
<div class="span7" id="querywrap">
|
||||
<input type="text" id="library_query" class="input-block-level" placeholder="Search Query">
|
||||
</div>
|
||||
<div class="span5 btn-group" id="searchbtns">
|
||||
<button class="btn" id="library_search">Library</button>
|
||||
<button class="btn" id="youtube_search">YouTube</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- user playlists -->
|
||||
<div class="span12 pointer" id="userpltoggle">
|
||||
<i class="icon-chevron-down pull-left"></i>
|
||||
<p>Show Playlist Manager</p>
|
||||
</div>
|
||||
<div id="userplaylistwrap">
|
||||
<div class="span7">
|
||||
<input type="text" id="userpl_name" class="input-block-level" placeholder="Playlist Name">
|
||||
</div>
|
||||
<div class="span5">
|
||||
<button class="btn btn-block" id="userpl_save">Save Playlist</button>
|
||||
</div>
|
||||
<ul class="span12" id="userpl_list">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- right pane - channel playlist -->
|
||||
<div class="span7" id="rightpane-outer">
|
||||
<div class="row-fluid" id="rightpane-inner">
|
||||
<!-- account for left pane having the poll buffer -->
|
||||
<div class="span12" id="queue_align"></div>
|
||||
<!-- playlist controls -->
|
||||
<div class="span12 pointer" id="playlisttoggle">
|
||||
<i class="icon-chevron-down pull-left"></i>
|
||||
<p>Show Playlist Controls</p>
|
||||
</div>
|
||||
<div id="playlist_controls">
|
||||
<div class="span8">
|
||||
<input type="text" id="mediaurl" class="input-block-level" placeholder="Media URL">
|
||||
</div>
|
||||
<div class="span4 btn-group">
|
||||
<button class="btn" id="queue_next">Next</button>
|
||||
<button class="btn" id="queue_end">End</button>
|
||||
</div>
|
||||
<div id="extended_controls" class="span12">
|
||||
<button class="btn btn-danger btn-block" id="qlockbtn">Unlock Queue</button>
|
||||
<button class="btn btn-block" id="getplaylist">Get Playlist URLs</button>
|
||||
<button class="btn btn-block" id="clearplaylist">Clear Playlist</button>
|
||||
<button class="btn btn-block" id="shuffleplaylist">Shuffle Playlist</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- video queue -->
|
||||
<ul class="span12 videolist" id="queue">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="push"></div>
|
||||
<div id="sitefooter">
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<p class="muted">
|
||||
CyTube Software Copyright © 2013 Calvin Montgomery · Available for free on <a href="http://github.com/calzoneman/sync">GitHub</a> ·
|
||||
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=5Y7PUVVGVSEWG&lc=US&item_name=CyTube¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted">Donate</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="./assets/js/jquery.js"></script>
|
||||
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
|
||||
<!-- My Javascript -->
|
||||
<script src="./assets/js/data.js"></script>
|
||||
<script src="./assets/js/util.js"></script>
|
||||
<script src="./assets/js/ui.js"></script>
|
||||
<script src="./assets/js/callbacks.js"></script>
|
||||
<!--
|
||||
<script src="./assets/js/iourl.js"></script>
|
||||
<script src="./assets/js/notwebsocket.js"></script>
|
||||
<script src="./assets/js/media.js"></script>
|
||||
<script src="./assets/js/functions.js"></script>
|
||||
<script src="./assets/js/client.js"></script>
|
||||
<script src="./assets/js/callbacks.js"></script>
|
||||
-->
|
||||
<!-- APIs -->
|
||||
<!--
|
||||
<script src="http://api.dmcdn.net/all.js"></script>
|
||||
<script src="http://jwpsrv.com/library/QouFCLBMEeKC+CIACpYGxA.js"></script>
|
||||
<script src="./assets/js/sc.js"></script>
|
||||
<script src="./assets/js/froogaloop.min.js"></script>
|
||||
<script src="./assets/js/swf.js"></script>
|
||||
-->
|
||||
<!-- Third party -->
|
||||
<script src="./assets/js/bootstrap.js"></script>
|
||||
<script src="./assets/js/bootstrap-transition.js"></script>
|
||||
<script src="./assets/js/bootstrap-modal.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,55 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CyTube</title>
|
||||
<link href="assets/css/bootstrap.css" rel="stylesheet">
|
||||
<style type="text/css">
|
||||
#channeldata td, #channeldata th {
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table id="channeldata" class="table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Channel</th>
|
||||
<th>Connected</th>
|
||||
<th>Playing</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
<script src="assets/js/jquery.js" type="text/javascript"></script>
|
||||
<script src="assets/js/iourl.js" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
var p = document.location + "";
|
||||
var host = p.replace("http://", "");
|
||||
if(host.indexOf("/") != -1) {
|
||||
host = host.substring(0, host.indexOf("/"));
|
||||
}
|
||||
if(p.indexOf("?") != -1) {
|
||||
p = p.substring(p.indexOf("?")+1);
|
||||
}
|
||||
$.getJSON(IO_URL+"/api/json/channeldata?"+p+"&callback=?", function(data) {
|
||||
if(data.error) {
|
||||
return;
|
||||
}
|
||||
$("#channeldata").find("tbody").remove();
|
||||
for(var i = 0; i < data.length; i++) {
|
||||
var d = data[i];
|
||||
var tr = $("<tr/>").appendTo($("#channeldata"));
|
||||
var name = $("<td/>").appendTo(tr);
|
||||
$("<a/>").attr("href", host + "/r/" + d.name)
|
||||
.text(d.name)
|
||||
.appendTo(name);
|
||||
$("<td/>").text(d.usercount || 0).appendTo(tr);
|
||||
$("<td/>").text(d.title || "-").appendTo(tr);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -130,7 +130,8 @@
|
|||
return entry;
|
||||
}
|
||||
function refresh() {
|
||||
$.getJSON(WEB_URL+"/api/json/listloaded?filter=public&callback=?", function(data) {
|
||||
$.getJSON(WEB_URL+"/api/allchannels/public?callback=?",
|
||||
function(data) {
|
||||
$("#channeldata").find("tbody").remove();
|
||||
data.sort(function(a, b) {
|
||||
var x = a.usercount;
|
||||
|
|
|
@ -66,9 +66,11 @@
|
|||
window.addEventListener("message", respond, false);
|
||||
|
||||
$("#login").click(function() {
|
||||
var u = encodeURIComponent($("#username").val());
|
||||
var p = encodeURIComponent($("#pw").val());
|
||||
$.getJSON(WEB_URL+"/api/json/login?name="+u+"&pw="+p+"&callback=?", function(data) {
|
||||
var data = {
|
||||
name: $("#username").val(),
|
||||
pw: $("#pw").val()
|
||||
};
|
||||
$.post(WEB_URL+"/api/login", data, function (data) {
|
||||
data.uname = $("#username").val();
|
||||
source.postMessage("cytube-login:"+JSON.stringify(data), document.location);
|
||||
});
|
||||
|
|
|
@ -71,7 +71,8 @@
|
|||
hash = loc.substring(loc.indexOf("?") + 1);
|
||||
})();
|
||||
|
||||
var url = WEB_URL+"/api/json/recoverpw?hash="+hash+"&callback=?";
|
||||
var url = WEB_URL+"/api/account/passwordrecover?hash="+hash+
|
||||
"&callback=?";
|
||||
$.getJSON(url, function(data) {
|
||||
if(data.success) {
|
||||
$("<div/>").addClass("alert alert-success")
|
||||
|
|
Loading…
Reference in New Issue