rss-bridge/templates/exception.html.php

140 lines
3.9 KiB
PHP

<?php
/**
* This template is used for rendering exceptions
*/
?>
<div class="error">
<?php if ($e instanceof HttpException): ?>
<?php if ($e instanceof CloudFlareException): ?>
<h2>The website is protected by CloudFlare</h2>
<p>
RSS-Bridge tried to fetch a website.
The fetching was blocked by CloudFlare.
CloudFlare is anti-bot software.
Its purpose is to block non-humans.
</p>
<?php endif; ?>
<?php if ($e->getCode() === 400): ?>
<h2>400 Bad Request</h2>
<p>
This is usually caused by an incorrectly constructed http request.
</p>
<?php endif; ?>
<?php if ($e->getCode() === 404): ?>
<h2>404 Page Not Found</h2>
<p>
RSS-Bridge tried to fetch a page on a website.
But it doesn't exists.
</p>
<?php endif; ?>
<?php if ($e->getCode() === 429): ?>
<h2>429 Too Many Requests</h2>
<p>
RSS-Bridge tried to fetch a website.
They told us to try again later.
</p>
<?php endif; ?>
<?php if ($e->getCode() === 503): ?>
<h2>503 Service Unavailable</h2>
<p>
Common causes are a server that is down for maintenance
or that is overloaded.
</p>
<?php endif; ?>
<?php if ($e->getCode() === 0): ?>
<p>
See
<a href="https://curl.haxx.se/libcurl/c/libcurl-errors.html">
https://curl.haxx.se/libcurl/c/libcurl-errors.html
</a>
for description of the curl error code.
</p>
<?php else: ?>
<p>
<a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/<?= raw($e->getCode()) ?>">
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/<?= raw($e->getCode()) ?>
</a>
</p>
<?php endif; ?>
<?php else: ?>
<?php if ($e->getCode() === 10): ?>
<h2>The rss feed is completely empty</h2>
<p>
RSS-Bridge tried parse the empty string as xml.
The fetched url is not pointing to real xml.
</p>
<?php endif; ?>
<?php if ($e->getCode() === 11): ?>
<h2>There is something wrong with the rss feed</h2>
<p>
RSS-Bridge tried parse xml. It failed. The xml is probably broken.
</p>
<?php endif; ?>
<?php endif; ?>
<h2>Details</h2>
<div style="margin-bottom: 15px">
<div class="error-type">
<strong>Type:</strong> <?= e(get_class($e)) ?>
</div>
<div>
<strong>Code:</strong> <?= e($e->getCode()) ?>
</div>
<div class="error-message">
<strong>Message:</strong> <?= e(sanitize_root($e->getMessage())) ?>
</div>
<div>
<strong>File:</strong> <?= e(sanitize_root($e->getFile())) ?>
</div>
<div>
<strong>Line:</strong> <?= e($e->getLine()) ?>
</div>
</div>
<h2>Trace</h2>
<?php foreach (trace_from_exception($e) as $i => $frame) : ?>
<code>
#<?= $i ?> <?= e(frame_to_call_point($frame)) ?>
</code>
<br>
<?php endforeach; ?>
<br>
<h2>Context</h2>
<div>
<strong>Query:</strong> <?= e(urldecode($_SERVER['QUERY_STRING'] ?? '')) ?>
</div>
<div>
<strong>Version:</strong> <?= raw(Configuration::getVersion()) ?>
</div>
<div>
<strong>OS:</strong> <?= raw(PHP_OS_FAMILY) ?>
</div>
<div>
<strong>PHP:</strong> <?= raw(PHP_VERSION ?: 'Unknown') ?>
</div>
<br>
<a href="/">Go back</a>
</div>