Import OPML
from pyquery import PyQuery as pq
from lxml import etree
from django.template.defaultfilters import slugify
my_file = open('/home/sam/feedlist.opml', 'r')
data = my_file.read()
opml = pq(data)
outlines = opml("body > outline")
#category = Category.objects.none()
def parse_opml(outlines, level = 0):
if len(outlines):
for outline in outlines:
print ("%s - %s - %s") % (level, outline.get("type"), outline.get("title"))
if outline.get("type") == "folder":
### CREATE A CATEGORIE
print "CREATION CATEGORIE"
#category = Category.objects.get_or_create(name=outline.get("title"),
#user = request.user, slug = slugify(outline.get("title")))
else:
### CREATE A FEED
print "CREATION FEED"
if outline.getparent().get("type") == "folder":
outline_mother = outline.getparent()
category = Category.objects.get_or_create(name=outline_mother.get("title"),
user = request.user, slug = slugify(outline_mother.get("title")))
feed = Feed.objects.get_or_create(name=outline.get("title"), url=outline.get("xmlUrl")), category=category)
if outline.getchildren() :
u = parse_opml(outline.getchildren(), level + 1)
>> parse_opml(outlines)