Code Monkey home page Code Monkey logo

trenitalia-api's Introduction

Trenitalia API

Work in progress documentation of Trenitalia's api, check the wiki at https://github.com/SimoDax/Trenitalia-API/wiki/API-Trenitalia---lefrecce.it. I also made an Italo equivalent at https://github.com/SimoDax/Italo-API/wiki/API-Italo

This is not a Viaggatreno documentation, there are many already done, such as https://github.com/bluviolin/TrainMonitor/wiki/API-del-sistema-Viaggiatreno, https://github.com/sabas/trenitalia and https://github.com/Razorphyn/Informazioni-Treni-Italiani

trenitalia-api's People

Contributors

simodax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

trenitalia-api's Issues

Ricerca di soluzioni in tratte AV inconsistente

Non avevo mai notato questa cosa, probabilmente è una modifica recente al backend. Se cercate una soluzione in una tratta AV, il server vi mostra le soluzioni basandosi pesantemente sulla flag &frecce=.
Nello specifico, se settata a true mostra solo treni ad alta velocità, se omessa o settata a false, come già da documentazione, mostra soluzoni miste, AV e normali.
Il punto è che se esistono solo soluzioni AV in quella fascia oraria, non mostra nulla, ritorna solo un errore. E' come se, senza &frecce=true prima recuperasse i treni normali e poi aggiungesse l'AV. In assenza dei primi, non controlla neanche l'esistenza dei secondi, e per di più non "va oltre" il periodo orario indicato, così se cercate una soluzione per le 11 e ci sono treni che partono alle 12 non ve li mostra.

Altra gatta da pelare, non è affatto user friendly come metodo. Uno deve essere chiaroveggente e sapere in anticipo se esisteranno soluzioni non AV prima ancora di fare una ricerca, è un controsenso.

Aiuto per ricerca dettagli per soluzione

Gentile SimoDax, grazie per aver creato questa guida sulle API di Trenitalia. Sto scrivendo un software in C# che aiuterà i non vedenti ed ipovedenti a navigare le soluzioni per delle tratte di viaggio in treno.
Ti volevo chiedere aiuto circa l'ottenimento dei dettagli per una soluzione. Ho visto nella guida che specifichi:

ATTENZIONE: Funziona solo se la richiesta viene effetuata da un client che abbia già aperto una sessione con il sito, ad esempio facendo una ricerca soluzioni.

quindi ho provato a fare la richiesta subito dopo aver fatto la ricerca delle soluzioni.

Ho scritto questo codice per ottenere la lista delle soluzioni :

string url = @"https://www.lefrecce.it/msite/api/solutions?origin=" + stazOrigine + "&destination=" + stazDest + 
          "&arflag=A&adate=" + dataAndata + "&atime=" + ora + 
          "&offset=0&adultno=1&childno=0&direction=A&frecce=false&onlyRegional=false";

          HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
          request.AutomaticDecompression = DecompressionMethods.GZip;

          using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
          using (Stream stream = response.GetResponseStream())
          using (StreamReader reader = new StreamReader(stream))
          {
              json = reader.ReadToEnd();
          }
var result = JsonConvert.DeserializeObject<List<soluzioniPercorsoDeserialize>>(json);

ed ottengo le informazioni, adesso estraggo per ogni soluzione l'id ed eseguo la query da te segnalata nella guida.

   for (int i = 0; i < result.Count; i++)
                {
                for (int j = 0; j < result[i].trainlist.Count; j++)
                {
                    string solutionCurrentUrl = @"https://www.lefrecce.it/msite/api/solutions/"+result[i].idsolution+"/details";
                    request = (HttpWebRequest)WebRequest.Create(solutionCurrentUrl);
                    request.AutomaticDecompression = DecompressionMethods.GZip;
                    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                    using (Stream stream = response.GetResponseStream())
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        jsonSolution = reader.ReadToEnd();
                    }
                    Console.WriteLine("SOLUZIONE "+i+"-esima: "+jsonSolution);
          }
}

però la query non viene eseguita, mi restituisce l'errore : 'System.Net.WebException' 
Mi sai suggerire una soluzione? io suppongo che come hai scritto tu le richieste devono essere successive (stessa sessione) e credevo di averlo fatto, ma evidentemente non è cosi, forse sbaglio metodo?
Ti ringrazio anticipatamente

numero di binario e/o ritardo del treno?

Ciao SimoDax per caso sai se queste API di Trenitalia permettano in qualche modo di avere il numero di binario e l'indicazione se un treno è in ritardo o meno? Grazie

Ricerca di soluzioni successive

La ricerca delle soluzioni restituisce al massimo 5 elementi. Esiste un metodo per chiamare le soluzioni successive? Sul sito web ed in alcune applicazioni Android/iOS è presente il pulsante "soluzioni successive", è possibile replicare questo comportamento con le API in uso?
Un esempio pratico potrebbe essere la presenza di più di 5 soluzioni per la ricerca effettuata in quella fascia oraria. Come si potrebbero recuperare le soluzioni successive?

Ricevere le soluzioni di viaggio

Ciao, chiedo scusa per l'ignoranza, sto provando a creare un'app in python che permetta di cercare treni in tutta europa e sto iniziando con l'italia, in quanto io sono italiano per poi procedere con altri servizi.

  1. ti ringrazio infinitamente per la wiki che hai scritto, è davvero una manna dal cielo

  2. utilizzando requests.get(f"[LINK CON I PARAMETRI]") riesco a inviare il link completo ma non riesco a capire come possa ottenere l'array di risposta. Sai per caso darmi qualche consiglio?

ponendo r = requests.get(f"[LINK CON I PARAMETRI]") e svolgendo print(r) ricevo codice 200 quindi la risposta è andata a buon fine.

Grazie mille in anticipo per la risposta!
Cordiali Saluti
Andrea

503 Service Unavailable 🤕

Scusami se apro una issue che non è una issue. In quest momento ogni chiamata ritorna un HTTP 503 con un laconico:

Gentile Cliente, siamo spiacenti ma non è possibile accedere al sistema a causa di un traffico troppo elevato.
Si prega di provare più tardi.

Avete notato se è una cosa che succede spesso?

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.