# Modul: testRequests # Date: 03.07.2015 # Author: dtonal - Torben Mueller <*****@*****.**> # Summary: Modul to do first request testing. import apiRequests import utils import requests import json import doctest utils.loggingMode = 3 try: utils.logMessage("Testing detail request for gasstation with fix id") jsonData = apiRequests.detailRequest( "8f9a684e-975d-4856-9eb9-9cc14d241b7b") print(type(jsonData)) utils.logMessage("Requesting details finished.") if jsonData is None: utils.logMessage("Error while requesting details.") else: utils.logMessage("Requesting details succeded.") utils.logRequestResponse(jsonData) utils.logMessage("Testing list request for gasstation with fix parameters") jsonData = apiRequests.listRequest("53.223546", "10.169761", "10", "price", "diesel") utils.logMessage("Requesting list finished.") if jsonData is None: utils.logMessage("Error while requesting list.") else:
import utils import requests import json import doctest from influxdb import InfluxDBClient utils.loggingMode = 3 client = InfluxDBClient("10.0.0.21", 8086, "", "", "consumption") with open('tankstellen.conf', 'r') as stations: for station in stations: try: #utils.logMessage("Fetching station") jsonData = apiRequests.detailRequest(station.rstrip()) if jsonData is None: utils.logMessage("Error while requesting details.") else: #utils.logMessage("Requesting details succeded.") with open('sorten.conf', 'r') as sorten: json_body = [{ "measurement": "spritpreise", "tags": { "tankstelle": station.rstrip() }, "fields": {} }] for sorte in sorten: if sorte.rstrip() in jsonData["station"]: json_body[0]['fields'].update({
if __name__ == "__main__": logger = logging.getLogger('miner') logger.info("Start mining") logger.info("Establishing DB connection") dbHandle = connectDb.connect() if dbHandle is None: logger.critical("Cannot connect to db, exiting") sys.exit("Cannot connect to db.") logger.info("Connect DB - getting handle successfully") try: #Getting a list of all stations in in the db stations= dbHandle.stations.find() for i in stations: #iterate trough all stations and do a detailRequest logger.info("Getting details for stationId = " + i["_id"]) detailRequestResult = apiRequests.detailRequest(i["_id"]) if detailRequestResult is not None: #build and add generally data to filtered result dict filteredResult = dict() filteredResult["dateTime"] = datetime.datetime.now() filteredResult["stationId"] = i["_id"] if "diesel" in detailRequestResult["station"]: #create a diesel price document filteredResult["price"] = detailRequestResult["station"]["diesel"] dbHandle.dieselPrices.insert_one(filteredResult) logger.info("diesel added") if "e5" in detailRequestResult["station"]: #reuse diesel price document for e5 doc filteredResult["price"] = detailRequestResult["station"]["e5"] dbHandle.e5Prices.insert_one(filteredResult) logger.info("e5 added")
# Modul: testRequests # Date: 03.07.2015 # Author: dtonal - Torben Mueller <*****@*****.**> # Summary: Modul to do first request testing. import apiRequests import utils import requests import json import doctest utils.loggingMode=3 try: utils.logMessage("Testing detail request for gasstation with fix id") jsonData=apiRequests.detailRequest("8f9a684e-975d-4856-9eb9-9cc14d241b7b") print(type(jsonData)) utils.logMessage("Requesting details finished.") if jsonData is None: utils.logMessage("Error while requesting details.") else: utils.logMessage("Requesting details succeded.") utils.logRequestResponse(jsonData) utils.logMessage("Testing list request for gasstation with fix parameters") jsonData=apiRequests.listRequest("53.223546", "10.169761", "10", "price", "diesel") utils.logMessage("Requesting list finished.") if jsonData is None: utils.logMessage("Error while requesting list.") else: utils.logMessage("Requesting list succeded.")
if __name__ == "__main__": logger = logging.getLogger('miner') logger.info("Start mining") logger.info("Establishing DB connection") dbHandle = connectDb.connect() if dbHandle is None: logger.critical("Cannot connect to db, exiting") sys.exit("Cannot connect to db.") logger.info("Connect DB - getting handle successfully") try: #Getting a list of all stations in in the db stations = dbHandle.stations.find() for i in stations: #iterate trough all stations and do a detailRequest logger.info("Getting details for stationId = " + i["_id"]) detailRequestResult = apiRequests.detailRequest(i["_id"]) if detailRequestResult is not None: #build and add generally data to filtered result dict filteredResult = dict() filteredResult["dateTime"] = datetime.datetime.now() filteredResult["stationId"] = i["_id"] if "diesel" in detailRequestResult["station"]: #create a diesel price document filteredResult["price"] = detailRequestResult["station"][ "diesel"] dbHandle.dieselPrices.insert_one(filteredResult) logger.info("diesel added") if "e5" in detailRequestResult["station"]: #reuse diesel price document for e5 doc filteredResult["price"] = detailRequestResult["station"][ "e5"]