]> git.mxchange.org Git - friendica.git/commitdiff
Caching of "noscrape"
authorMichael <heluecht@pirati.ca>
Tue, 17 May 2022 15:39:04 +0000 (15:39 +0000)
committerMichael <heluecht@pirati.ca>
Tue, 17 May 2022 15:39:04 +0000 (15:39 +0000)
src/Model/Contact.php
src/Module/NoScrape.php

index eeaf5f81dfa08c0ea66cbc78b30c257487958aa0..bf1a50cbc4e5fd8c08174f6e5ac7c8ff7c2bf441 100644 (file)
@@ -35,6 +35,7 @@ use Friendica\Core\Worker;
 use Friendica\Database\Database;
 use Friendica\Database\DBA;
 use Friendica\DI;
+use Friendica\Module\NoScrape;
 use Friendica\Network\HTTPException;
 use Friendica\Network\Probe;
 use Friendica\Protocol\Activity;
@@ -909,6 +910,7 @@ class Contact
 
                DI::cache()->delete(ActivityPub\Transmitter::CACHEKEY_CONTACTS . 'followers:' . $uid);
                DI::cache()->delete(ActivityPub\Transmitter::CACHEKEY_CONTACTS . 'following:' . $uid);
+               DI::cache()->delete(NoScrape::CACHEKEY . $uid);
        }
 
        /**
index c315ff0454220768dea0e5d429694156a3898d6a..fbc01c2d3c7e7d9c0126c138bb43b16267b60368 100644 (file)
@@ -22,6 +22,7 @@
 namespace Friendica\Module;
 
 use Friendica\BaseModule;
+use Friendica\Core\Cache\Enum\Duration;
 use Friendica\Core\Protocol;
 use Friendica\Core\System;
 use Friendica\Database\DBA;
@@ -35,6 +36,8 @@ use Friendica\Model\User;
  */
 class NoScrape extends BaseModule
 {
+       const CACHEKEY = 'noscrape:';
+
        protected function rawContent(array $request = [])
        {
                $a = DI::app();
@@ -55,6 +58,12 @@ class NoScrape extends BaseModule
                        System::jsonError(404, 'Profile not found');
                }
 
+               $cachekey = self::CACHEKEY . $owner['uid'];
+               $result = DI::cache()->get($cachekey);
+               if (!is_null($result)) {
+                       System::jsonExit($result);
+               }
+
                $json_info = [
                        'addr'         => $owner['addr'],
                        'nick'         => $which,
@@ -126,6 +135,8 @@ class NoScrape extends BaseModule
                        }
                }
 
+               DI::cache()->set($cachekey, $json_info, Duration::DAY);
+
                System::jsonExit($json_info);
        }
 }