
First XBMC patches committed
News, Technical, Media ·Saturday September 11, 2010 @ 16:58 EDT (link)
I've had some patches committed to XBMC, although the main change, a refactoring of the scraper architecture with a view to adding the ability to use Python (and other) scrapers, is still being reviewed. Breaking up the initial single patch was my reason for learning git, which makes it easy to break up changes and also allows for local commits without pushing to the remote repository. It also makes it easy to sync remote changes "under" mine. (Curious: there's a routing problem somewhere in the depths of the 'net which makes accessing xbmc.org and subdomains very slow, so I've been accessing the forums and bug database from a remote server.)
The next part of the change is to actually implement a Python scraper interface. The easy way is to declare the media access methods in CScraper virtual and create CXmlScraper and CPythonScraper, and create the objects appropriately when the add-on data is read (it uses C-Pluff), interfacing with the internal Python objects to load and run the code. The better way that I'm considering—in part because I want to use Python 3 and not be restricted in the modules I can use—is to make a more general module interface, or rather, collaborate with jmarsmall on one he's been designing. Difficulty: the internal embedded Python has its hooks very deep. I hope to persist with this, and eventually, through making useful contributions, get commit access and possibly join Team-XBMC.
PS: I checked back on an old fix I'd made to rtorrent (a great console BitTorrent client, flexible and easy to automate), and found it had (finally!) been committed. (Five months ago… fix was 11 months ago… I hadn't checked for a while, since I have a local patch for my Gentoo ebuild, so it wasn't bothering me any more, but I'd hoped the contributed fix would help others.) That was just a fix for a crash; nothing so complicated as I'm trying to do with XBMC. Being able to fix bugs and contribute back is a great win.