Added schedule airtimes, fixed layout issues, locked down fore,st(guest disable), contrast fixes (css)
This commit is contained in:
parent
b0570f2c15
commit
55a9fcf465
20 changed files with 279 additions and 1238 deletions
|
|
@ -15,14 +15,15 @@ AnonymousCheck.prototype.onUserPreJoin = function (user, data, cb) {
|
|||
return cb("User disconnected", ChannelModule.DENY);
|
||||
}
|
||||
|
||||
if(anonymousBanned && user.isAnonymous()) {
|
||||
//if(anonymousBanned && user.isAnonymous()) {
|
||||
if(anonymousBanned && user.account.globalRank <= 0) {
|
||||
user.socket.on("disconnect", function () {
|
||||
if (!user.is(Flags.U_IN_CHANNEL)) {
|
||||
cb("User disconnected", ChannelModule.DENY);
|
||||
}
|
||||
});
|
||||
|
||||
user.socket.emit("errorMsg", { msg : "This channel has blocked anonymous users. Please provide a user name to join."});
|
||||
user.socket.emit("errorMsg", { msg : "Welcome to ourfore.st! Register to start chatting/streaming!"});
|
||||
user.waitFlag(Flags.U_LOGGED_IN, function () {
|
||||
cb(null, ChannelModule.PASSTHROUGH);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -37,7 +37,8 @@ const TYPE_SET_TEMP = {
|
|||
|
||||
const TYPE_MOVE_MEDIA = {
|
||||
from: "number",
|
||||
after: "string,number"
|
||||
after: "string,number",
|
||||
sTimes: [[],[]]
|
||||
};
|
||||
|
||||
const TYPE_ASSIGN_LEADER = {
|
||||
|
|
@ -90,6 +91,7 @@ function PlaylistModule(_channel) {
|
|||
this.meta = {
|
||||
count: 0,
|
||||
rawTime: 0,
|
||||
sTimes: [[],[]],
|
||||
time: util.formatTime(0)
|
||||
};
|
||||
this.current = null;
|
||||
|
|
@ -641,6 +643,10 @@ PlaylistModule.prototype.handleMoveMedia = function (user, data) {
|
|||
const self = this;
|
||||
self.channel.refCounter.ref("PlaylistModule::handleMoveMedia");
|
||||
self.semaphore.queue(function (lock) {
|
||||
var sTime = self.items.find(data.from).media.startTime;
|
||||
var sDur = self.items.find(data.from).media.seconds;
|
||||
var sIndx = self.items.getIndex(data.from);
|
||||
var tempST = 0;
|
||||
if (!self.items.remove(data.from)) {
|
||||
self.channel.refCounter.unref("PlaylistModule::handleMoveMedia");
|
||||
return lock.release();
|
||||
|
|
@ -657,12 +663,33 @@ PlaylistModule.prototype.handleMoveMedia = function (user, data) {
|
|||
return lock.release();
|
||||
}
|
||||
} else {
|
||||
|
||||
if (!self.items.insertAfter(from, data.after)) {
|
||||
self.channel.refCounter.unref("PlaylistModule::handleMoveMedia");
|
||||
return lock.release();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
self.items.forEach(function (item){//iterate items
|
||||
self.items.find(item.uid).media.startTime = tempST;//current item start time = tempST
|
||||
tempST += item.media.seconds;
|
||||
});
|
||||
|
||||
|
||||
var sTemp = [[],[]];
|
||||
|
||||
self.items.forEach(function (item){
|
||||
sTemp[0].push(item.uid);
|
||||
sTemp[1].push(item.media.startTime);
|
||||
|
||||
});
|
||||
|
||||
|
||||
self.channel.modules.playlist.meta.sTimes = sTemp;
|
||||
|
||||
data.sTimes = sTemp;
|
||||
|
||||
self.channel.broadcastAll("moveVideo", data);
|
||||
|
||||
self.channel.logger.log("[playlist] " + user.getName() + " moved " +
|
||||
|
|
@ -886,12 +913,30 @@ PlaylistModule.prototype._delete = function (uid) {
|
|||
return false;
|
||||
}
|
||||
var next = item.next || this.items.first;
|
||||
|
||||
var indx = this.items.getIndex(uid) - 1;
|
||||
|
||||
var success = self.items.remove(uid);
|
||||
|
||||
if (success) {
|
||||
self.meta.count--;
|
||||
self.meta.rawTime -= item.media.seconds;
|
||||
//set startTime for items after deleted item
|
||||
self.items.forEach(function (itm){//iterate items
|
||||
if(itm.media.startTime > item.media.startTime){//if cur item start time is moar than deleted items start time
|
||||
itm.media.startTime -= item.media.seconds;//subtract deleted item's duration from current item's start time
|
||||
}
|
||||
});
|
||||
|
||||
var sTemp = [[],[]];
|
||||
|
||||
self.items.forEach(function (item){
|
||||
sTemp[0].push(item.uid);
|
||||
sTemp[1].push(item.media.startTime);
|
||||
|
||||
});
|
||||
|
||||
self.meta.sTimes = sTemp;
|
||||
|
||||
self.meta.time = util.formatTime(self.meta.rawTime);
|
||||
self.channel.users.forEach(function (u) {
|
||||
if (perms.canSeePlaylist(u)) {
|
||||
|
|
@ -1007,19 +1052,37 @@ PlaylistModule.prototype._addItem = function (media, data, user, cb) {
|
|||
}
|
||||
|
||||
var success = function () {
|
||||
var packet = {
|
||||
item: item.pack(),
|
||||
after: item.prev ? item.prev.uid : "prepend"
|
||||
};
|
||||
//var packet = {
|
||||
// item: item.pack(),
|
||||
// after: item.prev ? item.prev.uid : "prepend"
|
||||
//};
|
||||
|
||||
self.meta.count++;
|
||||
media.startTime = self.meta.rawTime;
|
||||
self.meta.rawTime += media.seconds;
|
||||
self.meta.time = util.formatTime(self.meta.rawTime);
|
||||
|
||||
var sTemp = [[],[]];
|
||||
|
||||
self.items.forEach(function (item){
|
||||
sTemp[0].push(item.uid);
|
||||
sTemp[1].push(item.media.startTime);
|
||||
|
||||
});
|
||||
|
||||
self.meta.sTimes = sTemp;
|
||||
|
||||
var m = item.media;
|
||||
self.channel.logger.log("[playlist] " + (data.queueby || "(anonymous)") +
|
||||
" added " + m.title + " (" + m.type + ":" + m.id + ")");
|
||||
|
||||
var perms = self.channel.modules.permissions;
|
||||
|
||||
var packet = {
|
||||
item: item.pack(),
|
||||
after: item.prev ? item.prev.uid : "prepend"
|
||||
};
|
||||
|
||||
self.channel.users.forEach(function (u) {
|
||||
if (perms.canSeePlaylist(u)) {
|
||||
u.socket.emit("queue", packet);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ function Media(id, title, seconds, type, meta) {
|
|||
|
||||
this.seconds = seconds === "--:--" ? 0 : parseInt(seconds);
|
||||
this.duration = util.formatTime(seconds);
|
||||
this.startTime = 0;
|
||||
this.type = type;
|
||||
this.meta = meta;
|
||||
this.currentTime = 0;
|
||||
|
|
@ -30,6 +31,7 @@ Media.prototype = {
|
|||
title: this.title,
|
||||
seconds: this.seconds,
|
||||
duration: this.duration,
|
||||
startTime: this.startTime,
|
||||
type: this.type,
|
||||
meta: {
|
||||
restricted: this.meta.restricted,
|
||||
|
|
|
|||
|
|
@ -178,4 +178,28 @@ ULList.prototype.findAll = function(fn) {
|
|||
return result;
|
||||
};
|
||||
|
||||
|
||||
//RAINBOW WUZ ERE'
|
||||
|
||||
/* return index of item if it exists in the list by UID */
|
||||
ULList.prototype.getIndex = function(uid) {
|
||||
var i = 0;//index
|
||||
// Can't possibly find it in an empty list
|
||||
if(this.first === null)
|
||||
return false;
|
||||
|
||||
var item = this.first;
|
||||
var iter = this.first;
|
||||
while(iter !== null && item.uid != uid) {
|
||||
i++;//add index
|
||||
item = iter;
|
||||
iter = iter.next;
|
||||
}
|
||||
|
||||
if(item && item.uid == uid)
|
||||
return i;//return index
|
||||
return false;
|
||||
};
|
||||
|
||||
|
||||
module.exports = ULList;
|
||||
|
|
|
|||
|
|
@ -149,7 +149,8 @@ User.prototype.handleLogin = function handleLogin(data) {
|
|||
}
|
||||
|
||||
if (!pw) {
|
||||
this.guestLogin(name);
|
||||
//this.guestLogin(name);disable guest logins
|
||||
console.log("Guest login attempt! user: " + data.name + " ip: " + this.realip);
|
||||
} else {
|
||||
this.login(name, pw);
|
||||
}
|
||||
|
|
|
|||
7
src/web/routes/about.js
Normal file
7
src/web/routes/about.js
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
import { sendPug } from '../pug';
|
||||
|
||||
export default function initialize(app) {
|
||||
app.get('/about', (req, res) => {
|
||||
return sendPug(res, 'about');
|
||||
});
|
||||
}
|
||||
|
|
@ -200,6 +200,7 @@ module.exports = {
|
|||
require('./routes/contact')(app, webConfig);
|
||||
require('./auth').init(app, captchaConfig, captchaController);
|
||||
require('./account').init(app, globalMessageBus, emailConfig, emailController, captchaConfig);
|
||||
require('./routes/about')(app);
|
||||
require('./routes/account/delete-account')(
|
||||
app,
|
||||
csrf.verify,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue