Ejemplo n.º 1
0
    def __getValori(self, P_lValoriMassimi, P_nGiornoDiPartenza = 0, P_nRisultati = 2):
        """
        Restituisce i prossimi valori massimi o minimi di marea
        @param P_lValoriMassimi: Booleano che indica se il valore di marea è un minimo (False) o un massimo (True)
        @param P_nGiornoDiPartenza: Integer che indica a partire da oggi quanti giorni in avanti riguarda la marea
        @param P_nRisultati: Integer che indica quanti risultati deve restituire
        @return Un istanza di clsMarea con la previsione delle maree
        """

        objRiga = clsMarea()
        objRisultati = []
        isinstance(objRisultati, clsMarea)

        cOutput = ""
        nConto = 0
        dDataCercata = datetime.datetime.combine(datetime.date.today(), datetime.time(0, 0, 0))
        if (P_nGiornoDiPartenza > 0): dDataCercata += datetime.timedelta(days=P_nGiornoDiPartenza)

        lGiaScritto = False
        for objRiga in self._aLista:
            if ((objRiga.massimo == P_lValoriMassimi)
                and (objRiga.data >= dDataCercata)
                and (nConto < P_nRisultati)):
                objRisultati.append(objRiga)
                nConto += 1
        return objRisultati
Ejemplo n.º 2
0
    def __getValori(self,
                    P_lValoriMassimi,
                    P_nGiornoDiPartenza=0,
                    P_nRisultati=2):
        """
        Restituisce i prossimi valori massimi o minimi di marea
        @param P_lValoriMassimi: Booleano che indica se il valore di marea è un minimo (False) o un massimo (True)
        @param P_nGiornoDiPartenza: Integer che indica a partire da oggi quanti giorni in avanti riguarda la marea
        @param P_nRisultati: Integer che indica quanti risultati deve restituire
        @return Un istanza di clsMarea con la previsione delle maree
        """

        objRiga = clsMarea()
        objRisultati = []
        isinstance(objRisultati, clsMarea)

        cOutput = ""
        nConto = 0
        dDataCercata = datetime.datetime.combine(datetime.date.today(),
                                                 datetime.time(0, 0, 0))
        if (P_nGiornoDiPartenza > 0):
            dDataCercata += datetime.timedelta(days=P_nGiornoDiPartenza)

        lGiaScritto = False
        for objRiga in self._aLista:
            if ((objRiga.massimo == P_lValoriMassimi)
                    and (objRiga.data >= dDataCercata)
                    and (nConto < P_nRisultati)):
                objRisultati.append(objRiga)
                nConto += 1
        return objRisultati
Ejemplo n.º 3
0
    def __str__(self):
        """
        Scrive l'elenco completo delle maree previsto dal centro
        (override della funzione __str__ standard)
        """

        cOutput = ""
        objMarea = clsMarea()

        for objMarea in self._aLista:
            """ Visualizza la linea solo se la previsione si riferisce
            ad una data non passata """
            if (objMarea.data >= self._dDataOdierna):
                cMaxMin = "massimo" if (objMarea.massimo) else "minimo"
                cOutput += "Il {0} e' previsto un {1:7} di {2:-3}cm alle {3}\n".format(
                    objMarea.data.strftime("%d %B"), cMaxMin, objMarea.valore,
                    objMarea.data.strftime("%H:%M"))
        return cOutput
Ejemplo n.º 4
0
    def cercaValori(self):
        """ Cerca le indicazioni delle maree nel file HTML 
		e restituisce una lista di istanze clsMarea """

        aLista = []
        nPos = 0
        objTrovato = self.__cercaTag("th", nPos)
        while (objTrovato != None):
            objRiga = clsMarea()
            """            
			Cerca la data
			"""
            cFormatoData = "%d/%m/%Y %H:%M"
            dData = datetime.datetime.fromtimestamp(
                time.mktime(
                    time.strptime(objTrovato["contenuto"], cFormatoData)))
            objRiga.data = dData
            nPos = objTrovato["posizione"] + 1
            # Cerca se è un massimo o minimo
            objTrovato = self.__cercaTag("td", nPos)
            if (objTrovato["posizione"] >= 0):
                if (objTrovato["contenuto"] == "massimo"):
                    objRiga.massimo = True
                else:
                    objRiga.massimo = False
                nPos = objTrovato["posizione"] + 1
            else:
                objRiga.massimo = False
            # Cerca quant'è il valore
            objTrovato = self.__cercaTag("td", nPos)
            if (objTrovato["posizione"] >= 0):
                try:
                    objRiga.valore = int(objTrovato["contenuto"])
                except Exception:
                    objRiga.valore = 0
                nPos = objTrovato["posizione"] + 1
            else:
                objRiga.valore = 0
            aLista.append(objRiga)
            # Passa al successivo
            nPos = objTrovato["posizione"] + 1
            objTrovato = self.__cercaTag("th", nPos)

        return aLista
Ejemplo n.º 5
0
	def cercaValori(self):
		""" Cerca le indicazioni delle maree nel file HTML 
		e restituisce una lista di istanze clsMarea """

		aLista = []
		nPos = 0
		objTrovato = self.__cercaTag("th", nPos)
		while(objTrovato != None):
			objRiga = clsMarea()
			"""            
			Cerca la data
			"""
			cFormatoData = "%d/%m/%Y %H:%M"
			dData = datetime.datetime.fromtimestamp(time.mktime(time.strptime(objTrovato["contenuto"], cFormatoData)))
			objRiga.data = dData
			nPos = objTrovato["posizione"] + 1
			# Cerca se è un massimo o minimo
			objTrovato = self.__cercaTag("td", nPos)
			if(objTrovato["posizione"] >= 0): 
				if (objTrovato["contenuto"] == "massimo"): 
					objRiga.massimo = True
				else:
					objRiga.massimo = False
				nPos = objTrovato["posizione"] + 1
			else:
				objRiga.massimo = False
			# Cerca quant'è il valore
			objTrovato = self.__cercaTag("td", nPos)
			if(objTrovato["posizione"] >= 0): 
				try:
					objRiga.valore = int(objTrovato["contenuto"])
				except Exception:
					objRiga.valore = 0
				nPos = objTrovato["posizione"] + 1
			else:
				objRiga.valore = 0
			aLista.append(objRiga)
			# Passa al successivo
			nPos = objTrovato["posizione"] + 1
			objTrovato = self.__cercaTag("th", nPos)
			
		return aLista
Ejemplo n.º 6
0
    def __str__(self):
        """
        Scrive l'elenco completo delle maree previsto dal centro
        (override della funzione __str__ standard)
        """

        cOutput = ""
        objMarea = clsMarea()

        for objMarea in self._aLista:
            """ Visualizza la linea solo se la previsione si riferisce
            ad una data non passata """
            if (objMarea.data >= self._dDataOdierna):
                cMaxMin = "massimo" if (objMarea.massimo) else "minimo"
                cOutput += "Il {0} e' previsto un {1:7} di {2:-3}cm alle {3}\n".format(
                     objMarea.data.strftime("%d %B"),
                     cMaxMin,
                     objMarea.valore,
                     objMarea.data.strftime("%H:%M"))
        return cOutput