From 6070cf4bd3b79b92e4e1668e88f18e85a943571f Mon Sep 17 00:00:00 2001 From: Felix Albrigtsen Date: Thu, 17 Feb 2022 15:58:25 +0100 Subject: [PATCH] Lagt til hackekveld fjerdehver uke --- inc/include.php | 1 + src/pvv/side/social/hackekveldactivity.php | 40 +++++++++++++++++++ src/pvv/side/social/hackekveldevent.php | 45 ++++++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 src/pvv/side/social/hackekveldactivity.php create mode 100644 src/pvv/side/social/hackekveldevent.php diff --git a/inc/include.php b/inc/include.php index b0289b6..c841efa 100644 --- a/inc/include.php +++ b/inc/include.php @@ -27,6 +27,7 @@ use \pvv\side\Agenda; $agenda = new \pvv\side\Agenda([ // new \pvv\side\social\NerdepitsaActivity, // new \pvv\side\social\AnimekveldActivity, + new \pvv\side\social\HackekveldActivity, new \pvv\side\social\DriftkveldActivity, new \pvv\side\DBActivity($pdo), ]); diff --git a/src/pvv/side/social/hackekveldactivity.php b/src/pvv/side/social/hackekveldactivity.php new file mode 100644 index 0000000..2703229 --- /dev/null +++ b/src/pvv/side/social/hackekveldactivity.php @@ -0,0 +1,40 @@ +format('H') > 18 || $date->format('H') == 17 && $date->format('i') > 30) + return $this->nextDate($date->add(new DateInterval('P1D'))->setTime(18, 15, 0)); + $date = $date->setTime(16, 15, 0); + if ($date->format('N') != 6) + return $this->nextDate($date->add(new DateInterval('P1D'))); + if ($date->format('W') % 4 - 3) + return $this->nextDate($date->add(new DateInterval('P7D'))); + return $date; + } + + public function prevDate(DateTimeImmutable $date) { + if ($date->format('H') < 17 || $date->format('H') == 18 && $date->format('i') < 30) + return $this->prevDate($date->sub(new DateInterval('P1D'))->setTime(18, 15, 0)); + $date = $date->setTime(18, 15, 0); + if ($date->format('N') != 6) + return $this->prevDate($date->sub(new DateInterval('P1D'))); + if ($date->format('W') % 4 - 3) + return $this->prevDate($date->sub(new DateInterval('P7D'))); + return $date; + } + + public function getNextEventFrom(DateTimeImmutable $date) /* : Event */ { + return new HackekveldEvent($this->nextDate($date)); + } + + public function getPreviousEventFrom(DateTimeImmutable $date) /* : Event */ { + return new HackekveldEvent($this->prevDate($date)); + } + +} diff --git a/src/pvv/side/social/hackekveldevent.php b/src/pvv/side/social/hackekveldevent.php new file mode 100644 index 0000000..74bea7f --- /dev/null +++ b/src/pvv/side/social/hackekveldevent.php @@ -0,0 +1,45 @@ +getStart()->add(new DateInterval('PT4H1800S')); + } + + public function getName() /* : string */ { + return "Hackekveld"; + } + + public function getLocation() /* : Location */ { + return "Terminalrommet / Discord / IRC"; + } + + public function getOrganiser() /* : User */ { + return "PVV"; + } + + public function getURL() /* : string */ { + return '#'; + } + + public function getImageURL() { + return '/pvv-logo.png'; + } + + public function getDescription() { + return [ + 'Mange PVV-medlemmer liker å programmere.', + 'Hvis du også liker å programmere, så bli med! Her kan du jobbe med dine egne prosjekter eller starte noe med andre nerder her på huset. Vi møtes for en hyggelig prat, mye god programmering og delsponset pizza.' + ]; + } + + public function getColor() { + return "#35a"; + } + +} -- 2.44.1