$episode->event()->associate($event);
$episode->title = $sgEntry['match1']['title'];
$start = Carbon::createFromFormat('Y-m-d\TH:i:sP', $sgEntry['when']);
- // if speedgaming is in DST, it fucks up the timestamp
- if (Carbon::now(new \DateTimeZone('America/Chicago'))->dst) {
- $start->add(1, 'hour');
+ if ($event->fix_timezone && !$episode->timezone_fix_override) {
+ $sg_zone = new \DateTimeZone('America/Detroit');
+ $event_zone = new \DateTimeZone($event->fix_timezone);
+ // if speedgaming is in DST, it fucks up the timestamp
+ if (Carbon::createFromTimestamp($start->timestamp, $sg_zone)->dst && !Carbon::createFromTimestamp($start->timestamp, $event_zone)->dst) {
+ $start->add(1, 'hour');
+ } else if (!Carbon::createFromTimestamp($start->timestamp, $sg_zone)->dst && Carbon::createFromTimestamp($start->timestamp, $event_zone)->dst) {
+ $start->sub(1, 'hour');
+ }
}
if (!$episode->start || $start->ne($episode->start)) {
$episode->start = $start;
$this->purgeChannels($episode, $sgEntry);
$channelIds = [];
foreach ($sgEntry['channels'] as $sgChannel) {
- if ($sgChannel['initials'] == 'NONE') continue;
+ if ($sgChannel['initials'] == 'NONE' || $sgChannel['name'] == 'Undecided, Not SG') continue;
try {
$channel = $this->syncChannel($episode, $sgChannel);
$channelIds[] = $channel->id;