1
0
mirror of https://git.sr.ht/~cadence/cloudtube synced 2024-11-21 23:27:30 +00:00

Compare commits

..

2 Commits

Author SHA1 Message Date
Cadence Ember
9f7b1bbcae Update dependencies (now lockfile v3)
The new lockfile version appears to still be readable by old versions
of npm that only support version 1.
2023-01-15 22:07:29 +13:00
Cadence Ember
3d5927ab28 Optional no ssl flag using x-insecure header 2023-01-15 22:06:31 +13:00
11 changed files with 656 additions and 302 deletions

View File

@ -18,7 +18,7 @@ module.exports = [
if (data.error) {
const statusCode = data.missing ? 410 : 500
const subscribed = user.isSubscribed(id)
return render(statusCode, "pug/channel-error.pug", {settings, data, subscribed, instanceOrigin})
return render(statusCode, "pug/channel-error.pug", {req, settings, data, subscribed, instanceOrigin})
}
// everything is fine
@ -35,7 +35,7 @@ module.exports = [
})
}
const subscribed = user.isSubscribed(data.authorId)
return render(200, "pug/channel.pug", {settings, data, subscribed, instanceOrigin})
return render(200, "pug/channel.pug", {req, settings, data, subscribed, instanceOrigin})
}
}
]

View File

@ -55,7 +55,7 @@ module.exports = [
label = url.searchParams.get("label")
}
return render(200, "pug/filters.pug", {settings, categories, type, contents, label, referrer, filterMaxLength, regexpEnabledText})
return render(200, "pug/filters.pug", {req, settings, categories, type, contents, label, referrer, filterMaxLength, regexpEnabledText})
}
},
{
@ -104,7 +104,7 @@ module.exports = [
const user = getUser(req)
const categories = getCategories(user)
const settings = user.getSettingsOrDefaults()
return render(400, "pug/filters.pug", {settings, categories, type, contents, label, compileError, filterMaxLength, regexpEnabledText})
return render(400, "pug/filters.pug", {req, settings, categories, type, contents, label, compileError, filterMaxLength, regexpEnabledText})
})
.last(state => {
const {type, contents, label} = state

View File

@ -8,28 +8,28 @@ module.exports = [
const mobile = userAgent.toLowerCase().includes("mobile")
const user = getUser(req)
const settings = user.getSettingsOrDefaults()
return render(200, "pug/home.pug", {settings, mobile})
return render(200, "pug/home.pug", {req, settings, mobile})
}
},
{
route: "/(?:js-)?licenses", methods: ["GET"], code: async ({req}) => {
const user = getUser(req)
const settings = user.getSettingsOrDefaults()
return render(200, "pug/licenses.pug", {settings})
return render(200, "pug/licenses.pug", {req, settings})
}
},
{
route: "/cant-think", methods: ["GET"], code: async ({req}) => {
const user = getUser(req)
const settings = user.getSettingsOrDefaults()
return render(200, "pug/cant-think.pug", {settings})
return render(200, "pug/cant-think.pug", {req, settings})
}
},
{
route: "/privacy", methods: ["GET"], code: async ({req}) => {
const user = getUser(req)
const settings = user.getSettingsOrDefaults()
return render(200, "pug/privacy.pug", {settings})
return render(200, "pug/privacy.pug", {req, settings})
}
}
]

View File

@ -26,7 +26,7 @@ module.exports = [
const filters = user.getFilters()
results = converters.applyVideoFilters(results, filters).videos
return render(200, "pug/search.pug", {settings, url, query, results, instanceOrigin})
return render(200, "pug/search.pug", {req, settings, url, query, results, instanceOrigin})
}
}
]

View File

@ -23,7 +23,7 @@ module.exports = [
const user = getUser(req)
const settings = user.getSettings()
const instances = instancesList.get()
return render(200, "pug/settings.pug", {constants, user, settings, instances})
return render(200, "pug/settings.pug", {req, constants, user, settings, instances})
}
},
{

View File

@ -39,7 +39,7 @@ module.exports = [
}
const settings = user.getSettingsOrDefaults()
const instanceOrigin = settings.instance
return render(200, "pug/subscriptions.pug", {url, settings, hasSubscriptions, videos, channels, missingChannelCount, refreshed, timeToPastText, instanceOrigin})
return render(200, "pug/subscriptions.pug", {req, url, settings, hasSubscriptions, videos, channels, missingChannelCount, refreshed, timeToPastText, instanceOrigin})
}
}
]

View File

@ -3,8 +3,8 @@ const {render} = require("pinski/plugins")
module.exports = [
{
route: "/takedown", methods: ["GET"], code: async () => {
return render(200, "pug/takedown.pug", {constants})
route: "/takedown", methods: ["GET"], code: async ({req}) => {
return render(200, "pug/takedown.pug", {req, constants})
}
}
]

View File

@ -111,7 +111,7 @@ module.exports = [
// Check if playback is allowed
const videoTakedownInfo = db.prepare("SELECT id, org, url FROM TakedownVideos WHERE id = ?").get(id)
if (videoTakedownInfo) {
return render(451, "pug/takedown-video.pug", Object.assign({settings}, videoTakedownInfo))
return render(451, "pug/takedown-video.pug", Object.assign({req, settings}, videoTakedownInfo))
}
// Media fragment
@ -129,7 +129,7 @@ module.exports = [
// Work out how to fetch the video
if (req.method === "GET") {
if (settings.local) { // skip to the local fetching page, which will then POST video data in a moment
return render(200, "pug/local-video.pug", {settings, id})
return render(200, "pug/local-video.pug", {req, settings, id})
}
var instanceOrigin = settings.instance
var outURL = `${instanceOrigin}/api/v1/videos/${id}`
@ -153,7 +153,7 @@ module.exports = [
// automatically add the entry to the videos list, so it won't be fetched again
const args = {id, ...channelTakedownInfo}
db.prepare("INSERT INTO TakedownVideos (id, org, url) VALUES (@id, @org, @url)").run(args)
return render(451, "pug/takedown-video.pug", Object.assign({settings}, channelTakedownInfo))
return render(451, "pug/takedown-video.pug", Object.assign({req, settings}, channelTakedownInfo))
}
// process stream list ordering
@ -199,7 +199,7 @@ module.exports = [
}
return render(200, "pug/video.pug", {
url, video, formats, subscribed, instanceOrigin, mediaFragment, autoplay, continuous,
req, url, video, formats, subscribed, instanceOrigin, mediaFragment, autoplay, continuous,
sessionWatched, sessionWatchedNext, settings
})
@ -225,7 +225,7 @@ module.exports = [
// Create appropriate formatted message
const message = render(0, `pug/errors/${errorType}.pug`, locals).content
return render(500, "pug/video.pug", {video: {videoId: id}, error: true, message, settings})
return render(500, "pug/video.pug", {video: {videoId: id}, error: true, message, req, settings})
}
}
}

915
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -15,6 +15,6 @@
"denque": "^1.5.1",
"mixin-deep": "^2.0.1",
"node-fetch": "^2.6.6",
"pinski": "git+https://git.sr.ht/~cadence/nodejs-pinski#e22095172a061a8271e28272e2e481d541ea6725"
"pinski": "git+https://git.sr.ht/~cadence/nodejs-pinski#9653807f309aee34c8c63ce4e6ee760cccbfdf0d"
}
}

View File

@ -26,7 +26,10 @@ html
if showNav
nav.main-nav
.links
a(href="/").link.home CloudTube
if req && req.headers && "x-insecure" in req.headers
a(href="/").link.home CloudTube - Insecure
else
a(href="/").link.home CloudTube
a(href="/subscriptions" title="Subscriptions").link.icon-link
!= icons.get("subscriptions")
a(href="/settings" title="Settings").link.icon-link