def UploadActivity(self, svcRecord, activity): pwxdata = PWXIO.Dump(activity) params = self._authData(svcRecord) resp = requests.post( "https://www.trainingpeaks.com/TPWebServices/EasyFileUpload.ashx", params=params, data=pwxdata.encode("UTF-8")) if resp.text != "OK": raise APIException("Unable to upload activity response " + resp.text + " status " + str(resp.status_code))
def UploadActivity(self, svcRecord, activity): pwxdata_gz = BytesIO() with gzip.GzipFile(fileobj=pwxdata_gz, mode="w") as gzf: gzf.write(PWXIO.Dump(activity).encode("utf-8")) headers = self._apiHeaders(svcRecord) headers.update({"Content-Type": "application/json"}) data = { "UploadClient": "tapiriik", "Filename": "tap-%s.pwx" % activity.UID, "SetWorkoutPublic": not activity.Private, # NB activity notes and name are in the PWX. "Data": base64.b64encode(pwxdata_gz.getvalue()).decode("ascii") } resp = requests.post(TRAININGPEAKS_API_BASE_URL + "/v1/file", data=json.dumps(data), headers=headers) if resp.status_code != 200: raise APIException("Unable to upload activity response " + resp.text + " status " + str(resp.status_code)) return resp.json()[0]["Id"]