From 143dbfca1449db08770ed058ac3e73e7fcbea3c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Ostolski?= Date: Sun, 22 Mar 2020 13:01:49 +0100 Subject: [PATCH] =?UTF-8?q?dodanie=20timeout=C3=B3w=20do=20=C5=BC=C4=85da?= =?UTF-8?q?=C5=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- activity_map.py | 3 ++- air_pollution_sq9atk.py | 18 ++++++++++++++---- calendar_sq9atk.py | 12 ++++++++++-- config.py | 6 +++--- geo_magnetic_sq9atk.py | 1 + imgw_podest_sq9atk.py | 2 +- meteo_sq9atk.py | 13 +++++++++++-- meteoalarm_sq9atk.py | 29 ++++++++++++++++++++++------- openweather_sq9atk.py | 11 +++++++++-- radioactive_sq9atk.py | 12 ++++++++++-- 10 files changed, 83 insertions(+), 24 deletions(-) diff --git a/activity_map.py b/activity_map.py index 7755954..51e997a 100755 --- a/activity_map.py +++ b/activity_map.py @@ -41,7 +41,7 @@ Parameters: """ def __init__(self, callsign, latitude, longitude, hour_quarter, above_sea_level, above_ground_level, station_range, - additional_info="", service_url="http://test.ostol.pl"): + additional_info="", service_url=""): self.__callsign = callsign self.__latitude = latitude self.__longitude = longitude @@ -74,6 +74,7 @@ Parameters: dump = json.dumps(station_info, separators=(',', ':')) b64data = base64.urlsafe_b64encode(dump) request = self.__service_url + b64data + self.__logger.info("::: Odpytuję adres: " + request) response = urllib.urlopen(request).read() if response == 'OK': diff --git a/air_pollution_sq9atk.py b/air_pollution_sq9atk.py index 6ba1f46..d639bd1 100755 --- a/air_pollution_sq9atk.py +++ b/air_pollution_sq9atk.py @@ -4,7 +4,9 @@ import urllib2 import logging import json +import socket +from pprint import pprint # LISTA STACJI Z NUMERAMI # http://api.gios.gov.pl/pjp-api/rest/station/findAll @@ -26,9 +28,17 @@ class AirPollutionSq9atk(SR0WXModule): self.__index_url = "aqindex/getIndex/" def getJson(self, url): - data = urllib2.urlopen(url) - jsonArr = json.load(data) - return jsonArr + self.__logger.info("::: Odpytuję adres: " + url) + + try: + data = urllib2.urlopen(url, None, 45) + return json.load(data) + except urllib2.URLError, e: + print e + except socket.timeout: + print "Timed out!" + + return {} def getStationName(self): url = self.__service_url + self.__stations_url @@ -103,7 +113,7 @@ class AirPollutionSq9atk(SR0WXModule): valuesMessage = self.prepareMessage(sensorsData) message += valuesMessage - + print "\n" return { "message": message, # "source": "powietrze_malopolska_pl", diff --git a/calendar_sq9atk.py b/calendar_sq9atk.py index 4799d0a..256ef2e 100755 --- a/calendar_sq9atk.py +++ b/calendar_sq9atk.py @@ -5,6 +5,7 @@ import urllib2 import re import logging import pytz +import socket from datetime import datetime from sr0wx_module import SR0WXModule @@ -20,8 +21,15 @@ class CalendarSq9atk(SR0WXModule): def downloadFile(self, url): - webFile = urllib2.urlopen(url) - return webFile.read() + try: + self.__logger.info("::: Odpytuję adres: " + url) + webFile = urllib2.urlopen(url, None, 30) + return webFile.read() + except urllib2.URLError, e: + print e + except socket.timeout: + print "Timed out!" + return "" def getSunsetSunrise(self): self.__logger.info("::: Pobieram dane o wschodzie i zachodzie słońca") diff --git a/config.py b/config.py index b8f63bd..5bf5d89 100755 --- a/config.py +++ b/config.py @@ -148,12 +148,12 @@ imgwpodestsq9atk = ImgwPodestSq9atk( ## MAPA WSZYSTKICH WODOWSKAZÓW W POLSCE Z NUMERAMI ## http://wx.ostol.pl/wodowskazy/ - '2.149180210', # Nazwa: Zabrzeg, rzeka: Wisła - zrypany wodowskaz / tylko do testów - '2.149200360', # Nazwa: Lipnica Murowana, rzeka: Uszwica - zrypany wodowskaz / tylko do testów + #'2.149180210', # Nazwa: Zabrzeg, rzeka: Wisła - zrypany wodowskaz / tylko do testów + #'2.149200360', # Nazwa: Lipnica Murowana, rzeka: Uszwica - zrypany wodowskaz / tylko do testów '2.149200370', # Nazwa: Okocim, rzeka: Uszwica - zrypany wodowskaz / tylko do testów '2.149190350', # Nazwa: Krzczonów, rzeka: Krzczonówka - zrypany wodowskaz / tylko do testów '2.150210200', # Nazwa: Grebów, rzeka: Łęg - zrypany wodowskaz / tylko do testów - '2.149180080', # Nazwa: Drogomyśl, rzeka: Wisła - zrypany wodowskaz / tylko do testów + #'2.149180080', # Nazwa: Drogomyśl, rzeka: Wisła - zrypany wodowskaz / tylko do testów '2.149210050', # Nazwa: Krajowice, rzeka: Wisłoka '2.149200110', # Nazwa: Trybsz, rzeka: Białka diff --git a/geo_magnetic_sq9atk.py b/geo_magnetic_sq9atk.py index f6461bb..d16ac2f 100755 --- a/geo_magnetic_sq9atk.py +++ b/geo_magnetic_sq9atk.py @@ -35,6 +35,7 @@ class GeoMagneticSq9atk(SR0WXModule): } def downloadDataFromUrl(self, url): + self.__logger.info("::: Odpytuję adres: " + url) opener = urllib2.build_opener() headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 5.1; rv:10.0.1) Gecko/20100101 Firefox/10.0.1', diff --git a/imgw_podest_sq9atk.py b/imgw_podest_sq9atk.py index c3ce12f..d5e1b37 100755 --- a/imgw_podest_sq9atk.py +++ b/imgw_podest_sq9atk.py @@ -137,7 +137,7 @@ class ImgwPodestSq9atk(SR0WXModule): a=1 #s.__logger.info("Przetwarzam wodowskaz: " + wodowskaz + " - " + rzeka + ' - ' + w['nazwa_org']) except: - s.__logger.info("::: Brak danych!!! "+ wodowskaz+" - " + rzeka + ' - ' + w['nazwa_org']) + s.__logger.info("::: Brak danych!!! "+ wodowskaz ) pass message = ""; diff --git a/meteo_sq9atk.py b/meteo_sq9atk.py index f8d1cc4..79c67df 100755 --- a/meteo_sq9atk.py +++ b/meteo_sq9atk.py @@ -21,8 +21,17 @@ class MeteoSq9atk(SR0WXModule): self.__logger = logging.getLogger(__name__) def downloadFile(self, url): - webFile = urllib2.urlopen(url) - return webFile.read() + self.__logger.info("::: Odpytuję adres: " + url) + try: + webFile = urllib2.urlopen(url, None, 30) + return webFile.read() + except URLError, e: + print e + except socket.timeout: + print "Timed out!" + return "" + + def getHour(self): time = ":".join([str(datetime.now().hour), str(datetime.now().minute)]) diff --git a/meteoalarm_sq9atk.py b/meteoalarm_sq9atk.py index f51968b..0128b7e 100755 --- a/meteoalarm_sq9atk.py +++ b/meteoalarm_sq9atk.py @@ -20,6 +20,7 @@ import urllib2 import re import logging import json +import socket from sr0wx_module import SR0WXModule @@ -51,14 +52,28 @@ class MeteoalarmSq9atk(SR0WXModule): } def getDataFromUrl(self, url): - dane = urllib2.urlopen(url) - self.__logger.info("Przetwarzam...\n") - zagrozenia = json.load(dane) - return zagrozenia + self.__logger.info("::: Odpytuję adres: " + url) + dane = '' + try: + dane = urllib2.urlopen(url, None, 30); + return json.load(dane) + except URLError, e: + print e + except socket.timeout: + print "Timed out!" + return {} def downloadFile(self, url): - webFile = urllib2.urlopen(url) - return webFile.read() + + try: + self.__logger.info("::: Odpytuję adres: " + url) + webFile = urllib2.urlopen(url, None, 30) + return webFile.read() + except urllib2.URLError, e: + print e + except socket.timeout: + print "Timed out!" + return "" def getWarnings(self, region, tomorrow=False): r = re.compile('pictures/aw(\d[01]?)([0234]).jpg') @@ -96,7 +111,7 @@ class MeteoalarmSq9atk(SR0WXModule): message += " ".join([self.warningsPrefix," ",self.regions[self.__region],"_", "dzis","_", today,"_","jutro","_",tomorrow]) message += " _ " - + print "\n" return { "message": message, "source": "meteoalarm_eu", diff --git a/openweather_sq9atk.py b/openweather_sq9atk.py index 6041c71..c9d6389 100755 --- a/openweather_sq9atk.py +++ b/openweather_sq9atk.py @@ -5,6 +5,7 @@ import urllib2 import logging from datetime import datetime import json as JSON +import socket from sr0wx_module import SR0WXModule @@ -84,8 +85,14 @@ class OpenWeatherSq9atk(SR0WXModule): } def downloadFile(self, url): - webFile = urllib2.urlopen(url) - return webFile.read() + try: + webFile = urllib2.urlopen(url, None, 30) + return webFile.read() + except urllib2.URLError, e: + print e + except socket.timeout: + print "Timed out!" + return "" def getHour(self): time = ":".join([str(datetime.now().hour), str(datetime.now().minute)]) diff --git a/radioactive_sq9atk.py b/radioactive_sq9atk.py index ce1d143..57f1398 100755 --- a/radioactive_sq9atk.py +++ b/radioactive_sq9atk.py @@ -5,6 +5,7 @@ import urllib2 import re import logging import pytz +import socket from datetime import datetime from sr0wx_module import SR0WXModule @@ -19,8 +20,15 @@ class RadioactiveSq9atk(SR0WXModule): self.__logger = logging.getLogger(__name__) def downloadFile(self, url): - webFile = urllib2.urlopen(url) - return webFile.read() + try: + self.__logger.info("::: Odpytuję adres: " + url) + webFile = urllib2.urlopen(url, None, 30) + return webFile.read() + except urllib2.URLError, e: + print e + except socket.timeout: + print "Timed out!" + return "" def isSensorMatchedById(self, sensorId, string): pos = string.find(","+str(sensorId)+", ")