diff options
Diffstat (limited to 'index.php')
-rw-r--r-- | index.php | 77 |
1 files changed, 45 insertions, 32 deletions
@@ -73,25 +73,31 @@ print_header("", "home"); <a href="https://bbs.archlinux32.org/extern.php?action=feed&fid=12&type=atom" title="Arch 32 News RSS Feed" class="rss-icon"><img width="16" height="16" src="/static/rss.c5ebdc5318d6.png" alt="RSS Feed" /></a> <?php -$news32_reachable = apcu_fetch('news32_reachable', $apcu_success); -if ($apcu_success == false) { - if (site_is_reachable('https://bbs.archlinux32.org/extern.php?action=feed&fid=12&type=atom')) - $news32_reachable = 'YES'; - else - $news32_reachable = 'NO'; - apcu_store('news32_reachable', $news32_reachable, 300); -} -if ($news32_reachable == 'YES') { - $ch = curl_init('https://bbs.archlinux32.org/extern.php?action=feed&fid=12&type=atom'); - if( $ch != null && $ch != false ) { - curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); - $news32 = curl_exec($ch); - $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); - curl_close($ch); - if( $httpcode >= 200 && $httpcode < 300 ) { - $news32 = simplexml_load_string($news32); +//apcu_clear_cache(); +$news32 = apcu_fetch('news32', $apcu_success); +if( $apcu_success == false ) { + $news32_reachable = apcu_fetch('news32_reachable', $apcu_success); + if ($apcu_success == false) { + if (site_is_reachable('https://bbs.archlinux32.org/extern.php?action=feed&fid=12&type=atom')) + $news32_reachable = 'YES'; + else + $news32_reachable = 'NO'; + apcu_store('news32_reachable', $news32_reachable, 300); + } + if ($news32_reachable == 'YES') { + $ch = curl_init('https://bbs.archlinux32.org/extern.php?action=feed&fid=12&type=atom'); + if( $ch != null && $ch != false ) { + curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); + $news32 = curl_exec($ch); + $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + if( $httpcode >= 200 && $httpcode < 300 ) { + apcu_store('news32', $news32, 300); + } else { + $news32 = false; + } } else { $news32 = false; $news32status = "HTTP return code was $httpcode"; @@ -99,25 +105,32 @@ if ($news32_reachable == 'YES') { } else { $news = false; } -} else { - $news32 = false; +} +if( $news32 != false ) { + $news32 = simplexml_load_string($news32); } -$ch = curl_init("https://archlinux.org/feeds/news/"); -if( $ch != null && $ch != false ) { - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); - $news64 = curl_exec($ch); - $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); - curl_close($ch); - if( $httpcode >= 200 && $httpcode < 300 ) { - $news64 = simplexml_load_string($news64); +$news64 = apcu_fetch('news64', $apcu_success); +if( $apcu_success == false ) { + $ch = curl_init("https://archlinux.org/feeds/news/"); + if( $ch != null && $ch != false ) { + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + $news64 = curl_exec($ch); + $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + if( $httpcode >= 200 && $httpcode < 300 ) { + apcu_store('news64', $news64, 300); + } else { + $news64 = false; + } } else { $news64 = false; $news64status = "HTTP return code was $httpcode"; } -} else { - $news64 = false; +} +if( $news64 != false ) { + $news64 = simplexml_load_string($news64); } $news = array(); |