Git Product home page Git Product logo

ruterstop's Introduction

ruterstop

Et program som viser sanntidsinformasjon for stoppesteder i Oslo og deler av Viken.

  • Lister 20 av de neste avgangene
  • Bruk filtre som --direction, --grouped og --min-eta
  • Start en HTTP server med --server
  • Søk etter stoppesteder med --search-stop
  • Sett når du ønsker å se klokkeslett med --long-eta
  • Bruk --help for full hjelp

Innspill, tanker og feilmeldinger mottas med glede!

Adafruit Feather HUZZAH ESP8266 med OLED FeatherWing som kjører ruterstop.py

Installasjon

Trenger Python >=3.6 for å kjøre.

Installer fra PyPi

$ pip install ruterstop

Bygg fra kildekode

Last ned kildekoden og installer programmet med avhengigheter fra kildekodemappen

$ pip install poetry
$ poetry build

Brukerveiledning

Søk etter stoppested

$ ruterstop --search-stop stig
6013    Stig (Oslo, Oslo)
59445   Stige (Ålesund, Møre og Romsdal)
13479   Stigen (Ringebu, Innlandet)
18602   Stigen (Sandefjord, Vestfold og Telemark)
18605   Stiger (Sandefjord, Vestfold og Telemark)
21507   Stigen (Porsgrunn, Vestfold og Telemark)
3857    Stigen (Aurskog-Høland, Viken)
45978   Stigen (Nærøysund, Trøndelag)
54253   Stigen (Lyngen, Troms og Finnmark)
7844    Stigen (Trysil, Innlandet)

Kjør programmet med et valgt stoppested

$ ruterstop --stop-id 6013 --direction outbound
31 Snaroeya       naa
31 Fornebu     10 min
31 Snaroeya    20 min
25 Majorstuen  28 min
31 Fornebu     30 min

Eller start som en HTTP server

$ ruterstop --server

Stoppested og filtre velges i adressen til spørringen

$ curl localhost:4000/6013?direction=outbound&long_eta=10
31 Fornebu        naa
31 Snaroeya     5 min
31 Fornebu      8 min
31 Fornebu     10 min
25 Majorstuen   20:21
31 Snaroeya     20:24
31 Snaroeya     20:36
25 Majorstuen   20:36
31 Fornebu      20:42

Utvikling

Kjør tester

$ poetry install
$ poetry run python -m unittest

Kjør multi-versjon tester i Docker

$ make matrix

Se Makefile for detaljer

Tag ny versjon

$ ./.deploy/bump_version.py

Verktøyet hjelper til å huske å bytte versjonsnummer før tagging og sjekke at man er på riktig branch.

Motivasjon

Jeg vil se avganger fra mitt nærmeste stoppested mens jeg sitter ved kjøkkenbordet, uten å måtte bruke mobilen.

Dette prosjektet blir også utnyttet til å prøve ut alle ting om Python jeg både kan og ikke kan.

Jeg skrev dette programmet som en backend til en ESP8266-variant med en OLED skjerm. Fungerende klient-kode for en Adafruit Feather HUZZAH ESP8266 med en OLED FeatherWing finnes i eksempel-mappen.

Referanser og linker

ruterstop's People

Contributors

stigok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ruterstop's Issues

Gruppering uten retningsfilter gir ingen mening

$ ruterstop --stop-id 6013 --grouped
31 Fornebu      3 min
31 Tonsenhagen  9 min
25, 31         13 min
31 Grorud T    19 min
31 Fornebu     23 min
31 Tonsenhagen 30 min
31 Grorud T    38 min
25 Furuset T   40 min
31 Tonsenhagen 48 min

Da vet man ikke i det hele tatt hvor de skal hen

Grupper sammen linjenummer med samme eta

På morgenen er det mange busser som samtidig går . En måte å gruppere de på hadde vært fint, slik at de bare opptar en enkelt linje. Eventuelt noe som nedenfor:

Ved f.eks.

$ ruterstop --stop-id 6013 --direction outbound`
31 Fornebu      4 min
31 Snaroeya     4 min
25 Majorstuen  11 min
31 Snaroeya    11 min
31 Fornebu     16 min

Kunne det vært fint med en type output som:

31, 31          4 min
25, 31         11 min
31 Fornebu     16 min

Eller kanskje det bare hadde vært fint med de som går naa.

Returner text/plain fra server

Nå er det text/html

HTTP/1.0 200 OK
Date: Fri, 17 Jan 2020 22:50:33 GMT
Server: WSGIServer/0.2 CPython/3.7.5
Content-Length: 88
Content-Type: text/html; charset=UTF-8

25 Furuset T    3 min
31 Grorud T     8 min
31 Fornebu      9 min
31 Tonsenhagen 14 min

Linjenummer på mer enn 2 tegn ødelegger formatering

python ruterstop.py --stop-id 6006
31E Kalbakken      naa
58 Tveita T     1 min
31 Snaroeya     2 min
31 Tonsenhagen  2 min
31 Tonsenhagen  4 min
390 Nittedal se  4 min
31 Snaroeya     4 min
31 Grorud T     5 min
380 Oslo busste  6 min
31 Tonsenhagen  6 min

Vil heller se de alignet slik at alle linjenavn starter på samme linje som den med lengst linjenummer

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.