@subtitles/cli
Version:
Your tool to query and download subtitles for your favorites TV Shows and movies. It searches according to your preferences, also it can scan your directory for video files and downloading the best match on the run
2 lines • 3.04 kB
JavaScript
;(()=>{var e={id:464,ids:[464]};e.modules={145:function(e,o,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(o,"__esModule",{value:!0});const t=s(996),n=r(s(3));(0,t.makeCommand)(n.default).parse(process.argv)},996:(e,o,s)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.makeCommand=o.makeCLI=void 0;const r=s(647);function t(){const e=new r.Command("search");return e.description("Search for movies and TV Shows by keyword, searching for the best match").option("-v, --verbose",'Make subtitle-finder to verbose during operation. Useful for debugging and see what\'s going on "under the hood"').argument("<keyword...>","keyword to search for").alias("query"),e}o.makeCLI=t,o.makeCommand=function(e){const o=t();return o.action(e),o}},3:function(e,o,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(o,"__esModule",{value:!0});const t=s(805),n=r(s(242)),a=r(s(674)),u=(0,r(s(682)).default)("cli:search");function l({id:e,title:o,releases:s,releasedAt:r,source:t,language:a,downloads:u,provider:l}){console.info("\n(%s) %s\n %s\n Releases: %s\n %s downloads / %s / %s\n %s\n\n ",e,n.default.green.bold(o),n.default.yellow(r?.toLocaleString()??"No Date"),s?.join("\n\t")??"No release. check the title",n.default.red.bold(u??"?"),n.default.red.bold(a),n.default.blue.underline(l),n.default.blue.underline(t))}o.default=async function(e){console.time("query"),u("keyword %o",e);const{credentials:{opensubtitles:o}}=a.default;let s;if(o.username&&o.password){const{username:e,password:r}=o;s={username:e,password:r}}try{const o=(0,t.factory)({opensubtitles:s}),r=(await Promise.allSettled(o.map((async o=>o.search({keyword:e.join(" ")}))))).reduce(((e,o)=>"rejected"===o.status?(u("Error searching provider\n%O",o.reason),e):(u("search sucessfuly:\n%O",o.value),e.concat(o.value))),[]);for(const e of r)l(e);console.info("found %d subtitles",r.length)}catch(e){console.error("couldn't query legendas.tv provider\n%o",e)}console.timeEnd("query")}},674:function(e,o,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(o,"__esModule",{value:!0});const t=s(334),n=(0,r(s(682)).default)("cli:env");(0,t.config)();const a={credentials:{legendastv:{username:process.env.LEGENDAS_TV_USERNAME,password:process.env.LEGENDAS_TV_PASSWORD},opensubtitles:{username:process.env.OPENSUBTITLE_USERNAME,password:process.env.OPENSUBTITLE_PASSWORD_MD5}},headless:!["0","false"].some((e=>e===process.env.HEADLESS))};for(const[e,o]of Object.entries(a.credentials))Object.values(o).every(Boolean)||n("wrong credentials for %s. Please set environment variable correctly",e);o.default=a},805:e=>{e.exports=require("@subtitles/providers")},242:e=>{e.exports=require("chalk")},647:e=>{e.exports=require("commander")},682:e=>{e.exports=require("debug")},334:e=>{e.exports=require("dotenv")}};var o=require("../runtime.js");o.C(e),o(o.s=145)})();