Example #1
0
 def getPiwikSites(self):
     [url, token] = get_piwik_settings()
     piwik = PiwikAPI(url, token)
     sites = piwik.getAllSites()
     choices = []
     for site in sites:
         site_id = int(site["idsite"])
         choices.append((site_id, '%d - %s' % (site_id, site["name"])))
     return tuple(choices)
Example #2
0
def piwik_processor(request):
    current_site = Site.objects.get_current()
    piwik_site = PiwikSite.objects.filter(site=current_site.id)
    if (len(piwik_site) == 0):
        return {}
    id_piwik = piwik_site[0].id_site
    try:
        javascript = PIWIK_CACHE[id_piwik]
    except KeyError:        
        piwik = PiwikAPI(settings.PIWIK_URL, settings.PIWIK_TOKEN)
        javascript = saxutils.unescape(piwik.getJavascriptTag(id_piwik))
        PIWIK_CACHE[id_piwik] = javascript
    return {'piwik_tag' : javascript}
def pagesMonthly(date):
    data = []
    piwik = PiwikAPI("http://stats.firefly-it.de/", "anonymous")
    tutorials = piwik.call(
                'Actions.getPageUrls',
                params = {
                    'idSite': 5,
                    'period': 'month',
                    'date': date,
                    'expanded': 1
                }
            )
    for tutorial in tutorials:
        if tutorial['label'] == 'tutorial':
            subtable = tutorial['idsubdatatable']
            pages = piwik.call(
                        'Actions.getPageUrls',
                        params = {
                            'idSite': 5,
                            'period': 'month',
                            'date': date,
                            'idSubtable': subtable,
                            'expanded': 1
                        }
                    )
            for page in pages:
                if page['label'] != '/index':
                    for subtable in page['subtable']:
                        if subtable['label'] == '/links':
                            endpagevisits = subtable['nb_visits']
                    data.append({'label': page['label'],
                                'visits': page['nb_visits'],
                                'endpagevisits': endpagevisits
                                })
    if data:
        return data
    else:
        abort(404)
Example #4
0
class testPiwikAPI(unittest.TestCase):
    def setUp(self):
        conn = Mock('httplib.HTTPConnection')
        mock('httplib.HTTPConnection', mock_obj=conn)
        conn.mock_returns = conn        
        self.conn = conn
        self.piwik = PiwikAPI('http://exemple.org/', '123')
        
    def setResponse(self, status, headers, body):
         mock_response = Mock('httplib.httpresponse')
         mock_response.status = int(status.split()[0])
         mock_response.reason = status.split(None, 1)[1]
         mock_response.read.mock_returns = body
         mock_response.getheader.mock_returns_func = headers.get
         mock_response.msg.headers = [
             '%s: %s' % (name, value) for name, value in headers.items()]
         self.conn.getresponse.mock_returns = mock_response

    def testGetAllSites(self):
        self.setResponse("200 OK", {}, "[[1]]")
        self.assertEquals([[1]], self.piwik.getSiteFromId(2))
Example #5
0
 def setUp(self):
     conn = Mock('httplib.HTTPConnection')
     mock('httplib.HTTPConnection', mock_obj=conn)
     conn.mock_returns = conn        
     self.conn = conn
     self.piwik = PiwikAPI('http://exemple.org/', '123')