Handle IntentErrors when cleaning up rooms

This commit is contained in:
Tulir Asokan
2018-02-13 01:13:27 +02:00
parent 496ebd2c8d
commit 90466ba941
2 changed files with 12 additions and 4 deletions
+6 -1
View File
@@ -13,6 +13,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from mautrix_appservice import MatrixRequestError
from . import command_handler
from .. import puppet as pu, portal as po
@@ -27,7 +29,10 @@ async def _find_rooms(intent):
for room in rooms:
portal = po.Portal.get_by_mxid(room)
if not portal:
members = await intent.get_room_members(room)
try:
members = await intent.get_room_members(room)
except MatrixRequestError:
members = []
if len(members) == 2:
other_member = members[0] if members[0] != intent.mxid else members[1]
if pu.Puppet.get_id_from_mxid(other_member):
+6 -3
View File
@@ -29,7 +29,7 @@ from telethon.tl.functions.messages import *
from telethon.tl.functions.channels import *
from telethon.errors.rpc_error_list import *
from telethon.tl.types import *
from mautrix_appservice import MatrixRequestError
from mautrix_appservice import MatrixRequestError, IntentError
from .db import Portal as DBPortal, Message as DBMessage
from . import puppet as p, user as u, formatter
@@ -360,7 +360,10 @@ class Portal:
return link.link
async def get_authenticated_matrix_users(self):
members = await self.main_intent.get_room_members(self.mxid)
try:
members = await self.main_intent.get_room_members(self.mxid)
except MatrixRequestError:
return []
authenticated = []
for member in members:
if p.Puppet.get_id_from_mxid(member) or member == self.main_intent.mxid:
@@ -380,7 +383,7 @@ class Portal:
if user != intent.mxid:
try:
await intent.kick(room_id, user, f"{type} deleted.")
except MatrixRequestError:
except (MatrixRequestError, IntentError):
pass
await intent.leave_room(room_id)