From: Petter Reinholdtsen Date: Fri, 9 Dec 2011 20:45:58 +0000 (+0000) Subject: Mer tekst. X-Git-Url: https://pere.pagekite.me/gitweb/homepage.git/commitdiff_plain/d584803ac0e8e3d5c5e7c77f764426e5854e3625 Mer tekst. --- diff --git a/blog/draft/2011-12-bensinpris.txt b/blog/draft/2011-12-bensinpris.txt index 1036520a3c..4625d9ed1f 100644 --- a/blog/draft/2011-12-bensinpris.txt +++ b/blog/draft/2011-12-bensinpris.txt @@ -1,9 +1,9 @@ -Title: Bitfactors Bensinpris-API +Title: Litt informasjon om Bitfactors Bensinpris-API Tags: norsk Date: 2011-12-09 12:00

For noen måneder siden lanserte Bitfactory en -mobilapp for å få +mobilapp for å få tilgang til bensinpriser på landets bensinstasjoner. Informasjonen appens brukere har samlet inn har så langt kun vært tilgjengelig for brukerne av app-ene, og API for å hente ut @@ -13,91 +13,168 @@ API-dokumentasjon og de skulle se på saken, men det har ikke skjedd så langt.

Utrolig nok er det i følge -Dagens +Dagens Næringsliv og -Finnmark +Finnmark Dagbladet bensinstasjoner som nekter å oppgi prisene sine på telefon, slik at det ikke finnes en fornuftig måte å få tak i prisene -på uten å samle dem inn på stedet.

- -

Jeg tok meg derfor litt tid for å revers-utvikle protokollen for å -gjøre den innsamlede informasjonen tilgjengelig for flere. -Protokollen bruker HTTP og normal forms-notasjon for POST. Her er -API-kallene jeg har identifisert så langt.

+på uten å samle dem inn på stedet. Flere har dugnader på gang for å +samle inn prisinformasjon om bensin, men så vidt jeg kan se er det kun +dinside.no +og Bitfactorys App som får regelmessige oppdateringer. Dinsides +oversikt er tilgjengelig på web for de som vil følge med, mens +bitfactorys informasjon er ikke enkelt tilgjengelig.

+ +

Jeg tok meg derfor litt tid for å revers-utvikle protokollen for +Bitfactorys mobilapp for å gjøre den innsamlede informasjonen +tilgjengelig for flere. Protokollen bruker HTTP og normal +forms-notasjon for POST. Her er API-kallene jeg har identifisert så +langt.

stasjonsDatabaseUpdateStamp -GET http://www.bitfactory.no/Bensin/ver1.1.stasjonsDatabaseUpdateStamp - -Vet ikke helt hva dette API-kallet gjør. Navnet gjør at jeg tror den -rapporterer når listen over stasjoner sist ble endret. Returverdien -er et tall som pr. nå er 1319145491. Mitt gjett er at dette er -sekunder siden 1. januar 1970 som kan konverteres til en leselig dato -med perl -e 'print scalar(localtime(1319145491)), "\n"'. -Dagens verdi konverterer da til "Thu Oct 20 23:18:11 2011". +

GET http://www.bitfactory.no/Bensin/ver1.1.stasjonsDatabaseUpdateStamp

+ +

Vet ikke helt hva dette API-kallet gjør, men navnet gjør at jeg +tror den rapporterer når listen over stasjoner sist ble endret. +Returverdien er et tall som pr. nå er 1319145491. Mitt gjett er at +dette er sekunder siden 1. januar 1970 som kan konverteres til en +leselig dato med perl -e 'print scalar(localtime(1319145491)), +"\n"'. Dagens verdi konverterer da til "Thu Oct 20 23:18:11 +2011".

+ +GetXMLDatabase + +

echo password=X43uP9KS_3ZqR | POST http://www.bitfactory.no/Bensin/GetXMLDatabase.php + +

Henter ned listen med stasjoner på XML-format. Argumentet er +password som muligens følger med i programpakken og eventuelt +genereres av app-en. Nedlasting med samme passord flere ganger ser +ikke ut til å fungere. Selve listen ser slik ut (klippet):

+ +
+<?xml version="1.0" encoding="UTF-8"?>
+<STASJONSDATABASE>
+<STASJON>
+<NAME></NAME>
+<ADDRESS></ADDRESS>
+<ID>0</ID>
+<LATITUDE>0.000000</LATITUDE>
+<LONGITUDE>0.000000</LONGITUDE>
+<COMPANY></COMPANY>
+</STASJON>
+<STASJON>
+<NAME>Statoil Best Eidsvoll Verk</NAME>
+<ADDRESS>Gamle Trondheimsvei 339 2074 Eidsvoll Verk</ADDRESS>
+<ID>1</ID>
+<LATITUDE>60.303902</LATITUDE>
+<LONGITUDE>11.168100</LONGITUDE>
+<COMPANY>Best</COMPANY>
+</STASJON>
+[...]
+<STASJON>
+<NAME>Esso Andenes</NAME>
+<ADDRESS>Falcksgate 9, 8480 Andenes</ADDRESS>
+<ID>1822</ID>
+<LATITUDE>69.320999</LATITUDE>
+<LONGITUDE>16.118700</LONGITUDE>
+<COMPANY>Esso</COMPANY>
+</STASJON>
+</STASJONSDATABASE>
+
GetBanStatus -echo UDID=Android-123456789012345 | POST http://www.bitfactory.no/Bensin/ver1.1.GetBanStatus.php +

echo UDID=Android-123456789012345 | POST http://www.bitfactory.no/Bensin/ver1.1.GetBanStatus.php

-Vet ikke helt hva dette API-kallet gjør. Navnet gjør at jeg tror den -rapporterer om telefonen med UDID oppgitt som argument er bannlyst fra -tjenesten. Bannlysning gjør antagelig at telefonen ikke kan brukes -til å registrere bensinpriser, men det er også mulig det blokkerer for -å se på priser. Eneste POST-argument er UDID, som ser ut til å være -den unike ID-en til en mobil-enhet. Returnverdi er 'NO' for alle -UDID-verdier jeg har testet. Gjetter på at alternativ returverdi er -'YES'. +

Vet heller ikke helt hva dette API-kallet gjør. Navnet gjør at jeg +tror den rapporterer om telefonen med UDID oppgitt som argument er +bannlyst fra tjenesten. Bannlysning gjør antagelig at telefonen ikke +kan brukes til å registrere bensinpriser, men det er også mulig det +blokkerer for å se på priser. Eneste POST-argument er UDID, som ser +ut til å være den unike ID-en til en mobil-enhet. Returnverdi er 'NO' +for alle UDID-verdier jeg har testet. Gjetter på at alternativ +returverdi er 'YES', men har ikke sett en slik verdi så langt.

PriserVedStasjoner -echo 'stasjoner=810,364&day=0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjoner.php +

echo 'stasjoner=810,364&day=0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjoner.php

-Dette kallet henter ut priser registrert på en eller flere +

Dette kallet henter ut priser registrert på en eller flere bensinstasjoner. Den tar to POST-argumenter, "stasjoner" som er kommaseparert liste over stasjons-IDer (numeriske), og "day" som bør settes til "0" for å få ut informasjon om priser. Usikker på hva -tallet betyr. +tallet betyr, men mistenker det har med hvor langt tilbake i tid det +skal hentes ut informasjon.

-Resultatet som kommer tilbake er en kommaseparert liste for hver +

Resultatet som kommer tilbake er en kommaseparert liste for hver enkelt stasjon, med <br> som skillemarkør mellom hver stasjon. -Ikke helt sikker på hva alle feltene er. Her er mine gjett: - -Felt 1: Bensinstasjons-ID -Felt 2: Antagelig en bensinpris, flyttall med punktum som desimalskille. -Felt 3: Et klokkeslett, format HH:MM? -Felt 4: Telefon-ID på formen Android-123456789012345 eller hex-kodet streng/MD5-sum -Felt 5: tall, uviss betydning. muligens relatert til day-verdien. -Felt 6: uviss betydning -Felt 7: uviss betydning -Felt 8: uviss betydning -Felt 9: uviss betydning -Felt 10: Samme som felt 2 -Felt 11: Samme som felt 3 -Felt 12: Samme som felt 4. -Felt 13: tall, uviss betydning. Kanskje det samme som felt 5? - -Jeg mistenker det egentlig er bensinstasjons-ID og deretter tre -blokker for bensin og/eller disel. Gjetter på at felt 6-9 er for -disel og derfor ikke var registrert for de bensinstasjonene jeg har -sjekket ut så langt. +Ikke helt sikker på hva alle feltene er. Her er mine gjett:

+ + +FeltBeskrivelse + + + + + + + + + + + + + +
1Bensinstasjons-ID
2Pris for blyfri 95 oktan, flyttall med punktum som desimalskille.
3Klokkeslett da prisen ble oppdatert, format HH:MM.
4Telefon-ID på formen Android-123456789012345 eller hex-kodet streng/MD5-sum
5tall, uviss betydning. muligens relatert til day-verdien.
6Pris for blyfri 98-oktan?
7samme som felt 3
8samme som felt 4
9samme som felt 5
10Pris for disel
11Samme som felt 3
12Samme som felt 4
13Samme som felt 5
+ +

En stasjonsoppføring består dermed av av bensinstasjons-ID og +deretter tre blokker for 95-oktan bensin, 98-oktan bensin og +disel.

PriserVedStasjon -echo 'id=736&day=0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjon.php +

echo 'id=736&day=0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjon.php

-Ser ut til å returnere informasjon for en enkelt bensinstasjon. +

Ser ut til å returnere informasjon for en enkelt bensinstasjon. Formatet er dato på formen "08_12_2011" for 2011-12-08, og noe som ser -ut som samme format som fra PriserVedStasjoner. - -For stasjoner der intet er registrert returnerer den "NO RESULTS". - -08_12_2011,12.52,10:35,Android-358697040191281,2, , , , ,12.52,10:35,Android-358697040191281,2 +ut som samme format som fra PriserVedStasjoner. For stasjoner der +intet er registrert returnerer den "NO RESULTS".

AllePriser -echo day=0 | POST http://www.bitfactory.no/Bensin/ver1.1.AllePriser.php - -Returnerer av og til "NO RESULTS". Ellers returnerer den en dato på -formen "Thursday_08_12_2011" skilt med <br> og deretter en liste -med stasjoner på samme format som PriserVedStasjoner. +

echo day=0 | POST http://www.bitfactory.no/Bensin/ver1.1.AllePriser.php

+ +

Returnere liste med av alle stasjoner det er registrert oppdaterte +priser på siste 24 timer. Returnerer "NO RESULTS" når listen er tom. +Ellers returnerer den en dato på formen "Thursday_08_12_2011" skilt +med <br> og deretter en liste med stasjoner på samme format som +PriserVedStasjoner.

+ +