Skip to content

Commit

Permalink
[KilledbyMicrosoftBridge] New Bridge
Browse files Browse the repository at this point in the history
  • Loading branch information
tillcash authored Feb 7, 2024
1 parent 6878eb2 commit 95715d8
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions bridges/KilledbyMicrosoftBridge.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?php

class KilledbyMicrosoftBridge extends BridgeAbstract
{
const NAME = 'Killed by Microsoft Bridge';
const URI = 'https://killedbymicrosoft.info';
const DESCRIPTION = 'Lists recently discontinued Microsoft products';
const MAINTAINER = 'tillcash';

public function collectData()
{
// Fetch JSON data
$json = getContents('https://killedbymicrosoft.info/graveyard.json');

// Decode JSON data
$discontinuedServices = json_decode($json, true);

// Sort the array based on dateClose in descending order
usort($discontinuedServices, function ($a, $b) {
return strtotime($b['dateClose']) - strtotime($a['dateClose']);
});

// Slice the array to limit the number of items processed
$discontinuedServices = array_slice($discontinuedServices, 0, 15);

// Process each item
foreach ($discontinuedServices as $service) {
// Construct the title
$title = $this->formatTitle(
$service['name'],
$service['dateOpen'],
$service['dateClose']
);

// Construct the content
$content = sprintf(
'<p>%s</p><p>Scheduled Closure: %s</p>',
$service['description'],
$service['dateClose']
);

// Add the item to the feed
$this->items[] = [
'title' => $title,
'uid' => $service['slug'],
'uri' => $service['link'],
'content' => $content
];
}
}

private function formatTitle($name, $dateOpen, $dateClose)
{
// Extract years from dateOpen and dateClose
$yearOpen = date('Y', strtotime($dateOpen));
$yearClose = date('Y', strtotime($dateClose));

// Format the title
return "{$name} ({$yearOpen} - {$yearClose})";
}
}

0 comments on commit 95715d8

Please sign in to comment.