def updateUser(user, name, email, password, bank, active, isadmin): sha_pass = sha.new(password) userdata = dict() userdata['email'] = email userdata['name'] = name userdata['bank'] = bank userdata['password'] = sha_pass.hexdigest() userdata['active'] = active userdata['isadmin'] = isadmin userdata['userid'] = user print "Adding user = "******" to list" firebase.curlPut(firebase_url + "/users/" + user + ".json", json.dumps(userdata))
def pushResults(gpid, gpresultlist, qresultlist, fastest): # if (logging.isEnabledFor(logging.DEBUG)): logging.debug ("Gp results ", json.dumps(gpresultlist)) logging.debug ("Qu results ", json.dumps(qresultlist)) logging.debug ("Fastest lap ", json.dumps(fastest)) driverlist = drivers.getAllDriverData(firebase_url, season) gpdata = calendar.getCalendarData(firebase_url, season, gpid) results = dict() if fastest: fastestlap = dict() driver = driverlist[fastest] fastestlap['d_id'] = driver['d_id'] fastestlap['info'] = driver['d_name'] fastestlap['points'] = 3 results['fastestlap'] = fastestlap results['qlresults'] = [] results['gpresults'] = [] for idx, val in enumerate(qresultlist): if val in driverlist: driver = driverlist[val] result = dict() result['driverid'] = driver['d_id'] result['position'] = idx + 1 result['points'] = len(qresultlist) - idx result['info'] = driver['d_name'] results['qlresults'].append(result) gpdata['gp_status'] = __GP_QUAL for idx, val in enumerate(gpresultlist): if val in driverlist: driver = driverlist[val] result = dict() result['driverid'] = driver['d_id'] result['position'] = idx + 1 result['points'] = len(gpresultlist) - idx result['info'] = driver['d_name'] results['gpresults'].append(result) gpdata['gp_status'] = __GP_RACE gpdata['results'] = results query = "/calendar/" + str(gpdata['gp_year']) + "/" + str(gpdata['gp_id']) + ".json" logging.info ("Pushing results to " + query) firebase.curlPut(firebase_url + query, json.dumps(gpdata))
def checkBetvalues(gp_id, user_id): gpdata = calendar.getCalendarData(firebase_url, season, gp_id) userlist = profiles.getUserData(firebase_url, user_id) logging.info ("Checking bet values for gp = " + gp_id) for user in userlist: logging.info ("-----------------------------------------------------------------") userid = user['userid'] currentbet = dict() logging.info ("Checking bet values for user = "******"User " + userid + " has bet for " + gp_id ) userbets = user['bets'] currentbet = userbets[gp_id] if 'results' in gpdata: currentbet = calculateScore(currentbet, gpdata['results']) else: logging.info ("User " + userid + " has no bets for gp " + gp_id) currentbet = dict() currentbet['status'] = __BET_MISSING currentbet['gp_id'] = gp_id currentbet['gp_name'] = gpdata['gp_short_name'] currentbet['userid'] = userid currentbet['totalpoints'] = 0 query = "/users/" + str(userid) + "/bets/" + str(gp_id) + ".json" firebase.curlPut(firebase_url + query, json.dumps(currentbet)) query = "/users/" + str(userid) + "/scores/" + str(gp_id) + ".json" firebase.curlPut(firebase_url + query, json.dumps(currentbet)) query = "/scores/" + season + "/" + str(gp_id) + "/" + str(userid) + ".json" firebase.curlPut(firebase_url + query, json.dumps(currentbet)) query = "/calendar/" + season + "/" + str(gp_id) + "/scores/" + str(userid) + ".json" firebase.curlPut(firebase_url + query, json.dumps(currentbet)) if gpdata['gp_status'] < __GP_QUAL: closeGP(gpdata)
def pushDriverData(firebase_url, year, driverlist): for key in driverlist: driver = key print "Refresh driver " + json.dumps(driver) + "." query = "/drivers/" + year + "/" + str(driver['d_id']) + ".json" firebase.curlPut(firebase_url + query, json.dumps(driver))
def pushGpData(firebase_url, year, gpdata): print "Push gp data " + json.dumps(gpdata) + "." query = "/calendar/" + year + "/" + str(gpdata["gp_id"]) + ".json" firebase.curlPut(firebase_url + query, json.dumps(gpdata))
def pushAllCalendarData(year, calendarlist): for key in calendarlist: calendar = key print "Refresh calendar " + json.dumps(calendar) + "." query = "/calendar/" + year + "/" + str(calendar["gp_id"]) + ".json" firebase.curlPut(firebase_url + query, json.dumps(calendar))
def parseXMLtoJSON(xml_root): global place beginPosition = xml_root.find('.//{0}beginPosition'.format(gml_namespace)) endPosition = xml_root.find('.//{0}endPosition'.format(gml_namespace)) geoid = xml_root.find('.//{0}identifier'.format(gml_namespace)) gmlpos = xml_root.find('.//{0}pos'.format(gml_namespace)) timezone = xml_root.find('.//{0}timezone'.format(target_namespace)) country = xml_root.find('.//{0}country'.format(target_namespace)) region = xml_root.find('.//{0}region'.format(target_namespace)) print ("Report dates:" + beginPosition.text, "to " + endPosition.text) print ("Place: " + place, " geoid: " + geoid.text, " gml pos: " + gmlpos.text) measurements = xml_root.findall(".//{0}MeasurementTimeseries".format(wml2_namespace)) for measurement in measurements: m_id = measurement.get('{0}id'.format(gml_namespace)) # list which values will be included in an array variable - or better one: make a json mapping if m_id == 'mts-1-1-Temperature': printMeasurementTVPs(measurement, "temp") if m_id == 'mts-1-1-humidity': printMeasurementTVPs(measurement, "humi") if m_id == 'mts-1-1-WindSpeedMS': printMeasurementTVPs(measurement, "wspd") if m_id == 'mts-1-1-WindDirection': printMeasurementTVPs(measurement, "wdir") if m_id == 'mts-1-1-TotalCloudCover': printMeasurementTVPs(measurement, "ccvr") if m_id == 'mts-1-1-precipitationamount': printMeasurementTVPs(measurement, "prct") root = dict() meta = dict() #root['place'] = place root['geoid'] = geoid.text root['gml_pos'] = gmlpos.text root['timezone'] = timezone.text root['region'] = region.text root['country'] = country.text meta['geoid'] = geoid.text meta['gml_pos'] = gmlpos.text meta['region'] = region.text meta['timezone'] = timezone.text meta['country'] = country.text meta['lastupdate'] = datetime.today().strftime("%Y-%m-%dT%H:%S:%MZ") dictlist = [] for value in sorted(weather_table.items()): key = value[0] #print(key) dictlist.append(weather_table.get(key)) root['data'] = dictlist; with open(place + '.json', 'w') as outfile: json.dump(root, outfile, sort_keys=True, indent=4, separators=(',', ': '), ensure_ascii=False) outfile.close() firebase.curlPut("https://activeweather.firebaseIO.com/observations/data/" + geoid.text + ".json", json.dumps(root)) firebase.curlPut("https://activeweather.firebaseIO.com/observations/meta/" + geoid.text + ".json", json.dumps(meta))