aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--command/download.php32
-rw-r--r--config.php2
-rw-r--r--model/Conference.php16
-rw-r--r--model/Conferences.php2
4 files changed, 39 insertions, 13 deletions
diff --git a/command/download.php b/command/download.php
index 8cc2f53..cb0987d 100644
--- a/command/download.php
+++ b/command/download.php
@@ -15,14 +15,32 @@ if(isset($conf['REQUIRE_USER']))
}
}
-foreach (Conferences::getConferences() as $conference)
+$conferences = Conferences::getConferences();
+
+if(isset($conf['MAX_CONFERENCE_AGE']))
{
- stdout('== %s ==', $conference->getSlug());
+ $months = intval($conf['MAX_CONFERENCE_AGE']);
+ $conferencesAfter = new DateTime();
+ $conferencesAfter->sub(new DateInterval('P'.$months.'D'));
- if(isset($conf['MAX_CONFERENCE_AGE']))
- {
- date_diff()
- return time() >= $this->endsAt();
- }
+ stdout('Filtering before %s', $conferencesAfter->format('Y-m-d'));
+ $conferences = array_filter($conferences, function($conference) use ($conferencesAfter) {
+ $isBefore = $conference->endsAt() < $conferencesAfter;
+
+ if($isBefore) {
+ stdout(
+ ' %s: %s',
+ $conference->endsAt()->format('Y-m-d'),
+ $conference->getSlug()
+ );
+ }
+ return !$isBefore;
+ });
+}
+
+stdout('');
+foreach ($conferences as $conference)
+{
+ stdout('== %s ==', $conference->getSlug());
}
diff --git a/config.php b/config.php
index 57be966..1b5e84f 100644
--- a/config.php
+++ b/config.php
@@ -61,5 +61,5 @@ $GLOBALS['CONFIG']['DOWNLOAD'] = [
*
* Auskommentieren, um alle Konferenzen zu beachten
*/
- 'MAX_CONFERENCE_AGE' => 30 /* Tage */,
+ 'MAX_CONFERENCE_AGE' => 14 /* Tage */,
];
diff --git a/model/Conference.php b/model/Conference.php
index 07d72dd..ae5ab41 100644
--- a/model/Conference.php
+++ b/model/Conference.php
@@ -33,11 +33,17 @@ class Conference extends ModelBase
}
public function startsAt() {
- return $this->get('CONFERENCE.STARTS_AT');
+ if(!$this->has('CONFERENCE.STARTS_AT'))
+ return null;
+
+ return DateTime::createFromFormat('U', $this->get('CONFERENCE.STARTS_AT'));
}
public function endsAt() {
- return $this->get('CONFERENCE.ENDS_AT');
+ if(!$this->has('CONFERENCE.ENDS_AT'))
+ return null;
+
+ return DateTime::createFromFormat('U', $this->get('CONFERENCE.ENDS_AT'));
}
public function hasBegun() {
@@ -62,7 +68,8 @@ class Conference extends ModelBase
}
if($this->has('CONFERENCE.STARTS_AT')) {
- return time() >= $this->get('CONFERENCE.STARTS_AT');
+ $now = new DateTime('now');
+ return $now >= $this->startsAt();
} else {
return true;
}
@@ -84,7 +91,8 @@ class Conference extends ModelBase
}
if($this->has('CONFERENCE.ENDS_AT')) {
- return time() >= $this->get('CONFERENCE.ENDS_AT');
+ $now = new DateTime('now');
+ return $now >= $this->endsAt();
} else {
return false;
}
diff --git a/model/Conferences.php b/model/Conferences.php
index 2dc9f35..8de4029 100644
--- a/model/Conferences.php
+++ b/model/Conferences.php
@@ -48,7 +48,7 @@ class Conferences
$sorted = Conferences::getConferences();
usort($sorted, function($a, $b) {
- return $b->startsAt() - $a->endsAt();
+ return $b->startsAt() > $a->endsAt() ? 1 : -1;
});
return $sorted;