src/Tweeper.php: allow overriding the User-Agent in cURL requests
authorAntonio Ospite <ao2@ao2.it>
Tue, 9 Jun 2020 22:27:35 +0000 (00:27 +0200)
committerAntonio Ospite <ao2@ao2.it>
Tue, 9 Jun 2020 22:27:35 +0000 (00:27 +0200)
Allow overriding the User-Agent in cURL requests, to make it possible to
use different user agents for different requests.

This can be useful to have a finer control on the version of the site
served by the different supported services.

src/Tweeper.php

index 091b030..b794368 100644 (file)
@@ -157,7 +157,7 @@ class Tweeper {
   /**
    * Get the contents from a URL.
    */
   /**
    * Get the contents from a URL.
    */
-  private static function getUrlContents($url) {
+  private static function getUrlContents($url, $user_agent = NULL) {
     $ch = curl_init($url);
     curl_setopt_array($ch, [
       CURLOPT_HEADER => FALSE,
     $ch = curl_init($url);
     curl_setopt_array($ch, [
       CURLOPT_HEADER => FALSE,
@@ -167,7 +167,7 @@ class Tweeper {
       CURLOPT_COOKIEFILE => "",
       CURLOPT_RETURNTRANSFER => TRUE,
       CURLOPT_HTTPHEADER => ['Accept-language: en'],
       CURLOPT_COOKIEFILE => "",
       CURLOPT_RETURNTRANSFER => TRUE,
       CURLOPT_HTTPHEADER => ['Accept-language: en'],
-      CURLOPT_USERAGENT => Tweeper::$userAgent,
+      CURLOPT_USERAGENT => isset($user_agent) ? $user_agent : Tweeper::$userAgent,
     ]);
     $contents = Tweeper::curlExec($ch);
     curl_close($ch);
     ]);
     $contents = Tweeper::curlExec($ch);
     curl_close($ch);
@@ -178,7 +178,7 @@ class Tweeper {
   /**
    * Get the headers from a URL.
    */
   /**
    * Get the headers from a URL.
    */
-  private static function getUrlInfo($url) {
+  private static function getUrlInfo($url, $user_agent = NULL) {
     $ch = curl_init($url);
     curl_setopt_array($ch, [
       CURLOPT_HEADER => TRUE,
     $ch = curl_init($url);
     curl_setopt_array($ch, [
       CURLOPT_HEADER => TRUE,
@@ -187,7 +187,7 @@ class Tweeper {
       // Follow http redirects to get the real URL.
       CURLOPT_FOLLOWLOCATION => TRUE,
       CURLOPT_RETURNTRANSFER => TRUE,
       // Follow http redirects to get the real URL.
       CURLOPT_FOLLOWLOCATION => TRUE,
       CURLOPT_RETURNTRANSFER => TRUE,
-      CURLOPT_USERAGENT => Tweeper::$userAgent,
+      CURLOPT_USERAGENT => isset($user_agent) ? $user_agent : Tweeper::$userAgent,
     ]);
 
     $ret = Tweeper::curlExec($ch);
     ]);
 
     $ret = Tweeper::curlExec($ch);