Project

General

Profile

Revision 9791e4f3

Added by Marc Nicolas almost 9 years ago

Mise en place de la nouvelle API Pygal avec le nouveau bar_chart

View differences:

webstatDev/idoc_Maison/webstat/libStatSitools.py
5 5
__maintainer__ = "Marc NICOLAS"
6 6
__email__ = "marc.nicolas@ias.u-psud.fr"
7 7

  
8
import sys, os
9

  
10 8
try:
11 9
    import copy
12 10
except:
......
52 50
except:
53 51
    sys.exit("Import failed in module lancementStat :\n\toperator module is required")
54 52
try:
55
    # PATH FOR PROD
53
    #PATH FOR PROD
56 54
    #gi = pygeoip.GeoIP("/usr/local/sitools2_webstat/webstat/GeoIP.dat")
57
    # PATH FOR DEV
58
    gi = pygeoip.GeoIP("/home/marc/MyDev/sitools-idoc/webstatDev/idoc_Maison/webstat/GeoIP.dat")
55
    #PATH FOR DEV
56
    gi = pygeoip.GeoIP("/home/marc/Projet/idoc_Maison/webstat/GeoIP.dat")
59 57
except:
60 58
    sys.exit("Import of GeoIP.dat failed. Verify that the GeoIP file exists !")
61 59

  
......
103 101

  
104 102
        for pathLog in list_path_logs:
105 103
            listarbo = os.listdir(pathLog)
106
	    print "PathLog : ",pathLog
104
            print "PathLog : ", pathLog
107 105
            for fileToOpen in listarbo:
108 106
                pathfile = pathLog + "/" + fileToOpen
109
		if os.path.isfile(pathfile) and os.path.basename(fileToOpen).split(".")[1] == "log" and os.path.getsize(pathfile) != 0  and "sitools-log-service" in fileToOpen:
110
                    print "Traitement de ",pathfile
111
	            print  "taille : ",os.path.getsize(pathfile)
107
                if os.path.isfile(pathfile) and os.path.basename(fileToOpen).split(".")[1] == "log" and \
108
                                os.path.getsize(pathfile) != 0  and "sitools-log-service" in fileToOpen:
109
                    print "Traitement de ", pathfile
110
                    print "taille : ", os.path.getsize(pathfile)
112 111
                    fileopen = open(pathfile, "r")
113 112
                    lines = fileopen.readlines()
114 113
                    for line in lines:
115 114
                        infos = line.split("\t")
116
                        my_time = datetime.strptime(infos[0].split(" ")[0][:len(infos[0].split(" ")[0]) - 4].replace("T", " ").split(" ")[0], time_format_for_by_month).date()
115
                        my_time = datetime.strptime(infos[0].split(" ")[0][:len(infos[0].split(" ")[0]) - 4].replace("T"," ").split(" ")[0], time_format_for_by_month).date()
117 116
                        if len(infos) > 14 and infos[2] not in dico_cste["listIpToExclude"] and dico_cste["patternBot"] not in infos[14] and dico_cste["patternYahoo"] not in infos[14] \
118
				and not any(s in infos[14] for s in dico_cste["patternBaidu"]):
117
                                and not any(s in infos[14] for s in dico_cste["patternBaidu"]):
119 118
                            if start_date < my_time < end_date:
120
                                #---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
121
				# *******************************************************************   STATISTIQUE SUR LES DOWNLOAD *****************************************************************
122
				#-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
123
				if len(infos) == 16 and infos[6] == dico_cste["pattern_http_method"] and infos[9] == dico_cste["pattern_code_retour"] and any(s in infos[7] for s in dico_cste["pattern_download"]) \
119
                                #------------------------------------------------------------------------------------
120
                                # **********************************   STATISTIQUE SUR LES DOWNLOAD ********************
121
                                #---------------------------------------------------------------------------------------
122
                                if len(infos) == 16 and infos[6] == dico_cste["pattern_http_method"] and infos[9] == dico_cste["pattern_code_retour"] and any(s in infos[7] for s in dico_cste["pattern_download"]) \
124 123
                                        and not any(s in infos[7] for s in dico_cste["sia"]) and not any(s in infos[7] for s in dico_cste["CutFits"]) and gi.country_code_by_addr(infos[2]) != "CN" :
125 124
                                    nb_download += 1
126 125
                                    try:
......
147 146
                                                    project = "others"
148 147
                                                else:
149 148
                                                    project_tmp2 = infos[7].split("/")[8]
150
                                                    #print "project_tmp2 : ",project_tmp2
151 149
                                                    if project_tmp2.lower() not in dico_project.keys():
152 150
                                                        project = "others"
153 151
                                                    else:
......
191 189
                                    ######################### DOWNLOAD BY USER #######################################
192 190
                                    if cond_app["is_down_stat_by_user"]:
193 191
                                        pass
194
                            	# AJOUT D'UNE CONDITION SUR 127.0.0.1 POUR EXCLURE HOBBIT PENDANT UNE PERIODE OU ON AVAIT PLUS ACCES AU "VRAI" IP
195
				#---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
196
                                # ***************************************************   STATISTIQUES SUR LES ACCESS *************************************************************
197
                                #-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
198
                            	if not infos[2] == "127.0.0.1" and re.match(reg_infos_url, infos[2]) is not None and gi.country_code_by_addr(infos[2]) != "CN":
199
                                	#*********************************  ACCESS By IP ******************************************
200
	                                if cond_app["is_access_access_by_ip"]:
201
        	                            if dico_cste["patternAccessToSeek"] == infos[7]:# and gi.country_code_by_addr(infos[2]) != "CN":
202
                	                        # incrementing of number access
203
                        	                nb_access_ip += 1
204
                                	        if infos[2] not in dico_access_ip.keys():
205
                                        	    dico_access_ip[infos[2]] = 1
206
	                                        else:
207
        	                                    dico_access_ip[infos[2]] += 1
208
                	                #*********************************  ACCESS By COUNTRY *************************************
209
                        	        if cond_app["is_access_access_by_country"]:
210
                                	    if dico_cste["patternAccessToSeek"] == infos[7]:# and gi.country_code_by_addr(infos[2]) != "CN":
211
                                        	if re.match(reg_infos_url, infos[2]) is not None:
212
	                                            if gi.country_name_by_name(infos[2]) not in dico_access_by_country.keys():
213
        	                                        dico_access_by_country[gi.country_name_by_name(infos[2])] = 1
214
                	                            else:
215
                        	                        dico_access_by_country[gi.country_name_by_name(infos[2])] += 1
216
	                                #*********************************  ACCESS By MONTH ***************************************
217
        	                        if cond_app["is_access_access_by_months"]:
218
                	                    if dico_cste["patternAccessToSeek"] == infos[7]:# and gi.country_code_by_addr(infos[2]) != "CN":
219
                        	                if (my_time.month, my_time.year) not in dico_access_by_month.keys():
220
                                	            dico_access_by_month[my_time.month, my_time.year] = 1
221
                                        	else:
222
	                                            dico_access_by_month[my_time.month, my_time.year] += 1
223
        	                        #*********************************  ACCESS VO By IP ****************************************
192
                                # AJOUT D'UNE CONDITION SUR 127.0.0.1 POUR EXCLURE HOBBIT\
193
                                #                            PENDANT UNE PERIODE OU ON AVAIT PLUS ACCES AU "VRAI" IP
194
                                #--------------------------------------------------------------------------------------
195
                                # ***************************   STATISTIQUES SUR LES ACCESS ****************************
196
                                #---------------------------------------------------------------------------------------
197
                                if not infos[2] == "127.0.0.1" and re.match(reg_infos_url, infos[2]) \
198
                                        is not None and gi.country_code_by_addr(infos[2]) != "CN":
199
                                    #*********************************  ACCESS By IP *******************************
200
                                    if cond_app["is_access_access_by_ip"]:
201
                                        if dico_cste["patternAccessToSeek"] == infos[7] and \
202
                                                gi.country_code_by_addr(infos[2]) != "CN":
203
                                            # incrementing of number access
204
                                            nb_access_ip += 1
205
                                            if infos[2] not in dico_access_ip.keys():
206
                                                dico_access_ip[infos[2]] = 1
207
                                            else:
208
                                                dico_access_ip[infos[2]] += 1
209
                                    #*********************************  ACCESS By COUNTRY *************************
210
                                    if cond_app["is_access_access_by_country"]:
211
                                        if dico_cste["patternAccessToSeek"] == infos[7]\
212
                                                and gi.country_code_by_addr(infos[2]) != "CN":
213
                                            if re.match(reg_infos_url, infos[2]) is not None:
214
                                                if gi.country_name_by_name(infos[2]) not in dico_access_by_country.keys():
215
                                                    dico_access_by_country[gi.country_name_by_name(infos[2])] = 1
216
                                                else:
217
                                                    dico_access_by_country[gi.country_name_by_name(infos[2])] += 1
218
                                    #*********************************  ACCESS By MONTH ******************************
219
                                    if cond_app["is_access_access_by_months"]:
220
                                        if dico_cste["patternAccessToSeek"] == infos[7]\
221
                                                and gi.country_code_by_addr(infos[2]) != "CN":
222
                                            if (my_time.month, my_time.year) not in dico_access_by_month.keys():
223
                                                dico_access_by_month[my_time.month, my_time.year] = 1
224
                                            else:
225
                                                dico_access_by_month[my_time.month, my_time.year] += 1
226
                                    #*********************************  ACCESS VO By IP *******************************
224 227
                                '''
225 228
                                if dico_cste["patternVoConeSearchToSeek"] == infos[7] and \
226 229
                                                dico_cste["patternVoConeSearchToSeek"] != "":
......
256 259
        else:
257 260
            access_country_chart_svg_png = None
258 261
        if cond_app["is_access_access_by_months"]:
259
            access_month_chart_svg_png = svg_bar_chart(dico_access_by_month, start_date, end_date, "Acces par mois"+str(date_title_chart))
262
            access_month_chart_svg_png = svg_bar_chart(\
263
                dico_access_by_month, start_date, end_date, "Acces par mois"+str(date_title_chart))
260 264
        else:
261 265
            access_month_chart_svg_png = None
262 266
        if cond_app["is_down_stat_by_project"]:
......
272 276
        else:
273 277
            total_down_per_ip_chart = None
274 278
        if cond_app["is_down_stat_by_months"]:
275
            total_down_per_month_chart = svg_bar_chart(total_down_by_months, start_date, end_date,"Volume de telechargement par mois"+str(date_title_chart))
279
            total_down_per_month_chart = svg_bar_chart(\
280
                total_down_by_months, start_date, end_date,"Volume de telechargement par mois"+str(date_title_chart))
276 281
        else:
277 282
            total_down_per_month_chart = None
278 283
        if cond_app["is_down_stat_by_country"]:

Also available in: Unified diff