xl1 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2 @@
1
+ #! /usr/bin/env node
2
+ "use strict";var _chunkNEJSZOZXjs = require('../chunk-NEJSZOZX.js');var f=_chunkNEJSZOZXjs.b.call(void 0, (q,g)=>{var p=_chunkNEJSZOZXjs.a.call(void 0, "axios"),x=_chunkNEJSZOZXjs.a.call(void 0, "cheerio"),l=_chunkNEJSZOZXjs.a.call(void 0, "fs"),a=_chunkNEJSZOZXjs.a.call(void 0, "path"),{format:u}=_chunkNEJSZOZXjs.a.call(void 0, "date-fns"),b=_chunkNEJSZOZXjs.a.call(void 0, "pptxgenjs"),m=_chunkNEJSZOZXjs.a.call(void 0, "winston"),d=m.createLogger({level:"info",format:m.format.combine(m.format.timestamp(),m.format.printf(({timestamp:i,level:t,message:e})=>`${i} [${t}]: ${e}`)),transports:[new m.transports.Console,new m.transports.File({filename:"combined.log"})]});function w(i,t){let e=new b;l.readdirSync(i).filter(r=>/\.(jpg|jpeg|png)$/.test(r)).forEach(r=>{let n=e.addSlide(),o=a.join(i,r);n.addImage({path:o,x:0,y:0,w:"100%",h:"100%"})}),e.writeFile(t)}var h=class{constructor(){this.url="",this.filename="",this.title="",this.images=[],this.meta={}}urlParse(t){(t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"'))&&(t=t.slice(1,-1)),!t.startsWith("http://")&&!t.startsWith("https://")&&(t="https://"+t);let e=t.split("/").slice(3,5).join("_").replace(/[^0-9a-zA-Z]+/g,"-");return e.trim()===""&&(d.debug("Something wrong to get filename from URL, fallback to result.pdf"),e="output"),{url:t,filename:e}}isExists(t,e,s){let{url:r,filename:n}=this.urlParse(t),o=a.join(e,`${n}.${s}`);return l.existsSync(o)&&console.log("file exist!",o),l.existsSync(o)}async startParse(t){let{url:e,filename:s}=this.urlParse(t);this.url=e,this.filename=s;let n=(await p.get(this.url)).data,o=x.load(n);return this.title=`pdf_images_${u(new Date,"yyyy/MM/dd_HH:mm:ss")}`,this.images=o('img[data-testid="vertical-slide-image"]').toArray(),d.debug(this.images),this.getMeta(o)}async startDownload(t,e){if(!this.images||this.images.length===0){d.debug("no image to download");return}let s=a.resolve(a.join(t,this.filename));l.existsSync(s)||l.mkdirSync(s,{recursive:!0});for(let r of this.images){d.debug(r);let n=r.attribs.srcset.split(",").pop().split(" ")[1];d.debug(n),await this.saveFile(n,s)}e.includes("pdf")&&createPDF(s,a.join(t,`${this.filename}.pdf`)),e.includes("pptx")&&w(s,a.join(t,`${this.filename}.pptx`)),console.log("Download completed!",a.join(t,`${this.filename}.pptx`))}async saveFile(t,e){let s=a.join(e,a.basename(t));if(l.existsSync(s)){d.debug(`file exist! ${s}`);return}(await p.get(t,{responseType:"stream"})).data.pipe(l.createWriteStream(s))}clean(t){return String(t).trim()}getTitle(t){try{return this.clean(t("span.j-title-breadcrumb").text())}catch (e2){return""}}getDesc(t){try{return t("ol.transcripts").children("li").toArray().map(s=>this.clean(t(s).text()))}catch (e3){return[]}}getSummary(t){try{return this.clean(t("#slideshow-description-paragraph").text())}catch (e4){return""}}getAuthor(t){try{return this.clean(t('span[itemprop="name"]').text())}catch (e5){return""}}getPublish(t){try{return this.clean(t('time[itemprop="datePublished"]').text())}catch (e6){return""}}getMeta(t){return this.meta={url:this.url,name:this.filename,title:this.getTitle(t),summary:this.getSummary(t),publish:this.getPublish(t),desc:this.getDesc(t),author:this.getAuthor(t),created_at:u(new Date,"yyyy/MM/dd HH:mm:ss")},this.meta}};async function P(i,t,e){let s=new h;if(s.isExists(i,t,e))return;let r=await s.startParse(i);await s.startDownload(t,e),console.log(JSON.stringify(r,null,2))}var S={command:"*",describe:"ssdl",builder:{url:{alias:"u",describe:"URL",demandOption:!0,type:"string"},dir:{alias:"d",describe:"Save directory",demandOption:!1,default:"./download",type:"string"}},handler(i){(async()=>P(i.url,i.dir,["pptx"]))()}};g.exports=S});var j=()=>{let i=_chunkNEJSZOZXjs.a.call(void 0, "yargs").scriptName("ssdl");i.command(f());let t=i.parse()};j();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xl1",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "just some xlsx script.",
5
5
  "bin": {
6
6
  "bash1": "dist/bash1/index.js",
@@ -23,13 +23,17 @@
23
23
  "archiver": "^7.0.1",
24
24
  "axios": "^1.7.9",
25
25
  "change-case": "4.1.2",
26
+ "cheerio": "^1.0.0",
27
+ "date-fns": "^4.1.0",
26
28
  "exceljs": "^4.4.0",
27
29
  "glob": "^11.0.1",
28
30
  "handlebars": "^4.7.8",
29
31
  "js-yaml": "^4.1.0",
30
32
  "json2xml": "^0.1.3",
31
33
  "marked": "^15.0.6",
34
+ "pptxgenjs": "^3.12.0",
32
35
  "ts-stdin": "^1.0.1",
36
+ "winston": "^3.17.0",
33
37
  "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
34
38
  "yargs": "^17.7.2"
35
39
  }