- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
#!/usr/bin/python
import sys, os, string, urllib2, json
from urllib2 import HTTPError
import socket
THIS_SCRIPT_NAME = "piwik-num-visits_"
THIS_PIWIK_URL = ""
THIS_TOKEN_AUTH = ""
THIS_ID_SITE = ""
def get_json_data(method, json_key):
piwik_api_url = THIS_PIWIK_URL + "?module=API&idSite=" + THIS_ID_SITE + "&method=" + method + "&format=json&token_auth=" + THIS_TOKEN_AUTH
contents=""
try:
socket.setdefaulttimeout(10)
response = urllib2.urlopen(piwik_api_url)
contents = response.read()
except HTTPError, e:
sys.exit()
jsonContents = json.loads(contents)
result = None
if(not isinstance(jsonContents, list)):
result = jsonContents.get("result")
if(result != None and result == "error"):
return(0)
if(method.rfind("period") != -1):
return(jsonContents[json_key])
else:
return(jsonContents[0][json_key])
def get_site_name():
try:
return(get_json_data("SitesManager.getSiteFromId", "name"))
except KeyError:
# we couldn't find the site name
return("Error Retrieving site")
def get_num_visits():
try:
return(get_json_data("API.get&period=day&date=today", "nb_visits"))
except KeyError:
# we couldn't find the site name
return(0)
if __name__ == "__main__":
# figure out which one we are doing
full_caller_name = sys.argv[0]
index_of_script = full_caller_name.find(THIS_SCRIPT_NAME)
piwik_url = os.environ.get("piwik.url")
token_auth = os.environ.get("piwik.token_auth")
if(None == piwik_url or None == token_auth):
print("FATAL: need url and auth token, got:")
print(piwik_url)
print( "and")
print(token_auth)
sys.exit()
else:
THIS_PIWIK_URL = piwik_url
THIS_TOKEN_AUTH = token_auth
THIS_ID_SITE = sys.argv[0][len(THIS_SCRIPT_NAME) + index_of_script:]
# are we doing config/autoconfig?
if(len(sys.argv) > 1):
if (sys.argv[1]=="config"):
print "graph_title Daily Visits for: " + get_site_name()
print "graph_vlabel Number Of Visits"
print "graph_category piwik"
print "graph_order NUM_HITS"
# in green
print "NUM_HITS.label Number of Hits"
print "NUM_HITS.colour 00cc00"
print "NUM_HITS.draw AREA"
print "graph_args --base 1000 -l 0 "
sys.exit()
# now that we know the caller, get the environment
#stat_url = os.environ.get("url." + caller)
print("NUM_HITS.value %i" % (get_num_visits()))
Комментарии (0) RSS
Добавить комментарий