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"; + } + +}