From 81bc6488f5e383cc0bddbec9bad9e7afd62f2ca1 Mon Sep 17 00:00:00 2001 From: Koen Date: Thu, 10 Aug 2023 11:36:29 +0200 Subject: [PATCH] Initial commit. --- .gitlab-ci.yml | 9 + PeerTubeConfig.json | 27 +++ PeerTubeScript.js | 335 +++++++++++++++++++++++++++++++ autocomplete.js | 474 ++++++++++++++++++++++++++++++++++++++++++++ deploy.sh | 23 +++ peertube.png | Bin 0 -> 78956 bytes 6 files changed, 868 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 PeerTubeConfig.json create mode 100644 PeerTubeScript.js create mode 100644 autocomplete.js create mode 100644 deploy.sh create mode 100644 peertube.png diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..fa4d5fb --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,9 @@ +stages: +- deploy + +deploy: + stage: deploy + script: + - sh deploy.sh + only: + - main \ No newline at end of file diff --git a/PeerTubeConfig.json b/PeerTubeConfig.json new file mode 100644 index 0000000..9a75c19 --- /dev/null +++ b/PeerTubeConfig.json @@ -0,0 +1,27 @@ +{ + "name": "PeerTube", + "description": "A plugin that adds PeerTube as a source", + "author": "FUTO", + "authorUrl": "https://futo.org", + + "sourceUrl": "https://plugins.grayjay.app/PeerTube/PeerTubeConfig.json", + "repositoryUrl": "https://futo.org", + "scriptUrl": "./PeerTubeScript.js", + "version": 13, + + "iconUrl": "./peertube.png", + "id": "1c291164-294c-4c2d-800d-7bc6d31d0019", + + "scriptSignature": "", + "scriptPublicKey": "", + "packages": ["Http"], + + "allowEval": false, + "allowUrls": [ + "everywhere" + ], + + "constants": { + "baseUrl": "https://peertube.futo.org" + } +} diff --git a/PeerTubeScript.js b/PeerTubeScript.js new file mode 100644 index 0000000..c38846d --- /dev/null +++ b/PeerTubeScript.js @@ -0,0 +1,335 @@ +const PLATFORM = "PeerTube"; + +var config = {}; + +/** + * Build a query + * @param {{[key: string]: any}} params Query params + * @returns {String} Query string + */ +function buildQuery(params) { + let query = ""; + let first = true; + for (const [key, value] of Object.entries(params)) { + if (value) { + if (first) { + first = false; + } else { + query += "&"; + } + + query += `${key}=${value}`; + } + } + + return (query && query.length > 0) ? `?${query}` : ""; +} + +function getChannelPager(path, params, page) { + log(`getChannelPager page=${page}`, params) + + const count = 20; + const start = (page ?? 0) * count; + params = { ... params, start, count } + + const url = `${config.constants.baseUrl}${path}`; + const urlWithParams = `${url}${buildQuery(params)}`; + log("GET " + urlWithParams); + const res = http.GET(urlWithParams, {}); + + if (res.code != 200) { + log("Failed to get channels", res); + return new ChannelPager([], false); + } + + const obj = JSON.parse(res.body); + + return new PeerTubeChannelPager(obj.data.map(v => { + return new PlatformAuthorLink(new PlatformID(PLATFORM, v.name, config.id), v.displayName, v.url, v.avatar ? `${config.constants.baseUrl}${v.avatar.path}` : ""); + + }), obj.total > (start + count), path, params, page); +} + +function getVideoPager(path, params, page) { + log(`getVideoPager page=${page}`, params) + + const count = 20; + const start = (page ?? 0) * count; + params = { ... params, start, count } + + const url = `${config.constants.baseUrl}${path}`; + const urlWithParams = `${url}${buildQuery(params)}`; + log("GET " + urlWithParams); + const res = http.GET(urlWithParams, {}); + + if (res.code != 200) { + log("Failed to get videos", res); + return new VideoPager([], false); + } + + const obj = JSON.parse(res.body); + + return new PeerTubeVideoPager(obj.data.map(v => { + return new PlatformVideo({ + id: new PlatformID(PLATFORM, v.uuid, config.id), + name: v.name ?? "", + thumbnails: new Thumbnails([new Thumbnail(`${config.constants.baseUrl}${v.thumbnailPath}`, 0)]), + author: new PlatformAuthorLink(new PlatformID(PLATFORM, v.channel.name, config.id), + v.channel.displayName, + v.channel.url, + v.channel.avatar ? `${config.constants.baseUrl}${v.channel.avatar.path}` : ""), + datetime: Math.round((new Date(v.publishedAt)).getTime() / 1000), + duration: v.duration, + viewCount: v.views, + url: v.url, + isLive: v.isLive + }); + + }), obj.total > (start + count), path, params, page); +} + +function getCommentPager(path, params, page) { + log(`getCommentPager page=${page}`, params) + + const count = 20; + const start = (page ?? 0) * count; + params = { ... params, start, count } + + const url = `${config.constants.baseUrl}${path}`; + const urlWithParams = `${url}${buildQuery(params)}`; + log("GET " + urlWithParams); + const res = http.GET(urlWithParams, {}); + + if (res.code != 200) { + log("Failed to get comments", res); + return new CommentPager([], false); + } + + const obj = JSON.parse(res.body); + + return new PeerTubeCommentPager(obj.data.map(v => { + return new Comment({ + contextUrl: url, + author: new PlatformAuthorLink(new PlatformID(PLATFORM, v.account.name, config.id), v.account.displayName, `${config.constants.baseUrl}/api/v1/video-channels/${v.account.name}`, ""), + message: v.text, + rating: new RatingLikes(0), + date: Math.round((new Date(v.createdAt)).getTime() / 1000), + replyCount: v.totalReplies, + context: { id: v.id } + }); + }), obj.total > (start + count), path, params, page); +} + +source.enable = function (conf) { + config = conf ?? {}; +}; + +source.getHome = function () { + return getVideoPager('/api/v1/videos', { + sort: "best" + }, 0); +}; + +source.searchSuggestions = function(query) { + return []; +}; +source.getSearchCapabilities = () => { + return { + types: [Type.Feed.Mixed, Type.Feed.Streams, Type.Feed.Videos], + sorts: [Type.Order.Chronological, "publishedAt"] + }; +}; +source.search = function (query, type, order, filters) { + let sort = order; + if (sort === Type.Order.Chronological) { + sort = "-publishedAt"; + } + + const params = { + search: query, + sort + }; + + if (type == Type.Feed.Streams) { + params.isLive = true; + } else if (type == Type.Feed.Videos) { + params.isLive = false; + } + + return getVideoPager('/api/v1/search/videos', params, 0); +}; +source.searchChannels = function (query) { + return getChannelPager('/api/v1/search/video-channels', { + search: query + }, 0); +}; + +source.isChannelUrl = function(url) { + return url.startsWith(`${config.constants.baseUrl}/video-channels/`); +}; +source.getChannel = function (url) { + const tokens = url.split('/'); + const handle = tokens[tokens.length - 1]; + const urlWithParams = `${config.constants.baseUrl}/api/v1/video-channels/${handle}`; + log("GET " + urlWithParams); + const res = http.GET(urlWithParams, {}); + + if (res.code != 200) { + log("Failed to get channel", res); + return null; + } + + const obj = JSON.parse(res.body); + + return new PlatformChannel({ + id: new PlatformID(PLATFORM, obj.name, config.id), + name: obj.displayName, + thumbnail: obj.avatar ? `${config.constants.baseUrl}${obj.avatar.path}` : "", + banner: null, + subscribers: obj.followersCount, + description: obj.description ?? "", + url: obj.url, + links: {} + }); +}; +source.getChannelCapabilities = () => { + return { + types: [Type.Feed.Mixed, Type.Feed.Streams, Type.Feed.Videos], + sorts: [Type.Order.Chronological, "publishedAt"] + }; +}; +source.getChannelContents = function (url, type, order, filters) { + let sort = order; + if (sort === Type.Order.Chronological) { + sort = "-publishedAt"; + } + + const params = { + sort + }; + + if (type == Type.Feed.Streams) { + params.isLive = true; + } else if (type == Type.Feed.Videos) { + params.isLive = false; + } + + const tokens = url.split('/'); + const handle = tokens[tokens.length - 1]; + return getVideoPager(`/api/v1/video-channels/${handle}/videos`, params, 0); +}; + +source.isContentDetailsUrl = function(url) { + return url.startsWith(`${config.constants.baseUrl}/videos/watch/`); +}; + +const supportedResolutions = { + '1080p': { width: 1920, height: 1080 }, + '720p': { width: 1280, height: 720 }, + '480p': { width: 854, height: 480 }, + '360p': { width: 640, height: 360 }, + '144p': { width: 256, height: 144 } +}; + +source.getContentDetails = function (url) { + const tokens = url.split('/'); + const handle = tokens[tokens.length - 1]; + const urlWithParams = `${config.constants.baseUrl}/api/v1/videos/${handle}`; + log("GET " + urlWithParams); + const res = http.GET(urlWithParams, {}); + + if (res.code != 200) { + log("Failed to get video detail", res); + return null; + } + + const obj = JSON.parse(res.body); + const sources = []; + + for (const streamingPlaylist of obj.streamingPlaylists) { + sources.push(new HLSSource({ + name: "HLS", + url: streamingPlaylist.playlistUrl, + duration: obj.duration ?? 0, + priority: true + })); + + for (const file of streamingPlaylist.files) { + let supportedResolution; + if (file.resolution.width && file.resolution.height) { + supportedResolution = { width: file.resolution.width, height: file.resolution.height }; + } else { + supportedResolution = supportedResolutions[file.resolution.label]; + } + + if (!supportedResolution) { + continue; + } + + sources.push(new VideoUrlSource({ + name: file.resolution.label, + url: file.fileDownloadUrl, + width: supportedResolution.width, + height: supportedResolution.height, + duration: obj.duration, + container: "video/mp4" + })); + } + } + + return new PlatformVideoDetails({ + id: new PlatformID(PLATFORM, obj.uuid, config.id), + name: obj.name, + thumbnails: new Thumbnails([new Thumbnail(`${config.constants.baseUrl}${obj.thumbnailPath}`, 0)]), + author: new PlatformAuthorLink(new PlatformID(PLATFORM, obj.channel.name, config.id), + obj.channel.displayName, + obj.channel.url, + obj.channel.avatar ? `${config.constants.baseUrl}${obj.channel.avatar.path}` : ""), + datetime: Math.round((new Date(obj.publishedAt)).getTime() / 1000), + duration: obj.duration, + viewCount: obj.views, + url: obj.url, + isLive: obj.isLive, + description: obj.description, + video: new VideoSourceDescriptor(sources) + }); +}; + +source.getComments = function (url) { + const tokens = url.split('/'); + const handle = tokens[tokens.length - 1]; + return getCommentPager(`/api/v1/videos/${handle}/comment-threads`, {}, 0); +} +source.getSubComments = function(comment) { + return getCommentPager(`/api/v1/videos/${comment.context.id}/comment-threads`, {}, 0); +} + +class PeerTubeVideoPager extends VideoPager { + constructor(results, hasMore, path, params, page) { + super(results, hasMore, { path, params, page }); + } + + nextPage() { + return getVideoPager(this.context.path, this.context.params, (this.context.page ?? 0) + 1); + } +} + +class PeerTubeChannelPager extends ChannelPager { + constructor(results, hasMore, path, params, page) { + super(results, hasMore, { path, params, page }); + } + + nextPage() { + return getChannelPager(this.context.path, this.context.params, (this.context.page ?? 0) + 1); + } +} + +class PeerTubeCommentPager extends CommentPager { + constructor(results, hasMore, path, params, page) { + super(results, hasMore, { path, params, page }); + } + + nextPage() { + return getCommentPager(this.context.path, this.context.params, (this.context.page ?? 0) + 1); + } +} \ No newline at end of file diff --git a/autocomplete.js b/autocomplete.js new file mode 100644 index 0000000..2f04539 --- /dev/null +++ b/autocomplete.js @@ -0,0 +1,474 @@ +//Reference Scriptfile +//Intended exclusively for auto-complete in your IDE, not for execution +var IS_TESTING = false; + +let Type = { + Source: { + Dash: "DASH", + HLS: "HLS", + STATIC: "Static" + }, + Feed: { + Videos: "VIDEOS", + Streams: "STREAMS", + Mixed: "MIXED", + Live: "LIVE" + }, + Order: { + Chronological: "CHRONOLOGICAL" + }, + Date: { + LastHour: "LAST_HOUR", + Today: "TODAY", + LastWeek: "LAST_WEEK", + LastMonth: "LAST_MONTH", + LastYear: "LAST_YEAR" + }, + Duration: { + Short: "SHORT", + Medium: "MEDIUM", + Long: "LONG" + } +}; + +let Language = { + UNKNOWN: "Unknown", + ARABIC: "Arabic", + SPANISH: "Spanish", + FRENCH: "French", + HINDI: "Hindi", + INDONESIAN: "Indonesian", + KOREAN: "Korean", + PORTBRAZIL: "Portuguese Brazilian", + RUSSIAN: "Russian", + THAI: "Thai", + TURKISH: "Turkish", + VIETNAMESE: "Vietnamese", + ENGLISH: "English" +} + +class ScriptException extends Error { + constructor(type, msg) { + if(arguments.length == 1) { + super(arguments[0]); + this.plugin_type = "ScriptException"; + this.message = arguments[0]; + } + else { + super(msg); + this.plugin_type = type ?? ""; //string + this.msg = msg ?? ""; //string + } + } +} +class TimeoutException extends ScriptException { + constructor(msg) { + super(msg); + this.plugin_type = "ScriptTimeoutException"; + } +} + +class Thumbnails { + constructor(thumbnails) { + this.sources = thumbnails ?? []; // Thumbnail[] + } +} +class Thumbnail { + constructor(url, quality) { + this.url = url ?? ""; //string + this.quality = quality ?? 0; //integer + } +} + +class PlatformID { + constructor(platform, id, pluginId) { + this.platform = platform ?? ""; //string + this.pluginId = pluginId; //string + this.value = id; //string + } +} + +class ResultCapabilities { + constructor(types, sorts, filters) { + this.types = types ?? []; + this.sorts = sorts ?? []; + this.filters = filters ?? []; + } +} +class FilterGroup { + constructor(name, filters, isMultiSelect, id) { + if(!name) throw new ScriptException("No name for filter group"); + if(!filters) throw new ScriptException("No filter provided"); + + this.name = name + this.filters = filters + this.isMultiSelect = isMultiSelect; + this.id = id; + } +} +class FilterCapability { + constructor(name, value, id) { + if(!name) throw new ScriptException("No name for filter"); + if(!value) throw new ScriptException("No filter value"); + + this.name = name; + this.value = value; + this.id = id; + } +} + + +class PlatformAuthorLink { + constructor(id, name, url, thumbnail) { + this.id = id ?? PlatformID(); //PlatformID + this.name = name ?? ""; //string + this.url = url ?? ""; //string + this.thumbnail = thumbnail; //string + } +} +class PlatformVideo { + constructor(obj) { + obj = obj ?? {}; + this.plugin_type = "PlatformVideo"; + this.id = obj.id ?? PlatformID(); //PlatformID + this.name = obj.name ?? ""; //string + this.thumbnails = obj.thumbnails ?? Thumbnails([]); //Thumbnail[] + this.author = obj.author ?? PlatformAuthorLink(); //PlatformAuthorLink + this.datetime = obj.uploadDate ?? 0; //OffsetDateTime (Long) + this.url = obj.url ?? ""; //String + + this.duration = obj.duration ?? -1; //Long + this.viewCount = obj.viewCount ?? -1; //Long + + this.isLive = obj.isLive ?? false; //Boolean + } +} +class PlatformVideoDetails extends PlatformVideo { + constructor(obj) { + super(obj); + obj = obj ?? {}; + this.plugin_type = "PlatformVideoDetails"; + + this.description = obj.description ?? "";//String + this.video = obj.video ?? {}; //VideoSourceDescriptor + this.dash = obj.dash ?? null; //DashSource + this.hls = obj.hls ?? null; //HLSSource + this.live = obj.live ?? null; //VideoSource + + this.rating = obj.rating ?? null; //IRating + this.subtitles = obj.subtitles ?? []; + } +} + +//Sources +class VideoSourceDescriptor { + constructor(obj) { + obj = obj ?? {}; + this.plugin_type = "MuxVideoSourceDescriptor"; + this.isUnMuxed = false; + + if(obj.constructor === Array) + this.videoSources = obj; + else + this.videoSources = obj.videoSources ?? []; + + } +} +class UnMuxVideoSourceDescriptor { + constructor(videoSourcesOrObj, audioSources) { + videoSourcesOrObj = videoSourcesOrObj ?? {}; + this.plugin_type = "UnMuxVideoSourceDescriptor"; + this.isUnMuxed = true; + + if(videoSourcesOrObj.constructor === Array) { + this.videoSources = videoSourcesOrObj; + this.audioSources = audioSources; + } + else { + this.videoSources = videoSourcesOrObj.videoSources ?? []; + this.audioSources = videoSourcesOrObj.audioSources ?? []; + } + } +} + +class VideoUrlSource { + constructor(obj) { + obj = obj ?? {}; + this.plugin_type = "VideoUrlSource"; + this.width = obj.width ?? 0; + this.height = obj.height ?? 0; + this.container = obj.container ?? ""; + this.codec = obj.codec ?? ""; + this.name = obj.name ?? ""; + this.bitrate = obj.bitrate ?? 0; + this.duration = obj.duration ?? 0; + this.url = obj.url; + } +} +class VideoUrlRangeSource extends VideoUrlSource { + constructor(obj) { + super(obj); + this.plugin_type = "VideoUrlRangeSource"; + + this.itagId = obj.itagId ?? null; + this.initStart = obj.initStart ?? null; + this.initEnd = obj.initEnd ?? null; + this.indexStart = obj.indexStart ?? null; + this.indexEnd = obj.indexEnd ?? null; + } +} +class AudioUrlSource { + constructor(obj) { + obj = obj ?? {}; + this.plugin_type = "AudioUrlSource"; + this.name = obj.name ?? ""; + this.bitrate = obj.bitrate ?? 0; + this.container = obj.container ?? ""; + this.codec = obj.codec ?? ""; + this.duration = obj.duration ?? 0; + this.url = obj.url; + this.language = obj.language ?? Language.UNKNOWN; + } +} +class AudioUrlRangeSource extends AudioUrlSource { + constructor(obj) { + super(obj); + this.plugin_type = "AudioUrlRangeSource"; + + this.itagId = obj.itagId ?? null; + this.initStart = obj.initStart ?? null; + this.initEnd = obj.initEnd ?? null; + this.indexStart = obj.indexStart ?? null; + this.indexEnd = obj.indexEnd ?? null; + this.audioChannels = obj.audioChannels ?? 2; + } +} +class HLSSource { + constructor(obj) { + obj = obj ?? {}; + this.plugin_type = "HLSSource"; + this.name = obj.name ?? "HLS"; + this.duration = obj.duration ?? 0; + this.url = obj.url; + } +} +class DashSource { + constructor(obj) { + obj = obj ?? {}; + this.plugin_type = "DashSource"; + this.name = obj.name ?? "Dash"; + this.duration = obj.duration ?? 0; + this.url = obj.url; + } +} + +//Channel +class PlatformChannel { + constructor(obj) { + obj = obj ?? {}; + this.plugin_type = "PlatformChannel"; + this.id = obj.id ?? ""; //string + this.name = obj.name ?? ""; //string + this.thumbnail = obj.thumbnail; //string + this.banner = obj.banner; //string + this.subscribers = obj.subscribers ?? 0; //integer + this.description = obj.description; //string + this.url = obj.url ?? ""; //string + this.links = obj.links ?? { } //Map + } +} + +//Ratings +class RatingLikes { + constructor(likes) { + this.type = 1; + this.likes = likes; + } +} +class RatingLikesDislikes { + constructor(likes,dislikes) { + this.type = 2; + this.likes = likes; + this.dislikes = dislikes; + } +} +class RatingScaler { + constructor(value) { + this.type = 3; + this.value = value; + } +} + +class Comment { + constructor(obj) { + this.plugin_type = "Comment"; + this.contextUrl = obj.contextUrl ?? ""; + this.author = obj.author ?? new PlatformAuthorLink(null, "", "", null); + this.message = obj.message ?? ""; + this.rating = obj.rating ?? new RatingLikes(0); + this.date = obj.date ?? 0; + this.replyCount = obj.replyCount ?? 0; + this.context = obj.context ?? {}; + } +} + +//Pagers +class VideoPager { + constructor(results, hasMore, context) { + this.plugin_type = "VideoPager"; + this.results = results ?? []; + this.hasMore = hasMore ?? false; + this.context = context ?? {}; + } + + hasMorePagers() { return this.hasMore; } + nextPage() { return new Pager([], false, this.context) } +} +class ChannelPager { + constructor(results, hasMore, context) { + this.plugin_type = "ChannelPager"; + this.results = results ?? []; + this.hasMore = hasMore ?? false; + this.context = context ?? {}; + } + + hasMorePagers() { return this.hasMore; } + nextPage() { return new Pager([], false, this.context) } +} +class CommentPager { + constructor(results, hasMore, context) { + this.plugin_type = "CommentPager"; + this.results = results ?? []; + this.hasMore = hasMore ?? false; + this.context = context ?? {}; + } + + hasMorePagers() { return this.hasMore; } + nextPage() { return new Pager([], false, this.context) } +} + +function throwException(type, message) { + throw new Error("V8EXCEPTION:" + type + "-" + message); +} + +//To override by plugin +const source = { + getHome() { return new Pager([], false, {}); }, + + enable(config){ }, + disable() {}, + + searchSuggestions(query){ return []; }, + getSearchCapabilities(){ return { types: [], sorts: [] }; }, + search(query){ return new Pager([], false, {}); }, //TODO + + + isChannelUrl(url){ return false; }, + getChannel(url){ return null; }, + getChannelCapabilities(){ return { types: [], sorts: [] }; }, + getChannelVideos(url) { return new Pager([], false, {}); }, + + isVideoDetailsUrl(url){ return false; }, + getVideoDetails(url){ }, //TODO + + //getComments(url){ return new Pager([], false, {}); }, //TODO + //getSubComments(comment){ return new Pager([], false, {}); }, //TODO + + //getSubscriptionsUser(){ return []; }, + //getPlaylistsUser(){ return []; } +}; + +function parseSettings(settings) { + if(!settings) + return {}; + let newSettings = {}; + for(let key in settings) { + if(typeof settings[key] == "string") + newSettings[key] = JSON.parse(settings[key]); + else + newSettings[key] = settings[key]; + } + return newSettings; +} + +function log(str) { + if(str) { + if(typeof str == "string") + bridge.log(str); + else + bridge.log(JSON.stringify(str, null, 4)); + } +} + + +//Package Bridge (variable: bridge) +let bridge = { + /** + * @return {Boolean} + **/ + isLoggedIn: function() {}, + + /** + * @param {String} str + * @return {Unit} + **/ + log: function(str) {}, + + /** + * @param {String} str + * @return {Unit} + **/ + throwTest: function(str) {}, + + /** + * @param {String} str + * @return {Unit} + **/ + toast: function(str) {}, + +} + +//Package Http (variable: http) +let http = { + /** + * @param {String} url + * @param {Map} headers + * @param {Boolean} useAuth + * @return {BridgeHttpResponse} + **/ + GET: function(url, headers, useAuth) {}, + + /** + * @param {String} url + * @param {String} body + * @param {Map} headers + * @param {Boolean} useAuth + * @return {BridgeHttpResponse} + **/ + POST: function(url, body, headers, useAuth) {}, + + /** + * @return {BatchBuilder} + **/ + batch: function() {}, + + /** + * @param {String} method + * @param {String} url + * @param {Map} headers + * @param {Boolean} useAuth + * @return {BridgeHttpResponse} + **/ + request: function(method, url, headers, useAuth) {}, + + /** + * @param {String} method + * @param {String} url + * @param {String} body + * @param {Map} headers + * @param {Boolean} useAuth + * @return {BridgeHttpResponse} + **/ + requestWithBody: function(method, url, body, headers, useAuth) {}, + +} diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..ebd83de --- /dev/null +++ b/deploy.sh @@ -0,0 +1,23 @@ +#!/bin/sh +DOCUMENT_ROOT=/var/www/sources + +# Take site offline +echo "Taking site offline..." +touch $DOCUMENT_ROOT/maintenance.file + +# Swap over the content +echo "Deploying content..." +cp peertube.png $DOCUMENT_ROOT/ +cp PeerTubeConfig.json $DOCUMENT_ROOT/ +cp PeerTubeScript.js $DOCUMENT_ROOT/ + +# Notify Cloudflare to wipe the CDN cache +echo "Purging Cloudflare cache..." +curl -X POST "https://api.cloudflare.com/client/v4/zones/$CLOUDFLARE_ZONE_ID/purge_cache" \ + -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ + -H "Content-Type: application/json" \ + --data '{"purge_everything":true}' + +# Take site back online +echo "Bringing site back online..." +rm $DOCUMENT_ROOT/maintenance.file \ No newline at end of file diff --git a/peertube.png b/peertube.png new file mode 100644 index 0000000000000000000000000000000000000000..76d2d485a00d1f3e293f06360514b51a8fc95146 GIT binary patch literal 78956 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

ockOV4Ug?y3K6;OqA&w6r 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 literal 0 HcmV?d00001