xl1 0.0.9 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,2 +1,3 @@
1
- "use strict";var _chunkNEJSZOZXjs = require('../chunk-NEJSZOZX.js');var o=_chunkNEJSZOZXjs.a.call(void 0, "fs"),f=_chunkNEJSZOZXjs.a.call(void 0, "archiver"),r=_chunkNEJSZOZXjs.a.call(void 0, "path"),u=_chunkNEJSZOZXjs.a.call(void 0, "axios");async function g(e,t=!1){let s=(e==="."?r.basename(process.cwd()):r.basename(e))+".zip",n=r.join(e,s);o.existsSync(n)&&o.unlinkSync(n);let i=o.createWriteStream(n),c=f("zip",{zlib:{level:9}});c.pipe(i);let p=r.join(e,".gitignore");if(t&&o.existsSync(p)){let d=o.readFileSync(p,"utf8").split(`
2
- `).filter(l=>l&&!l.startsWith("#")).map(l=>`**/${l}`);c.glob("**/*",{cwd:e,ignore:d})}else c.glob("**/*",{cwd:e,ignore:["**/node_modules/**","**/py_modules/**","**/vendor/**","**/.ipynb_checkpoints/**","**/.nuxt/**","**/tmp/**","**/dist/**","**/cache/**","**/.angular/**","**/.cache/**","**/.sfdx/**","**/.sf/**"]});return await c.finalize(),n}async function m(e,t,s="#general"){let n=new FormData;n.append("content",o.createReadStream(e)),n.append("channels",s),n.append("token",t),n.append("filename",r.basename(e)),n.append("initial_comment",r.basename(e)),u.post("https://slack.com/api/files.upload",n).then(i=>{i.data.ok?console.log("Successfully",e):console.error(i.data)}).catch(i=>{console.error("Error sending request:",i)})}var y={command:"*",describe:"jsss",builder:{file:{alias:"f",describe:"file or directory",type:"string",default:"."},gitignore:{alias:"g",describe:"Use .gitignore patterns",type:"boolean",default:!1},token:{alias:"t",describe:"token",type:"string",default:null},channel:{alias:"c",describe:"channel",type:"string",default:"#general"}},handler(e){(async()=>{try{let t=e.token||process.env.SLACK_TOKEN;t||(console.error("Error: token is required"),process.exit(1));let s,n=o.statSync(e.file);n.isDirectory()?s=await g(e.file,e.gitignore):n.isFile()?s=e.file:(console.error("Error: path must be a directory or file"),process.exit(1)),await m(s,t,e.channel)}catch(t){console.error("Error:",t.message),process.exit(1)}})()}},h=()=>{let e=_chunkNEJSZOZXjs.a.call(void 0, "yargs").scriptName("jsss");e.command(y);let t=e.parse()};h();
1
+ #! /usr/bin/env node
2
+ "use strict";var _chunkNEJSZOZXjs = require('../chunk-NEJSZOZX.js');var u=_chunkNEJSZOZXjs.b.call(void 0, (q,d)=>{var o=_chunkNEJSZOZXjs.a.call(void 0, "fs"),y=_chunkNEJSZOZXjs.a.call(void 0, "archiver"),i=_chunkNEJSZOZXjs.a.call(void 0, "path"),b=_chunkNEJSZOZXjs.a.call(void 0, "axios");async function h(e,n=!1,r=null){let s=(e==="."?i.basename(process.cwd()):i.basename(e))+".zip",t=i.join(e,s);o.existsSync(t)&&o.unlinkSync(t);let f=o.createWriteStream(t),c=y("zip",{zlib:{level:9},forceZip64:!1,password:r});c.pipe(f);let p=i.join(e,".gitignore");if(n&&o.existsSync(p)){let g=o.readFileSync(p,"utf8").split(`
3
+ `).filter(l=>l&&!l.startsWith("#")).map(l=>`**/${l}`);c.glob("**/*",{cwd:e,ignore:g})}else c.glob("**/*",{cwd:e,ignore:["**/node_modules/**","**/py_modules/**","**/vendor/**","**/.ipynb_checkpoints/**","**/.nuxt/**","**/tmp/**","**/dist/**","**/cache/**","**/.angular/**","**/.cache/**","**/.sfdx/**","**/.sf/**","**/.DS_Store","**/.AppleDouble","**/.LSOverride"]});return await c.finalize(),t}async function S(e,n,r="#general"){let s=new FormData;s.append("content",o.createReadStream(e)),s.append("channels",r),s.append("token",n),s.append("filename",i.basename(e)),s.append("initial_comment",i.basename(e)),b.post("https://slack.com/api/files.upload",s).then(t=>{t.data.ok?console.log("Successfully",e):console.error(t.data)}).catch(t=>{console.error("Error sending request:",t)})}var k={command:"*",describe:"jsss",builder:{file:{alias:"f",describe:"file or directory",type:"string",default:"."},gitignore:{alias:"g",describe:"Use .gitignore patterns",type:"boolean",default:!1},token:{alias:"t",describe:"token",type:"string",default:null},channel:{alias:"c",describe:"channel",type:"string",default:"#general"},password:{alias:"p",describe:"password",type:"string",default:null}},handler(e){(async()=>{try{let n=e.token||process.env.SLACK_TOKEN;n||(console.error("Error: token is required"),process.exit(1));let r,s=o.statSync(e.file);s.isDirectory()?r=await h(e.file,e.gitignore,e.password):s.isFile()?r=e.file:(console.error("Error: path must be a directory or file"),process.exit(1)),await S(r,n,e.channel)}catch(n){console.error("Error:",n.message),process.exit(1)}})()}};d.exports=k});var w=()=>{let e=_chunkNEJSZOZXjs.a.call(void 0, "yargs").scriptName("jsss");e.command(u());let n=e.parse()};w();
@@ -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.0.9",
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
  }