X-Git-Url: https://reisub.nsupdate.info/git/?a=blobdiff_plain;f=jappixmini%2Fjappixmini.php;h=ad4d4901432c38a70dc50ac5b4fb833864654362;hb=81dd8fb29525cf760aad2ac1508d6edcd3ef6419;hp=faac6a815477a45712baa2c9835628948f3a0991;hpb=7a447e507e8cd880cb89a42f1cd1c232be80fa25;p=friendica-addons.git%2F.git diff --git a/jappixmini/jappixmini.php b/jappixmini/jappixmini.php index faac6a81..ad4d4901 100644 --- a/jappixmini/jappixmini.php +++ b/jappixmini/jappixmini.php @@ -63,58 +63,62 @@ */ use Friendica\App; -use Friendica\Core\Config; -use Friendica\Core\PConfig; +use Friendica\Core\Hook; +use Friendica\Core\Logger; +use Friendica\Core\Protocol; +use Friendica\Database\DBA; +use Friendica\DI; use Friendica\Model\User; +use Friendica\Util\Network; function jappixmini_install() { - register_hook('plugin_settings', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings'); - register_hook('plugin_settings_post', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings_post'); + Hook::register('addon_settings', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings'); + Hook::register('addon_settings_post', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings_post'); - register_hook('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script'); - register_hook('authenticate', 'addon/jappixmini/jappixmini.php', 'jappixmini_login'); + Hook::register('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script'); + Hook::register('authenticate', 'addon/jappixmini/jappixmini.php', 'jappixmini_login'); - register_hook('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron'); + Hook::register('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron'); // Jappix source download as required by AGPL - register_hook('about_hook', 'addon/jappixmini/jappixmini.php', 'jappixmini_download_source'); + Hook::register('about_hook', 'addon/jappixmini/jappixmini.php', 'jappixmini_download_source'); // set standard configuration - $info_text = Config::get("jappixmini", "infotext"); + $info_text = DI::config()->get("jappixmini", "infotext"); if (!$info_text) - set_confConfig::setig("jappixmini", "infotext", "To get the chat working, you need to know a BOSH host which works with your Jabber account. " . + DI::config()->set("jappixmini", "infotext", "To get the chat working, you need to know a BOSH host which works with your Jabber account. " . "An example of a BOSH server that works for all accounts is https://bind.jappix.com/, but keep " . "in mind that the BOSH server can read along all chat messages. If you know that your Jabber " . "server also provides an own BOSH server, it is much better to use this one!" ); - $bosh_proxy = Config::get("jappixmini", "bosh_proxy"); + $bosh_proxy = DI::config()->get("jappixmini", "bosh_proxy"); if ($bosh_proxy === "") { - Config::set("jappixmini", "bosh_proxy", "1"); + DI::config()->set("jappixmini", "bosh_proxy", "1"); } // set addon version so that safe updates are possible later - $addon_version = Config::get("jappixmini", "version"); + $addon_version = DI::config()->get("jappixmini", "version"); if ($addon_version === "") { - Config::set("jappixmini", "version", "1"); + DI::config()->set("jappixmini", "version", "1"); } } function jappixmini_uninstall() { - unregister_hook('plugin_settings', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings'); - unregister_hook('plugin_settings_post', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings_post'); + Hook::unregister('addon_settings', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings'); + Hook::unregister('addon_settings_post', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings_post'); - unregister_hook('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script'); - unregister_hook('authenticate', 'addon/jappixmini/jappixmini.php', 'jappixmini_login'); + Hook::unregister('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script'); + Hook::unregister('authenticate', 'addon/jappixmini/jappixmini.php', 'jappixmini_login'); - unregister_hook('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron'); + Hook::unregister('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron'); - unregister_hook('about_hook', 'addon/jappixmini/jappixmini.php', 'jappixmini_download_source'); + Hook::unregister('about_hook', 'addon/jappixmini/jappixmini.php', 'jappixmini_download_source'); } -function jappixmini_plugin_admin(App $a, &$o) +function jappixmini_addon_admin(App $a, &$o) { // display instructions and warnings on addon settings page for admin if (!file_exists("addon/jappixmini.tgz")) { @@ -122,35 +126,35 @@ function jappixmini_plugin_admin(App $a, &$o) } // warn if cron job has not yet been executed - $cron_run = Config::get("jappixmini", "last_cron_execution"); + $cron_run = DI::config()->get("jappixmini", "last_cron_execution"); if (!$cron_run) { $o .= "

Warning: The cron job has not yet been executed. If this message is still there after some time (usually 10 minutes), this means that autosubscribe and autoaccept will not work.

"; } // bosh proxy - $bosh_proxy = intval(Config::get("jappixmini", "bosh_proxy")); + $bosh_proxy = intval(DI::config()->get("jappixmini", "bosh_proxy")); $bosh_proxy = intval($bosh_proxy) ? ' checked="checked"' : ''; $o .= ''; $o .= '
'; // bosh address - $bosh_address = Config::get("jappixmini", "bosh_address"); + $bosh_address = DI::config()->get("jappixmini", "bosh_address"); $o .= '


'; $o .= '

'; // default server address - $default_server = Config::get("jappixmini", "default_server"); + $default_server = DI::config()->get("jappixmini", "default_server"); $o .= '


'; $o .= '

'; // default user name to friendica nickname - $default_user = intval(Config::get("jappixmini", "default_user")); + $default_user = intval(DI::config()->get("jappixmini", "default_user")); $default_user = intval($default_user) ? ' checked="checked"' : ''; $o .= ''; $o .= '
'; // info text field - $info_text = Config::get("jappixmini", "infotext"); + $info_text = DI::config()->get("jappixmini", "infotext"); $o .= '


'; $o .= '

'; @@ -158,7 +162,7 @@ function jappixmini_plugin_admin(App $a, &$o) $o .= ''; } -function jappixmini_plugin_admin_post(App $a) +function jappixmini_addon_admin_post(App $a) { // set info text $submit = $_REQUEST['jappixmini-admin-settings']; @@ -168,11 +172,11 @@ function jappixmini_plugin_admin_post(App $a) $default_user = intval($_REQUEST['jappixmini-defaultuser']); $bosh_address = $_REQUEST['jappixmini-address']; $default_server = $_REQUEST['jappixmini-server']; - Config::set("jappixmini", "infotext", $info_text); - Config::set("jappixmini", "bosh_proxy", $bosh_proxy); - Config::set("jappixmini", "bosh_address", $bosh_address); - Config::set("jappixmini", "default_server", $default_server); - Config::set("jappixmini", "default_user", $default_user); + DI::config()->set("jappixmini", "infotext", $info_text); + DI::config()->set("jappixmini", "bosh_proxy", $bosh_proxy); + DI::config()->set("jappixmini", "bosh_address", $bosh_address); + DI::config()->set("jappixmini", "default_server", $default_server); + DI::config()->set("jappixmini", "default_user", $default_user); } } @@ -187,30 +191,30 @@ function jappixmini_init() // of local users $dfrn_id = $_REQUEST["dfrn_id"]; if (!$dfrn_id) { - killme(); + exit(); } $role = $_REQUEST["role"]; if ($role == "pub") { - $r = q("SELECT * FROM `contact` WHERE LENGTH(`pubkey`) AND `dfrn-id`='%s' LIMIT 1", dbesc($dfrn_id)); + $r = q("SELECT * FROM `contact` WHERE LENGTH(`pubkey`) AND `dfrn-id`='%s' LIMIT 1", DBA::escape($dfrn_id)); if (!count($r)) { - killme(); + exit(); } - $encrypt_func = openssl_public_encrypt; - $decrypt_func = openssl_public_decrypt; + $encrypt_func = 'openssl_public_encrypt'; + $decrypt_func = 'openssl_public_decrypt'; $key = $r[0]["pubkey"]; } else if ($role == "prv") { - $r = q("SELECT * FROM `contact` WHERE LENGTH(`prvkey`) AND `issued-id`='%s' LIMIT 1", dbesc($dfrn_id)); + $r = q("SELECT * FROM `contact` WHERE LENGTH(`prvkey`) AND `issued-id`='%s' LIMIT 1", DBA::escape($dfrn_id)); if (!count($r)) { - killme(); + exit(); } - $encrypt_func = openssl_private_encrypt; - $decrypt_func = openssl_private_decrypt; + $encrypt_func = 'openssl_private_encrypt'; + $decrypt_func = 'openssl_private_decrypt'; $key = $r[0]["prvkey"]; } else { - killme(); + exit(); } $uid = $r[0]["uid"]; @@ -224,21 +228,21 @@ function jappixmini_init() $decrypt_func($signed_address, $trusted_address, $key); $now = intval(time()); - PConfig::set($uid, "jappixmini", "id:$dfrn_id", "$now:$trusted_address"); + DI::pConfig()->set($uid, "jappixmini", "id:$dfrn_id", "$now:$trusted_address"); } catch (Exception $e) { } - // do not return an address if user deactivated plugin - $activated = PConfig::get($uid, 'jappixmini', 'activate'); + // do not return an address if user deactivated addon + $activated = DI::pConfig()->get($uid, 'jappixmini', 'activate'); if (!$activated) { - killme(); + exit(); } // return the requested Jabber address try { - $username = PConfig::get($uid, 'jappixmini', 'username'); - $server = PConfig::get($uid, 'jappixmini', 'server'); + $username = DI::pConfig()->get($uid, 'jappixmini', 'username'); + $server = DI::pConfig()->get($uid, 'jappixmini', 'server'); $address = "$username@$server"; $encrypted_address = ""; @@ -246,57 +250,57 @@ function jappixmini_init() $encrypted_address_hex = bin2hex($encrypted_address); - $answer = Array( + $answer = [ "status" => "ok", "encrypted_address" => $encrypted_address_hex - ); + ]; $answer_json = json_encode($answer); echo $answer_json; - killme(); + exit(); } catch (Exception $e) { - killme(); + exit(); } } function jappixmini_settings(App $a, &$s) { // addon settings for a user - $activate = PConfig::get(local_user(), 'jappixmini', 'activate'); + $activate = DI::pConfig()->get(local_user(), 'jappixmini', 'activate'); $activate = intval($activate) ? ' checked="checked"' : ''; - $dontinsertchat = PConfig::get(local_user(), 'jappixmini', 'dontinsertchat'); + $dontinsertchat = DI::pConfig()->get(local_user(), 'jappixmini', 'dontinsertchat'); $insertchat = !(intval($dontinsertchat) ? ' checked="checked"' : ''); - $defaultbosh = Config::get("jappixmini", "bosh_address"); + $defaultbosh = DI::config()->get("jappixmini", "bosh_address"); if ($defaultbosh != "") { - PConfig::set(local_user(), 'jappixmini', 'bosh', $defaultbosh); + DI::pConfig()->set(local_user(), 'jappixmini', 'bosh', $defaultbosh); } - $username = PConfig::get(local_user(), 'jappixmini', 'username'); + $username = DI::pConfig()->get(local_user(), 'jappixmini', 'username'); $username = htmlentities($username); - $server = PConfig::get(local_user(), 'jappixmini', 'server'); + $server = DI::pConfig()->get(local_user(), 'jappixmini', 'server'); $server = htmlentities($server); - $bosh = PConfig::get(local_user(), 'jappixmini', 'bosh'); + $bosh = DI::pConfig()->get(local_user(), 'jappixmini', 'bosh'); $bosh = htmlentities($bosh); - $password = PConfig::get(local_user(), 'jappixmini', 'password'); - $autosubscribe = PConfig::get(local_user(), 'jappixmini', 'autosubscribe'); + $password = DI::pConfig()->get(local_user(), 'jappixmini', 'password'); + $autosubscribe = DI::pConfig()->get(local_user(), 'jappixmini', 'autosubscribe'); $autosubscribe = intval($autosubscribe) ? ' checked="checked"' : ''; - $autoapprove = PConfig::get(local_user(), 'jappixmini', 'autoapprove'); + $autoapprove = DI::pConfig()->get(local_user(), 'jappixmini', 'autoapprove'); $autoapprove = intval($autoapprove) ? ' checked="checked"' : ''; - $encrypt = intval(PConfig::get(local_user(), 'jappixmini', 'encrypt')); + $encrypt = intval(DI::pConfig()->get(local_user(), 'jappixmini', 'encrypt')); $encrypt_checked = $encrypt ? ' checked="checked"' : ''; $encrypt_disabled = $encrypt ? '' : ' disabled="disabled"'; if ($server == "") { - $server = Config::get("jappixmini", "default_server"); + $server = DI::config()->get("jappixmini", "default_server"); } - if (($username == "") && Config::get("jappixmini", "default_user")) { + if (($username == "") && DI::config()->get("jappixmini", "default_user")) { $username = $a->user["nickname"]; } - $info_text = Config::get("jappixmini", "infotext"); + $info_text = DI::config()->get("jappixmini", "infotext"); $info_text = htmlentities($info_text); $info_text = str_replace("\n", "
", $info_text); @@ -318,69 +322,69 @@ function jappixmini_settings(App $a, &$s) if (!$activate) { // load scripts if not yet activated so that password can be saved - $a->page['htmlhead'] .= '' . "\r\n"; - $a->page['htmlhead'] .= '' . "\r\n"; + DI::page()['htmlhead'] .= '' . "\r\n"; + DI::page()['htmlhead'] .= '' . "\r\n"; - $a->page['htmlhead'] .= '' . "\r\n"; + DI::page()['htmlhead'] .= '' . "\r\n"; } $s .= ''; - $s .= '

' . t('Jappix Mini') . '

'; + $s .= '

' . DI::l10n()->t('Jappix Mini') . '

'; $s .= '
'; $s .= ''; - $a->page['htmlhead'] .= "' . "\r\n"; - $a->page['htmlhead'] .= '' . "\r\n"; + DI::page()['htmlhead'] .= '' . "\r\n"; + DI::page()['htmlhead'] .= '' . "\r\n"; - $a->page['htmlhead'] .= '' . "\r\n"; + DI::page()['htmlhead'] .= '' . "\r\n"; - $username = PConfig::get(local_user(), 'jappixmini', 'username'); + $username = DI::pConfig()->get(local_user(), 'jappixmini', 'username'); $username = str_replace("'", "\\'", $username); - $server = PConfig::get(local_user(), 'jappixmini', 'server'); + $server = DI::pConfig()->get(local_user(), 'jappixmini', 'server'); $server = str_replace("'", "\\'", $server); - $bosh = PConfig::get(local_user(), 'jappixmini', 'bosh'); + $bosh = DI::pConfig()->get(local_user(), 'jappixmini', 'bosh'); $bosh = str_replace("'", "\\'", $bosh); - $encrypt = PConfig::get(local_user(), 'jappixmini', 'encrypt'); + $encrypt = DI::pConfig()->get(local_user(), 'jappixmini', 'encrypt'); $encrypt = intval($encrypt); - $password = PConfig::get(local_user(), 'jappixmini', 'password'); + $password = DI::pConfig()->get(local_user(), 'jappixmini', 'password'); $password = str_replace("'", "\\'", $password); - $autoapprove = PConfig::get(local_user(), 'jappixmini', 'autoapprove'); + $autoapprove = DI::pConfig()->get(local_user(), 'jappixmini', 'autoapprove'); $autoapprove = intval($autoapprove); - $autosubscribe = PConfig::get(local_user(), 'jappixmini', 'autosubscribe'); + $autosubscribe = DI::pConfig()->get(local_user(), 'jappixmini', 'autosubscribe'); $autosubscribe = intval($autosubscribe); // set proxy if necessary - $use_proxy = Config::get('jappixmini', 'bosh_proxy'); + $use_proxy = DI::config()->get('jappixmini', 'bosh_proxy'); if ($use_proxy) { - $proxy = $a->get_baseurl() . '/addon/jappixmini/proxy.php'; + $proxy = DI::baseUrl()->get() . '/addon/jappixmini/proxy.php'; } else { $proxy = ""; } // get a list of jabber accounts of the contacts - $contacts = Array(); + $contacts = []; $uid = local_user(); $rows = q("SELECT * FROM `pconfig` WHERE `uid`=$uid AND `cat`='jappixmini' AND `k` LIKE 'id:%%'"); foreach ($rows as $row) { $key = $row['k']; $pos = strpos($key, ":"); $dfrn_id = substr($key, $pos + 1); - $r = q("SELECT `name` FROM `contact` WHERE `uid`=$uid AND (`dfrn-id`='%s' OR `issued-id`='%s')", dbesc($dfrn_id), dbesc($dfrn_id)); + $r = q("SELECT `name` FROM `contact` WHERE `uid`=$uid AND (`dfrn-id`='%s' OR `issued-id`='%s')", DBA::escape($dfrn_id), DBA::escape($dfrn_id)); if (count($r)) $name = $r[0]["name"]; @@ -543,14 +547,14 @@ function jappixmini_script(App $a) // get nickname $r = q("SELECT `username` FROM `user` WHERE `uid`=$uid"); $nickname = json_encode($r[0]["username"]); - $groupchats = Config::get('jappixmini', 'groupchats'); + $groupchats = DI::config()->get('jappixmini', 'groupchats'); //if $groupchats has no value jappix_addon_start will produce a syntax error if (empty($groupchats)) { $groupchats = "{}"; } // add javascript to start Jappix Mini - $a->page['htmlhead'] .= "' . "\r\n"; + DI::page()['htmlhead'] .= '' . "\r\n"; // for jappixmini_addon_set_client_secret - $a->page['htmlhead'] .= '' . "\r\n"; + DI::page()['htmlhead'] .= '' . "\r\n"; // save hash of password $o = str_replace("
set("jappixmini", "last_cron_execution", $d); // go through list of users with jabber enabled $users = q("SELECT `uid` FROM `pconfig` WHERE `cat`='jappixmini' AND (`k`='autosubscribe' OR `k`='autoapprove') AND `v`='1'"); - logger("jappixmini: Update list of contacts' jabber accounts for " . count($users) . " users."); + Logger::log("jappixmini: Update list of contacts' jabber accounts for " . count($users) . " users."); if (!count($users)) { return; @@ -590,7 +594,7 @@ function jappixmini_cron(App $a, $d) // for each user, go through list of contacts $contacts = q("SELECT * FROM `contact` WHERE `uid`=%d AND ((LENGTH(`dfrn-id`) AND LENGTH(`pubkey`)) OR (LENGTH(`issued-id`) AND LENGTH(`prvkey`))) AND `network` = '%s'", - intval($uid), dbesc(NETWORK_DFRN)); + intval($uid), DBA::escape(Protocol::DFRN)); foreach ($contacts as $contact_row) { $request = $contact_row["request"]; if (!$request) { @@ -600,19 +604,19 @@ function jappixmini_cron(App $a, $d) $dfrn_id = $contact_row["dfrn-id"]; if ($dfrn_id) { $key = $contact_row["pubkey"]; - $encrypt_func = openssl_public_encrypt; - $decrypt_func = openssl_public_decrypt; + $encrypt_func = 'openssl_public_encrypt'; + $decrypt_func = 'openssl_public_decrypt'; $role = "prv"; } else { $dfrn_id = $contact_row["issued-id"]; $key = $contact_row["prvkey"]; - $encrypt_func = openssl_private_encrypt; - $decrypt_func = openssl_private_decrypt; + $encrypt_func = 'openssl_private_encrypt'; + $decrypt_func = 'openssl_private_decrypt'; $role = "pub"; } // check if jabber address already present - $present = PConfig::get($uid, "jappixmini", "id:" . $dfrn_id); + $present = DI::pConfig()->get($uid, "jappixmini", "id:" . $dfrn_id); $now = intval(time()); if ($present) { // $present has format "timestamp:jabber_address" @@ -635,11 +639,11 @@ function jappixmini_cron(App $a, $d) $base = substr($request, 0, $pos) . "/jappixmini?role=$role"; // construct own address - $username = PConfig::get($uid, 'jappixmini', 'username'); + $username = DI::pConfig()->get($uid, 'jappixmini', 'username'); if (!$username) { continue; } - $server = PConfig::get($uid, 'jappixmini', 'server'); + $server = DI::pConfig()->get($uid, 'jappixmini', 'server'); if (!$server) { continue; } @@ -656,11 +660,11 @@ function jappixmini_cron(App $a, $d) try { // send request - $answer_json = fetch_url($url); + $answer_json = Network::fetchUrl($url); // parse answer $answer = json_decode($answer_json); - if ($answer->status != "ok") { + if (empty($answer->status) || ($answer->status != "ok")) { throw new Exception(); } @@ -685,7 +689,7 @@ function jappixmini_cron(App $a, $d) } // save address - PConfig::set($uid, "jappixmini", "id:$dfrn_id", "$now:$decrypted_address"); + DI::pConfig()->set($uid, "jappixmini", "id:$dfrn_id", "$now:$decrypted_address"); } } } @@ -694,6 +698,6 @@ function jappixmini_download_source(App $a, &$b) { // Jappix Mini source download link on About page $b .= '

Jappix Mini

'; - $b .= '

This site uses the jappixmini addon, which includes Jappix Mini by the Jappix authors and is distributed under the terms of the GNU Affero General Public License.

'; - $b .= '

You can download the source code of the addon. The rest of Friendica is distributed under compatible licenses and can be retrieved from https://github.com/friendica/friendica and https://github.com/friendica/friendica-addons

'; + $b .= '

This site uses the jappixmini addon, which includes Jappix Mini by the Jappix authors and is distributed under the terms of the GNU Affero General Public License.

'; + $b .= '

You can download the source code of the addon. The rest of Friendica is distributed under compatible licenses and can be retrieved from https://github.com/friendica/friendica and https://github.com/friendica/friendica-addons

'; }