Youtube banned my account and refuses to say why, taking all my subscribed channels with it. This is a simple scrubscribed channel manager, showing recent releases from each channel and finally proper sub-catagory functionality!
-
-
-
-
-
-
Subscribed Channels
-
-
-
-
-
Videos in DB
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/YTManager/frontend/Admin/index.js b/YTManager/frontend/Admin/index.js
deleted file mode 100644
index 09ba7f6..0000000
--- a/YTManager/frontend/Admin/index.js
+++ /dev/null
@@ -1,267 +0,0 @@
-$(document).foundation();
-
-// How many chars at most for the description.
-var maxcharstablefield = 200;
-
-// Bind to the form for submitting a new channel
-var addchanel0 = new Vue({
- el: '#addchanel-0',
- data: {
- entry: {
- title: "",
- description: "",
- yTChannelID: "",
- thumbnailURL: "",
- },
- fail: false,
- expanded: false
- },
- template: `
-
-
-
-
-
-
-
-
-
-
-
-
- `,
- methods: {
- submit: function (event) {
- // Send the channel to our API and request tables be updated.
- var d = this.entry;
- axios.post('/api_raw/Channels/' + this.entry.yTChannelID)
- .then(function (response) {
- this.entry.title = "";
- this.entry.description = "";
- this.entry.yTChannelID = "";
- this.entry.thumbnailURL = "";
- this.expanded = false;
- tbody0.retrieve();
- setTimeout(() => videostb.retrieve(), 1000);
- }.bind(this))
- .catch(function (error) {
- console.log(error);
- });
- },
-
- // Handle when user put in a new URL (verification and thumbnail fetch)
- newurl: function (event) {
- // Remove any potential youtube URL from the field.
- var ytchurl = "https://www.youtube.com/channel/";
- if (this.entry.yTChannelID.startsWith(ytchurl)) {
- this.entry.yTChannelID = this.entry.yTChannelID.replace(ytchurl, "");
- }
-
- // Check if what remains looks like a youtube channel ID.
- if (this.entry.yTChannelID.length != "UCyS4xQE6DK4_p3qXQwJQAyA".length) {
- this.fail = true;
- return;
- }
- this.fail = false;
-
- // Get the Channel URL
- var basestr = 'https://www.googleapis.com/youtube/v3/channels?part=snippet%2CcontentDetails%2Cstatistics';
- var apikey = '&key=AIzaSyCuIYkMc5SktlnXRXNaDf2ObX-fQvtWCnQ '
- var channel = '&id=' + addchanel0.entry.yTChannelID;
- axios.get(basestr + channel + apikey)
- .then(function (response) {
- // Only attempt to fill the UI text boxes if they are empty.
- if (this.entry.description.length == 0) {
- this.entry.description = response.data.items[0].snippet.description;
- }
- if (this.entry.title.length == 0) {
- this.entry.title = response.data.items[0].snippet.title;
- }
-
- // Get client to load the thumbnail
- this.entry.thumbnailURL = response.data.items[0].snippet.thumbnails.medium.url;
- }.bind(this))
- .catch(function (error) {
- console.log(error);
- });
- }
- }
-});
-
-// Bind to our table of entries.
-var tbody0 = new Vue({
- el: '#subbedchannelstable-0',
- data: {
- entries: [""]
- },
- template: `
-
-
-
-
ID
-
Title
-
Description
-
Actions
-
-
-
-
-
{{entry.id}}
-
{{entry.title}}
-
{{entry.description}}
-
-
-
-
-
-
-
- `,
- methods: {
- retrieve: function (event) {
- axios.get('/api/Channels')
- .then(function (response) {
- // Wipe out all old entries.
- this.entries = [];
-
- // And fill it with all the retrieved entries.
- response.data.forEach(function (x) {
- if (x.description.length > maxcharstablefield) {
- x.description = x.description.substring(0, maxcharstablefield) + " ...";
- }
- this.entries.push(x);
- }.bind(this));
- }.bind(this))
- .catch(function (error) {
- console.log(error);
- });
- },
- forcerefresh: function (event) {
- axios
- .post('/api/Admin/Update/' + event.target.id)
- .catch(function (error) { console.log(error); });
- },
- deletechannel: function (event) {
- axios
- .delete('/api/Channels/' + event.target.id)
- .catch(function (error) { console.log(error); });
- }
- }
-});
-
-// Bind to our table of entries.
-var apistatus = new Vue({
- el: '#apistatus-0',
- data: {
- apiaccessible: false,
- updatingjobactive: false
- },
- template: `
-
- `,
- methods: {
- // Get new videos from the web api.
- retrieve: function (event) {
- axios.get('/api/Videos')
- .then(function (response) {
- // And fill it with all the retrieved entries.
- response.data.forEach(function (x) {
- // Trim description if needed.
- if (x.description.length > maxcharstablefield) {
- x.description = x.description.substring(0, maxcharstablefield) + " ...";
- }
-
- // Add it to our array
- this.Videos.push(x);
- }.bind(this));
- }.bind(this))
- .catch(function (error) {
- console.log(error);
- });
- }
- }
-});
-
-window.addEventListener('load', function () {
- apistatus.update();
- tbody0.retrieve();
- videostb.retrieve();
-});
diff --git a/YTManager/frontend/index.html b/YTManager/frontend/index.html
index 71f987e..50647a4 100644
--- a/YTManager/frontend/index.html
+++ b/YTManager/frontend/index.html
@@ -1,4 +1,4 @@
-
+
@@ -6,29 +6,17 @@
-
+
Dumb YT Manager
+
Youtube banned my account and refuses to say why, taking all my subscribed channels with it. This is a simple scrubscribed channel manager, showing recent releases from each channel and finally proper sub-catagory functionality!
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
\ No newline at end of file
+