<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0">
    <channel>
      <title>manatlan's news</title>
      <link>http://manatlan.com/</link>
      <description>manatlan's news</description>
      <webMaster>me@manatlan.com</webMaster>

      <language>en</language>

		<item>
			<title><![CDATA[FreeboxV6 JSON Api with Python]]></title>
			<link><![CDATA[http://manatlan.com/blog/freeboxv6_json_api_with_python]]></link>
			<guid><![CDATA[http://manatlan.com/blog/freeboxv6_json_api_with_python]]></guid>
			<description><![CDATA[<p>Just a snippet : a simple python wrapper around JSON/Freebox V6 API</p>

<pre><code>#!/usr/bin/python
# -*- coding: utf-8 -*-
import cookielib, urllib, urllib2
import json
from pprint import pprint

# install an urlopener which handle cookies
cookiejar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
urllib2.install_opener(opener)


class FBXComm(object):
    def __init__(self,host,passwd):
        self.__host=host
        data={"login":"freebox","passwd":passwd}

        request = urllib2.Request("http://%s/login.php"%host, urllib.urlencode(data), {})
        r=urllib2.urlopen(request)
        assert r.code == 200

        fbxsid=None
        for i in cookiejar:
            if i.name == "FBXSID":
                fbxsid=i.value.strip('"')
        assert fbxsid

    def call(self,method,data):
        cgi=method.split(".",1)[0]+".cgi"
        data={"jsonrpc":"2.0","method":method,"params":data}
        q=urllib2.Request("http://%s/%s"%(self.__host,cgi),json.dumps(data),{"Content-Type":"application/json"})
        r=urllib2.urlopen(q)
        return json.loads(r.read())

if __name__=="__main__":
    x=FBXComm("ton_ip_freebox","ton_mot_de_passe")
    pprint( x.call("conn.status",[]) )
    pprint( x.call("fs.list",["/Disque dur"]) )
</code></pre>

<p>Inspired from <a href="http://www.chosesafaire.fr/2012/05/api-minimaliste-freebox-revolution/comment-page-1/#comment-406">chosesafaire</a></p>

<p><a href="http://www.freebox-v6.fr/wiki/index.php?title=API">More documentation on Freebox V6 apis</a></p>
]]></description>
            <author>manatlan</author>
			<pubDate>Fri, 25 May 2012 13:16:17 GMT</pubDate>
		</item>
    </channel>
</rss>
