diff --git a/src/app/auxServer.js b/src/app/auxServer.js index 2779dbf..66631f3 100644 --- a/src/app/auxServer.js +++ b/src/app/auxServer.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/activeChannel.js b/src/app/channel/activeChannel.js index 3ce642e..54e4fc5 100644 --- a/src/app/channel/activeChannel.js +++ b/src/app/channel/activeChannel.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/channelManager.js b/src/app/channel/channelManager.js index e9223f1..6478e66 100644 --- a/src/app/channel/channelManager.js +++ b/src/app/channel/channelManager.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/chat.js b/src/app/channel/chat.js index eb09071..c1b5d61 100644 --- a/src/app/channel/chat.js +++ b/src/app/channel/chat.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/chatBuffer.js b/src/app/channel/chatBuffer.js index 3a4e466..fd8370a 100644 --- a/src/app/channel/chatBuffer.js +++ b/src/app/channel/chatBuffer.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/chatHandler.js b/src/app/channel/chatHandler.js index 218f561..d337dba 100644 --- a/src/app/channel/chatHandler.js +++ b/src/app/channel/chatHandler.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/commandProcessor.js b/src/app/channel/commandProcessor.js index 213ec1c..0a157a3 100644 --- a/src/app/channel/commandProcessor.js +++ b/src/app/channel/commandProcessor.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/connectedUser.js b/src/app/channel/connectedUser.js index 7a19700..bec1409 100644 --- a/src/app/channel/connectedUser.js +++ b/src/app/channel/connectedUser.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/media/archivedMedia.js b/src/app/channel/media/archivedMedia.js index 11fe9ef..a9a9b52 100644 --- a/src/app/channel/media/archivedMedia.js +++ b/src/app/channel/media/archivedMedia.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/media/media.js b/src/app/channel/media/media.js index 609f1bf..8c61138 100644 --- a/src/app/channel/media/media.js +++ b/src/app/channel/media/media.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/media/playlistHandler.js b/src/app/channel/media/playlistHandler.js index 22d6c27..660827d 100644 --- a/src/app/channel/media/playlistHandler.js +++ b/src/app/channel/media/playlistHandler.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/media/queue.js b/src/app/channel/media/queue.js index 705fe82..597c062 100644 --- a/src/app/channel/media/queue.js +++ b/src/app/channel/media/queue.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -777,7 +777,7 @@ class queue{ if(media == null){ try{ //Attempt to delete matching item from archived media - const deletedArchive = await archivedMediaModel.deleteOne({channel: this.channel.name, uuid: new BSON.UUID(uuid)}); + const deletedArchive = await archivedMediaModel.deleteOne({channel: this.channel._id, uuid: new BSON.UUID(uuid)}); //if nothing got deleted if(deletedArchive == null || deletedArchive.deletedCount == 0){ @@ -1850,7 +1850,7 @@ class queue{ this.scheduleMedia([archivedMediaObject], null, chanDB, true, true, true); //Splice the fucker out of the archive - await archivedMediaModel.deleteOne({channel: this.channel.name, uuid: new BSON.UUID(chanDB.media.liveRemainder)}); + await archivedMediaModel.deleteOne({channel: this.channel._id, uuid: new BSON.UUID(chanDB.media.liveRemainder)}); } //Break out of the loop @@ -1880,7 +1880,7 @@ class queue{ */ async archiveMedia(media){ //Convert queuedMedia object to archivedMedia object - let archived = archivedMedia.fromQueuedMedia(media, this.channel.name); + let archived = archivedMedia.fromQueuedMedia(media, this.channel._id); //Save archivedMedia object to site-wide media archive (gross but performant) let archivedDoc = await archivedMediaModel.create(archived); } @@ -1893,14 +1893,14 @@ class queue{ if(startDate != null){ //Return archived media after start date return await archivedMediaModel.find({ - channel:this.channel.name, + channel:this.channel._id, //Prevent mongoose from attempting to sanatize and invalidate our query object, plus I think we can trust an epoch that came from server-side :) startTime: mongoose.trusted({$gt: startDate.getTime()}) }); //Otherwise }else{ //return all archived media - return await archivedMediaModel.find({channel:this.channel.name}); + return await archivedMediaModel.find({channel:this.channel._id}); } } } diff --git a/src/app/channel/media/queueBroadcastManager.js b/src/app/channel/media/queueBroadcastManager.js index 7e07d95..7f8e319 100644 --- a/src/app/channel/media/queueBroadcastManager.js +++ b/src/app/channel/media/queueBroadcastManager.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/media/queuedMedia.js b/src/app/channel/media/queuedMedia.js index 94acb41..09c5114 100644 --- a/src/app/channel/media/queuedMedia.js +++ b/src/app/channel/media/queuedMedia.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/channel/tokebot.js b/src/app/channel/tokebot.js index 52743eb..c57496c 100644 --- a/src/app/channel/tokebot.js +++ b/src/app/channel/tokebot.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/chatMetadata.js b/src/app/chatMetadata.js index 23320ac..92fc1ce 100644 --- a/src/app/chatMetadata.js +++ b/src/app/chatMetadata.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/chatPreprocessor.js b/src/app/chatPreprocessor.js index dc3d4bd..9314a57 100644 --- a/src/app/chatPreprocessor.js +++ b/src/app/chatPreprocessor.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/pm/message.js b/src/app/pm/message.js index a6604ff..280b420 100644 --- a/src/app/pm/message.js +++ b/src/app/pm/message.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/app/pm/pmHandler.js b/src/app/pm/pmHandler.js index 10c505e..9733252 100644 --- a/src/app/pm/pmHandler.js +++ b/src/app/pm/pmHandler.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/404Controller.js b/src/controllers/404Controller.js index 3e7a4e0..03f08aa 100644 --- a/src/controllers/404Controller.js +++ b/src/controllers/404Controller.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/aboutController.js b/src/controllers/aboutController.js index 249e931..11c6faf 100644 --- a/src/controllers/aboutController.js +++ b/src/controllers/aboutController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/adminPanelController.js b/src/controllers/adminPanelController.js index 6ecdaee..53c8f55 100644 --- a/src/controllers/adminPanelController.js +++ b/src/controllers/adminPanelController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/account/deleteController.js b/src/controllers/api/account/deleteController.js index 0552da7..7ab1c42 100644 --- a/src/controllers/api/account/deleteController.js +++ b/src/controllers/api/account/deleteController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/account/emailChangeRequestController.js b/src/controllers/api/account/emailChangeRequestController.js index 3108ab6..fb49851 100644 --- a/src/controllers/api/account/emailChangeRequestController.js +++ b/src/controllers/api/account/emailChangeRequestController.js @@ -1,6 +1,6 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/account/loginController.js b/src/controllers/api/account/loginController.js index be8685b..3b5d83d 100644 --- a/src/controllers/api/account/loginController.js +++ b/src/controllers/api/account/loginController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/account/logoutController.js b/src/controllers/api/account/logoutController.js index 0688f42..85ba7a5 100644 --- a/src/controllers/api/account/logoutController.js +++ b/src/controllers/api/account/logoutController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/account/migrationController.js b/src/controllers/api/account/migrationController.js index 61762ed..c720501 100644 --- a/src/controllers/api/account/migrationController.js +++ b/src/controllers/api/account/migrationController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/account/passwordResetController.js b/src/controllers/api/account/passwordResetController.js index c636af1..029eace 100644 --- a/src/controllers/api/account/passwordResetController.js +++ b/src/controllers/api/account/passwordResetController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/account/passwordResetRequestController.js b/src/controllers/api/account/passwordResetRequestController.js index 899cbe3..9528214 100644 --- a/src/controllers/api/account/passwordResetRequestController.js +++ b/src/controllers/api/account/passwordResetRequestController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/account/rankEnumController.js b/src/controllers/api/account/rankEnumController.js index 1fd84c4..50f2df6 100644 --- a/src/controllers/api/account/rankEnumController.js +++ b/src/controllers/api/account/rankEnumController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/account/registerController.js b/src/controllers/api/account/registerController.js index cbd7951..333aa41 100644 --- a/src/controllers/api/account/registerController.js +++ b/src/controllers/api/account/registerController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/account/updateController.js b/src/controllers/api/account/updateController.js index bb3fd3f..1710d7d 100644 --- a/src/controllers/api/account/updateController.js +++ b/src/controllers/api/account/updateController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/admin/banController.js b/src/controllers/api/admin/banController.js index 15a1ff0..99558eb 100644 --- a/src/controllers/api/admin/banController.js +++ b/src/controllers/api/admin/banController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/admin/changeRankController.js b/src/controllers/api/admin/changeRankController.js index 99bdd94..4726c91 100644 --- a/src/controllers/api/admin/changeRankController.js +++ b/src/controllers/api/admin/changeRankController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/admin/emoteController.js b/src/controllers/api/admin/emoteController.js index 36d69d0..d001b09 100644 --- a/src/controllers/api/admin/emoteController.js +++ b/src/controllers/api/admin/emoteController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/admin/listChannelsController.js b/src/controllers/api/admin/listChannelsController.js index f48d238..620cdc1 100644 --- a/src/controllers/api/admin/listChannelsController.js +++ b/src/controllers/api/admin/listChannelsController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/admin/listUsersController.js b/src/controllers/api/admin/listUsersController.js index 6e0671e..a30c421 100644 --- a/src/controllers/api/admin/listUsersController.js +++ b/src/controllers/api/admin/listUsersController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/admin/passwordResetController.js b/src/controllers/api/admin/passwordResetController.js index 4e87bfb..a7d209c 100644 --- a/src/controllers/api/admin/passwordResetController.js +++ b/src/controllers/api/admin/passwordResetController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/admin/permissionsController.js b/src/controllers/api/admin/permissionsController.js index 8337818..7a6dd2e 100644 --- a/src/controllers/api/admin/permissionsController.js +++ b/src/controllers/api/admin/permissionsController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/admin/tokeCommandController.js b/src/controllers/api/admin/tokeCommandController.js index 9147689..bd92ba0 100644 --- a/src/controllers/api/admin/tokeCommandController.js +++ b/src/controllers/api/admin/tokeCommandController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/channel/banController.js b/src/controllers/api/channel/banController.js index 119b062..71edb0c 100644 --- a/src/controllers/api/channel/banController.js +++ b/src/controllers/api/channel/banController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/channel/deleteController.js b/src/controllers/api/channel/deleteController.js index 8a18ae2..6de6d39 100644 --- a/src/controllers/api/channel/deleteController.js +++ b/src/controllers/api/channel/deleteController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/channel/descriptionController.js b/src/controllers/api/channel/descriptionController.js index 9f30560..aa110fb 100644 --- a/src/controllers/api/channel/descriptionController.js +++ b/src/controllers/api/channel/descriptionController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/channel/emoteController.js b/src/controllers/api/channel/emoteController.js index c93fbc3..6988f91 100644 --- a/src/controllers/api/channel/emoteController.js +++ b/src/controllers/api/channel/emoteController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/channel/listController.js b/src/controllers/api/channel/listController.js index 6890834..378df55 100644 --- a/src/controllers/api/channel/listController.js +++ b/src/controllers/api/channel/listController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/channel/permissionsController.js b/src/controllers/api/channel/permissionsController.js index cb05585..ca1e7ea 100644 --- a/src/controllers/api/channel/permissionsController.js +++ b/src/controllers/api/channel/permissionsController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/channel/rankController.js b/src/controllers/api/channel/rankController.js index 0f43685..ca87345 100644 --- a/src/controllers/api/channel/rankController.js +++ b/src/controllers/api/channel/rankController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/channel/registerController.js b/src/controllers/api/channel/registerController.js index 921b3ec..c883292 100644 --- a/src/controllers/api/channel/registerController.js +++ b/src/controllers/api/channel/registerController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/channel/settingsController.js b/src/controllers/api/channel/settingsController.js index 9c719c8..953a8ed 100644 --- a/src/controllers/api/channel/settingsController.js +++ b/src/controllers/api/channel/settingsController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/channel/thumbnailController.js b/src/controllers/api/channel/thumbnailController.js index bfb66a3..f29ecd0 100644 --- a/src/controllers/api/channel/thumbnailController.js +++ b/src/controllers/api/channel/thumbnailController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/channel/tokeCommandController.js b/src/controllers/api/channel/tokeCommandController.js index 498428a..ebc1b9c 100644 --- a/src/controllers/api/channel/tokeCommandController.js +++ b/src/controllers/api/channel/tokeCommandController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/api/refreshCSRFTokenController.js b/src/controllers/api/refreshCSRFTokenController.js index 3f16a83..15e9dba 100644 --- a/src/controllers/api/refreshCSRFTokenController.js +++ b/src/controllers/api/refreshCSRFTokenController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/channelController.js b/src/controllers/channelController.js index fef37a7..1367a47 100644 --- a/src/controllers/channelController.js +++ b/src/controllers/channelController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/channelSettingsController.js b/src/controllers/channelSettingsController.js index 3559503..08503ca 100644 --- a/src/controllers/channelSettingsController.js +++ b/src/controllers/channelSettingsController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/emailChangeController.js b/src/controllers/emailChangeController.js index 6b0b99d..3085410 100644 --- a/src/controllers/emailChangeController.js +++ b/src/controllers/emailChangeController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/hrtController.js b/src/controllers/hrtController.js index 7b1b920..6e4cbf4 100644 --- a/src/controllers/hrtController.js +++ b/src/controllers/hrtController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/indexController.js b/src/controllers/indexController.js index a06cfec..3e30983 100644 --- a/src/controllers/indexController.js +++ b/src/controllers/indexController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/loginController.js b/src/controllers/loginController.js index ffa5fc8..58fd64a 100644 --- a/src/controllers/loginController.js +++ b/src/controllers/loginController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/migrateController.js b/src/controllers/migrateController.js index a46d3b2..d069956 100644 --- a/src/controllers/migrateController.js +++ b/src/controllers/migrateController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/newChannelController.js b/src/controllers/newChannelController.js index 233c99a..73101b0 100644 --- a/src/controllers/newChannelController.js +++ b/src/controllers/newChannelController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/panel/emoteController.js b/src/controllers/panel/emoteController.js index 4b1bdae..bca787d 100644 --- a/src/controllers/panel/emoteController.js +++ b/src/controllers/panel/emoteController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/panel/placeholderController.js b/src/controllers/panel/placeholderController.js index a879272..3da03a3 100644 --- a/src/controllers/panel/placeholderController.js +++ b/src/controllers/panel/placeholderController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/panel/pmController.js b/src/controllers/panel/pmController.js index 7b46625..14524c6 100644 --- a/src/controllers/panel/pmController.js +++ b/src/controllers/panel/pmController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/panel/popoutContainerController.js b/src/controllers/panel/popoutContainerController.js index 619cf18..8321050 100644 --- a/src/controllers/panel/popoutContainerController.js +++ b/src/controllers/panel/popoutContainerController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/panel/profileController.js b/src/controllers/panel/profileController.js index f24d1dc..4b9e01b 100644 --- a/src/controllers/panel/profileController.js +++ b/src/controllers/panel/profileController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/panel/queueController.js b/src/controllers/panel/queueController.js index 295ff4c..b8307e8 100644 --- a/src/controllers/panel/queueController.js +++ b/src/controllers/panel/queueController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/panel/settingsController.js b/src/controllers/panel/settingsController.js index 2048f1d..7523906 100644 --- a/src/controllers/panel/settingsController.js +++ b/src/controllers/panel/settingsController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/passwordResetController.js b/src/controllers/passwordResetController.js index 5fd392c..2aa81f4 100644 --- a/src/controllers/passwordResetController.js +++ b/src/controllers/passwordResetController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/profileController.js b/src/controllers/profileController.js index df5b9c2..e35f195 100644 --- a/src/controllers/profileController.js +++ b/src/controllers/profileController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/registerController.js b/src/controllers/registerController.js index 9f2eb14..f9b9d67 100644 --- a/src/controllers/registerController.js +++ b/src/controllers/registerController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/tooltip/altListController.js b/src/controllers/tooltip/altListController.js index d470114..231b9fc 100644 --- a/src/controllers/tooltip/altListController.js +++ b/src/controllers/tooltip/altListController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/controllers/tooltip/profileController.js b/src/controllers/tooltip/profileController.js index e4b4a0c..6d766f3 100644 --- a/src/controllers/tooltip/profileController.js +++ b/src/controllers/tooltip/profileController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/aboutRouter.js b/src/routers/aboutRouter.js index 8739880..574b5c5 100644 --- a/src/routers/aboutRouter.js +++ b/src/routers/aboutRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/adminPanelRouter.js b/src/routers/adminPanelRouter.js index 129b403..79d0d06 100644 --- a/src/routers/adminPanelRouter.js +++ b/src/routers/adminPanelRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/api/accountRouter.js b/src/routers/api/accountRouter.js index 5975453..a846d6e 100644 --- a/src/routers/api/accountRouter.js +++ b/src/routers/api/accountRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/api/adminRouter.js b/src/routers/api/adminRouter.js index 71a7aa4..20f86ff 100644 --- a/src/routers/api/adminRouter.js +++ b/src/routers/api/adminRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/api/channelRouter.js b/src/routers/api/channelRouter.js index 9db0eff..0e1a1ed 100644 --- a/src/routers/api/channelRouter.js +++ b/src/routers/api/channelRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/apiRouter.js b/src/routers/apiRouter.js index 8e7be47..67bf5bb 100644 --- a/src/routers/apiRouter.js +++ b/src/routers/apiRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/channelRouter.js b/src/routers/channelRouter.js index fb32167..f699876 100644 --- a/src/routers/channelRouter.js +++ b/src/routers/channelRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/emailChangeController.js b/src/routers/emailChangeController.js index 7177bfd..4b94640 100644 --- a/src/routers/emailChangeController.js +++ b/src/routers/emailChangeController.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/hrtRouter.js b/src/routers/hrtRouter.js index bcf314b..5fb1aef 100644 --- a/src/routers/hrtRouter.js +++ b/src/routers/hrtRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/indexRouter.js b/src/routers/indexRouter.js index 92135dc..23657c3 100644 --- a/src/routers/indexRouter.js +++ b/src/routers/indexRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/loginRouter.js b/src/routers/loginRouter.js index 4d73f74..3a6c4b8 100644 --- a/src/routers/loginRouter.js +++ b/src/routers/loginRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/migrateRouter.js b/src/routers/migrateRouter.js index 8ee67be..cc5892c 100644 --- a/src/routers/migrateRouter.js +++ b/src/routers/migrateRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/newChannelRouter.js b/src/routers/newChannelRouter.js index e77808b..ccf1c84 100644 --- a/src/routers/newChannelRouter.js +++ b/src/routers/newChannelRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/panelRouter.js b/src/routers/panelRouter.js index 59888c1..96af625 100644 --- a/src/routers/panelRouter.js +++ b/src/routers/panelRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/passwordResetRouter.js b/src/routers/passwordResetRouter.js index a9fa360..34ac1da 100644 --- a/src/routers/passwordResetRouter.js +++ b/src/routers/passwordResetRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/profileRouter.js b/src/routers/profileRouter.js index 48a5c86..646a3c4 100644 --- a/src/routers/profileRouter.js +++ b/src/routers/profileRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/registerRouter.js b/src/routers/registerRouter.js index 72a9ebb..7ff5e91 100644 --- a/src/routers/registerRouter.js +++ b/src/routers/registerRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/routers/tooltipRouter.js b/src/routers/tooltipRouter.js index e1e925e..a9ec9cd 100644 --- a/src/routers/tooltipRouter.js +++ b/src/routers/tooltipRouter.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/channel/channelBanSchema.js b/src/schemas/channel/channelBanSchema.js index a14b2aa..f5eabff 100644 --- a/src/schemas/channel/channelBanSchema.js +++ b/src/schemas/channel/channelBanSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/channel/channelPermissionSchema.js b/src/schemas/channel/channelPermissionSchema.js index 1916efd..268820b 100644 --- a/src/schemas/channel/channelPermissionSchema.js +++ b/src/schemas/channel/channelPermissionSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/channel/channelSchema.js b/src/schemas/channel/channelSchema.js index 22fa78e..b6df0b1 100644 --- a/src/schemas/channel/channelSchema.js +++ b/src/schemas/channel/channelSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/channel/chatSchema.js b/src/schemas/channel/chatSchema.js index c0d81b0..abeb9ab 100644 --- a/src/schemas/channel/chatSchema.js +++ b/src/schemas/channel/chatSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/channel/media/archivedMediaSchema.js b/src/schemas/channel/media/archivedMediaSchema.js index 4b58169..b59a137 100644 --- a/src/schemas/channel/media/archivedMediaSchema.js +++ b/src/schemas/channel/media/archivedMediaSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -26,8 +26,9 @@ const archivedMedia = require('../../../app/channel/media/archivedMedia'); */ const archivedProperties = new mongoose.Schema({ channel: { - type: mongoose.SchemaTypes.String, - required: true, + type: mongoose.SchemaTypes.ObjectID, + ref: "channel", + required: true }, startTime: { type: mongoose.SchemaTypes.Number, diff --git a/src/schemas/channel/media/mediaSchema.js b/src/schemas/channel/media/mediaSchema.js index 4b5608f..f4a607b 100644 --- a/src/schemas/channel/media/mediaSchema.js +++ b/src/schemas/channel/media/mediaSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/channel/media/playlist/channelPlaylistSchema.js b/src/schemas/channel/media/playlist/channelPlaylistSchema.js index 08ad081..10af127 100644 --- a/src/schemas/channel/media/playlist/channelPlaylistSchema.js +++ b/src/schemas/channel/media/playlist/channelPlaylistSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/channel/media/playlist/playlistMediaSchema.js b/src/schemas/channel/media/playlist/playlistMediaSchema.js index 7cab31b..ec04182 100644 --- a/src/schemas/channel/media/playlist/playlistMediaSchema.js +++ b/src/schemas/channel/media/playlist/playlistMediaSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/channel/media/playlist/playlistSchema.js b/src/schemas/channel/media/playlist/playlistSchema.js index c3d58bd..1cdcded 100644 --- a/src/schemas/channel/media/playlist/playlistSchema.js +++ b/src/schemas/channel/media/playlist/playlistSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/channel/media/playlist/userPlaylistSchema.js b/src/schemas/channel/media/playlist/userPlaylistSchema.js index d47fab1..3e43ed8 100644 --- a/src/schemas/channel/media/playlist/userPlaylistSchema.js +++ b/src/schemas/channel/media/playlist/userPlaylistSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/channel/media/queuedMediaSchema.js b/src/schemas/channel/media/queuedMediaSchema.js index b75e2d9..cf4eca9 100644 --- a/src/schemas/channel/media/queuedMediaSchema.js +++ b/src/schemas/channel/media/queuedMediaSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/emoteSchema.js b/src/schemas/emoteSchema.js index 8a35dc5..021d211 100644 --- a/src/schemas/emoteSchema.js +++ b/src/schemas/emoteSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/flairSchema.js b/src/schemas/flairSchema.js index e0b7956..e9b8748 100644 --- a/src/schemas/flairSchema.js +++ b/src/schemas/flairSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/permissionSchema.js b/src/schemas/permissionSchema.js index 322e8e2..b46d38c 100644 --- a/src/schemas/permissionSchema.js +++ b/src/schemas/permissionSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/statSchema.js b/src/schemas/statSchema.js index fd406d5..cdcd902 100644 --- a/src/schemas/statSchema.js +++ b/src/schemas/statSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -70,14 +70,6 @@ statSchema.statics.getStats = async function(){ var stats = await this.findOne({}); if(stats){ - //If the current listed version doesnt match current running version - if(stats.version != package.version){ - //Update stat version - stats.version = package.version; - //Save stat document - await stats.save(); - } - //If we found something then the statistics document exist and this is it, //So long as no one else has fucked with the database it should be the only one. (is this forshadowing for a future bug?) return stats; diff --git a/src/schemas/tokebot/tokeCommandSchema.js b/src/schemas/tokebot/tokeCommandSchema.js index 635f487..3694afa 100644 --- a/src/schemas/tokebot/tokeCommandSchema.js +++ b/src/schemas/tokebot/tokeCommandSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -120,7 +120,7 @@ tokeCommandSchema.statics.loadDefaults = async function(){ if(toke != null){ loggerUtils.dumpError(err); }else{ - loggerUtils.consoleWarn("Error, null toke!"); + loggerUtils.consoleShout("Error, null toke!"); } } } diff --git a/src/schemas/tokebot/tokeSchema.js b/src/schemas/tokebot/tokeSchema.js index 7b86913..cc9d487 100644 --- a/src/schemas/tokebot/tokeSchema.js +++ b/src/schemas/tokebot/tokeSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/user/emailChangeSchema.js b/src/schemas/user/emailChangeSchema.js index 5e839ba..8ba5dbf 100644 --- a/src/schemas/user/emailChangeSchema.js +++ b/src/schemas/user/emailChangeSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/user/migrationSchema.js b/src/schemas/user/migrationSchema.js index 4e61ce0..9092bf8 100644 --- a/src/schemas/user/migrationSchema.js +++ b/src/schemas/user/migrationSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -105,7 +105,7 @@ migrationSchema.statics.ingestLegacyDump = async function(){ //If we caught an error (most likely it's missing) }catch(err){ - loggerUtils.consoleWarn("No migration files detected! Pleas provide legacy migration files or disable migration from config.json!"); + loggerUtils.consoleShout("No migration files detected! Pleas provide legacy migration files or disable migration from config.json!"); //BAIL! return; } @@ -151,7 +151,7 @@ migrationSchema.statics.ingestLegacyDump = async function(){ //Pass toke logs over to the stat model for further ingestion await tokeModel.ingestLegacyTokes(tokeLogs); - loggerUtils.consoleWarn(`Legacy Server Migration Completed at: ${new Date().toLocaleString()}`); + loggerUtils.consoleShout(`Legacy Server Migration Completed at: ${new Date().toLocaleString()}`); }catch(err){ return loggerUtils.localExceptionHandler(err); } @@ -174,8 +174,8 @@ migrationSchema.statics.ingestLegacyUser = async function(rawProfile){ //If we have an invalid line if(profileMatches <= 0){ - loggerUtils.consoleWarn('Bad profile detected in legacy dump:'); - loggerUtils.consoleWarn(rawProfile); + loggerUtils.consoleShout('Bad profile detected in legacy dump:'); + loggerUtils.consoleShout(rawProfile); //BAIL! return; } @@ -199,8 +199,8 @@ migrationSchema.statics.ingestLegacyUser = async function(rawProfile){ //If profile array is the wrong length if(profileArray.length != 10){ - loggerUtils.consoleWarn('Bad profile detected in legacy dump:'); - loggerUtils.consoleWarn(profileArray); + loggerUtils.consoleShout('Bad profile detected in legacy dump:'); + loggerUtils.consoleShout(profileArray); //BAIL! return; } @@ -212,7 +212,7 @@ migrationSchema.statics.ingestLegacyUser = async function(rawProfile){ //If we found the user in the database if(foundMigration != null || foundUser != null){ //Scream - loggerUtils.consoleWarn(`Found legacy user ${profileArray[1]} in database, skipping migration!`); + loggerUtils.consoleShout(`Found legacy user ${profileArray[1]} in database, skipping migration!`); //BAIL! return; } diff --git a/src/schemas/user/passwordResetSchema.js b/src/schemas/user/passwordResetSchema.js index 9391bee..5703f77 100644 --- a/src/schemas/user/passwordResetSchema.js +++ b/src/schemas/user/passwordResetSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/user/rememberMeSchema.js b/src/schemas/user/rememberMeSchema.js index be162fd..2dd0a16 100644 --- a/src/schemas/user/rememberMeSchema.js +++ b/src/schemas/user/rememberMeSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/user/userBanSchema.js b/src/schemas/user/userBanSchema.js index 0fd352c..5fcc291 100644 --- a/src/schemas/user/userBanSchema.js +++ b/src/schemas/user/userBanSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/schemas/user/userSchema.js b/src/schemas/user/userSchema.js index 7e43e92..f013a07 100644 --- a/src/schemas/user/userSchema.js +++ b/src/schemas/user/userSchema.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/server.js b/src/server.js index 228d555..8e78e99 100644 --- a/src/server.js +++ b/src/server.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -40,6 +40,7 @@ const configCheck = require('./utils/configCheck'); const scheduler = require('./utils/scheduler'); const {errorMiddleware} = require('./utils/loggerUtils'); const sessionUtils = require('./utils/sessionUtils'); +const upgradeUtils = require('./utils/upgradeUtils'); //Validator const accountValidator = require('./validators/accountValidator'); //DB Model @@ -231,6 +232,9 @@ async function asyncKickStart(){ //Load default emotes await emoteModel.loadDefaults(); + //Check for and handle any server upgrades + await upgradeUtils.upgradeCheck(); + //Kick off scheduled-jobs scheduler.kickoff(); diff --git a/src/utils/altchaUtils.js b/src/utils/altchaUtils.js index 68ed7e1..a61c027 100644 --- a/src/utils/altchaUtils.js +++ b/src/utils/altchaUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/configCheck.js b/src/utils/configCheck.js index 411c8b8..d45e1c8 100644 --- a/src/utils/configCheck.js +++ b/src/utils/configCheck.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -31,52 +31,52 @@ module.exports.securityCheck = function(){ //Check Protocol if(config.protocol.toLowerCase() != 'https'){ //If it's insecure then warn the admin - loggerUtil.consoleWarn("Starting in HTTP mode. This server should be used for development purposes only!"); + loggerUtil.consoleShout("Starting in HTTP mode. This server should be used for development purposes only!"); } //Check mail protocol if(!config.mail.secure){ //If it's insecure then warn the admin - loggerUtil.consoleWarn("Mail transport security disabled! This server should be used for development purposes only!"); + loggerUtil.consoleShout("Mail transport security disabled! This server should be used for development purposes only!"); } //check password pepper if(!validator.isStrongPassword(config.secrets.passwordSecret) || config.secrets.passwordSecret == "CHANGE_ME"){ - loggerUtil.consoleWarn("Insecure Password Secret! Change Password Secret!"); + loggerUtil.consoleShout("Insecure Password Secret! Change Password Secret!"); } //check RememberMe pepper if(!validator.isStrongPassword(config.secrets.rememberMeSecret) || config.secrets.rememberMeSecret == "CHANGE_ME"){ - loggerUtil.consoleWarn("Insecure RememberMe Secret! Change RememberMe Secret!"); + loggerUtil.consoleShout("Insecure RememberMe Secret! Change RememberMe Secret!"); } //check session secret if(!validator.isStrongPassword(config.secrets.sessionSecret) || config.secrets.sessionSecret == "CHANGE_ME"){ - loggerUtil.consoleWarn("Insecure Session Secret! Change Session Secret!"); + loggerUtil.consoleShout("Insecure Session Secret! Change Session Secret!"); } //check altcha secret if(!validator.isStrongPassword(config.secrets.altchaSecret) || config.secrets.altchaSecret == "CHANGE_ME"){ - loggerUtil.consoleWarn("Insecure Altcha Secret! Change Altcha Secret!"); + loggerUtil.consoleShout("Insecure Altcha Secret! Change Altcha Secret!"); } //check ipHash secret if(!validator.isStrongPassword(config.secrets.ipSecret) || config.secrets.ipSecret == "CHANGE_ME"){ - loggerUtil.consoleWarn("Insecure IP Hashing Secret! Change IP Hashing Secret!"); + loggerUtil.consoleShout("Insecure IP Hashing Secret! Change IP Hashing Secret!"); } //check DB pass if(!validator.isStrongPassword(config.db.pass) || config.db.pass == "CHANGE_ME" || config.db.pass == config.db.user){ - loggerUtil.consoleWarn("Insecure Database Password! Change Database password!"); + loggerUtil.consoleShout("Insecure Database Password! Change Database password!"); } //check email pass if(!validator.isStrongPassword(config.mail.pass) || config.mail.pass == "CHANGE_ME"){ - loggerUtil.consoleWarn("Insecure Email Password! Change Email password!"); + loggerUtil.consoleShout("Insecure Email Password! Change Email password!"); } //check debug mode if(config.debug){ - loggerUtil.consoleWarn("Debug mode enabled! Understand the risks and security implications before enabling on production servers!"); + loggerUtil.consoleShout("Debug mode enabled! Understand the risks and security implications before enabling on production servers!"); } } \ No newline at end of file diff --git a/src/utils/csrfUtils.js b/src/utils/csrfUtils.js index 457e48b..e121716 100644 --- a/src/utils/csrfUtils.js +++ b/src/utils/csrfUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/hashUtils.js b/src/utils/hashUtils.js index 47352fb..6805b0a 100644 --- a/src/utils/hashUtils.js +++ b/src/utils/hashUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/linkUtils.js b/src/utils/linkUtils.js index e7149cd..5649c06 100644 --- a/src/utils/linkUtils.js +++ b/src/utils/linkUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/loggerUtils.js b/src/utils/loggerUtils.js index 6017a9b..1835e58 100644 --- a/src/utils/loggerUtils.js +++ b/src/utils/loggerUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -142,12 +142,20 @@ module.exports.socketCriticalExceptionHandler = function(socket, err){ return socket.disconnect(); } +/** + * Shouts into the server console + * @param {String} string - String to shout into to the console + */ +module.exports.consoleShout = function(string){ + console.warn('\x1b[31m\x1b[4m%s\x1b[0m',string); +} + /** * Prints warning text to server console * @param {String} string - String to print to console */ module.exports.consoleWarn = function(string){ - console.warn('\x1b[31m\x1b[4m%s\x1b[0m',string); + console.warn('\x1b[33m%s\x1b[0m',string); } /** @@ -208,7 +216,7 @@ module.exports.dumpLog = async function(content, name, subDir = '/', muzzle = fa }catch(err){ if(!muzzle){ //Shout about it - module.exports.consoleWarn("Log folder missing, mking dir!") + module.exports.consoleShout("Log folder missing, mking dir!") } //Make it if doesn't @@ -223,17 +231,17 @@ module.exports.dumpLog = async function(content, name, subDir = '/', muzzle = fa if(!muzzle){ //Whine about the error - module.exports.consoleWarn(`Warning: Unexpected Server Crash gracefully dumped to '${path}'... SOMETHING MAY BE VERY BROKEN!!!!`); + module.exports.consoleShout(`Warning: Unexpected Server Crash gracefully dumped to '${path}'... SOMETHING MAY BE VERY BROKEN!!!!`); } //If somethine went really really wrong }catch(doubleErr){ if(!muzzle){ //Use humor to cope with the pain - module.exports.consoleWarn("Yo Dawg, I herd you like errors, so I put an error in your error dump, so you can dump while you dump:"); + module.exports.consoleShout("Yo Dawg, I herd you like errors, so I put an error in your error dump, so you can dump while you dump:"); //Dump the original error to console - module.exports.consoleWarn(err); + module.exports.consoleShout(err); //Dump the error we had saving that error to file to console - module.exports.consoleWarn(doubleErr); + module.exports.consoleShout(doubleErr); } } } diff --git a/src/utils/mailUtils.js b/src/utils/mailUtils.js index 4287160..c920637 100644 --- a/src/utils/mailUtils.js +++ b/src/utils/mailUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/media/internetArchiveUtils.js b/src/utils/media/internetArchiveUtils.js index 9db7321..ae1777a 100644 --- a/src/utils/media/internetArchiveUtils.js +++ b/src/utils/media/internetArchiveUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/media/yanker.js b/src/utils/media/yanker.js index cb6697b..c712b6a 100644 --- a/src/utils/media/yanker.js +++ b/src/utils/media/yanker.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/media/ytdlpUtils.js b/src/utils/media/ytdlpUtils.js index e6bfcd6..432f88b 100644 --- a/src/utils/media/ytdlpUtils.js +++ b/src/utils/media/ytdlpUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/presenceUtils.js b/src/utils/presenceUtils.js index 310db6c..87acb97 100644 --- a/src/utils/presenceUtils.js +++ b/src/utils/presenceUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/regexUtils.js b/src/utils/regexUtils.js index 64be99a..fed7bdb 100644 --- a/src/utils/regexUtils.js +++ b/src/utils/regexUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/scheduler.js b/src/utils/scheduler.js index a0851ee..64a30d3 100644 --- a/src/utils/scheduler.js +++ b/src/utils/scheduler.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/sessionUtils.js b/src/utils/sessionUtils.js index 88b6cc0..bb746a9 100644 --- a/src/utils/sessionUtils.js +++ b/src/utils/sessionUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -18,6 +18,7 @@ along with this program. If not, see .*/ const {validationResult, matchedData} = require('express-validator'); //Local Imports +const server = require('../server.js'); const config = require('../../config.json'); const {userModel} = require('../schemas/user/userSchema.js'); const userBanModel = require('../schemas/user/userBanSchema.js'); @@ -187,6 +188,22 @@ module.exports.killSession = async function(session){ session.destroy(); } +module.exports.killAllSessions = function(){ + //Grab the entire session store from the server + server.store.all((err, sessions) => { + //You guys ever hear of a 'not my' problem? Fucking y33tskies lmao, better use a try/catch + if(err){ + throw err; + } + + //crawl through active sessions + sessions.forEach((session) => { + //Fuckin' nukem! + server.store.destroy(session.seshid); + }); + }); +} + /** * Returns how many failed login attempts within the past day or so since the last login has occured for a given user * @param {String} user - User to check map against diff --git a/src/utils/socketUtils.js b/src/utils/socketUtils.js index 8b538df..f5b8777 100644 --- a/src/utils/socketUtils.js +++ b/src/utils/socketUtils.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/utils/upgradeUtils.js b/src/utils/upgradeUtils.js new file mode 100644 index 0000000..f0a3717 --- /dev/null +++ b/src/utils/upgradeUtils.js @@ -0,0 +1,177 @@ + /*Canopy - The next generation of stoner streaming software +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see .*/ + +//Config Imports +const package = require('../../package.json'); + +//Local Imports +const loggerUtils = require('./loggerUtils'); +const sessionUtils = require('./sessionUtils'); +const statModel = require('../schemas/statSchema'); +const { userModel } = require('../schemas/user/userSchema'); +const channelModel = require('../schemas/channel/channelSchema'); +const archivedMediaModel = require('../schemas/channel/media/archivedMediaSchema'); +const { channelPlaylistModel } = require('../schemas/channel/media/playlist/playlistSchema'); +const { userPlaylistModel } = require('../schemas/channel/media/playlist/playlistSchema'); +const archivedMedia = require('../app/channel/media/archivedMedia'); + +/** + * Checks server for recent upgrades upon boot + */ +module.exports.upgradeCheck = async function(){ + //Get the server statistics document from Database + const stats = await statModel.getStats(); + + //Throw this flag if an upgrade is initiated to automagically and silently initiate all upgrades after it + let upgradeStarted = false; + + //If we're upgrading from Panama Red (or older) + if(stats.version == "<0.2.0"){ + //Initiate upgrade procedure from Panama Red + await upgradePanamaRed(); + + //Throw upgrade started flag + upgradeStarted = true; + } + + //If we upgraded + if(upgradeStarted){ + //Update the statistics document to reflect the new version + stats.version = package.version; + //Write the statistics document to the DB + await stats.save(); + } + + loggerUtils.consoleShout(`Database Upgrading to ${package.canopyDisplayVersion} Complete!`); +} + +/** + * Upgrades server database from Panama Red + * @param {Boolean} quiet - tells upgrade logic to STFU! + */ +async function upgradePanamaRed(quiet = false){ + //If we're bein' loud + if(!quiet){ + upgradeWarn("0.1-Alpha (Panama Red)"); + } + + //Warn of impending session death + loggerUtils.consoleWarn("Killing all active sessions!"); + //Nuke existing sessions since the new version requires the user _id in there + sessionUtils.killAllSessions(); + + //Pull all channels into RAM + const channels = await channelModel.find(); + //Pull all users into RAM + const users = await userModel.find(); + + //For every channel on the server + for(channel of channels){ + //Create variables to track upgraded objects + let archived = 0; + let playlists = 0; + + //log the migration + loggerUtils.consoleWarn(`Upgrading Channel '${channel.name}'..`); + + //Iterate through the given channels media archive + for(entry of channel.media.archived){ + //Re-hydrate archived media object + const mediaObject = archivedMedia.fromQueuedMedia(entry.rehydrate()) + + //Tattoo channel name into media object + mediaObject.channel = channel._id; + + //Add media object to the site-wide media archive + await archivedMediaModel.create(mediaObject); + + //We could just pull the archvied array count, but this feels more honest XP + archived++; + } + + //Iterate through the given channels playlists + for(playlist of channel.media.playlists){ + //Create channel playlist in site-wide collection + await channelPlaylistModel.create({ + name: playlist.name, + media: playlist.media, + defaultTitles: playlist.defaultTitles, + channel: channel._id + }) + + //We could just pull the playlists array count, but this feels more honest XP + playlists++; + } + + //If we did anything + if(playlists > 0 || archived > 0){ + //Clear out archived media from channel document + channel.media.archived = []; + + //Clear out playlists from channel document + channel.media.playlists = []; + + //Save updated channel document + await channel.save(); + + //log the migration + loggerUtils.consoleWarn(`Channel '${channel.name}; Upgrade Complete! Optimized ${playlists} Playlist(s), and ${archived} Media Object(s)!`); + } + } + + //For each registered user on the server + for(user of users){ + //Create variable to track upgraded playlist count + let playlists = 0; + + //Iterate through users playlists + for(playlist of user.playlists){ + //Create channel playlist in site-wide collection + await userPlaylistModel.create({ + name: playlist.name, + media: playlist.media, + defaultTitles: playlist.defaultTitles, + user: user._id + }) + + //We could just pull the playlists array count, but this feels more honest XP + playlists++; + } + + //If we did anything + if(playlists > 0){ + //Clear out playlists from channel document + user.playlists = []; + + //Save updated channel document + await user.save(); + + //log the migration + loggerUtils.consoleWarn(`User '${user.user}' Upgrade Complete! Optimized ${playlists} Playlist(s)!`); + } + } +} + +/** + * Warns server admin of impending Database upgrades + * @param {String} versionString - Version we're upgrading from + */ +function upgradeWarn(versionString){ + //Rise and Shout the ~~AlphaSmart's~~ upgrade's out! + //https://eeggs.com/images/items/2942.full.jpg + loggerUtils.consoleShout("Server Upgrade Detected!"); + loggerUtils.consoleShout(`Upgrading Database from ${versionString} to ${package.canopyDisplayVersion}`); +} \ No newline at end of file diff --git a/src/validators/accountValidator.js b/src/validators/accountValidator.js index 806aa43..9c3d00c 100644 --- a/src/validators/accountValidator.js +++ b/src/validators/accountValidator.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/validators/channelValidator.js b/src/validators/channelValidator.js index 350dd87..92ef4b5 100644 --- a/src/validators/channelValidator.js +++ b/src/validators/channelValidator.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/validators/emoteValidator.js b/src/validators/emoteValidator.js index 6416516..453f086 100644 --- a/src/validators/emoteValidator.js +++ b/src/validators/emoteValidator.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/validators/permissionsValidator.js b/src/validators/permissionsValidator.js index baa04ae..969d093 100644 --- a/src/validators/permissionsValidator.js +++ b/src/validators/permissionsValidator.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/validators/tokebotValidator.js b/src/validators/tokebotValidator.js index 02a7008..35b1683 100644 --- a/src/validators/tokebotValidator.js +++ b/src/validators/tokebotValidator.js @@ -1,5 +1,5 @@ /*Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/404.ejs b/src/views/404.ejs index 1f83a98..03dcd4c 100644 --- a/src/views/404.ejs +++ b/src/views/404.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/about.ejs b/src/views/about.ejs index cebfc35..e989e87 100644 --- a/src/views/about.ejs +++ b/src/views/about.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -39,7 +39,7 @@ along with this program. If not, see . %> After a years of service, thousands of lines worth of stapled on modifications, the shutdown of sister sites, it was decided that the original cytube fork, fore.st, had been run past it's prime. In summer/fall 2024, work began on a replacement. The resulting software became Canopy, which was - first used to run the ourfore.st instance in late 2025.

+ first used to run the ourfore.st instance in late 2026.


Canopy Ver: <%= version %>

diff --git a/src/views/adminPanel.ejs b/src/views/adminPanel.ejs index b49d7ea..f037646 100644 --- a/src/views/adminPanel.ejs +++ b/src/views/adminPanel.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/channel.ejs b/src/views/channel.ejs index 07d9f36..4dac445 100644 --- a/src/views/channel.ejs +++ b/src/views/channel.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/channelSettings.ejs b/src/views/channelSettings.ejs index 81b4e59..811a501 100644 --- a/src/views/channelSettings.ejs +++ b/src/views/channelSettings.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/emailChange.ejs b/src/views/emailChange.ejs index bde654c..8080759 100644 --- a/src/views/emailChange.ejs +++ b/src/views/emailChange.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/hrt.ejs b/src/views/hrt.ejs index 8777403..58a465c 100644 --- a/src/views/hrt.ejs +++ b/src/views/hrt.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/index.ejs b/src/views/index.ejs index 4ee326c..b2932b1 100644 --- a/src/views/index.ejs +++ b/src/views/index.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/lockedAccount.ejs b/src/views/lockedAccount.ejs index 9d7cfe4..a50a278 100644 --- a/src/views/lockedAccount.ejs +++ b/src/views/lockedAccount.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/login.ejs b/src/views/login.ejs index 12e8e78..8ea21c9 100644 --- a/src/views/login.ejs +++ b/src/views/login.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/migrate.ejs b/src/views/migrate.ejs index 63e8f87..3fe9433 100644 --- a/src/views/migrate.ejs +++ b/src/views/migrate.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/newChannel.ejs b/src/views/newChannel.ejs index ef15239..337ac35 100644 --- a/src/views/newChannel.ejs +++ b/src/views/newChannel.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/adminPanel/channelList.ejs b/src/views/partial/adminPanel/channelList.ejs index e6e53ec..c92fe2a 100644 --- a/src/views/partial/adminPanel/channelList.ejs +++ b/src/views/partial/adminPanel/channelList.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/adminPanel/emoteList.ejs b/src/views/partial/adminPanel/emoteList.ejs index a4d3706..ba94793 100644 --- a/src/views/partial/adminPanel/emoteList.ejs +++ b/src/views/partial/adminPanel/emoteList.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/adminPanel/permList.ejs b/src/views/partial/adminPanel/permList.ejs index 40bce34..79b8a19 100644 --- a/src/views/partial/adminPanel/permList.ejs +++ b/src/views/partial/adminPanel/permList.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/adminPanel/tokeCommandList.ejs b/src/views/partial/adminPanel/tokeCommandList.ejs index fdc29dc..5bc5afb 100644 --- a/src/views/partial/adminPanel/tokeCommandList.ejs +++ b/src/views/partial/adminPanel/tokeCommandList.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/adminPanel/userBanList.ejs b/src/views/partial/adminPanel/userBanList.ejs index d17db95..4746eae 100644 --- a/src/views/partial/adminPanel/userBanList.ejs +++ b/src/views/partial/adminPanel/userBanList.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/adminPanel/userList.ejs b/src/views/partial/adminPanel/userList.ejs index df54d21..854ab15 100644 --- a/src/views/partial/adminPanel/userList.ejs +++ b/src/views/partial/adminPanel/userList.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/channel/chatPanel.ejs b/src/views/partial/channel/chatPanel.ejs index 0939f30..f7c11cd 100644 --- a/src/views/partial/channel/chatPanel.ejs +++ b/src/views/partial/channel/chatPanel.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/channel/mediaPanel.ejs b/src/views/partial/channel/mediaPanel.ejs index 9f8ee2f..3b3d504 100644 --- a/src/views/partial/channel/mediaPanel.ejs +++ b/src/views/partial/channel/mediaPanel.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/channelSettings/banList.ejs b/src/views/partial/channelSettings/banList.ejs index 86cabe7..1ae523b 100644 --- a/src/views/partial/channelSettings/banList.ejs +++ b/src/views/partial/channelSettings/banList.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/channelSettings/emoteList.ejs b/src/views/partial/channelSettings/emoteList.ejs index a4d3706..ba94793 100644 --- a/src/views/partial/channelSettings/emoteList.ejs +++ b/src/views/partial/channelSettings/emoteList.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/channelSettings/info.ejs b/src/views/partial/channelSettings/info.ejs index 11aeafb..3dc62a3 100644 --- a/src/views/partial/channelSettings/info.ejs +++ b/src/views/partial/channelSettings/info.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/channelSettings/permList.ejs b/src/views/partial/channelSettings/permList.ejs index 0c9cb20..b2b583f 100644 --- a/src/views/partial/channelSettings/permList.ejs +++ b/src/views/partial/channelSettings/permList.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/channelSettings/settings.ejs b/src/views/partial/channelSettings/settings.ejs index 1ec464c..ec740eb 100644 --- a/src/views/partial/channelSettings/settings.ejs +++ b/src/views/partial/channelSettings/settings.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/channelSettings/tokeCommandList.ejs b/src/views/partial/channelSettings/tokeCommandList.ejs index fdc29dc..5bc5afb 100644 --- a/src/views/partial/channelSettings/tokeCommandList.ejs +++ b/src/views/partial/channelSettings/tokeCommandList.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/channelSettings/userList.ejs b/src/views/partial/channelSettings/userList.ejs index 184a044..6ac5ee1 100644 --- a/src/views/partial/channelSettings/userList.ejs +++ b/src/views/partial/channelSettings/userList.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/csrfToken.ejs b/src/views/partial/csrfToken.ejs index e9a2c68..5b7b8cd 100644 --- a/src/views/partial/csrfToken.ejs +++ b/src/views/partial/csrfToken.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/navbar.ejs b/src/views/partial/navbar.ejs index c8c3528..cd58614 100644 --- a/src/views/partial/navbar.ejs +++ b/src/views/partial/navbar.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/panels/emote.ejs b/src/views/partial/panels/emote.ejs index 91cf926..3fd2e98 100644 --- a/src/views/partial/panels/emote.ejs +++ b/src/views/partial/panels/emote.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/panels/placeholder.ejs b/src/views/partial/panels/placeholder.ejs index e319fe7..0726cde 100644 --- a/src/views/partial/panels/placeholder.ejs +++ b/src/views/partial/panels/placeholder.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/panels/pm.ejs b/src/views/partial/panels/pm.ejs index 958a18c..902e684 100644 --- a/src/views/partial/panels/pm.ejs +++ b/src/views/partial/panels/pm.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/panels/profile.ejs b/src/views/partial/panels/profile.ejs index 63fc487..cc9f53c 100644 --- a/src/views/partial/panels/profile.ejs +++ b/src/views/partial/panels/profile.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/panels/queue.ejs b/src/views/partial/panels/queue.ejs index fb2484e..4c07713 100644 --- a/src/views/partial/panels/queue.ejs +++ b/src/views/partial/panels/queue.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/panels/settings.ejs b/src/views/partial/panels/settings.ejs index 320c3e7..d1a153d 100644 --- a/src/views/partial/panels/settings.ejs +++ b/src/views/partial/panels/settings.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/profile/badges.ejs b/src/views/partial/profile/badges.ejs index 72815af..f6911a7 100644 --- a/src/views/partial/profile/badges.ejs +++ b/src/views/partial/profile/badges.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/profile/bio.ejs b/src/views/partial/profile/bio.ejs index 3d28720..18d51bf 100644 --- a/src/views/partial/profile/bio.ejs +++ b/src/views/partial/profile/bio.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/profile/date.ejs b/src/views/partial/profile/date.ejs index 55c175b..0e4d191 100644 --- a/src/views/partial/profile/date.ejs +++ b/src/views/partial/profile/date.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/profile/image.ejs b/src/views/partial/profile/image.ejs index 30f4afe..4fc08a6 100644 --- a/src/views/partial/profile/image.ejs +++ b/src/views/partial/profile/image.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/profile/pronouns.ejs b/src/views/partial/profile/pronouns.ejs index cd35da2..f4f990d 100644 --- a/src/views/partial/profile/pronouns.ejs +++ b/src/views/partial/profile/pronouns.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/profile/settings.ejs b/src/views/partial/profile/settings.ejs index 3135653..8f5a9f8 100644 --- a/src/views/partial/profile/settings.ejs +++ b/src/views/partial/profile/settings.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/profile/signature.ejs b/src/views/partial/profile/signature.ejs index 5bb5ea7..02c806f 100644 --- a/src/views/partial/profile/signature.ejs +++ b/src/views/partial/profile/signature.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/profile/status.ejs b/src/views/partial/profile/status.ejs index 1b37fd7..71a0345 100644 --- a/src/views/partial/profile/status.ejs +++ b/src/views/partial/profile/status.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/profile/tokeCount.ejs b/src/views/partial/profile/tokeCount.ejs index a1d7356..daa7628 100644 --- a/src/views/partial/profile/tokeCount.ejs +++ b/src/views/partial/profile/tokeCount.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/scripts.ejs b/src/views/partial/scripts.ejs index 2fbd098..9f2425c 100644 --- a/src/views/partial/scripts.ejs +++ b/src/views/partial/scripts.ejs @@ -1,5 +1,5 @@ <%# Canopy - The next generation of stoner streaming software -Copyright (C) 2024-2025 Rainbownapkin and the TTN Community +Copyright (C) 2024-2026 Rainbownapkin and the TTN Community This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/src/views/partial/styles.ejs b/src/views/partial/styles.ejs index 0fa4e09..7d19af8 100644 --- a/src/views/partial/styles.ejs +++ b/src/views/partial/styles.ejs @@ -1,5 +1,5 @@