aboutsummaryrefslogtreecommitdiffstats
path: root/lib/backend.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/backend.php')
-rw-r--r--lib/backend.php37
1 files changed, 35 insertions, 2 deletions
diff --git a/lib/backend.php b/lib/backend.php
index 66e78a1..68ac270 100644
--- a/lib/backend.php
+++ b/lib/backend.php
@@ -9,7 +9,7 @@ class backend{
/*
Proxy stuff
*/
- public function get_ip(){
+ public function get_ip($proxy_index_raw = null){
$pool = constant("config::PROXY_" . strtoupper($this->scraper));
if($pool === false){
@@ -19,7 +19,10 @@ class backend{
}
// indent
- $proxy_index_raw = apcu_inc("p." . $this->scraper);
+ if($proxy_index_raw === null){
+
+ $proxy_index_raw = apcu_inc("p." . $this->scraper);
+ }
$proxylist = file_get_contents("data/proxies/" . $pool . ".txt");
$proxylist = explode("\n", $proxylist);
@@ -32,6 +35,12 @@ class backend{
$proxylist = array_values($proxylist);
+ if(count($proxylist) === 0){
+
+ throw new Exception("A proxy list was specified but it's empty!");
+ }
+
+ //echo $proxylist[$proxy_index_raw % count($proxylist)];
return $proxylist[$proxy_index_raw % count($proxylist)];
}
@@ -88,6 +97,30 @@ class backend{
}
}
+ // API key rotation
+ public function get_key(){
+
+ $keys = file_get_contents("data/api_keys/" . $this->scraper . ".txt");
+ $keys = explode("\n", $keys);
+
+ $keys = array_filter($keys, function($entry){
+ $entry = ltrim($entry);
+ return strlen($entry) > 0 && substr($entry, 0, 1) != "#";
+ });
+
+ $keys = array_values($keys);
+
+ if(count($keys) === 0){
+
+ throw new Exception("Please specify API keys in data/api_keys/" . $this->scraper . ".txt");
+ }
+
+ $increment = apcu_inc("s." . $this->scraper) % count($keys);
+ return [
+ "key" => $keys[$increment],
+ "increment" => $increment
+ ];
+ }
/*
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage