|
@@ -1,15 +1,15 @@
|
|
|
#============================================================================
|
|
|
# This file is part of Pwman3.
|
|
|
-#
|
|
|
+#
|
|
|
# Pwman3 is free software; you can redistribute it and/or modify
|
|
|
# it under the terms of the GNU General Public License, version 2
|
|
|
-# as published by the Free Software Foundation;
|
|
|
-#
|
|
|
+# as published by the Free Software Foundation;
|
|
|
+#
|
|
|
# Pwman3 is distributed in the hope that it will be useful,
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
# GNU General Public License for more details.
|
|
|
-#
|
|
|
+#
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
# along with Pwman3; if not, write to the Free Software
|
|
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
@@ -20,80 +20,6 @@
|
|
|
# Copyright (C) 2006 Ivan Kelly <ivan@ivankelly.net>
|
|
|
#============================================================================
|
|
|
|
|
|
-try:
|
|
|
- import xml.etree.cElementTree as ET
|
|
|
-except ImportError:
|
|
|
- import cElementTree as ET
|
|
|
-
|
|
|
-from pwman.data.nodes import Node
|
|
|
-from pwman.data.tags import Tag
|
|
|
-
|
|
|
-class Importer:
|
|
|
- def types(self):
|
|
|
- return ["pwman3", "pwman1"]
|
|
|
- types = classmethod(types)
|
|
|
-
|
|
|
- def get(self, type):
|
|
|
- if type == "pwman3":
|
|
|
- return Pwman3Importer()
|
|
|
- if type == "pwman1":
|
|
|
- return Pwman1Importer()
|
|
|
- get = classmethod(get)
|
|
|
-
|
|
|
- def import_data(self, db, file):
|
|
|
- pass
|
|
|
-
|
|
|
-class Pwman1Importer(Importer):
|
|
|
- def __init__(self):
|
|
|
- self.tagstack = []
|
|
|
- self.nodes = []
|
|
|
-
|
|
|
- def parse_list(self, db, list):
|
|
|
- lists = list.findall("PwList")
|
|
|
- for l in lists:
|
|
|
- name = l.get("name").lower().replace(' ', '')
|
|
|
- self.tagstack.append(name)
|
|
|
- self.parse_list(db, l)
|
|
|
- self.tagstack.pop()
|
|
|
- items = list.findall("PwItem")
|
|
|
- tags = []
|
|
|
- for t in self.tagstack:
|
|
|
- tags.append(Tag(t))
|
|
|
-
|
|
|
- for i in items:
|
|
|
- username = i.findtext("user")
|
|
|
- password = i.findtext("passwd")
|
|
|
- url = i.findtext("host")
|
|
|
- notes = "%s | %s" % (i.findtext("name"), i.findtext("launch"))
|
|
|
- n = Node(username, password, url, notes)
|
|
|
- n.set_tags(tags)
|
|
|
- self.nodes.append(n)
|
|
|
-
|
|
|
- def import_data(self, db, file):
|
|
|
- tree = ET.parse(file)
|
|
|
- root = tree.getroot()
|
|
|
- list = root.find("PwList")
|
|
|
- self.parse_list(db, list)
|
|
|
- db.addnodes(self.nodes)
|
|
|
-
|
|
|
-class Pwman3Importer(Importer):
|
|
|
- def import_data(self, db, file):
|
|
|
- tree = ET.parse(file)
|
|
|
- root = tree.getroot()
|
|
|
- nodes = root.findall("Node")
|
|
|
- nodesarray = []
|
|
|
- for n in nodes:
|
|
|
- username = n.findtext("username")
|
|
|
- password = n.findtext("password")
|
|
|
- url = n.findtext("url")
|
|
|
- notes = n.findtext("notes")
|
|
|
-
|
|
|
- node = Node(username, password, url, notes)
|
|
|
- tagnames = n.find("tags").findall("name")
|
|
|
- tags = []
|
|
|
- for t in tagnames:
|
|
|
- tags.append(Tag(t.text))
|
|
|
- node.set_tags(tags)
|
|
|
- nodesarray.append(node)
|
|
|
- db.addnodes(nodesarray)
|
|
|
-
|
|
|
+'''
|
|
|
+Not implemented yet
|
|
|
+'''
|