|
|
|
@ -52,9 +52,25 @@ class RoomController extends AbstractController
@@ -52,9 +52,25 @@ class RoomController extends AbstractController
|
|
|
|
|
$this->getParameter('app.kevacoin.password') |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Connect memcached |
|
|
|
|
$memcached = new \Memcached(); |
|
|
|
|
$memcached->addServer( |
|
|
|
|
$this->getParameter('app.memcached.host'), |
|
|
|
|
$this->getParameter('app.memcached.port') |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$memory = md5( |
|
|
|
|
sprintf( |
|
|
|
|
'%s.RoomController::list:rooms', |
|
|
|
|
__DIR__ |
|
|
|
|
), |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Get room list |
|
|
|
|
$list = []; |
|
|
|
|
|
|
|
|
|
if (!$list = $memcached->get($memory)) |
|
|
|
|
{ |
|
|
|
|
foreach ((array) $client->kevaListNamespaces() as $value) |
|
|
|
|
{ |
|
|
|
|
// Calculate room totals |
|
|
|
@ -101,6 +117,14 @@ class RoomController extends AbstractController
@@ -101,6 +117,14 @@ class RoomController extends AbstractController
|
|
|
|
|
$list |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Cache rooms to memcached as kevaListNamespaces hides rooms with pending posts |
|
|
|
|
$memcached->set( |
|
|
|
|
$memory, |
|
|
|
|
$list, |
|
|
|
|
(int) $this->getParameter('app.memcached.timeout') |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// RSS |
|
|
|
|
if ('rss' === $request->get('feed')) |
|
|
|
|
{ |
|
|
|
@ -703,6 +727,16 @@ class RoomController extends AbstractController
@@ -703,6 +727,16 @@ class RoomController extends AbstractController
|
|
|
|
|
(int) $this->getParameter('app.add.room.remote.ip.delay') // auto remove on cache expire |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Reset rooms list cache |
|
|
|
|
$memcached->delete( |
|
|
|
|
md5( |
|
|
|
|
sprintf( |
|
|
|
|
'%s.RoomController::list:rooms', |
|
|
|
|
__DIR__ |
|
|
|
|
), |
|
|
|
|
) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Redirect to new room |
|
|
|
|
return $this->redirectToRoute( |
|
|
|
|
'room_namespace', |
|
|
|
|