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

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/sms.picotech.app/public_html/vendor/vonage/client-core/src/ProactiveConnect/   drwxr-xr-x
Free 28.75 GB of 117.98 GB (24.37%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Client.php (4.69 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Vonage\ProactiveConnect;

use 
Laminas\Diactoros\Stream;
use 
Vonage\Client\APIClient;
use 
Vonage\Client\APIResource;
use 
Vonage\Entity\IterableAPICollection;
use 
Vonage\ProactiveConnect\Objects\ListBaseObject;
use 
Vonage\ProactiveConnect\Objects\ListItem;

class 
Client implements APIClient
{
    
/**
     * @deprecated The ProactiveConnect API is being sunset and this will be removed in the next major version
     */
    
public function __construct(protected APIResource $api)
    {
        
trigger_error(
            
'The ProactiveConnect API is being sunset and this will be removed in the next major version',
            
E_USER_DEPRECATED
        
);
    }

    public function 
getAPIResource(): APIResource
    
{
        return 
$this->api;
    }

    public function 
getLists(?int $page null, ?int $pageSize null): IterableAPICollection
    
{
        
$this->api->setCollectionName('lists');
        
$lists $this->api->search(null'/lists');
        
$lists->setPageIndexKey('page');

        if (
$page) {
            
$lists->setPage($page);
        }

        if (
$pageSize) {
            
$lists->setSize($pageSize);
        }

        
// This API has the potential to have a lot of data. Defaulting to
        // Auto advance off, you can override in the return object
        
$lists->setAutoAdvance(false);

        return 
$lists;
    }

    public function 
createList(ListBaseObject $request): ?array
    {
        return 
$this->api->create($request->toArray(), '/lists');
    }

    public function 
getListById(string $id)
    {
        return 
$this->api->get('lists/' $id);
    }

    public function 
updateList(string $idListBaseObject $request): ?array
    {
        return 
$this->api->update('lists/' $id$request->toArray());
    }

    public function 
deleteList(string $id): ?array
    {
        return 
$this->api->delete('lists/' $id);
    }

    public function 
clearListItemsById(string $id): ?array
    {
        return 
$this->api->create([], '/lists/' $id '/clear');
    }

    public function 
fetchListItemsById(string $id): ?array
    {
        return 
$this->api->create([], '/lists/' $id '/fetch');
    }

    public function 
getItemsByListId(string $id, ?int $page null, ?int $pageSize null): IterableAPICollection
    
{
        
$this->api->setCollectionName('items');
        
$lists $this->api->search(null'/lists/' $id '/items');

        
$lists->setPageIndexKey('page');

        if (
$page) {
            
$lists->setPage($page);
        }

        if (
$pageSize) {
            
$lists->setSize($pageSize);
        }

        
// This API has the potential to have a lot of data. Defaulting to
        // Auto advance off, you can override in the return object
        
$lists->setAutoAdvance(false);

        return 
$lists;
    }

    public function 
createItemOnListId(string $idListItem $listItem): ?array
    {
        return 
$this->api->create($listItem->toArray(), '/lists/' $id '/items');
    }

    public function 
getListCsvFileByListId(string $id): mixed
    
{
        return 
$this->api->get('lists/' $id '/items/download', [], ['Content-Type' => 'text/csv'], false);
    }

    public function 
getItemByIdandListId(string $itemIdstring $listId)
    {
        return 
$this->api->get('lists/' $listId '/items/' $itemId);
    }

    public function 
updateItemByIdAndListId(string $itemIdstring $listIdListItem $listItem): ?array
    {
        return 
$this->api->update('/lists' $listId '/items/' $itemId$listItem->toArray());
    }

    public function 
deleteItemByIdAndListId(string $itemIdstring $listId): ?array
    {
        return 
$this->api->delete('lists/' $listId '/items/' $itemId);
    }

    public function 
uploadCsvToList(string $filenamestring $listId)
    {
        
$stream = new Stream(fopen($filename'r'));

        
$multipart = [
            [
                
'name' => 'file',
                
'contents' => $stream,
                
'filename' => basename($filename)
            ]
        ];

        return 
$this->api->create(
            [
$multipart],
            
'/lists/' $listId '/items/import',
            [
'Content-Type' => 'multipart/form-data']
        );
    }

    public function 
getEvents(?int $page null, ?int $pageSize null)
    {
        
$this->api->setCollectionName('events');
        
$lists $this->api->search(null'/events');

        
$lists->setPageIndexKey('page');

        if (
$page) {
            
$lists->setPage($page);
        }

        if (
$pageSize) {
            
$lists->setSize($pageSize);
        }

        
// This API has the potential to have a lot of data. Defaulting to
        // Auto advance off, you can override in the return object
        
$lists->setAutoAdvance(false);

        return 
$lists;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

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