Sync Strava trainer tag

A new Trainer metadata field is included in metadata.xml
On upload a checked Trainer metadata field, or the presence of
TRAIN XData series, marks the activity as trainer.
On download the trainer flag is used to update Trainer metadata field.
This commit is contained in:
Ale Martinez
2021-04-23 18:04:16 -03:00
parent 5540160d3f
commit 37c1ec4bd8
2 changed files with 17 additions and 5 deletions

View File

@@ -379,11 +379,12 @@ Strava::writeFile(QByteArray &data, QString remotename, RideFile *ride)
commutePart.setBody(ride->getTag("Commute", "0").toInt() ? "1" : "0");
multiPart->append(commutePart);
//XXXQHttpPart trainerPart;
//XXXtrainerPart.setHeader(QNetworkRequest::ContentDispositionHeader,
//XXX QVariant("form-data; name=\"trainer\""));
//XXXtrainerPart.setBody(parent->trainerChk->isChecked() ? "1" : "0");
//XXXmultiPart->append(trainerPart);
QHttpPart trainerPart;
trainerPart.setHeader(QNetworkRequest::ContentDispositionHeader,
QVariant("form-data; name=\"trainer\""));
trainerPart.setBody((ride->getTag("Trainer", "0").toInt() ||
ride->xdata("TRAIN")) ? "1" : "0");
multiPart->append(trainerPart);
if (manual) {
@@ -921,6 +922,10 @@ Strava::prepareResponse(QByteArray* data)
ride->setTag("Commute", each["commute"].toBool() ? "1" : "0");
}
if (!each["trainer"].isNull()) {
ride->setTag("Trainer", each["trainer"].toBool() ? "1" : "0");
}
if (each["manual"].toBool()) {
if (each["distance"].toDouble()>0) {
QMap<QString,QString> map;

View File

@@ -81,6 +81,13 @@
<fieldvalues>""</fieldvalues>
<fielddiary>0</fielddiary>
</field>
<field>
<fieldtab>"Workout"</fieldtab>
<fieldname>"Trainer"</fieldname>
<fieldtype>7</fieldtype>
<fieldvalues>""</fieldvalues>
<fielddiary>0</fielddiary>
</field>
<field>
<fieldtab>"Workout"</fieldtab>
<fieldname>"Keywords"</fieldname>