diff --git a/src/modules/processing/match.js b/src/modules/processing/match.js index 5dfd2765..97ac7a07 100644 --- a/src/modules/processing/match.js +++ b/src/modules/processing/match.js @@ -24,6 +24,7 @@ import streamable from "./services/streamable.js"; import twitch from "./services/twitch.js"; import rutube from "./services/rutube.js"; import dailymotion from "./services/dailymotion.js"; +import nicovideo from "./services/nicovideo.js"; let freebind; @@ -185,6 +186,9 @@ export default async function(host, patternMatch, lang, obj) { case "dailymotion": r = await dailymotion(patternMatch); break; + case "nicovideo": + r = await nicovideo({ id: patternMatch.id }); + break; default: return createResponse("error", { t: loc(lang, 'ErrorUnsupported') diff --git a/src/modules/processing/services/nicovideo.js b/src/modules/processing/services/nicovideo.js new file mode 100644 index 00000000..db737535 --- /dev/null +++ b/src/modules/processing/services/nicovideo.js @@ -0,0 +1,4 @@ +// TODO @synzr implement nicovideo +export default function nicovideo() { + return { error: "ErrorEmptyDownload" }; +} diff --git a/src/modules/processing/servicesConfig.json b/src/modules/processing/servicesConfig.json index f714b827..65e7d864 100644 --- a/src/modules/processing/servicesConfig.json +++ b/src/modules/processing/servicesConfig.json @@ -110,6 +110,12 @@ "alias": "dailymotion videos", "patterns": ["video/:id"], "enabled": true + }, + "nicovideo": { + "alias": "niconico videos", + "tld": "jp", + "patterns": ["watch/:id"], + "enabled": true } } } diff --git a/src/modules/processing/servicesPatternTesters.js b/src/modules/processing/servicesPatternTesters.js index 25b8943a..cde8b820 100644 --- a/src/modules/processing/servicesPatternTesters.js +++ b/src/modules/processing/servicesPatternTesters.js @@ -54,4 +54,8 @@ export const testers = { "youtube": (patternMatch) => patternMatch.id?.length <= 11, + + "nicovideo": (patternMatch) => + // checking if this page is video and if identifier is number + patternMatch.id.startsWith("sm") && !isNaN(parseInt(patternMatch.id.substring(2), 10)) }