Peklo = Suunto & Movescount & Nike+

Suunto & Movescount

Když jsem si vybíral hodinky, jednoznačná volba byla značka Suunto. Funkcionalita perfektní a narozdíl od ostatních (Garmin, …), ty hodinky aspoň nějak vypadají.

Tím pozitivní zprávy končí. Všechno, ale úplně všechno, se u těchto hodinek řeší na webu movescount.com. Synchronizují se tam aktivity. Hodinky se nastavují přes webové rozhraní tamtéž a posléze se nastavení synchronizuje zpět do hodinek. To vše řeší aplikace jménem Moveslink2, která si žije v menu baru.

Bez konektivity, bez této aplikace a bez funkčního webu Movescount si s těma hodinkama neškrtnete. Můžete běhat, trackovat, ale nezměníte žádné nastavení, neuploadnete aktivitu. V tomhle je Garmin někde jinde, protože hodinky se po připojení zjeví ve Finderu jako USB Mass Storage device. No, to by nebylo tak hrozný. Jenže posledních 14 dnů byl web Movescount permanentně dole a nefungovalo skoro vůbec nic. Naštěstí už je to okay a všechno už zase frčí jak má.

Jak dostat data z Movescount? Movescount má API, ale to není veřejné. Můžete požádat o přístup. Podmínkou je, že to bude aplikace, která bude prospěšná celé komunitě. Musíte popsat co chcete dělat a potom dostanete přístup. Pln nadšení jsem o něj požádal a čekal, čekal, čekal. Po třech měsících jsem dostal odpověď, že přístup dostanu a ať podepíšu pár papírů. Jenže to už mé nadšení opadlo, nic jsem nepodepsal a na jejich API hodil bobana.

Naštěstí jsem našel Suunto2Nike uploader. Tahle utilita využívá toho, že Moveslink2 si všechny aktivity ukládá lokálně ve formátu XML. Takže si je při synchronizaci odchytne a uploadne do Nike+. To funguje.

Jenže jak tam dostat starší aktivity, které už lokálně nemám? Neexistuje žádná služba, která by to umožňovala. Fakt ne. Nejenom Suunto se chová podivně, ale donedávna to ani Nike moc neřešil.

Nike+

Krom toho, že jsem řešil jak dostat z Movescount starý data, řešil jsem i jak je dostat do Nike+. Protože Nike+ neumožňuje ruční upload přes webové rozhraní. Jediná oficiální cesta je přes appku v iPhonu a zadávat to tam ručně. No, to by mě mohlo.

Takže hledám a našel jsem Garmin Forerunner tcx to Nike+ Converter & Uploader. Odzkoušeno, funguje. Jenže ruční práce, per jedna aktivita. To by mě taky mohlo. Hledám dál, řeším automatizaci a nalézám. Pokud máte aktivity v Garmin Connect, stačí vám Chrome, Javascript Console a tenhle gist. Postup je následující:

  • nechte si v Chrome zobrazit aktivity, které máte v Garmin Connect,
  • otevřete Javascript Console a pastněte tam první část zmiňovaného gistu,
  • chvíli bude chroupat a potom vám vypíše pole ID všech aktivit,
  • to pole si uložte,
  • na stránkách Nike+ si změňte heslo, na nějakou blbost,
  • do Chrome si nainstalujte rozšíření Allow-Control-Allow-Origin: *,
  • vpravo od řádku s URL toto rozšíření zapněte,
  • na posledním řádku gistu změňte Nike+ email, heslo a jako třetí argument je pole ID všech aktivit, které už máte,
  • pastněte ten zbytek gistu do Javascript Console a kochejte se, jak ten skript bere aktivity z Garmin Connect a pomocí Garmin Forerunner tcx to Nike+ Converter & Uploader je pěkně po jednom nahrává do Nike+,
  • až budete mít hotovo, změňte si zase Nike+ heslo na něco normálního.

Garmin Connect do Nike+ vyřešeno. Jenže jak na Movescount do Garmin Connect?

RunGap

Řešením je appka RunGap, která umí importovat aktivity z …

… a za in-app purchase (0,89€) exportovat do …

… hurá.

Hotovo

Takže dostat data z Movescount do Garmin Connect lze pomocí appky RunGap. Z Garmin Connect do Nike+ pomocí konvertoru a Javascriptu, který si člověk pouští přímo v Chrome když je lognutý do Garmin Connectu a má otevřený seznam aktivit.

Vopruz, vopruz, ale nakonec jsem zvítězil a nějaké běhy tam dostal.

P.S. Jasně, že znám služby, které to řeší automaticky. Ale problémem jsou dvě magická slova – Movescount a Nike+. Nikdo je nepodporuje a já se tomu ani nedivím. Suunto tají API a Nike na tom byl nedávno podobně. A teď je internet plný lidí, kteří na tyto dvě magická slova nadávají.