X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=windowsphonepush%2Fwindowsphonepush.php;h=bf160f0a4b1fcb949e0641cc482b6222202faf59;hb=c278440578a47621e3351922fd9292ccbdec1ec8;hp=bd1d3a3849df57734546adae0128b95633c803e2;hpb=aa5fbb4994dbd39ee97b3c8ca9f9529b48d5efc7;p=friendica-addons.git diff --git a/windowsphonepush/windowsphonepush.php b/windowsphonepush/windowsphonepush.php index bd1d3a38..bf160f0a 100644 --- a/windowsphonepush/windowsphonepush.php +++ b/windowsphonepush/windowsphonepush.php @@ -29,13 +29,12 @@ use Friendica\App; use Friendica\Content\Text\BBCode; use Friendica\Content\Text\HTML; -use Friendica\Core\Addon; -use Friendica\Core\Authentication; -use Friendica\Core\L10n; +use Friendica\Core\Hook; use Friendica\Core\Logger; -use Friendica\Core\PConfig; use Friendica\Database\DBA; +use Friendica\DI; use Friendica\Model\Item; +use Friendica\Model\Post; use Friendica\Model\User; function windowsphonepush_install() @@ -44,31 +43,19 @@ function windowsphonepush_install() * The first is within cron - so the push notifications will be * sent every 10 minutes (or whatever is set in crontab). */ - Addon::registerHook('cron', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_cron'); + Hook::register('cron', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_cron'); /* Then we'll attach into the addon settings page, and also the * settings post hook so that we can create and update * user preferences. User shall be able to activate the addon and * define whether he allows pushing first characters of item text */ - Addon::registerHook('addon_settings', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings'); - Addon::registerHook('addon_settings_post', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings_post'); + Hook::register('addon_settings', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings'); + Hook::register('addon_settings_post', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings_post'); Logger::log("installed windowsphonepush"); } -function windowsphonepush_uninstall() -{ - /* uninstall unregisters any hooks created with register_hook - * during install. Don't delete data in table `pconfig`. - */ - Addon::unregisterHook('cron', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_cron'); - Addon::unregisterHook('addon_settings', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings'); - Addon::unregisterHook('addon_settings_post', 'addon/windowsphonepush/windowsphonepush.php', 'windowsphonepush_settings_post'); - - Logger::log("removed windowsphonepush"); -} - /* declare the windowsphonepush function so that /windowsphonepush url requests will land here */ function windowsphonepush_module() { @@ -86,15 +73,13 @@ function windowsphonepush_settings_post($a, $post) return; } $enable = intval($_POST['windowsphonepush']); - PConfig::set(local_user(), 'windowsphonepush', 'enable', $enable); + DI::pConfig()->set(local_user(), 'windowsphonepush', 'enable', $enable); if ($enable) { - PConfig::set(local_user(), 'windowsphonepush', 'counterunseen', 0); + DI::pConfig()->set(local_user(), 'windowsphonepush', 'counterunseen', 0); } - PConfig::set(local_user(), 'windowsphonepush', 'senditemtext', intval($_POST['windowsphonepush-senditemtext'])); - - info(L10n::t('WindowsPhonePush settings updated.') . EOL); + DI::pConfig()->set(local_user(), 'windowsphonepush', 'senditemtext', intval($_POST['windowsphonepush-senditemtext'])); } /* Called from the Addon Setting form. @@ -107,33 +92,33 @@ function windowsphonepush_settings(&$a, &$s) } /* Add our stylesheet to the page so we can make our settings look nice */ - $a->page['htmlhead'] .= '' . "\r\n"; + DI::page()['htmlhead'] .= '' . "\r\n"; /* Get the current state of our config variables */ - $enabled = PConfig::get(local_user(), 'windowsphonepush', 'enable'); + $enabled = DI::pConfig()->get(local_user(), 'windowsphonepush', 'enable'); $checked_enabled = (($enabled) ? ' checked="checked" ' : ''); - $senditemtext = PConfig::get(local_user(), 'windowsphonepush', 'senditemtext'); + $senditemtext = DI::pConfig()->get(local_user(), 'windowsphonepush', 'senditemtext'); $checked_senditemtext = (($senditemtext) ? ' checked="checked" ' : ''); - $device_url = PConfig::get(local_user(), 'windowsphonepush', 'device_url'); + $device_url = DI::pConfig()->get(local_user(), 'windowsphonepush', 'device_url'); /* Add some HTML to the existing form */ $s .= '
'; - $s .= '

' . L10n::t('WindowsPhonePush Settings') . '

'; + $s .= '

' . DI::l10n()->t('WindowsPhonePush Settings') . '

'; $s .= '
'; - $s .= ''; + $s .= ''; $s .= ''; $s .= '
'; $s .= '
'; - $s .= ''; + $s .= ''; $s .= ''; $s .= '
'; /* provide a submit button - enable und senditemtext can be changed by the user */ - $s .= '
'; + $s .= '
'; /* provide further read-only information concerning the addon (useful for */ $s .= '
'; @@ -154,8 +139,8 @@ function windowsphonepush_cron() if (count($r)) { foreach ($r as $rr) { // load stored information for the user-id of the current loop - $device_url = PConfig::get($rr['uid'], 'windowsphonepush', 'device_url'); - $lastpushid = PConfig::get($rr['uid'], 'windowsphonepush', 'lastpushid'); + $device_url = DI::pConfig()->get($rr['uid'], 'windowsphonepush', 'device_url'); + $lastpushid = DI::pConfig()->get($rr['uid'], 'windowsphonepush', 'lastpushid'); // pushing only possible if device_url (the URI on Microsoft server) is available or not "NA" (which will be sent // by app if user has switched the server setting in app - sending blank not possible as this would return an update error) @@ -165,7 +150,7 @@ function windowsphonepush_cron() } else { // retrieve the number of unseen items and the id of the latest one (if there are more than // one new entries since last poller run, only the latest one will be pushed) - $count = q("SELECT count(`id`) as count, max(`id`) as max FROM `item` WHERE `unseen` = 1 AND `type` <> 'activity' AND `uid` = %d", intval($rr['uid'])); + $count = q("SELECT count(`id`) as count, max(`id`) as max FROM `post-view` WHERE `unseen` = 1 AND `type` <> 'activity' AND `uid` = %d", intval($rr['uid'])); // send number of unseen items to the device (the number will be displayed on Start screen until // App will be started by user) - this update will be sent every 10 minutes to update the number to 0 if @@ -174,7 +159,7 @@ function windowsphonepush_cron() switch (trim($res_tile)) { case "Received": // ok, count has been pushed, let's save it in personal settings - PConfig::set($rr['uid'], 'windowsphonepush', 'counterunseen', $count[0]['count']); + DI::pConfig()->set($rr['uid'], 'windowsphonepush', 'counterunseen', $count[0]['count']); break; case "QueueFull": // maximum of 30 messages reached, server rejects any further push notification until device reconnects @@ -197,10 +182,10 @@ function windowsphonepush_cron() if (intval($count[0]['max']) > intval($lastpushid)) { // user can define if he wants to see the text of the item in the push notification // this has been implemented as the device_url is not a https uri (not so secure) - $senditemtext = PConfig::get($rr['uid'], 'windowsphonepush', 'senditemtext'); + $senditemtext = DI::pConfig()->get($rr['uid'], 'windowsphonepush', 'senditemtext'); if ($senditemtext == 1) { // load item with the max id - $item = Item::selectFirst(['author-name', 'body'], ['id' => $count[0]['max']]); + $item = Post::selectFirst(['author-name', 'body'], ['id' => $count[0]['max']]); // as user allows to send the item, we want to show the sender of the item in the toast // toasts are limited to one line, therefore place is limited - author shall be in @@ -216,7 +201,7 @@ function windowsphonepush_cron() if (substr($body, 0, 4) == "[url") { $body = "URL/Image ..."; } else { - $body = BBCode::convert($body, false, 2, true); + $body = BBCode::convert($body, false, BBCode::API, true); $body = HTML::toPlaintext($body, 0); $body = ((strlen($body) > 137) ? substr($body, 0, 137) . "..." : $body); } @@ -232,7 +217,7 @@ function windowsphonepush_cron() // further log information done on count pushing with send_tile (see above) $res_toast = send_toast($device_url, $author, $body); if (trim($res_toast) === 'Received') { - PConfig::set($rr['uid'], 'windowsphonepush', 'lastpushid', $count[0]['max']); + DI::pConfig()->set($rr['uid'], 'windowsphonepush', 'lastpushid', $count[0]['max']); } } } @@ -306,7 +291,7 @@ function send_push($device_url, $headers, $msg) // and log this fact $subscriptionStatus = get_header_value($output, 'X-SubscriptionStatus'); if ($subscriptionStatus == "Expired") { - PConfig::set(local_user(), 'windowsphonepush', 'device_url', ""); + DI::pConfig()->set(local_user(), 'windowsphonepush', 'device_url', ""); Logger::log("ERROR: the stored Device-URL " . $device_url . "returned an 'Expired' error, it has been deleted now."); } @@ -365,11 +350,11 @@ function windowsphonepush_showsettings() return; } - $enable = PConfig::get(local_user(), 'windowsphonepush', 'enable'); - $device_url = PConfig::get(local_user(), 'windowsphonepush', 'device_url'); - $senditemtext = PConfig::get(local_user(), 'windowsphonepush', 'senditemtext'); - $lastpushid = PConfig::get(local_user(), 'windowsphonepush', 'lastpushid'); - $counterunseen = PConfig::get(local_user(), 'windowsphonepush', 'counterunseen'); + $enable = DI::pConfig()->get(local_user(), 'windowsphonepush', 'enable'); + $device_url = DI::pConfig()->get(local_user(), 'windowsphonepush', 'device_url'); + $senditemtext = DI::pConfig()->get(local_user(), 'windowsphonepush', 'senditemtext'); + $lastpushid = DI::pConfig()->get(local_user(), 'windowsphonepush', 'lastpushid'); + $counterunseen = DI::pConfig()->get(local_user(), 'windowsphonepush', 'counterunseen'); $addonversion = "2.0"; if (!$device_url) { @@ -400,7 +385,7 @@ function windowsphonepush_updatesettings() } // no updating if user hasn't enabled the addon - $enable = PConfig::get(local_user(), 'windowsphonepush', 'enable'); + $enable = DI::pConfig()->get(local_user(), 'windowsphonepush', 'enable'); if (!$enable) { return "Plug-in not enabled"; } @@ -422,12 +407,12 @@ function windowsphonepush_updatesettings() `v` = '" . $device_url . "'"); if (count($r)) { foreach ($r as $rr) { - PConfig::set($rr['uid'], 'windowsphonepush', 'device_url', ''); + DI::pConfig()->set($rr['uid'], 'windowsphonepush', 'device_url', ''); Logger::log("WARN: the sent URL was already registered with user '" . $rr['uid'] . "'. Deleted for this user as we expect to be correct now for user '" . local_user() . "'."); } } - PConfig::set(local_user(), 'windowsphonepush', 'device_url', $device_url); + DI::pConfig()->set(local_user(), 'windowsphonepush', 'device_url', $device_url); // output the successfull update of the device URL to the logger for error analysis if necessary Logger::log("INFO: Device-URL for user '" . local_user() . "' has been updated with '" . $device_url . "'"); return "Device-URL updated successfully!"; @@ -441,12 +426,12 @@ function windowsphonepush_updatecounterunseen() } // no updating if user hasn't enabled the addon - $enable = PConfig::get(local_user(), 'windowsphonepush', 'enable'); + $enable = DI::pConfig()->get(local_user(), 'windowsphonepush', 'enable'); if (!$enable) { return "Plug-in not enabled"; } - PConfig::set(local_user(), 'windowsphonepush', 'counterunseen', 0); + DI::pConfig()->set(local_user(), 'windowsphonepush', 'counterunseen', 0); return "Counter set to zero"; } @@ -473,7 +458,7 @@ function windowsphonepush_login(App $a) die('This api requires login'); } - Authentication::setAuthenticatedSessionForUser($record); - $_SESSION["allow_api"] = true; - Addon::callHooks('logged_in', $a->user); + DI::auth()->setForUser($a, $record); + DI::session()->set('allow_api', true); + Hook::callAll('logged_in', $a->user); }