martinsam
6/28/2011 - 12:07 AM

Import OPML

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)