tweeper.php: support host-specific methods for preprocessing the HTML data
[tweeper.git] / tweeper.php
index 178176d..efc0fd6 100644 (file)
@@ -244,7 +244,10 @@ class Tweeper {
       return NULL;
     }
 
       return NULL;
     }
 
-    $xsltProcessor = $this->load_stylesheet($url["host"]);
+    // Strip the leading www. to be more forgiving on input URLs
+    $host = preg_replace('/^www\./', '', $url["host"]);
+
+    $xsltProcessor = $this->load_stylesheet($host);
     if (NULL === $xsltProcessor) {
       return NULL;
     }
     if (NULL === $xsltProcessor) {
       return NULL;
     }
@@ -254,7 +257,12 @@ class Tweeper {
       return NULL;
     }
 
       return NULL;
     }
 
-    $xmlDoc = $this->html_to_xml($html, $url["host"]);
+    $preprocess_html_host_method = 'preprocess_html_' . str_replace(".", "_", $host);
+    if (method_exists($this, $preprocess_html_host_method)) {
+      $html = call_user_func_array(array($this, $preprocess_html_host_method), array($html));
+    }
+
+    $xmlDoc = $this->html_to_xml($html, $host);
     if (NULL === $xmlDoc) {
       return NULL;
     }
     if (NULL === $xmlDoc) {
       return NULL;
     }