Aktywne Wpisy
Linnior88 +6
Chciałabym mieć kiedyś męża i dzieci ale z drugiej strony mam zwichrowany łeb i jakby powiedział część innej to by był bity i wyzywany eehhh
#borderline
Strasznie terytorialne i chore sooczysko ze mnie
#borderline
Strasznie terytorialne i chore sooczysko ze mnie
sergio91 +2
Pierwszy raz w życiu spotykam się z laską, która lubi połykać spermę i muszę przyznać jest to zajebiste
#seks
#seks
UWAGA ŚCIANA TEKSTU (╭☞σ ͜ʖσ)╭☞
Po ponad miesiącu dłubania udało mi się chyba ( ͡~ ͜ʖ ͡°) skleić szkielet apki zintegrowanej z API Stravy.
Nasza kwadratowa mapa będzie odchodzić pomału od żulenia na danych ze statshunters, w związku z tym napisałem prosty serwer który potrafi zautoryzować użytkownika stravy, sczytać TYLKO PUBLICZNE aktywności tego użytkownika i wygenerować linka do mapy.
Mapa po załadowaniu wszystkich aktywności wyświetla uproszczone ślady GPS na zielono,
zdobyte kwadraty wygenerowane na podstawie mojego algorytmu (nieco inny niż w statshunters) na czerwono,
i dodatkowo na żółto nałożone są gminy które zostały zdobyte śladami GPS.
Lista gmin w formie tekstowej znajduje się także z lewej strony mapy, także jak ktoś zbiera gminy to sobie może porównać (⌐ ͡■ ͜ʖ ͡■).
Niebieskie kwadraty to całość danych zebranych do tej pory starą metodą przez wszystkich - na razie włączone jako opcja debug - żeby wygenerowana mapa nie była taka pusta ( ͡° ͜ʖ ͡°).
Kilka kwestii na początek:
- Apka potrzebuje dostępu do ODCZYTU twojego profilu w stravie - jest to potrzebne, aby powiązać tokeny autoryzacyjne z właściwym kontem,
- Apka potrzebuje dostępu do ODCZYTU informacji o PUBLICZNYCH aktywnościach - potrzebne do wygenerowania indywidualnej mapy,
- Jeżeli nie przyznasz odpowiednich przywilejów apce prawdopodobnie coś się #!$%@? ¯\_(ツ)_/¯ (...na serwerze - wasze dane na stravie są bezpieczne - apka może je tylko odczytywać).
- Apka obsługuje podstawowe webhooki, czyli jeżeli np. usuniesz lub dodasz aktywność lub zmieni się widoczność aktywności po jakimś czasieto samo stanie się w twojej wygenerowanej mapce. Reszta będzie zaimplementowana w przyszłości.
Obsługiwane webhooki:
activity create
activity delete
update athlete (tylko authorized:false - używane do de autoryzacji apki i usuwania danych użytkownika)
- Apka podlega limitom dotyczącym API stravy czyli 100 zapytań/15 minut, max 1000/dzień - oznacza to tyle że jeżeli apka przekroczy limit zapytań przestanie generować nowe mapy do czasu wygaśnięcia limitu - niezbyt dobrze przetestowane bo mam tylko jedno konto na stravie z aktywnościami ( ͡° ͜ʖ ͡°) - należy pamiętać jednak że JEDNO zapytanie to MAX 200 AKTYWNOŚCI - więc jeśli ktoś ma 2-3k aktywności to zrobienie jednej mapy to 10-15 zapytań. Plusem jest to że raz wygenerowana mapka sama się odświeża wraz z dodaniem aktywności na stravie (z niewielkim opóźnieniem).
- Serwer obsługujący apkę to raspberry pi więc nie będzie to na razie działać super szybko, albo pewnie wcale ( ͡~ ͜ʖ ͡°). Teoretycznie powinien obsłużyć generowanie wielu mapek na raz, jak będzie w praktyce się przekonamy. Wyświetlanie mapy jest trochę mniej obciążające bo serwuje tylko plik przetworzonymi danymi.
- Nie ponoszę odpowiedzialności za działanie tej apki - jak zdechną ci rybki w akwarium po jej użyciu - sorry, taki mamy klimat. Apka to tzw. proof of concept i ma prawo przestać funkcjonować w KAŻDEJ chwili.
Dobra dosyć #!$%@?, o co tu chodzi:
Wchodzisz na https://strava.rowerowyrownik.tk
Zostajesz przekierowany do strony autoryzacji aplikacji (być może będziesz musiał zalogować się do stravy), na ekranie autoryzacyjnym klikasz Authorize i w tym momencie serwer zaczyna wczytywać wszystkie aktywności z autoryzowanego konta. Postęp powinien być widoczny na ekranie - zależnie od ilości aktywności może to długo potrwać (apka ładuje ok 200 aktywności na minutę przy jednym wątku).
Po wczytaniu wszystkich aktywności na dole strony pojawi się komunikat: Przetworzono: X treningów powiększoną czcionką.
Od pojawienia się tego komunikatu link widoczny u góry strony ładowania staje się aktywny i można wyświetlić wygenerowaną indywidualną mapę. Jeżeli zamkniesz kartę przed końcem ładowania mapa się NIE WYŚWIETLI!
Ten link do mapy jest jedynym źródłem dostępu - tylko z nim można ją wyświetlić.
Jeżeli chcesz sprawdzić działanie, a nie chcesz autoryzować stravy, oto mój link:
https://rowerowyrownik.tk/strava_test?id=21939498
Aby nie zaśmiecać innych ogólnorównikowych tematów chciałbym żeby wszystkie sprawy techniczne i nie tylko związane z tą apką tagować #rownikowetesty - sam na razie nie chcę dużych zasięgów żeby w spokoju móc zdebugować to co się pewnie #!$%@?, dlatego nie użyłem równika roweru itp. #kwadraty mają relatywnie mało obserwujących więc może nie #!$%@? mi serwera od razu ( ͡º ͜ʖ͡º).
Mapa była testowana na firefoksie i chrome.
Enjoy i proszę o zrozumienie bo apka przynajmniej na razie częściej będzie offline niż online, należy się też spodziewać bugów - duuużo bugów. Jest to tylko szkielet na którym będzie budowana nowa iteracja globalnej mapy.
#kwadraty
kawał roboty! :)
read public segments, public routes, public profile data, public posts, public events, club feeds, and leaderboards
a dostęp do danych o strefach prywatności jest teoretycznie przy scope:read_all
the same access as activity:read, plus privacy zone data and access to read the user's activities
Ludzie widzą moje tracki ale z private zone (wycięta moja dzielnica/ osiedle).
Ja mam wszytko na stravie wystawione dla Followers only, nie mam nic publicznego.
Jeżeli możesz, to skasuj moje dane bo je zassałem, zobacże jednak jak to się bedzie rozwijać i dołączę :).
Potrzebujesz ID?
@kapitantaca: są trzy stopnie, chodzi o dwa pierwsze zapewne :3
jak dojdzie webhook do serwa to dane się usuną i link z mapką przestaje działać. Jak chcesz to możesz próbować podać inny scope dla autoryzacji np.
[https://www.strava.com/oauth/authorize?client_id=59593&redirect_uri=http://strava.rowerowyrownik.tk/authorization&approval_prompt=auto&response_type=code&scope=activity:read_all,profile:read_all](https://www.strava.com/oauth/authorize?client_id=59593&redirect_uri=http://strava.rowerowyrownik.tk/authorization&approval_prompt=auto&response_type=code&scope=activity:read_all,profile:read_all)