1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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 on %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})";
}
}
|