Add System::htmlUpdateExit() method to refactor update modules

This commit is contained in:
Hypolite Petovan 2020-02-16 04:32:56 -05:00
parent e89e606b88
commit 5d169a4098
7 changed files with 44 additions and 126 deletions

View file

@ -21,35 +21,18 @@
*/ */
use Friendica\App; use Friendica\App;
use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
require_once 'mod/community.php'; require_once 'mod/community.php';
function update_community_content(App $a) { function update_community_content(App $a)
header("Content-type: text/html"); {
echo "<!DOCTYPE html><html><body>\r\n";
echo "<section>";
if ($_GET["force"] == 1) { if ($_GET["force"] == 1) {
$text = community_content($a, true); $text = community_content($a, true);
} else { } else {
$text = ''; $text = '';
} }
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) { System::htmlUpdateExit($text);
$replace = "<br />" . DI::l10n()->t("[Embedded content - reload page to view]") . "<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
$text = preg_replace($pattern, $replace, $text);
}
echo str_replace("\t", " ", $text);
echo "</section>";
echo "</body></html>\r\n";
exit();
} }

View file

@ -22,35 +22,17 @@
*/ */
use Friendica\App; use Friendica\App;
use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\Contact; use Friendica\Module\Contact;
function update_contact_content(App $a) function update_contact_content(App $a)
{ {
header("Content-type: text/html");
echo "<!DOCTYPE html><html><body>\r\n";
echo "<section>";
if ($_GET["force"] == 1) { if ($_GET["force"] == 1) {
$text = Contact::content([], true); $text = Contact::content([], true);
} else { } else {
$text = ''; $text = '';
} }
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) { System::htmlUpdateExit($text);
$replace = "<br />" . DI::l10n()->t("[Embedded content - reload page to view]") . "<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
$text = preg_replace($pattern, $replace, $text);
}
echo str_replace("\t", " ", $text);
echo "</section>";
echo "</body></html>\r\n";
exit();
} }

View file

@ -21,6 +21,7 @@
*/ */
use Friendica\App; use Friendica\App;
use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
require_once "mod/display.php"; require_once "mod/display.php";
@ -29,26 +30,7 @@ function update_display_content(App $a)
{ {
$profile_uid = intval($_GET["p"]); $profile_uid = intval($_GET["p"]);
header("Content-type: text/html");
echo "<!DOCTYPE html><html><body>\r\n";
echo "<section>";
$text = display_content($a, true, $profile_uid); $text = display_content($a, true, $profile_uid);
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) { System::htmlUpdateExit($text);
$replace = "<br />" . DI::l10n()->t("[Embedded content - reload page to view]") . "<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
$text = preg_replace($pattern, $replace, $text);
}
echo str_replace("\t", " ", $text);
echo "</section>";
echo "</body></html>\r\n";
exit();
} }

View file

@ -21,6 +21,7 @@
*/ */
use Friendica\App; use Friendica\App;
use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
require_once "mod/network.php"; require_once "mod/network.php";
@ -34,30 +35,10 @@ function update_network_content(App $a)
$profile_uid = intval($_GET['p']); $profile_uid = intval($_GET['p']);
$parent = intval($_GET['item']); $parent = intval($_GET['item']);
header("Content-type: text/html");
echo "<!DOCTYPE html><html><body>\r\n";
echo "<section>";
if (!DI::pConfig()->get($profile_uid, "system", "no_auto_update") || ($_GET["force"] == 1)) { if (!DI::pConfig()->get($profile_uid, "system", "no_auto_update") || ($_GET["force"] == 1)) {
$text = network_content($a, $profile_uid, $parent); $text = network_content($a, $profile_uid, $parent);
} else { } else {
$text = ""; $text = "";
} }
System::htmlUpdateExit($text);
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) {
$replace = "<br />" . DI::l10n()->t("[Embedded content - reload page to view]") . "<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
$text = preg_replace($pattern, $replace, $text);
}
echo str_replace("\t", " ", $text);
echo "</section>";
echo "</body></html>\r\n";
exit();
} }

View file

@ -21,6 +21,7 @@
*/ */
use Friendica\App; use Friendica\App;
use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
require_once("mod/notes.php"); require_once("mod/notes.php");
@ -29,11 +30,6 @@ function update_notes_content(App $a) {
$profile_uid = intval($_GET["p"]); $profile_uid = intval($_GET["p"]);
header("Content-type: text/html");
echo "<!DOCTYPE html><html><body>\r\n";
echo "<section>";
/** /**
* *
* Grab the page inner contents by calling the content function from the profile module directly, * Grab the page inner contents by calling the content function from the profile module directly,
@ -46,21 +42,5 @@ function update_notes_content(App $a) {
$text = notes_content($a, $profile_uid); $text = notes_content($a, $profile_uid);
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) { System::htmlUpdateExit($text);
$replace = "<br />" . DI::l10n()->t("[Embedded content - reload page to view]") . "<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
$text = preg_replace($pattern, $replace, $text);
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
$text = preg_replace($pattern, $replace, $text);
}
// reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well
echo str_replace("\t", " ", $text);
echo "</section>";
echo "</body></html>\r\n";
exit();
} }

View file

@ -292,6 +292,36 @@ class System
return true; return true;
} }
/**
* Exit method used by asynchronous update modules
*
* @param string $o
*/
public static function htmlUpdateExit($o)
{
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) {
$replace = "<br />".DI::l10n()->t("[Embedded content - reload page to view]")."<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$o = preg_replace($pattern, $replace, $o);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
$o = preg_replace($pattern, $replace, $o);
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
$o = preg_replace($pattern, $replace, $o);
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
$o = preg_replace($pattern, $replace, $o);
}
header("Content-type: text/html");
echo "<!DOCTYPE html><html><body>\r\n";
// We can remove this hack once Internet Explorer recognises HTML5 natively
echo "<section>";
// reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well
echo str_replace("\t", " ", $o);
echo "</section>";
echo "</body></html>\r\n";
exit();
}
/// @todo Move the following functions from boot.php /// @todo Move the following functions from boot.php
/* /*
function local_user() function local_user()

View file

@ -24,6 +24,7 @@ namespace Friendica\Module\Update;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Content\Pager; use Friendica\Content\Pager;
use Friendica\Core\Session; use Friendica\Core\Session;
use Friendica\Core\System;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
@ -116,27 +117,6 @@ class Profile extends BaseModule
$o .= conversation($a, $items, 'profile', $profile_uid, false, 'received', $a->profile['uid']); $o .= conversation($a, $items, 'profile', $profile_uid, false, 'received', $a->profile['uid']);
header("Content-type: text/html"); System::htmlUpdateExit($o);
echo "<!DOCTYPE html><html><body>\r\n";
// We can remove this hack once Internet Explorer recognises HTML5 natively
echo "<section>";
echo $o;
if (DI::pConfig()->get(local_user(), "system", "bandwidth_saver")) {
$replace = "<br />".DI::l10n()->t("[Embedded content - reload page to view]")."<br />";
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
$o = preg_replace($pattern, $replace, $o);
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
$o = preg_replace($pattern, $replace, $o);
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
$o = preg_replace($pattern, $replace, $o);
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
$o = preg_replace($pattern, $replace, $o);
}
// reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well
echo str_replace("\t", " ", $o);
echo "</section>";
echo "</body></html>\r\n";
exit();
} }
} }