Cache whether an AS is interested based on members
							parent
							
								
									30f5ffdca2
								
							
						
					
					
						commit
						51b156d48a
					
				| 
						 | 
					@ -13,6 +13,7 @@
 | 
				
			||||||
# See the License for the specific language governing permissions and
 | 
					# See the License for the specific language governing permissions and
 | 
				
			||||||
# limitations under the License.
 | 
					# limitations under the License.
 | 
				
			||||||
from synapse.api.constants import EventTypes
 | 
					from synapse.api.constants import EventTypes
 | 
				
			||||||
 | 
					from synapse.util.caches.descriptors import cachedInlineCallbacks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from twisted.internet import defer
 | 
					from twisted.internet import defer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -160,7 +161,14 @@ class ApplicationService(object):
 | 
				
			||||||
        if not store:
 | 
					        if not store:
 | 
				
			||||||
            defer.returnValue(False)
 | 
					            defer.returnValue(False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        member_list = yield store.get_users_in_room(event.room_id)
 | 
					        does_match = yield self._matches_user_in_member_list(event.room_id, store)
 | 
				
			||||||
 | 
					        defer.returnValue(does_match)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @cachedInlineCallbacks(num_args=1, cache_context=True)
 | 
				
			||||||
 | 
					    def _matches_user_in_member_list(self, room_id, store, cache_context):
 | 
				
			||||||
 | 
					        member_list = yield store.get_users_in_room(
 | 
				
			||||||
 | 
					            room_id, on_invalidate=cache_context.invalidate
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # check joined member events
 | 
					        # check joined member events
 | 
				
			||||||
        for user_id in member_list:
 | 
					        for user_id in member_list:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue