|
|
@@ -124,30 +124,28 @@ trait MonitorrHomepageItem
|
|
|
// This section grabs the names of all services by regex
|
|
|
$services = [];
|
|
|
$servicesMatch = [];
|
|
|
- $servicePattern = '/<div id="servicetitle"><div>(.*)<\/div><\/div><div class="btnonline">Online<\/div><\/a><\/div><\/div>|<div id="servicetitleoffline".*><div>(.*)<\/div><\/div><div class="btnoffline".*>Offline<\/div><\/div><\/div>|<div id="servicetitlenolink".*><div>(.*)<\/div><\/div><div class="btnonline".*>Online<\/div><\/div><\/div>|<div id="servicetitle"><div>(.*)<\/div><\/div><div class="btnunknown">/';
|
|
|
+ $servicePattern = '/<div id="servicetitle(?:offline|nolink)?".*><div>(.*)<\/div><\/div><div class="(?:btnonline|btnoffline|btnunknown)".*>(Online|Offline|Unresponsive)<\/div>(:?<\/a>)?<\/div><\/div>/';
|
|
|
preg_match_all($servicePattern, $html, $servicesMatch);
|
|
|
- $services = array_filter($servicesMatch[1]) + array_filter($servicesMatch[2]) + array_filter($servicesMatch[3]) + array_filter($servicesMatch[4]);
|
|
|
+ $services = array_filter($servicesMatch[1]);
|
|
|
+ $status = array_filter($servicesMatch[2]);
|
|
|
$statuses = [];
|
|
|
foreach ($services as $key => $service) {
|
|
|
- $statusPattern = '/' . $service . '<\/div><\/div><div class="btnonline">(Online)<\/div>|' . $service . '<\/div><\/div><div class="btnoffline".*>(Offline)<\/div><\/div><\/div>|' . $service . '<\/div><\/div><div class="btnunknown">(.*)<\/div><\/a>/';
|
|
|
- $status = [];
|
|
|
- preg_match($statusPattern, $html, $status);
|
|
|
- $statuses[$service] = $status;
|
|
|
- foreach ($status as $match) {
|
|
|
- if ($match == 'Online') {
|
|
|
- $statuses[$service] = [
|
|
|
- 'status' => true
|
|
|
- ];
|
|
|
- } else if ($match == 'Offline') {
|
|
|
- $statuses[$service] = [
|
|
|
- 'status' => false
|
|
|
- ];
|
|
|
- } else if ($match == 'Unresponsive') {
|
|
|
- $statuses[$service] = [
|
|
|
- 'status' => 'unresponsive'
|
|
|
- ];
|
|
|
- }
|
|
|
- }
|
|
|
+ $match = $status[$key];
|
|
|
+ $statuses[$service] = $match;
|
|
|
+ if ($match == 'Online') {
|
|
|
+ $statuses[$service] = [
|
|
|
+ 'status' => true
|
|
|
+ ];
|
|
|
+ } else if ($match == 'Offline') {
|
|
|
+ $statuses[$service] = [
|
|
|
+ 'status' => false
|
|
|
+ ];
|
|
|
+ } else if ($match == 'Unresponsive') {
|
|
|
+ $statuses[$service] = [
|
|
|
+ 'status' => 'unresponsive'
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
$statuses[$service]['sort'] = $key;
|
|
|
$imageMatch = [];
|
|
|
$imgPattern = '/assets\/img\/\.\.(.*)" class="serviceimg" alt=.*><\/div><\/div><div id="servicetitle"><div>' . $service . '|assets\/img\/\.\.(.*)" class="serviceimg imgoffline" alt=.*><\/div><\/div><div id="servicetitleoffline".*><div>' . $service . '|assets\/img\/\.\.(.*)" class="serviceimg" alt=.*><\/div><\/div><div id="servicetitlenolink".*><div>' . $service . '/';
|