Fix: Add PHP 7.4 compatibility

- Changed PHP min-version from 8.0 to 7.4 in appinfo/info.xml
- Replaced all str_contains() calls with strpos() !== false
  - GoogleAnalyticsService.php: 1 instance
  - LLMService.php: 6 instances
- Verified no other PHP 8.0+ features in use
- Plugin now compatible with PHP 7.4 and PHP 8.0+
This commit is contained in:
WLTBAgent
2026-02-13 17:49:44 +00:00
parent 254c1488c9
commit d87a87b93a
3 changed files with 9 additions and 9 deletions

View File

@@ -22,7 +22,7 @@
<category>integration</category> <category>integration</category>
<dependencies> <dependencies>
<nextcloud min-version="25" max-version="26"/> <nextcloud min-version="25" max-version="26"/>
<php min-version="8.0"/> <php min-version="7.4"/>
</dependencies> </dependencies>
<repair-steps> <repair-steps>
<step>Repair steps not needed</step> <step>Repair steps not needed</step>

View File

@@ -176,7 +176,7 @@ class GoogleAnalyticsService {
$this->logger->error("Token refresh failed: {$e->getMessage()}"); $this->logger->error("Token refresh failed: {$e->getMessage()}");
// Check if it's an expired token error // Check if it's an expired token error
if (str_contains($e->getMessage(), 'invalid_grant')) { if (strpos($e->getMessage(), 'invalid_grant') !== false) {
throw new TokenExpiredException('Refresh token expired - re-run OAuth setup'); throw new TokenExpiredException('Refresh token expired - re-run OAuth setup');
} }

View File

@@ -136,9 +136,9 @@ PROMPT;
$errorMessage = $e->getMessage(); $errorMessage = $e->getMessage();
// Check for rate limit // Check for rate limit
if (str_contains($errorMessage, 'rate_limit') || if (strpos($errorMessage, 'rate_limit') !== false ||
str_contains($errorMessage, '429') || strpos($errorMessage, '429') !== false ||
str_contains($errorMessage, 'too_many_requests')) { strpos($errorMessage, 'too_many_requests') !== false) {
$this->logger->warning("Rate limited, waiting " . self::RATE_LIMIT_DELAY . "s"); $this->logger->warning("Rate limited, waiting " . self::RATE_LIMIT_DELAY . "s");
@@ -151,9 +151,9 @@ PROMPT;
} }
// Check for timeout // Check for timeout
if (str_contains($errorMessage, 'timeout') || if (strpos($errorMessage, 'timeout') !== false ||
str_contains($errorMessage, 'connection') || strpos($errorMessage, 'connection') !== false ||
str_contains($errorMessage, 'timed out')) { strpos($errorMessage, 'timed out') !== false) {
if ($attempt < self::MAX_RETRIES - 1) { if ($attempt < self::MAX_RETRIES - 1) {
$this->logger->warning("Timeout, retrying..."); $this->logger->warning("Timeout, retrying...");
@@ -235,7 +235,7 @@ PROMPT;
throw new \Exception('Response too short - likely error'); throw new \Exception('Response too short - likely error');
} }
if (!str_contains($response, '# Weekly Analytics Snapshot')) { if (strpos($response, '# Weekly Analytics Snapshot') === false) {
throw new \Exception('Missing required format'); throw new \Exception('Missing required format');
} }
} }