!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/space/routes/   drwxr-xr-x
Free 13.2 GB of 57.97 GB (22.77%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     invoice.js (3.37 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import express from 'express';
var invoice = express.Router();
import { PutObjectCommand ,ListObjectsV2Command,DeleteObjectsCommand} from "@aws-sdk/client-s3";
import { s3Client } from ".././client.js";
import { chromium }  from 'playwright';
import Bull from 'bull';

var bucket="jiffp";
let bucketParams;
// const invoiceQueue = new Bull('invoice',
//     'redis://127.0.0.1:6379');

async function generate(folder_name,invoice_no,sale_id) {
    try {

        // const browser = await chromium.launch();
        // const context = await browser.newContext();
        // const page = await context.newPage();
        const browser = await chromium.launch({
            // headless: true,
            executablePath: '/usr/bin/chromium-browser',
            // args: ['--no-sandbox', '--disable-setuid-sandbox'], // Add necessary args
        });
    
        const page = await browser.newPage();
        // console.log(browser);
        await page.goto('https://jiff.businesscloud.xyz/jiff_dashboard/generate-pdf/'+sale_id,{ waitUntil: 'networkidle' });
        var image_file=await page.screenshot({ path: 'play.png' ,fullPage: true});
        var pdf_file=await page.pdf({ path: 'play.pdf',format: 'a4'});

        await browser.close();
        bucketParams = {
            Bucket: bucket,
            Key: folder_name+"/invoice/pdf/"+invoice_no+".pdf",
            Body: pdf_file,
            ContentType: "application/pdf",
            ACL: "public-read",
            Preview:pdf_file,
        };
        var re=await insert(bucketParams);
        bucketParams = {
            Bucket: bucket,
            Key: folder_name+"/invoice/images/"+invoice_no+".webp",
            Body: image_file,
            ContentType: "image/png",
            ACL: "public-read",
            Preview:image_file,
        };
        
        var re=await insert(bucketParams);
    } catch (error) {
        console.log(error.message);
    }
};
    // invoiceQueue.process(async function (job,done) {
    //     // Processors can also return promises instead of using the done callback
    //     // return pdfAsyncProcessor();
    //     // console.log(job.data);
    //     var res= await generate(job.data.folder_name,job.data.invoice_no,job.data.sale_id);
    //     if (res=="error") {
    //     done(new Error('error transcoding'));
    //     } else {
    //     done();
    //     }
    // });
invoice.post('/invoice', async function(req, res, next) {
    let folder_name=req.body.folder_name;
    let invoice_no=req.body.invoice_no;
    let sale_id=req.body.sale_id;
    // invoiceQueue.add({ folder_name: folder_name, invoice_no:invoice_no,sale_id:sale_id},{removeOnComplete:true,  removeOnFail:true,attempts: 3,
    // backoff: {
    //   type: 'exponential',
    //   delay: 5000,
    // },});
    await generate(folder_name,invoice_no,sale_id)
    res.locals.data={"message":"Invoice generated"};
    res.status(200).json(res.locals.data);
});
export const insert = async (bucketParams) => {
    try {
      const data = await s3Client.send(new PutObjectCommand(bucketParams));
      console.log(
        "Successfully uploaded object: " +
          bucketParams.Bucket +
          "/" +
          bucketParams.Key
      );
      return data;
    } catch (err) {
      console.log("Error ", err.message);
      return "error";
    }
};
export { invoice } 

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0048 ]--