api: convert service config to JS and remove it from main config
This commit is contained in:
197
api/src/processing/service-config.js
Normal file
197
api/src/processing/service-config.js
Normal file
@@ -0,0 +1,197 @@
|
||||
import UrlPattern from "url-pattern";
|
||||
|
||||
export const audioIgnore = ["vk", "ok", "loom"];
|
||||
export const hlsExceptions = ["dailymotion", "vimeo", "rutube"];
|
||||
|
||||
export const services = {
|
||||
bilibili: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
"video/:comId",
|
||||
"_shortLink/:comShortLink",
|
||||
"_tv/:lang/video/:tvId",
|
||||
"_tv/video/:tvId"
|
||||
],
|
||||
subdomains: ["m"],
|
||||
},
|
||||
dailymotion: {
|
||||
enabled: true,
|
||||
patterns: ["video/:id"],
|
||||
},
|
||||
facebook: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
"_shortLink/:shortLink",
|
||||
":username/videos/:caption/:id",
|
||||
":username/videos/:id",
|
||||
"reel/:id",
|
||||
"share/:shareType/:id"
|
||||
],
|
||||
subdomains: ["web"],
|
||||
altDomains: ["fb.watch"],
|
||||
},
|
||||
instagram: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
"reels/:postId",
|
||||
":username/reel/:postId",
|
||||
"reel/:postId",
|
||||
"p/:postId",
|
||||
":username/p/:postId",
|
||||
"tv/:postId",
|
||||
"stories/:username/:storyId"
|
||||
],
|
||||
altDomains: ["ddinstagram.com"],
|
||||
},
|
||||
loom: {
|
||||
enabled: true,
|
||||
patterns: ["share/:id"],
|
||||
},
|
||||
ok: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
"video/:id",
|
||||
"videoembed/:id"
|
||||
],
|
||||
tld: "ru",
|
||||
},
|
||||
pinterest: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
"pin/:id",
|
||||
"pin/:id/:garbage",
|
||||
"url_shortener/:shortLink"
|
||||
],
|
||||
},
|
||||
reddit: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
"r/:sub/comments/:id/:title",
|
||||
"user/:user/comments/:id/:title"
|
||||
],
|
||||
subdomains: "*",
|
||||
},
|
||||
rutube: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
"video/:id",
|
||||
"play/embed/:id",
|
||||
"shorts/:id",
|
||||
"yappy/:yappyId",
|
||||
"video/private/:id?p=:key",
|
||||
"video/private/:id"
|
||||
],
|
||||
tld: "ru",
|
||||
},
|
||||
snapchat: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
":shortLink",
|
||||
"spotlight/:spotlightId",
|
||||
"add/:username/:storyId",
|
||||
"u/:username/:storyId",
|
||||
"add/:username",
|
||||
"u/:username"
|
||||
],
|
||||
subdomains: ["t", "story"],
|
||||
},
|
||||
soundcloud: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
":author/:song/s-:accessKey",
|
||||
":author/:song",
|
||||
":shortLink"
|
||||
],
|
||||
subdomains: ["on", "m"],
|
||||
},
|
||||
streamable: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
":id",
|
||||
"o/:id",
|
||||
"e/:id",
|
||||
"s/:id"
|
||||
],
|
||||
},
|
||||
tiktok: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
":user/video/:postId",
|
||||
":id",
|
||||
"t/:id",
|
||||
":user/photo/:postId",
|
||||
"v/:id.html"
|
||||
],
|
||||
subdomains: ["vt", "vm", "m"],
|
||||
},
|
||||
tumblr: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
"post/:id",
|
||||
"blog/view/:user/:id",
|
||||
":user/:id",
|
||||
":user/:id/:trackingId"
|
||||
],
|
||||
subdomains: "*",
|
||||
},
|
||||
twitch: {
|
||||
enabled: true,
|
||||
patterns: [":channel/clip/:clip"],
|
||||
tld: "tv",
|
||||
},
|
||||
twitter: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
":user/status/:id",
|
||||
":user/status/:id/video/:index",
|
||||
":user/status/:id/photo/:index",
|
||||
":user/status/:id/mediaviewer",
|
||||
":user/status/:id/mediaViewer"
|
||||
],
|
||||
subdomains: ["mobile"],
|
||||
altDomains: ["x.com", "vxtwitter.com", "fixvx.com"],
|
||||
},
|
||||
vine: {
|
||||
enabled: true,
|
||||
patterns: ["v/:id"],
|
||||
tld: "co",
|
||||
},
|
||||
vimeo: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
":id",
|
||||
"video/:id",
|
||||
":id/:password",
|
||||
"/channels/:user/:id"
|
||||
],
|
||||
subdomains: ["player"],
|
||||
bestAudio: "mp3",
|
||||
},
|
||||
vk: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
"video:userId_:videoId",
|
||||
"clip:userId_:videoId",
|
||||
"clips:duplicate?z=clip:userId_:videoId"
|
||||
],
|
||||
subdomains: ["m"],
|
||||
},
|
||||
youtube: {
|
||||
enabled: true,
|
||||
patterns: [
|
||||
"watch?v=:id",
|
||||
"embed/:id",
|
||||
"watch/:id"
|
||||
],
|
||||
subdomains: ["music", "m"],
|
||||
bestAudio: "opus",
|
||||
}
|
||||
}
|
||||
|
||||
Object.values(services).forEach(service => {
|
||||
service.patterns = service.patterns.map(
|
||||
pattern => new UrlPattern(pattern, {
|
||||
segmentValueCharset: UrlPattern.defaultOptions.segmentValueCharset + '@\\.'
|
||||
})
|
||||
)
|
||||
})
|
||||
Reference in New Issue
Block a user