def load_from_xml(): try: doc = ElementTree.parse("config/config.xml") except (OSError, IOError): print("No current config, loading from default.") doc = ElementTree.parse("config/config-default.xml") new_hallo = Hallo() root = doc.getroot() new_hallo.default_nick = root.findtext("default_nick") new_hallo.default_prefix = Commons.string_from_file(root.findtext("default_prefix")) new_hallo.default_full_name = root.findtext("default_full_name") new_hallo.function_dispatcher = FunctionDispatcher.from_xml( ElementTree.tostring(root.find("function_dispatcher")), new_hallo) user_group_list_xml = root.find("user_group_list") for user_group_xml in user_group_list_xml.findall("user_group"): user_group_obj = UserGroup.from_xml(ElementTree.tostring(user_group_xml), new_hallo) new_hallo.add_user_group(user_group_obj) server_list_xml = root.find("server_list") for server_xml in server_list_xml.findall("server"): server_obj = new_hallo.server_factory.new_server_from_xml(ElementTree.tostring(server_xml)) new_hallo.add_server(server_obj) if root.find("permission_mask") is not None: new_hallo.permission_mask = PermissionMask.from_xml(ElementTree.tostring(root.find("permission_mask"))) api_key_list_xml = root.find("api_key_list") for api_key_xml in api_key_list_xml.findall("api_key"): api_key_name = api_key_xml.findtext("name") api_key_key = api_key_xml.findtext("key") new_hallo.add_api_key(api_key_name, api_key_key) return new_hallo
def from_xml(xml_string, hallo): """ Loads a new UserGroup object from XML :param xml_string: String containing XML to parse for usergroup :type xml_string: str :param hallo: Hallo object to add user group to :type hallo: Hallo.Hallo """ doc = minidom.parseString(xml_string) new_name = doc.getElementsByTagName("name")[0].firstChild.data new_user_group = UserGroup(new_name, hallo) if len(doc.getElementsByTagName("permission_mask")) != 0: new_user_group.permission_mask = PermissionMask.from_xml( doc.getElementsByTagName("permission_mask")[0].toxml()) return new_user_group
def from_xml(xml_string, server): """ Loads a new Channel object from XML :param xml_string: XML string representation of the channel :type xml_string: str :param server: Server the channel is on :type server: Server.Server """ doc = minidom.parseString(xml_string) new_name = doc.getElementsByTagName("channel_name")[0].firstChild.data channel = Channel(new_name, server) channel.logging = Commons.string_from_file(doc.getElementsByTagName("logging")[0].firstChild.data) channel.use_caps_lock = Commons.string_from_file(doc.getElementsByTagName("caps_lock")[0].firstChild.data) if len(doc.getElementsByTagName("password")) != 0: channel.password = doc.getElementsByTagName("password")[0].firstChild.data channel.passive_enabled = Commons.string_from_file( doc.getElementsByTagName("passive_enabled")[0].firstChild.data) channel.auto_join = Commons.string_from_file(doc.getElementsByTagName("auto_join")[0].firstChild.data) if len(doc.getElementsByTagName("permission_mask")) != 0: channel.permission_mask = PermissionMask.from_xml(doc.getElementsByTagName("permission_mask")[0].toxml()) return channel
def from_xml(xml_string, server): """ Loads a new User object from XML :param xml_string: XML string representation of the user to create :type xml_string: str :param server: Server which the user is on :type server: Server.Server """ doc = minidom.parseString(xml_string) new_name = doc.getElementsByTagName("user_name")[0].firstChild.data new_user = User(new_name, server) new_user.logging = Commons.string_from_file(doc.getElementsByTagName("logging")[0].firstChild.data) new_user.use_caps_lock = Commons.string_from_file(doc.getElementsByTagName("caps_lock")[0].firstChild.data) # Load UserGroups from XML user_group_list_elem = doc.getElementsByTagName("user_group_membership")[0] for user_group_elem in user_group_list_elem.getElementsByTagName("user_group_name"): user_group_name = user_group_elem.firstChild.data user_group = server.hallo.get_user_group_by_name(user_group_name) if user_group is not None: new_user.add_user_group(user_group) # Add PermissionMask, if one exists if len(doc.getElementsByTagName("permission_mask")) != 0: new_user.permission_mask = PermissionMask.from_xml(doc.getElementsByTagName("permission_mask")[0].toxml()) return new_user