X-Git-Url: https://reisub.nsupdate.info/git/?a=blobdiff_plain;f=jappixmini%2Fjappixmini.php;h=ad4d4901432c38a70dc50ac5b4fb833864654362;hb=81dd8fb29525cf760aad2ac1508d6edcd3ef6419;hp=2e3cbc77f5fb100234f4fc1734caa391a4c007ee;hpb=0afd633346b517894ff8e92c705bd5d052dd06a2;p=friendica-addons.git%2F.git diff --git a/jappixmini/jappixmini.php b/jappixmini/jappixmini.php index 2e3cbc77..ad4d4901 100644 --- a/jappixmini/jappixmini.php +++ b/jappixmini/jappixmini.php @@ -63,59 +63,62 @@ */ use Friendica\App; -use Friendica\Core\Addon; -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() { - Addon::registerHook('plugin_settings', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings'); - Addon::registerHook('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'); - Addon::registerHook('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script'); - Addon::registerHook('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'); - Addon::registerHook('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron'); + Hook::register('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron'); // Jappix source download as required by AGPL - Addon::registerHook('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() { - Addon::unregisterHook('plugin_settings', 'addon/jappixmini/jappixmini.php', 'jappixmini_settings'); - Addon::unregisterHook('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'); - Addon::unregisterHook('page_end', 'addon/jappixmini/jappixmini.php', 'jappixmini_script'); - Addon::unregisterHook('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'); - Addon::unregisterHook('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron'); + Hook::unregister('cron', 'addon/jappixmini/jappixmini.php', 'jappixmini_cron'); - Addon::unregisterHook('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")) { @@ -123,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 .= '

'; @@ -159,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']; @@ -169,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); } } @@ -188,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"]; @@ -225,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 = ""; @@ -254,50 +257,50 @@ function jappixmini_init() $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); @@ -319,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 = ""; } @@ -522,7 +525,7 @@ function jappixmini_script(App $a) $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"]; @@ -544,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; @@ -591,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) { @@ -601,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" @@ -636,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; } @@ -657,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(); } @@ -686,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"); } } } @@ -695,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

'; }