diff --git a/libs/data.py b/libs/data.py index 7b1e8a6..0d43ee7 100644 --- a/libs/data.py +++ b/libs/data.py @@ -139,24 +139,29 @@ class Yuuki_Data: else: assert "Unknown DataType" return self.Data[Type][Query] - elif type(Query) == list: - if len(Query) >= 2: - if Query[0] not in self.Data[Type]: - if Type in self.initType: - self.Data[Type][Query[0]] = self.initType[Type] - else: - assert "Unknown DataType" - if Query[1] not in self.Data[Type][Query[0]]: - if Type in self.initType: - self.Data[Type][Query[0]][Query[1]] = self.initType[Query[0]] - else: - assert "Unknown DataType" - if len(Query) == 2: - return self.Data[Type][Query[0]][Query[1]] + elif type(Query) == list and len(Query) > 1: + # Level 2 + if Query[0] not in self.Data[Type]: + if Type in self.initType: + self.Data[Type][Query[0]] = self.initType[Type] + else: + assert "Unknown DataType" + if Query[1] not in self.Data[Type][Query[0]]: + if Query[0] in self.initType: + self.Data[Type][Query[0]][Query[1]] = self.initType[Query[0]] + elif Query[0] in self.DataType: + self.Data[Type][Query[0]][Query[1]] = self.DataType[Query[0]] + else: + assert "Unknown DataType" + if len(Query) == 2: + return self.Data[Type][Query[0]][Query[1]] + # Level 3 if len(Query) >= 3: if Query[2] not in self.Data[Type][Query[0]][Query[1]]: - if Type in self.initType: - self.Data[Type][Query[0]][Query[1]][Query[2]] = self.initType[Query[0]] + if Query[1] in self.initType: + self.Data[Type][Query[0]][Query[1]][Query[2]] = self.initType[Query[1]] + elif Query[1] in self.DataType: + self.Data[Type][Query[0]][Query[1]][Query[2]] = self.DataType[Query[0]][Query[1]] else: assert "Unknown DataType" if len(Query) == 3: diff --git a/libs/yuuki.py b/libs/yuuki.py index 6cac788..350666a 100644 --- a/libs/yuuki.py +++ b/libs/yuuki.py @@ -514,31 +514,30 @@ class Yuuki: if Action in self.Connect.helper_ids: # Log self.data.updateLog("KickEvent", (self.data.getTime(), GroupInfo.name, GroupID, Action, Action, Another, ncMessage.type*10+1)) + elif Another in [self.MyMID] + self.Connect.helper_ids: + Kicker = "None" + try: + Kicker = self.kickSomeone(GroupID, Action, Another) + # Log + self.data.updateLog("KickEvent", (self.data.getTime(), GroupInfo.name, GroupID, Kicker, Action, Another, ncMessage.type*10+2)) + if GroupInfo.preventJoinByTicket: + self.changeGroupUrlStatus(GroupInfo, True, Kicker) + GroupTicket = self.getGroupTicket(GroupID, Kicker) + if GroupInfo.preventJoinByTicket: + self.changeGroupUrlStatus(GroupInfo, False, Kicker) + self.getClientByMid(Another).acceptGroupInvitationByTicket(self.Seq, GroupID, GroupTicket) + except: + # Log + self.data.updateLog("KickEvent", (self.data.getTime(), GroupInfo.name, GroupID, Kicker, Action, Another, ncMessage.type*10+3)) + self.data.updateData(self.data.getData("BlackList"), True, Action) + # Log + self.data.updateLog("BlackList", (self.data.getTime(), Action, GroupID)) + self.sendText(Action, _("You had been blocked by our database.")) else: - if Another in [self.MyMID] + self.Connect.helper_ids: - Kicker = "None" - try: - Kicker = self.kickSomeone(GroupID, Action, Another) - # Log - self.data.updateLog("KickEvent", (self.data.getTime(), GroupInfo.name, GroupID, Kicker, Action, Another, ncMessage.type*10+2)) - if GroupInfo.preventJoinByTicket: - self.changeGroupUrlStatus(GroupInfo, True, Kicker) - GroupTicket = self.getGroupTicket(GroupID) - if GroupInfo.preventJoinByTicket: - self.changeGroupUrlStatus(GroupInfo, False, Kicker) - self.getClientByMid(Another).acceptGroupInvitationByTicket(self.Seq, GroupID, GroupTicket) - except: - # Log - self.data.updateLog("KickEvent", (self.data.getTime(), GroupInfo.name, GroupID, Kicker, Action, Another, ncMessage.type*10+3)) - self.data.updateData(self.data.getData("BlackList"), True, Action) - # Log - self.data.updateLog("BlackList", (self.data.getTime(), Action, GroupID)) - self.sendText(Action, _("You had been blocked by our database.")) - else: - self.sendText(GroupID, _("DO NOT KICK, thank you ^^")) - Kicker = self.kickSomeone(GroupID, Action) - # Log - self.data.updateLog("KickEvent", (self.data.getTime(), GroupInfo.name, GroupID, Kicker, Action, Another, ncMessage.type)) + self.sendText(GroupID, _("DO NOT KICK, thank you ^^")) + Kicker = self.kickSomeone(GroupID, Action) + # Log + self.data.updateLog("KickEvent", (self.data.getTime(), GroupInfo.name, GroupID, Kicker, Action, Another, ncMessage.type)) elif self.SecurityService: if ncMessage.type == OpType.NOTIFIED_INVITE_INTO_GROUP: Canceler = "None"