
Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net
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).
My Blog: http://fpuelz-kde.blogspot.com/
PublicTransport on UserBase: http://userbase.kde.org/Plasma/Public_Transport
PublicTransport on KDE projects: https://projects.kde.org/projects/playground/base/publictransport
PublicTransport on ohloh.net: https://www.ohloh.net/p/publicTransport
You can donate me ;)
News
17.01.2013: Version 0.11 beta released
30.12.2012: Version 0.11 alpha 2 released
04.12.2012: Version 0.11 alpha released
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.
8 years ago
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 cloned
Update 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
18.10.2011:
(version 0.10 RC2)
Applet:
- Fix link errors
- Fix memory leaks
- Fix applet collapsing to popup icon in desktop
- Drawing performance improvements
- Use of KPixmapCache for vehicle type icons
- New monochrome icons, shown in the popup icon
- Add possibility to put the applet into the notification area
- Better layout adjustments for small sizes
- Change applet tooltip according to current departure group in popup icon
- Shorter alarm names, alarm names in notifications
- Nicer alarm background
- Fix color groups and route time display for arrivals
TimetableMate:
- Fix for missing KWebKitPart include file, it now uses KWebView directly
Library:
- Fix a crash with GraphicalTimetableLine (missing null pointer check)
8 years ago
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 cloned
Update 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
18.10.2011:
(version 0.10 RC2)
Applet:
- Fix link errors
- Fix memory leaks
- Fix applet collapsing to popup icon in desktop
- Drawing performance improvements
- Use of KPixmapCache for vehicle type icons
- New monochrome icons, shown in the popup icon
- Add possibility to put the applet into the notification area
- Better layout adjustments for small sizes
- Change applet tooltip according to current departure group in popup icon
- Shorter alarm names, alarm names in notifications
- Nicer alarm background
- Fix color groups and route time display for arrivals
TimetableMate:
- Fix for missing KWebKitPart include file, it now uses KWebView directly
Library:
- Fix a crash with GraphicalTimetableLine (missing null pointer check)
frafra
9 years ago
Report
Genserowski
9 years ago
Report
fpuelz
9 years ago
Version 0.10 will be released soon, but without GTFS support, wait for 0.11 / 1.0.
Report
ZomAur
9 years ago
Could you add support for putting it in the systray though? I'm not much of a fan of static applets.
Report
fpuelz
9 years ago
But yes, that would be another good 'feature'. Should be easy to do.. but only with that header file. When I have more time again I'll try it on openSuse or I get the sources myself.
Report
ZomAur
9 years ago
/usr/include/ksystemtrayicon.h
And thanks. :)
Report
fpuelz
9 years ago
Report
ZomAur
9 years ago
I wonder if there's a packaging issue at work here.
Report
ZomAur
9 years ago
Report
fpuelz
9 years ago
It's much simpler: Add the following line to applet / plasma-applet-publictransport.desktop:
X-Plasma-NotificationArea=true
Or wait, until I release the next version :)
It's working quiet nice here, good idea!
Report
cmlr
9 years ago
Report
fpuelz
9 years ago
Was it the first time you tried the applet? I just tried it without any stored settings and it didn't crash for me.
Or do you have some filter settings from an older version? That may cause the problem..
Did you install the openstreetmap engine? Installed with the installer script (install.sh)? Can you get a backtrace using the KDE crash dialog that (should) pop up?
With a backtrace of the crash I should be able to fix it quickly. For a useful backtrace the applet should be compiled with debug information. To do that open a terminal (eg. Konsole) and go to the folder with the "install.sh". Assuming you have already run it and downloaded the git repository type:
> cd publictransport/applet/build
> cmake -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ..
> make
> sudo make install (or use su)
Then try it again and KDE's crash handler should popup, click on the debug tab and wait for the backtrace to show. Then send me that backtrace :)
Maybe you need to crash it twice, because it may still use the old version before it restarts.
In the dialog it should say that the information is useful.
Report
cmlr
9 years ago
Report
fpuelz
9 years ago
And also search for a line starting with "filterConfigurationList=". Actually you should also remove that line to make it not crash for now.
Report
cmlr
9 years ago
Start Dragging
plasma-desktop(22495)/libplasma Plasma::FrameSvg::resizeFrame: Invalid size QSizeF(0, 0)
render glyph failed err=62 face=0x9de770, glyph=51
render glyph failed err=62 face=0x9de770, glyph=75
render glyph failed err=62 face=0x9de770, glyph=76
render glyph failed err=62 face=0x9de770, glyph=79
render glyph failed err=62 face=0x9de770, glyph=80
render glyph failed err=62 face=0x9de770, glyph=82
render glyph failed err=62 face=0x9de770, glyph=81
render glyph failed err=62 face=0x9de770, glyph=87
render glyph failed err=62 face=0x9de770, glyph=36
render glyph failed err=62 face=0x9de770, glyph=89
render glyph failed err=62 face=0x9de770, glyph=14
render glyph failed err=62 face=0x9de770, glyph=37
render glyph failed err=62 face=0x9de770, glyph=68
render glyph failed err=62 face=0x9de770, glyph=85
render glyph failed err=62 face=0x9de770, glyph=70
render glyph failed err=62 face=0x9de770, glyph=90
render glyph failed err=62 face=0x9cdf90, glyph=11
render glyph failed err=62 face=0x9cdf90, glyph=49
render glyph failed err=62 face=0x9cdf90, glyph=82
render glyph failed err=62 face=0x9cdf90, glyph=68
render glyph failed err=62 face=0x9cdf90, glyph=70
render glyph failed err=62 face=0x9cdf90, glyph=87
render glyph failed err=62 face=0x9cdf90, glyph=76
render glyph failed err=62 face=0x9cdf90, glyph=89
render glyph failed err=62 face=0x9cdf90, glyph=72
render glyph failed err=62 face=0x9cdf90, glyph=4862
render glyph failed err=62 face=0x9cdf90, glyph=79
render glyph failed err=62 face=0x9cdf90, glyph=85
render glyph failed err=62 face=0x9cdf90, glyph=12
render glyph failed err=62 face=0x9cdf90, glyph=79
render glyph failed err=62 face=0x9cdf90, glyph=68
render glyph failed err=62 face=0x9cdf90, glyph=86
render glyph failed err=62 face=0x9cdf90, glyph=87
render glyph failed err=62 face=0x9cdf90, glyph=88
render glyph failed err=62 face=0x9cdf90, glyph=83
render glyph failed err=62 face=0x9cdf90, glyph=71
render glyph failed err=62 face=0x9cdf90, glyph=72
render glyph failed err=62 face=0x9cdf90, glyph=29
render glyph failed err=62 face=0x9cdf90, glyph=81
render glyph failed err=62 face=0x9cdf90, glyph=82
render glyph failed err=62 face=0x9cdf90, glyph=69
render glyph failed err=62 face=0x9cdf90, glyph=92
render glyph failed err=62 face=0x9cdf90, glyph=16
render glyph failed err=62 face=0x9cdf90, glyph=71
render glyph failed err=62 face=0x9cdf90, glyph=83
render glyph failed err=62 face=0x9cdf90, glyph=88
render glyph failed err=62 face=0x9cdf90, glyph=86
render glyph failed err=62 face=0x9cdf90, glyph=17
render glyph failed err=62 face=0x9cdf90, glyph=39
render glyph failed err=62 face=0x9cdf90, glyph=36
render glyph failed err=62 face=0x9cdf90, glyph=69
render glyph failed err=62 face=0x9cdf90, glyph=51
render glyph failed err=62 face=0x9cdf90, glyph=90
render glyph failed err=62 face=0x9cdf90, glyph=48
render glyph failed err=62 face=0x9cdf90, glyph=81
render glyph failed err=62 face=0x9cdf90, glyph=74
render glyph failed err=62 face=0x9cdf90, glyph=80
render glyph failed err=62 face=0x9cdf90, glyph=55
render glyph failed err=62 face=0x9cdf90, glyph=53
render glyph failed err=62 face=0x9cdf90, glyph=29
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
KCrash: Attempting to start /usr/bin/plasma-desktop from kdeinit
sock_file=/home/carl/.kde4/socket-Ivan/kdeinit4__0
KCrash: Application 'plasma-desktop' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
sock_file=/home/carl/.kde4/socket-Ivan/kdeinit4__0
QSocketNotifier: Invalid socket 14 and type 'Read', disabling...
Report
fpuelz
9 years ago
Have you enabled the "plasma_engine_publictransport" checkbox in the "kdebugdialog" app? It may help to also enable "libplasma"/"plasma-desktop" there. Maybe that gives a bit more output.
What KDE version do you use, 4.6.5?
No other idea currently. Please tell me, if someone else on Arch gets the same crash (with old settings).
Report
cmlr
9 years ago
1. Deleting ~/.kde4/share/apps/plasma_engine_publictransport/
2. Removing the appropriate entries in ~/.kde4/share/config/plasma-desktop-appletsrc
Finally, one of the crashes did generate an error report, which said:
Application: Plasma Desktop Shell (kdeinit4), signal: Segmentation fault
and above this, it said:
The generated crash information is not useful
Anyway, this is enough for me, I'll put it up on Arch Linux and warn people to do as I described.
Report
fpuelz
9 years ago
I commited a possible fix, can you try it out? It's in the git repository in HEAD
> git clone git://anongit.kde.org/publictransport
> cd publictransport
Then go into the applet directory, create a build dir, and compile/install (see README, use the correct prefix for installation). Then the possibly fixed version should be installed, ready to get tested.
Report
cmlr
9 years ago
Report
fpuelz
9 years ago
Did you have the applet installed with debug symbols when the crash dialog was shown?
Have you tried to run plasma-desktop from a terminal to see it's output?
I have no idea what it could be.. The filter settings are the default settings ("Default" with a filter for unknown vehicles), is that correct?
Report
cmlr
9 years ago
[AppletGlobals][plasma_applet_publictransport]
alarmTime=0
city=
filterConfiguration=Default
firstDepartureConfigMode=0
location=us
serviceProvider=us_septa
stop=Philmont Av + Barcalow Av
stopID=\\0
stopSettings=1
timeOfFirstDepartureCustom=12:00
timeOffsetOfFirstDeparture=0
[AppletGlobals][plasma_applet_publictransport][filterConfig_Default]
Filters=\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00
Report
fpuelz
9 years ago
You need to have libpublictransporthelper installed, before compiling the applet. And it needs to be the rc1 version, not beta8. This installs the missing header file.
Report
cmlr
9 years ago
/home/carl/Downloads/publictransport/applet/build/ui_publicTransportFilterConfig.h:29:49: fatal error: publictransporthelper/checkcombobox.h: No such file or directory
compilation terminated.
make[2]: *** [CMakeFiles/plasma_applet_publictransport.dir/plasma_applet_publictransport_automoc.o] Error 1
make[1]: *** [CMakeFiles/plasma_applet_publictransport.dir/all] Error 2
make: *** [all] Error 2
Report
cmlr
9 years ago
-------------------
pkgname=publictransport-library
pkgver=0.10_rc1
_pkgver=0.10-rc1
pkgrel=1
pkgdesc="Library for publictransport-plasmoid"
arch=('i686' 'x86_64')
url="http://www.kde-look.org/content/show.php/PublicTransport?content=106175"
license=('GPL')
depends=('kwebkitpart' 'kdebase-workspace')
makedepends=('git' 'cmake' 'automoc4')
options=()
build() {
git archive --format=tar --remote=git://anongit.kde.org/publictransport unstable-$_pkgver > publictransport.tar
cd $srcdir
tar xf publictransport.tar
cd libpublictransporthelper
#cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .
cmake -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
make DESTDIR="$pkgdir/" install
}
-------------------
pkgname=publictransport-plasmoid
pkgver=0.10_rc1
_pkgver=0.10-rc1
pkgrel=1
pkgdesc="Kdeplasma plasmoid with departure board for a given stop"
arch=('i686' 'x86_64')
url="http://www.kde-look.org/content/show.php/PublicTransport?content=106175"
license=('GPL')
depends=('publictransport-library' 'kwebkitpart' 'kdebase-workspace')
makedepends=('git' 'cmake' 'automoc4')
options=()
build() {
git archive --format=tar --remote=git://anongit.kde.org/publictransport unstable-$_pkgver > publictransport.tar
cd $srcdir
tar xf publictransport.tar
cd engine
#cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .
cmake -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
make DESTDIR="$pkgdir/" install
cd ../applet
#cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .
cmake -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
make DESTDIR="$pkgdir/" install
cd ../applet-flights
#cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .
cmake -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
make DESTDIR="$pkgdir/" install
cd ../applet-graphicaltimetableline
#cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .
cmake -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
make DESTDIR="$pkgdir/" install
cd ../runner
#cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .
cmake -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
make DESTDIR="$pkgdir/" install
cd ../icons
#cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .
cmake -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
make DESTDIR="$pkgdir/" install
cd ../engine-openstreetmap
#cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .
cmake -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
make
make DESTDIR="$pkgdir/" install
# cd ../timetablemate
# cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` .
# make
# make DESTDIR="$pkgdir/" install
}
Report
fpuelz
9 years ago
But I don't know why there's no crash dialog. Ok, then please try to start plasma from a terminal, it may print out something useful on the crash:
> kquitapp plasma-desktop
> plasma-desktop
Maybe you need to enable debugging messages then using "kdebugdialog", search for "publictransport" and check it.
I'll try to reproduce the crash with some old filter settings when I have time.
Report