diff options
author | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2014-04-03 14:42:03 +0200 |
---|---|---|
committer | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2014-04-03 14:42:03 +0200 |
commit | 0d67b00d5d3b7ce1b76b639dcc65c415a5f13439 (patch) | |
tree | 7c4d113bb1c3d90ef53e08138a2850576395780f /inc/poche/Tools.class.php | |
parent | 99679d06884120c57f43b44e55e03595f1f87bed (diff) | |
parent | 7d2f1aa2793595aa6cdc58a58260184234cfa809 (diff) | |
download | wallabag-0d67b00d5d3b7ce1b76b639dcc65c415a5f13439.tar.gz wallabag-0d67b00d5d3b7ce1b76b639dcc65c415a5f13439.tar.zst wallabag-0d67b00d5d3b7ce1b76b639dcc65c415a5f13439.zip |
wallabag 1.6.0
Diffstat (limited to 'inc/poche/Tools.class.php')
-rwxr-xr-x[-rw-r--r--] | inc/poche/Tools.class.php | 81 |
1 files changed, 75 insertions, 6 deletions
diff --git a/inc/poche/Tools.class.php b/inc/poche/Tools.class.php index 4ed28ed1..a130e94b 100644..100755 --- a/inc/poche/Tools.class.php +++ b/inc/poche/Tools.class.php | |||
@@ -7,7 +7,7 @@ | |||
7 | * @copyright 2013 | 7 | * @copyright 2013 |
8 | * @license http://www.wtfpl.net/ see COPYING file | 8 | * @license http://www.wtfpl.net/ see COPYING file |
9 | */ | 9 | */ |
10 | 10 | ||
11 | class Tools | 11 | class Tools |
12 | { | 12 | { |
13 | public static function initPhp() | 13 | public static function initPhp() |
@@ -42,7 +42,7 @@ class Tools | |||
42 | && (strtolower($_SERVER['HTTPS']) == 'on')) | 42 | && (strtolower($_SERVER['HTTPS']) == 'on')) |
43 | || (isset($_SERVER["SERVER_PORT"]) | 43 | || (isset($_SERVER["SERVER_PORT"]) |
44 | && $_SERVER["SERVER_PORT"] == '443') // HTTPS detection. | 44 | && $_SERVER["SERVER_PORT"] == '443') // HTTPS detection. |
45 | || (isset($_SERVER["SERVER_PORT"]) //Custom HTTPS port detection | 45 | || (isset($_SERVER["SERVER_PORT"]) //Custom HTTPS port detection |
46 | && $_SERVER["SERVER_PORT"] == SSL_PORT) | 46 | && $_SERVER["SERVER_PORT"] == SSL_PORT) |
47 | || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) | 47 | || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) |
48 | && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'); | 48 | && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'); |
@@ -148,7 +148,7 @@ class Tools | |||
148 | ); | 148 | ); |
149 | 149 | ||
150 | # only download page lesser than 4MB | 150 | # only download page lesser than 4MB |
151 | $data = @file_get_contents($url, false, $context, -1, 4000000); | 151 | $data = @file_get_contents($url, false, $context, -1, 4000000); |
152 | 152 | ||
153 | if (isset($http_response_header) and isset($http_response_header[0])) { | 153 | if (isset($http_response_header) and isset($http_response_header[0])) { |
154 | $httpcodeOK = isset($http_response_header) and isset($http_response_header[0]) and ((strpos($http_response_header[0], '200 OK') !== FALSE) or (strpos($http_response_header[0], '301 Moved Permanently') !== FALSE)); | 154 | $httpcodeOK = isset($http_response_header) and isset($http_response_header[0]) and ((strpos($http_response_header[0], '200 OK') !== FALSE) or (strpos($http_response_header[0], '301 Moved Permanently') !== FALSE)); |
@@ -193,14 +193,14 @@ class Tools | |||
193 | 193 | ||
194 | public static function logm($message) | 194 | public static function logm($message) |
195 | { | 195 | { |
196 | if (DEBUG_POCHE) { | 196 | if (DEBUG_POCHE && php_sapi_name() != 'cli') { |
197 | $t = strval(date('Y/m/d_H:i:s')) . ' - ' . $_SERVER["REMOTE_ADDR"] . ' - ' . strval($message) . "\n"; | 197 | $t = strval(date('Y/m/d_H:i:s')) . ' - ' . $_SERVER["REMOTE_ADDR"] . ' - ' . strval($message) . "\n"; |
198 | file_put_contents(CACHE . '/log.txt', $t, FILE_APPEND); | 198 | file_put_contents(CACHE . '/log.txt', $t, FILE_APPEND); |
199 | error_log('DEBUG POCHE : ' . $message); | 199 | error_log('DEBUG POCHE : ' . $message); |
200 | } | 200 | } |
201 | } | 201 | } |
202 | 202 | ||
203 | public static function encodeString($string) | 203 | public static function encodeString($string) |
204 | { | 204 | { |
205 | return sha1($string . SALT); | 205 | return sha1($string . SALT); |
206 | } | 206 | } |
@@ -241,7 +241,6 @@ class Tools | |||
241 | } | 241 | } |
242 | } | 242 | } |
243 | 243 | ||
244 | |||
245 | public static function download_db() { | 244 | public static function download_db() { |
246 | header('Content-Disposition: attachment; filename="poche.sqlite.gz"'); | 245 | header('Content-Disposition: attachment; filename="poche.sqlite.gz"'); |
247 | self::status(200); | 246 | self::status(200); |
@@ -252,4 +251,74 @@ class Tools | |||
252 | 251 | ||
253 | exit; | 252 | exit; |
254 | } | 253 | } |
254 | |||
255 | public static function getPageContent(Url $url) | ||
256 | { | ||
257 | // Saving and clearing context | ||
258 | $REAL = array(); | ||
259 | foreach( $GLOBALS as $key => $value ) { | ||
260 | if( $key != 'GLOBALS' && $key != '_SESSION' && $key != 'HTTP_SESSION_VARS' ) { | ||
261 | $GLOBALS[$key] = array(); | ||
262 | $REAL[$key] = $value; | ||
263 | } | ||
264 | } | ||
265 | // Saving and clearing session | ||
266 | if ( isset($_SESSION) ) { | ||
267 | $REAL_SESSION = array(); | ||
268 | foreach( $_SESSION as $key => $value ) { | ||
269 | $REAL_SESSION[$key] = $value; | ||
270 | unset($_SESSION[$key]); | ||
271 | } | ||
272 | } | ||
273 | |||
274 | // Running code in different context | ||
275 | $scope = function() { | ||
276 | extract( func_get_arg(1) ); | ||
277 | $_GET = $_REQUEST = array( | ||
278 | "url" => $url->getUrl(), | ||
279 | "max" => 5, | ||
280 | "links" => "preserve", | ||
281 | "exc" => "", | ||
282 | "format" => "json", | ||
283 | "submit" => "Create Feed" | ||
284 | ); | ||
285 | ob_start(); | ||
286 | require func_get_arg(0); | ||
287 | $json = ob_get_contents(); | ||
288 | ob_end_clean(); | ||
289 | return $json; | ||
290 | }; | ||
291 | $json = $scope( "inc/3rdparty/makefulltextfeed.php", array("url" => $url) ); | ||
292 | |||
293 | // Clearing and restoring context | ||
294 | foreach( $GLOBALS as $key => $value ) { | ||
295 | if( $key != "GLOBALS" && $key != "_SESSION" ) { | ||
296 | unset($GLOBALS[$key]); | ||
297 | } | ||
298 | } | ||
299 | foreach( $REAL as $key => $value ) { | ||
300 | $GLOBALS[$key] = $value; | ||
301 | } | ||
302 | // Clearing and restoring session | ||
303 | if ( isset($REAL_SESSION) ) { | ||
304 | foreach( $_SESSION as $key => $value ) { | ||
305 | unset($_SESSION[$key]); | ||
306 | } | ||
307 | foreach( $REAL_SESSION as $key => $value ) { | ||
308 | $_SESSION[$key] = $value; | ||
309 | } | ||
310 | } | ||
311 | |||
312 | return json_decode($json, true); | ||
313 | } | ||
314 | |||
315 | /** | ||
316 | * Returns whether we handle an AJAX (XMLHttpRequest) request. | ||
317 | * @return boolean whether we handle an AJAX (XMLHttpRequest) request. | ||
318 | */ | ||
319 | public static function isAjaxRequest() | ||
320 | { | ||
321 | return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest'; | ||
322 | } | ||
323 | |||
255 | } | 324 | } |