This is a Plasma data engine, applet and runner for public transport timetable data. The applet shows a departure/arrival board for a given stop. It can also show journeys to or from the given "home stop". It displays additional information like delays, news about journeys, routes, vehicle types (with icons). Timetable data is available for trams, buses, subway, trains, ferries and planes (using flightstats.com). You can set alarms for departures and filter departures (by type of vehicle, target/origin, delay, transport line string/number, intermediate stops). Filters can also be combined.
Timetable data gets received from provider plugins. Since version 0.11 there are two types of plugins: GTFS and script providers. Script providers need a network connection and can be used to read timetable data from any document type, eg. XML, binary or HTML. GTFS providers only need to import the GTFS feed once and can then be used offline (but a network connection can be used for GTFS-realtime).

You can donate me ;)

Installation
To install PublicTransport download a package for your distribution. If there is no such package you can ask the appropriate packagers for your distribution to create one. Please leave a comment if a new package is created or if you use a package not mentioned in the download list here, so that I can add it.
If you want to install PublicTransport, but there are no packages available for you (yet?) or you want to try the newest version with no new package yet, you can use the installer script (install.sh) included in the Sources download. But note that software installed with that installer script isn't managed by your package manager in any way and may produce conflicts with installed packages, eg. if PublicTransport is already installed via the package manager. The script should be quite easy to use and also lets you uninstall the software again. You need GIT to use the installer, because the sources are actually downloaded using GIT by the script (from git://anongit.kde.org/publictransport).

There's also a script for packagers, that can download tarballs for all PublicTransport components for a specific version.
You can clone the GIT repository from git://anongit.kde.org/publictransport (read only), which also clones all history. From your local clone of the repository you can checkout all tagged versions (see the HINTS_FOR_PACKAGE_MAINTAINERS file).
If you want to contribute code, you need a KDE account and you can clone the repository with SSH from this URL: git@git.kde.org:publictransport (read + write). You can of course also send me patches via email.

Note: The Sources tarball does not contain the sources, but a script to download them from it's GIT repository and the translations from KDE's SVN. The script asks for the version to compile and install.

Adding a Service Provider Plugin
- Install TimetableMate, maybe not included in the packages, but in the source archive.
- The filenames start with the country code, followed by "_" and an abbreviation of the service provider, e.g. "ch_sbb" for switzerland, service provider "SBB".
- You can test your script and the URLs with TimetableMate. It also offers syntax completion with documentation and templates for the parser functions, that get called by the data engine.
- Also works for GTFS providers
- After installation of your plugin you can open the configuration dialog of the public transport applet and the new provider should be in there.
- You can also open/edit existing providers by simply clicking "Open in TimetableMate..." in the provider data dialog (accessible from the configuration dialog).
- Checkout the documentation of the data engine, it contains much information about the data sources of the engine and how to create new provider plugins.

You are welcome to optimize the scripts in the existing providers in the "serviceProviders" directory in the data engine source directory.

Comments are appreciated.

Changelog:

17.01.2013:(version 0.11 beta)
Many crash/bug fixes, visual polishing, see http://fpuelz-kde.blogspot.de/. (The install.sh script is actually unchanged, just select the new version)

30.12.2012:(version 0.11 alpha 2)
Providers are now hosted on openDesktop.org, download via GHNS, many fixes etc. See http://fpuelz-kde.blogspot.de/. (The install.sh script is actually unchanged, just select the new version)

04.12.2012:(version 0.11 alpha)
Many improvements, new features, GTFS support, etc. See http://fpuelz-kde.blogspot.de/.Update: Improved install script, automatically select latest version for installation, show available versions sorted by date, allow switching to another version when starting the script again with the repository already clonedUpdate 2: Allow selecting git HEAD for installation again (the script shows Current_Development_Version for it), HEAD contains a fix for building with GTFS support but without protocol buffers installed

Re: geolocation floods .xsession-e

I have no such error in my .xsession-errors. The geolocation data engine should only get queried by the publictransport applet if the button "near stops" in the configuration dialog is clicked. Did you use that function? What makes you sure that the applet causes the errors?

Re: Re: geolocation floods .xsession-e

When I removed the publictransprt plasmoid there weren't any new entries.
But somehow plasma used an older version. With the KDE launch today publictransport seems to work nicely (without flooding .xsession-errors).
Thanks for your work.

Notes for 0.10b2

Hi,
thanks for updated version. However, I found these 2 issues:
First when you add stop, you type, it adds correct stops to the list, everything OK except when you press arrow down to move to some item on the bottom. It immediately selects the first from the list.

Second, I don't know why, but when using the Czech CHAPS provider in city Brno and stop name Technologický park, I'm getting "No departures" in the plasmoid.

Can you check it please?

Notes for 0.10b2

Hi,
thanks for updated version. However, I found these 2 issues:
First when you add stop, you type, it adds correct stops to the list, everything OK except when you press arrow down to move to some item on the bottom. It immediately selects the first from the list.

Second, I don't know why, but when using the Czech CHAPS provider in city Brno and stop name Technologický park, I'm getting "No departures" in the plasmoid.

Can you check it please?

Re: Notes for 0.10b2

I will correct the bug with the stop suggestion list for the next version. It shouldn't load new suggestions when a suggestion gets selected from the list. Thanks for the hint!

I just tried the CHAPS provider in city Brno with stop name Technologický park, and it worked for me. You could try to open the web page with the timetable data by clicking "Open in Web Browser" in the applet's context menu. If there was no error it should show the page. You can send me the (new) logfile for the parsing scripts. It's in "~/.kde/share/apps/plasma_engine_publictransport/accessors.log".

I sent you a message.

Symlink

Hello,

could you change the symlinks in plasma-dataengine-publictransport-0.10/accessorInfos/CMakeLists.txt to relative symlinks?
This seems to be the only way to create an ebuild for gentoo. otherwise I get a violation as the symlink tries to create files outside the sandbox.

I don't understand why it's still a problem for packaging. The other files are installed to the same directory as the symlinks. Why doesn't it complain about them?

Re: Re: Re: Re: Re: Re: Symlink

Gentoo is compiling all packages itselfs.
Therefore it has a sandbox in which all files are compiled.
Gentoo does not allow to create files outside of the sandbox.
It seems that somehow $ACCESSOR_DIR is pointing to /usr/share/apps/plasma_engine_publictransport/accessorInfos.

This is set here? set( ACCESSOR_DIR ${DATA_INSTALL_DIR}/plasma_engine_publictransport/accessorInfos )

Although the content looks like us_default.xml -> us_septa.xml.

This seems to be a relative soft link?
It is a link from one file to another in the same directory.
So it should work to use something like that "ln -s us_septa.xml ./us_default.xml

I used this to make it compile on Gentoo.
As it is a relative link it should be indepented from the working directory as the . is not evaluated...?

Thank you
Tobi

Re: Re: Re: Re: Re: Re: Symlink

Yes, $ACCESSOR_DIR points to (something like) /usr/share/apps/plasma_engine_publictransport/accessorInfos. The .xml- and .js-files are also installed there by CMake.

The symlinks are installed using eg. "ln -s us_default.xml $ACCESSOR_DIR/us_septa.xml". So the symlinks are relative softlinks and written into $ACCESSOR_DIR. They point to files in the same dir, so the symlinks can point to eg. "./us_septa.xml". But the target dir for the symlink (second argument, the dir, in which the symlink should be created) needs to b $ACCESSOR_DIR, because otherwise they're created in the working dir. I just run it from the "build" dir, and it created the symlinks in the build dir.

The symlinks need to be in /usr/share/apps/plasma_engine_publictransport/accessorInfos.

Maybe you got this wrong: The symlinks aren't created first and then installed, but directly created in $ACCESSOR_DIR.
Maybe it would work if they're created in the build dir and then copied to their destination? But doesn't copying a symlink copies the linked file?

Re: Re: Re: Re: Re: Re: Symlink

[quote]Maybe you got this wrong: The symlinks aren't created first and then installed, but directly created in $ACCESSOR_DIR.
Maybe it would work if they're created in the build dir and then copied to their destination? But doesn't copying a symlink copies the linked file?
[quote]

Hmm. This is exactly the problem as Gentoo does not allow creating files outside its sandbox.

So this would work.
I think that this is the way it is meant to be, because make only builds files and install moves them to the correct folder?

Thank you

Re: Re: Re: Re: Re: Re: Symlink

"because make only builds files and install moves them to the correct folder"

Hm.. yes. But in this case make does nothing with the symlinks and make install "installs" the symlinks by creating them in the target directory. So it should not be a problem with a sandbox used for compiling but one used for installing?

I'll google, how to tell CMake to move files while installing. It didn't work with "cmake -E rename oldname newname", because my /home is on another filesystem than root and CMake then complains with "Invalid cross-device link".

Set filtered # of departures

Hello,

I do not know if it is possible.
At the moment one can only say that the widget should show a special number of departures.
But if you filter you do not get 20 departures. Instead you get only two as these two are the only matching within the next 20 departures.
So...It would be nice to say that there should always be 10 departures wether they are filtered or not.
(I know that the widget then needs to fetch 20 departures, filter, check if there are enough departures remaining and, maybe, re-fetch more derpartures.

Re: Set filtered # of departures

It already loads as much departures as possible with the used service provider. For de_db it gets approx. 100 deartures, others mostly show less departures. Then it filters out departures and after that it cuts them to the maximum number of departures. It would work better if the filters could be added to the requests, but they are too complex and most service providers only support very easy filters if at all.
So if you use too restrictive filters, you may get less departures than the configured maximum number, depending on the used service provider.
If it shows less filtered departures than you can find on the results website, there is an error.
The only solution would be to fetch more departures, as you said. I will think about it.

Re: Re: Set filtered # of departures

You do not have to do this.
I just thought it would be a general problem. But I see that all filtered departures are shown. Because Darmstadt has so many departures it will only show 4 filtered, but this is ok.

How do you like Plasma 5? The best KDE Desktop ever. Definitely a nice improvement. Not decided yet. Haven't tried it yet. I do not like some of the changes. KDE is taking the wrong way. I am still sticking with KDE 3.5. I have no opinion, but wanted to vote anyway.

Copyright 2001-2015 KDE-Look.org Team All rights reserved. KDE-Look.org is not liable for any content or goods on this site.All contributors are responsible for the lawfulness of their uploads.KDE and K Desktop Environment are trademarks of KDE e.V.