From bdf95e8305da6361a188b5e5d9765b6e3f13e2e2 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 5 Aug 2024 20:34:17 +0000 Subject: [PATCH] Statistics: Inbound/Outbound for more protocols --- src/Module/Feed.php | 4 ++++ src/Module/Stats.php | 14 ++++++++++++++ src/Protocol/Email.php | 8 +++++++- src/Worker/OnePoll.php | 1 + 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/Module/Feed.php b/src/Module/Feed.php index 6289ad2b28..a88936470e 100644 --- a/src/Module/Feed.php +++ b/src/Module/Feed.php @@ -22,6 +22,8 @@ namespace Friendica\Module; use Friendica\BaseModule; +use Friendica\Core\Protocol; +use Friendica\Model\Item; use Friendica\Model\User; use Friendica\Network\HTTPException; use Friendica\Protocol\Feed as ProtocolFeed; @@ -68,6 +70,8 @@ class Feed extends BaseModule throw new HTTPException\UnauthorizedException($this->t('Access to this profile has been restricted.')); } + Item::incrementOutbound(Protocol::FEED); + $feed = ProtocolFeed::atom($owner, $last_update, 10, $type); $this->httpExit($feed, Response::TYPE_ATOM); diff --git a/src/Module/Stats.php b/src/Module/Stats.php index d8bc317fc4..9e77fc65e9 100644 --- a/src/Module/Stats.php +++ b/src/Module/Stats.php @@ -23,6 +23,7 @@ namespace Friendica\Module; use Friendica\App; use Friendica\BaseModule; +use Friendica\Core\Addon; use Friendica\Core\Config\Capability\IManageConfigValues; use Friendica\Core\KeyValueStorage\Capability\IManageKeyValuePairs; use Friendica\Core\L10n; @@ -123,12 +124,16 @@ class Stats extends BaseModule Protocol::DFRN => intval($this->keyValue->get('stats_packets_inbound_' . Protocol::DFRN) ?? 0), Protocol::DIASPORA => intval($this->keyValue->get('stats_packets_inbound_' . Protocol::DIASPORA) ?? 0), Protocol::OSTATUS => intval($this->keyValue->get('stats_packets_inbound_' . Protocol::OSTATUS) ?? 0), + Protocol::FEED => intval($this->keyValue->get('stats_packets_inbound_' . Protocol::FEED) ?? 0), + Protocol::MAIL => intval($this->keyValue->get('stats_packets_inbound_' . Protocol::MAIL) ?? 0), ], 'outbound' => [ Protocol::ACTIVITYPUB => intval($this->keyValue->get('stats_packets_outbound_' . Protocol::ACTIVITYPUB) ?? 0), Protocol::DFRN => intval($this->keyValue->get('stats_packets_outbound_' . Protocol::DFRN) ?? 0), Protocol::DIASPORA => intval($this->keyValue->get('stats_packets_outbound_' . Protocol::DIASPORA) ?? 0), Protocol::OSTATUS => intval($this->keyValue->get('stats_packets_outbound_' . Protocol::OSTATUS) ?? 0), + Protocol::FEED => intval($this->keyValue->get('stats_packets_outbound_' . Protocol::FEED) ?? 0), + Protocol::MAIL => intval($this->keyValue->get('stats_packets_outbound_' . Protocol::MAIL) ?? 0), ] ], 'reports' => [ @@ -141,6 +146,15 @@ class Stats extends BaseModule ] ]; + if (Addon::isEnabled('bluesky')) { + $statistics['packets']['inbound'][Protocol::BLUESKY] = intval($this->keyValue->get('stats_packets_inbound_' . Protocol::BLUESKY) ?? 0); + $statistics['packets']['outbound'][Protocol::BLUESKY] = intval($this->keyValue->get('stats_packets_outbound_' . Protocol::BLUESKY) ?? 0); + } + if (Addon::isEnabled('tumblr')) { + $statistics['packets']['inbound'][Protocol::TUMBLR] = intval($this->keyValue->get('stats_packets_inbound_' . Protocol::TUMBLR) ?? 0); + $statistics['packets']['outbound'][Protocol::TUMBLR] = intval($this->keyValue->get('stats_packets_outbound_' . Protocol::TUMBLR) ?? 0); + } + $statistics = $this->getJobsPerPriority($statistics); $this->jsonExit($statistics); diff --git a/src/Protocol/Email.php b/src/Protocol/Email.php index 836235105c..d52f159c15 100644 --- a/src/Protocol/Email.php +++ b/src/Protocol/Email.php @@ -25,6 +25,7 @@ use Friendica\Core\Hook; use Friendica\Core\Logger; use Friendica\Content\Text\BBCode; use Friendica\Content\Text\HTML; +use Friendica\Core\Protocol; use Friendica\Model\Item; use Friendica\Util\Strings; use \IMAP\Connection; @@ -47,6 +48,7 @@ class Email return false; } + Item::incrementInbound(Protocol::MAIL); $mbox = @imap_open($mailbox, $username, $password); $errors = imap_errors(); @@ -74,6 +76,7 @@ class Email return []; } + Item::incrementInbound(Protocol::MAIL); $search1 = @imap_search($mbox, 'UNDELETED FROM "' . $email_addr . '"', SE_UID); if (!$search1) { $search1 = []; @@ -81,6 +84,7 @@ class Email Logger::debug("Found mails from ".$email_addr); } + Item::incrementInbound(Protocol::MAIL); $search2 = @imap_search($mbox, 'UNDELETED TO "' . $email_addr . '"', SE_UID); if (!$search2) { $search2 = []; @@ -88,6 +92,7 @@ class Email Logger::debug("Found mails to ".$email_addr); } + Item::incrementInbound(Protocol::MAIL); $search3 = @imap_search($mbox, 'UNDELETED CC "' . $email_addr . '"', SE_UID); if (!$search3) { $search3 = []; @@ -136,7 +141,7 @@ class Email public static function getMessage($mbox, int $uid, string $reply, array $item): array { $ret = $item; - + Item::incrementInbound(Protocol::MAIL); $struc = (($mbox && $uid) ? @imap_fetchstructure($mbox, $uid, FT_UID) : null); if (!$struc) { @@ -403,6 +408,7 @@ class Email //$message = '' . $html . ''; //$message = html2plain($html); Logger::notice('notifier: email delivery to ' . $addr); + Item::incrementOutbound(Protocol::MAIL); return mail($addr, $subject, $body, $headers); } diff --git a/src/Worker/OnePoll.php b/src/Worker/OnePoll.php index 838f30a4e4..dcfc55d057 100644 --- a/src/Worker/OnePoll.php +++ b/src/Worker/OnePoll.php @@ -165,6 +165,7 @@ class OnePoll } $cookiejar = tempnam(System::getTempPath(), 'cookiejar-onepoll-'); + Item::incrementInbound(Protocol::FEED); $curlResult = DI::httpClient()->get($contact['poll'], HttpClientAccept::FEED_XML, [HttpClientOptions::COOKIEJAR => $cookiejar, HttpClientOptions::REQUEST => HttpClientRequest::FEEDFETCHER]); unlink($cookiejar);