Browse Source

Guard external TIL/bookmarks fetches against timeouts

inc/utils.php pulls TIL/bookmarks from davidawindham.com via simple_html_dom; when the
fetch times out file_get_html() returns false and ->find() fataled the page (white screen
on desk/archive). Added `if (!$html) return;` after all 20 direct file_get_html($url)
calls so a slow/unavailable source degrades gracefully instead of crashing.
windhamdavid 1 week ago
parent
commit
a253e835ab
1 changed files with 20 additions and 0 deletions
  1. 20 0
      inc/utils.php

+ 20 - 0
inc/utils.php

@@ -130,6 +130,7 @@ function bookmarks() {
 	require_once('lib/html_dom.php');
 	require_once('lib/html_dom.php');
 	$url = 'https://davidawindham.com/bookmarks/';
 	$url = 'https://davidawindham.com/bookmarks/';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.linklist-item-title h2 a') as $li) {
 	foreach ($html->find('.linklist-item-title h2 a') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -142,6 +143,7 @@ function bookmarks_pull($limit = 27) {
 	require_once('lib/html_dom.php');
 	require_once('lib/html_dom.php');
 	$url = 'https://davidawindham.com/bookmarks/';
 	$url = 'https://davidawindham.com/bookmarks/';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.linklist-item-title h2 a') as $li) {
 	foreach ($html->find('.linklist-item-title h2 a') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -154,6 +156,7 @@ function bookmarks_all() {
 	require_once('lib/html_dom.php');
 	require_once('lib/html_dom.php');
 	$url = 'https://davidawindham.com/bookmarks/';
 	$url = 'https://davidawindham.com/bookmarks/';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.linklist-item-title h2 a') as $li) {
 	foreach ($html->find('.linklist-item-title h2 a') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -210,6 +213,7 @@ function now() {
 	require_once('lib/html_dom.php');
 	require_once('lib/html_dom.php');
 	$url = 'https://davidawindham.com/til/lists/now';
 	$url = 'https://davidawindham.com/til/lists/now';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.markdown ul li') as $li) {
 	foreach ($html->find('.markdown ul li') as $li) {
     if (!empty($html)) {
     if (!empty($html)) {
@@ -223,6 +227,7 @@ function todo() {
 
 
 	$url = 'https://davidawindham.com/til/lists/todo';
 	$url = 'https://davidawindham.com/til/lists/todo';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.markdown ul li') as $li) {
 	foreach ($html->find('.markdown ul li') as $li) {
     if (!empty($html)) {
     if (!empty($html)) {
@@ -236,6 +241,7 @@ function todone() {
 
 
 	$url = 'https://davidawindham.com/til/lists/todone';
 	$url = 'https://davidawindham.com/til/lists/todone';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.markdown ul li') as $li) {
 	foreach ($html->find('.markdown ul li') as $li) {
     if (!empty($html)) {
     if (!empty($html)) {
@@ -249,6 +255,7 @@ function docs() {
 	require_once('lib/html_dom.php');
 	require_once('lib/html_dom.php');
 	$url = 'https://davidawindham.com/til/docs';
 	$url = 'https://davidawindham.com/til/docs';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.markdown ul li') as $li) {
 	foreach ($html->find('.markdown ul li') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -261,6 +268,7 @@ function lists() {
 	require_once('lib/html_dom.php');
 	require_once('lib/html_dom.php');
 	$url = 'https://davidawindham.com/til/lists/';
 	$url = 'https://davidawindham.com/til/lists/';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.markdown ul li') as $li) {
 	foreach ($html->find('.markdown ul li') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -274,6 +282,7 @@ function notes() {
 
 
 	$url = 'https://davidawindham.com/til/notes/';
 	$url = 'https://davidawindham.com/til/notes/';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.markdown ul li') as $li) {
 	foreach ($html->find('.markdown ul li') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -288,6 +297,7 @@ function playing() {
 
 
 	$url = 'https://davidawindham.com/til/lists/now/playing';
 	$url = 'https://davidawindham.com/til/lists/now/playing';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.markdown ul li') as $li) {
 	foreach ($html->find('.markdown ul li') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -301,6 +311,7 @@ function watching() {
 
 
 	$url = 'https://davidawindham.com/til/lists/now/watching';
 	$url = 'https://davidawindham.com/til/lists/now/watching';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.markdown ul li') as $li) {
 	foreach ($html->find('.markdown ul li') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -313,6 +324,7 @@ function listening() {
 	require_once('lib/html_dom.php');
 	require_once('lib/html_dom.php');
 	$url = 'https://davidawindham.com/til/lists/now/listening';
 	$url = 'https://davidawindham.com/til/lists/now/listening';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.markdown ul li') as $li) {
 	foreach ($html->find('.markdown ul li') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -325,6 +337,7 @@ function reading() {
 	require_once('lib/html_dom.php');
 	require_once('lib/html_dom.php');
 	$url = 'https://davidawindham.com/til/lists/now/reading';
 	$url = 'https://davidawindham.com/til/lists/now/reading';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.markdown ul li') as $li) {
 	foreach ($html->find('.markdown ul li') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -337,6 +350,7 @@ function learning() {
 	require_once('lib/html_dom.php');
 	require_once('lib/html_dom.php');
 	$url = 'https://davidawindham.com/til/lists/now/learning';
 	$url = 'https://davidawindham.com/til/lists/now/learning';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.markdown ul li') as $li) {
 	foreach ($html->find('.markdown ul li') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -355,6 +369,7 @@ function code() {
 
 
 	$url = 'https://code.davidawindham.com/david?tab=activity';
 	$url = 'https://code.davidawindham.com/david?tab=activity';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.content ul li') as $li) {
 	foreach ($html->find('.content ul li') as $li) {
     foreach ($li->find('span.text') as $comment) {
     foreach ($li->find('span.text') as $comment) {
@@ -376,6 +391,7 @@ function commits() {
 
 
 	$url = 'https://code.davidawindham.com/david?tab=activity';
 	$url = 'https://code.davidawindham.com/david?tab=activity';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('ul li a') as $li) {
 	foreach ($html->find('ul li a') as $li) {
     if (!empty($html)) {
     if (!empty($html)) {
@@ -391,6 +407,7 @@ function docs_code() {
 
 
 	$url = 'https://code.davidawindham.com/david/til/src/main/docs';
 	$url = 'https://code.davidawindham.com/david/til/src/main/docs';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('table tr td') as $li) {
 	foreach ($html->find('table tr td') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -409,6 +426,7 @@ function lists_code() {
 
 
 	$url = 'https://code.davidawindham.com/david/til/src/main/lists';
 	$url = 'https://code.davidawindham.com/david/til/src/main/lists';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('table tr td') as $li) {
 	foreach ($html->find('table tr td') as $li) {
 	    if (!empty($html)) {
 	    if (!empty($html)) {
@@ -429,6 +447,7 @@ function photo() {
 
 
 	$url = 'https://photo.davidwindham.com/#16734437965516';
 	$url = 'https://photo.davidwindham.com/#16734437965516';
 	$html = file_get_html($url);
 	$html = file_get_html($url);
+	if (!$html) return;
 	$i = 0;
 	$i = 0;
 	foreach ($html->find('.photo .overlay h1') as $li) {
 	foreach ($html->find('.photo .overlay h1') as $li) {
     if (!empty($html)) {
     if (!empty($html)) {
@@ -444,6 +463,7 @@ function photo() {
 //
 //
 //	$url = 'https://universeodon.com/@windhamdavid/with_replies';
 //	$url = 'https://universeodon.com/@windhamdavid/with_replies';
 //	$html = file_get_html($url);
 //	$html = file_get_html($url);
+	if (!$html) return;
 //	$i = 0;
 //	$i = 0;
 //	foreach ($html->find('.status__content__text p') as $li) {
 //	foreach ($html->find('.status__content__text p') as $li) {
 //    if (!empty($html)) {
 //    if (!empty($html)) {