Trackserver

Description

NOTE: Trackserver v5.0 contains backwards-incompatible changes and changes to client configurations are needed. Please read the release notes for more information.

Getting your GPS tracks into WordPress and publishing them has never been easier!

Trackserver is a plugin for storing and publishing GPS routes. It is a server companion to several mobile apps for location tracking, and it can display maps with your tracks on them by using a shortcode. It can also be used for live tracking, where your visitors can follow you or your users on a map.

Unlike other plugins that are about maps and tracks, Trackserver’s main focus is not the publishing, but rather the collection and storing of tracks and locations. It’s all about keeping your data to yourself. Several mobile apps and protocols are supported for getting tracks into trackserver:

A shortcode [tsmap] is provided for displaying your tracks on a map. Maps are displayed using the fantastic Leaflet library and some useful Leaflet plugins are included. Maps can be viewed in full-screen on modern browsers.

To publish a map with a track in a post or a page, just include the shortcode:

[tsmap track=<id>]

See the FAQ section for more information on the shortcode’s supported attributes.

Requirements

Trackserver requires PHP 5.3 or newer and it needs both DOMDocument and SimpleXML extensions installed.

Credits

This plugin was written by Martijn Grendelman. Development is tracked on Github.

It includes some code and libraries written by other people:

Screenshots

  • The track management page in the WordPress admin
  • Configuration of OruxMaps for use with Trackserver / WordPress

Installation

  1. Use WordPress’ built-in plugin installer, or copy the folder from the plugin archive to the /wp-content/plugins/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. Configure the slugs that the plugin will listen on for location updates.
  4. Configure your mobile apps and start tracking!
  5. Use the shortcode [tsmap] to include maps and tracks in your posts and pages.

FAQ

What are the available shortcode attributes?

For the [tsmap] shortcode:

  • track: one or more track IDs, separated by commas, or ‘live’ (deprecated, ‘user=@’ is preferred).
  • id: an alias for ‘track’
  • user: one or more user IDs, separated by commas, who’s latest track to follow ‘live’. A literal ‘@’ means the author of the post (you). When viewing the map, the liveupdate feature will follow the track of the first user specified. When the end-marker is enabled for a live track (and why shouldn’t it?), clicking it will change the focus of the liveupdate to that track. The map view will follow the latest location and the infobar (if present) will display its information.
  • live: true (or ‘t’, ‘yes’ or ‘y’), or false (default), to force live tracking for this map. This can be used for example with an externally updated GPX or KML file.
  • maxage: the maximum age of a live track for it to be included on the map. If this parameter is given, all user tracks that have not been updated in the last X amount of time, will not be displayed. The value is a time expression in the form of a number and a unit, for example: ‘120s’, ’30m’, ‘2h’, ‘3d’.
  • width: map width, default: 100%.
  • height: map height, default: 480px.
  • align: ‘left’, ‘center’ or ‘right’, default: not set.
  • class: a CSS class to add to the map div for customization, default: not set.
  • continuous: true (default) or false (or ‘f’, ‘no’ or ‘n’), for lack of a better word, to indicate whether multiple tracks should be considered as one continuous track. The only effect this has, at the moment, is that intermediate start markers are yellow instead of green.
  • gpx: one or more URLs to GPX files to be plotted on the map. Multiple URLs should be separated by spaces, and the value as a whole enclosed by double quotes (gpx=”https://….gpx https://….gpx”). If enabled in the settings, when a url is prefixed with the string ‘proxy:’, the request is proxied through Trackserver.
  • kml: one or more URLs to KML files to be plotted on the map. Multiple URLs should be separated by spaces, and the value as a whole enclosed by double quotes (kml=”https://….kml https://….kml”). If enabled in the settings, when a url is prefixed with the string ‘proxy:’, the request is proxied through Trackserver.
  • infobar: true (or ‘t’, ‘yes’ or ‘y’), false (default), or a template string, to specify whether an information bar should be shown on the map, when live tracking is active. This only works with ‘track=live’ or the ‘user’ parameter, and has no effect in other cases. When multiple live tracks are requested, the infobar will display the data of the first track only. Instead of ‘true’ or ‘yes’, a template string containing one or more placeholders (like {lat}, {lon}, {speedkmh}, etc.) can be given to the attribute, in which case it overrides the value specified in the user profile. Please check the Trackserver user profile page in the WordPress backend for which placeholders are supported.
  • zoom: the zoom factor to use for the map, a number between 0 and 18. For a map with live tracks, this number is absolute. For a map with only static tracks, this number represents the maximum zoom level, so the map will always fit all the tracks.

The following attributes apply to tracks that are drawn on the map. Each of them can contain multiple values, separated by commas (or colons, in the case of ‘dash’), to be applied to different tracks in order. If there a are less values than tracks, the last value will be applied to the remaining tracks.

  • markers: one or more of the following values: true (default) or false (or ‘f’, ‘no’ or ‘n’) to disable start/end markers on the track. The value can also be ‘start’, ‘s’, ‘end’ or ‘e’, to draw markers only for the start or the end of a track respectively.
  • markersize: one or more integer values, separated by commas, to use as the size / radius of the start/end markers of the track. Default is 5.
  • color: one or more colors, separated by commas, to use for the tracks on the map. Default comes from Leaflet.
  • weight: one or more weights, separated by commas, to use for the tracks on the map. Default comes from Leaflet.
  • opacity: one or more opacities, separated by commas, to use for the tracks on the map. Default comes from Leaflet.
  • dash: one or more dashArrays, seperated by colons (:), to use for the tracks on the map. Default is no dashes.
  • points: true (or ‘t’, ‘yes’ or ‘y’), or false (default), to specify whether the track should be displayed as a line or a collection of points.

Example: [tsmap track=39,84 user=@ align=center class=mymap markers=n color=#ff0000]

When you specify multiple values, please be aware of the following. While track order will be preserved within each track type, different track types are evaluated in a specific order, and styling values are applied in that order too. The order is:

  1. Static tracks (track=a,b,c)
  2. Live user tracks (user=x,y,z)
  3. GPX tracks (gpx=…)
  4. KML tracks (kml=…)

To prevent confusion, I suggest you specify tracks in this order in your shortcode too.

Example: [tsmap gpx=/url/for/file.gpx user=jim track=10,99 color=red,blue,green,yellow]

In this case, the GPX track will be yellow, Jim’s live track will be green and tracks 10 and 99 will be red and blue respectively.

In a feature request I was asked to make it possible to draw just a marker on the last known location, and not draw a track at all. Use ‘markers’ and ‘opacity’ to accomplish this:

Example: [tsmap user=@ markers=e opacity=0.0]

Attributes for the [tslink] shortcode:

  • track: same as for [tsmap]
  • id: same as for [tsmap]
  • user: same as for [tsmap]
  • text: the text to render insde the <a>…</a> tags
  • class: a CSS class to apply to the ‘a’ element
  • format: the format in which to download the tracks. Only ‘gpx’ (the default) is supported at this time. Other formats like KML may follow. Send a feature request if you need a specific format.

Example: [tslink track=1,2,3,4 text=”Download the tracks of our 4-day hike in GPX format”]

Instead of using the ‘text’ attribute, you can also use shortcode to enclose the text:

Example: [tslink track=1,2,3,4]Download the tracks of our 4-day hike in GPX format[/tslink]

I used the shortcode but the map doesn’t show

Trackserver tries to detect the usage of the [tsmap] shortcode to prevent unnecessary loading of the plugin’s JavaScript. In some circumstances, for example, if your page setup is complex and uses multiple loops, the detection could fail. In such a case, use this shortcode in the main post or page to force loading the JavaScript:

[tsscripts]

There is one caveat. Trackserver only works on ‘real’ posts and pages, in WordPress terms. For example, some WordPress themes (I have seen one) offer the possibility to specify a static homepage right in the theme settings, completely overriding WordPress’ internal post logic. In this case, the page lacks an author as well as other properties that a regular WordPress post or page has. Trackserver’s [tsmap] shortcode does not work on pages like that.

All that said, Trackserver’s shortcode detection should be reasonably fool-proof these days, because if the early detection mechanism fails, the shortcode itself is used to trigger the inclusion of Trackserver’s JavaScript and CSS. The only adverse side effect this may have, is that the CSS is loaded in the footer of the page, rather than in the head section. It’s hard to say whether this will actually be a problem, but just in case it is, the [tsscripts] shortcode is there.

Beware though: the [tsscripts] shortcode doesn’t actually do anything. At all. It is merely an extra shortcode that Trackserver tries to detect. Therefore, it is absolutely useless to include [tsscripts] in the same context as your [tsmap]. I appreciate that this can be hard to understand, so let me illustrate with an example. Take the ‘Posts in page’ plugin, that allows you to use a shortcode in a post (let’s call it A) to include other posts an pages inline (let’s call them B and C). If [tsmap] is used in B or C, but the page requested by the user is A, which does not have a [tsmap], Trackserver’s shortcode detection used to fail in earlier versions, and the Javascript and CSS would not be loaded. By using the [tsscripts] shortcode in page A, the loading of JS and CSS can be forced. The CSS will then be loaded in the head of the page, instead of in the footer.

Trying to show a GPX or KML file shows an error popup: “Track could not be loaded: undefined undefined”

This will happen when you try to load a file from a different domain than your site is running on, and the remote server doesn’t serve a ‘Access-Control-Allow-Origin’ header that allows acces to the file. Your webbrowser refuses to process the file. Check the console in your developer tools for an error message. Please read up on Cross-Origin Resource Sharing (CORS) for more information. This is not something that Trackserver can fix.

What is live tracking?

By using the shortcode with the ‘user=…’ or ‘track=live’ parameter, the most recently updated track belonging to the specified user(s) or the author of the current post/page is published on the map.

The track is updated with the latest trackpoints every 10 seconds and the map view is always centered to the most recent trackpoint. A marker is shown in that location. Live tracking can be stopped and restarted with a simple control button that is shown on the map.

To publish other users’ tracks, the author of the page needs the ‘trackserver_publish’ capability, which is by default only granted to administrators and editors.

What is a Trackserver user profile? (since v1.9)

Before v1.9, all of Trackserver’s settings were stored in a single, global place in WordPress, meaning they were shared among all users in the same WordPress install. This was also the case for the OsmAnd access key that allows OsmAnd users to use Trackserver for live tracking. Since Trackserver tries to be multi-user, things like access keys do not belong in the global configuration.

In version 1.9, user profile settings were introduced as a place for per-user settings, like access keys. There is a separate page in the WordPress admin for the Trackserver profile (called ‘Your profile’ in English), that is accessible by all users that have the right (capability) to use Trackerver.

What is an embedded map?

In version 4.3, a feature called ‘Embedded maps’ was introduced. Embedded maps are a custom WordPress post type, which are intended to have no other content than a map, filling up the entire browser window, or the container they are loaded in. They bypass your active WordPress theme and use a custom template that displays only the content of your ‘Embedded map’ post, without any headers, sidebars or even styling. This allows you to embed the map with your tracks in another website using an iframe. Trackserver will tell you the HTML code to use for embedding the map. They also look great on mobile devices, if all you really care about is the map and what’s on it.

I’m not sure about the usefulness of this feature to everyone who uses Trackserver, but personally I use it for mixing interactive maps with photos and videos in my online photo album.

What changed for TrackMe authentication 1.9?

TrackMe, like OsmAnd, uses HTTP GET requests for communication with Trackserver. This means that all data from the app, including your password, becomes part of the URL. Because URLs are not generally considered secret, and may be logged in access logs and what not, this is quite insecure, even with HTTPS.

For OsmAnd, that has no built-in authentication, Trackserver has used an access key instead of your WordPress password from the very beginning. For TrackMe, this was implemented in v1.9. So from version 1.9 onward, every WordPress user that is allowed to use Trackserver has its own separate access key for OsmAnd and a separate password for TrackMe, settable in the Trackme user profile.

If you have been using Trackserver with TrackMe before v1.9, you should now set the password in TrackMe to this new password, instead of your WordPress password. Like your password, you should keep your access keys to yourself, but the idea is that the security impact of such a key is low, compared to your WordPress password, and that you can (and should!) change the keys regularly. No real effort is made to keep the keys secure (they are stored in the database unhashed, for example), so in any case, try not to use a sensitive password.

What is this ‘slug’ you are talking about?

Slugs are generally defined as URL-friendly and unique versions of a name or title. In WordPress, they are short descriptions of posts and pages, to be used in URLs (permalinks). They are the part of the URL that makes WordPress serve a particular page. Trackserver uses slugs to ‘listen’ for tracking requests from mobile apps, and you can configure these slugs to be anything you want. Trackserver comes with default values for these slugs, that should work for most people. Changing them is usually not necessary nor recommended. Please
read the WARNING blow before changing them.

Please refer to the WordPress Codex for more information about slugs in general.

WARNING: please do not confuse the slugs that you configure in Trackserver with the URLs (permalinks) that you use to publish your maps and tracks. Above all, make sure there is no conflict between the permalink for a post or page and the slugs that Trackserver uses for location updates. The slugs in Trackerver’s configuration are for the location updates ONLY. If you try to open them in a browser, you will get errors like ‘Illegal request’. Trackserver operates on a low level within WordPress, so if there is a conflict between Trackserver and a post or a page, Trackserver will win and the page will be inaccessible.

To publish your tracks, simply create a page (with a non-conflicting permalink) and use the [tsmap] shortcode to add a map.

Can Trackserver support protocol X or device Y?

Trackserver, being a WordPress plugin, can only support HTTP-based protocols for tracking. Many tracking devices use TCP- but not HTTP-based protocols for online tracking, and as such, Trackserver cannot support them, at least not without some middleware that translates the device’s protocol to HTTP.

If a device or an app does use HTTP as a transport, adding support for it in Trackserver should be quite easy. For example, I have been thinking about support for the GpsGate Server Protocol. It could be added if there is any demand for it.

If a device or an app uses a different transport, support could be added by implementing some sort of middleware. For example, OwnTracks uses MQTT and ships with a script (m2s) for storing the data. Storage methods in m2s are pluggable, so one could write an m2s-plugin for shipping the data to Trackserver.

How does TrackMe Cloud Sharing work with Trackserver?

TrackMe has a feature called ‘Cloud Sharing’, that is meant to enable users to follow other users’ locations on a map. The TrackMe app uses a different method to send location updates than for regular tracking updates. Also, it sends Cloud Sharing requests without authentication credentials, which made it hard to implement in Trackserver. Given that TrackMe sends authentication credentials in an insecure way in any case, I decided to implement a workaround for the missing credentials, by embedding them in the server URL. So, in stead of sending a request like this:

https://example.com/trackme/requests.z?username=myuser&password=mypass

we configure TrackMe to send requests like this:

https://example.com/trackme/myuser/mypass/requests.z?username=&password=

This way, it also works for cloud sharing requests, and we can get the username and password from the URL.

If you have been using TrackMe with the old style Server URL, and you try to use the cloud sharing feature, you will see a message along the lines of ‘For cloud sharing you need to update your server URL, see Trackserver FAQ.’. This means you have to update the settings in the TrackMe app to contain your username and TrackMe password in the server URL. The complete server URL can be found in your Trackserver profile as always, and the old style URL is now deprecated. Switching to the new style URL also means, that the username and password that you set in the app will no longer be used, and you can leave those settings empty.

Please also read the FAQ above: ‘What changed for TrackMe authentication 1.9’. The new URL scheme is slightly more insecure in some cases, since with the new scheme it is even more certain that your TrackMe password will end up in the server’s access logs. Other than that, there is no difference. Remember to always use HTTPS, and change your TrackMe password often, since it will give full read/write access to your Trackserver tracks.

In Trackserver, Cloud Sharing behaves a little differently than in the official TrackMe server. The official server only remembers the latest location update for your device ID. It also has a notion of ‘public’ vs ‘non-public’ location sharing, where ‘non-public’ requires some permissions exchange over mobile text message. Trackserver does not do ‘public’ sharing. Also, location updates that arrive via the cloud sharing feature are treated the same as any other update: they are stored as a track. The only difference with normal tracking is, that the track name is generated by Trackserver. A new track is created when the date changes. The track name format is ‘TrackMe Cloud yyyy-mm-dd’. This is not configurable at this time, but that may change in the furture.

What about security?

Using Trackserver

The plugin uses a few custom WordPress capabilities (‘use_trackserver’, ‘trackserver_publish’ and ‘trackserver_admin’) to manage the various levels of access within Trackserver:

  • To use the tracking features and manage and publish one’s own tracks, the ‘use_trackserver’ capability is required. It is granted to authors, editors and administrators, but not to subscribers.
  • To publish other people’s tracks, the ‘trackserver_publish’ capability is required. It is granted to editors and administrators.
  • To manage Trackserver’s options, the ‘trackserver_admin’ capability is required. Only admins get this capability by default.

If you remove one or more capabilities from the listed roles, they will be re-granted on (re)activation of the plugin.

Tracks can only be published in WordPress posts or pages, and cannot be downloaded from outside WordPress. Requests for downloading tracks need to have a cryptographic signature (called a ‘nonce’) that only WordPress can generate.

Regarding the use of apps for live tracking and uploading to WordPress, please read the considerations about authentication above.

External tracks proxy

Trackserver contains code that can proxy requests to- and serve content from remote 3rd-party servers. This allows authors to work around CORS restrictions. Instead of letting the visitor’s browser get the GPX or KML from the remote server (which only works if the server implements CORS headers to allow the request), the request is sent to WordPress, where Trackserver will fetch the track from the remote server and send it to the browser.

This opens all kinds of interesting possibilities, but it is also a security risk. Your authors can use the proxy function to invoke HTTP requests to remote servers, which now originate from your server, and the response of which will be processed by your WordPress installation. This could have different adverse effects, ranging from legal liability to denial-of-service on your server.

Therefore, the proxy function is disabled by default. It can be enabled in the ‘advanced’ section of Trackserver’s settings, but I recommend to only enable it if you need it, and if you trust your authors not to use it on harmful URLs.

The proxy code can be invoked via a ‘gettrack’ request, but like all requests for tracks, it has to be signed with a valid nonce, so it should be impossible to abuse the proxy from outside WordPress.

What GPX namespaces are supported for GPX import (via HTTP POST or upload via backend)?

GPX 1.1 (https://www.topografix.com/GPX/1/1) and GPX 1.0 (https://www.topografix.com/GPX/1/0).

Is it free?

Yes. Donations are welcome. Please visit https://www.grendelman.net/wp/trackserver-wordpress-plugin/ for details.

Reviews

July 15, 2022
Works great! only extra things I’d ask for are a quicker refresh rate (option) a way to change the markers and an update so it says it’s compatabile with x.x.x wordpress but anyhow it works great
April 6, 2022 1 reply
I used this to track an attempt of the Great Western Loop in 2021. It tracked 4800 miles until an injury was sustained. Super cool plugin to show live racking data on a WordPress website. Thank you to the dev ??
October 10, 2020
Deze plugin is perfect als je gewoon simpel een GPX route wil laten zien op jouw website. In tegenstelling tot vele andere plugins werkt hier de upload van GPX bestanden wel en hoef je geen 3th party tools te installeren om jouw GPX bestand op de server te krijgen.
August 27, 2019 2 replies
When I put forward that I wanted to make a road trip across the US on my own my wife was understandably nervous, and set the condition that she wanted to be able to follow my progress at any time of the day. Rather than relying on a phone app like Find My Friends and facing hefty data charges I looked fora WordPress compatible solution – and to my delight I found Trackserver. This easy-to-install plugin, and the non-nonsense TrackMe app, worked flawlessly. It didn’t take me more than a couple of hours to install, set up and test and during the time I ran it there were no glitches or fails. Only when I tried to export the data to a gpx file did I have an issue, and the developer answered my support request, found the fault and patched the plugin within 24 hours.
Read all 19 reviews

Contributors & Developers

“Trackserver” is open source software. The following people have contributed to this plugin.

Contributors

“Trackserver” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Trackserver” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

v5.0.2

Release date: 05 March 2023

Fixed:
* Regression with viewing tracks in WP backend via bulk action.

v5.0.1

Release date: 06 February 2023

Fixed:
* JS localization warning in WP backend.

v5.0

Release date: 06 February 2023

This release contains many changes. Please read these notes carefully.

BIG CHANGE: Trackserver URL change for all supported apps. Starting with v5.0, Trackserver uses a single URL slug for all supported apps. This means all users have to update the server URL in the mobile apps they use for tracking. App-specific URLs still work, but will be removed in a future version. After upgrading, visit the Trackserver Options page and look at the ‘Full URL’ lines at the top. There are two versions of the universal URL. Trackserver will tell you which URL to use in which app.

BIG CHANGE: App-specific passwords and access keys (used for TrackMe, OsmAnd and SendLocation) have been transformed into ‘App Passwords’, and are now app-independent. Existing access keys are automatically converted to App Passwords during the upgrade, and will all be valid for all supported apps, including the apps that worked with your WordPress password before (OruxMaps / MapMyTracks and OwnTracks). Your WordPress password will still work for those apps, but that may change in a future release. Switching to App Passwords is recommended, regardless of the app you use for Tracking. The main benefit is an increase in security, because your WordPress password will no longer be necessary for using Trackserver. Trackserver App Passwords can be changed often without impacting WordPress logins. As an added bonus, App Passwords also work in WordPress installs that use SSO mechanisms like OAuth2 for user logins.

Added:
* A search box on the tracks management page.
* Experimental uLogger support.
* Universal slug for all protocols that Trackserver supports.
* App passwords.
* Generic ‘GET request’ support for storing locations, used for OsmAnd and Sendlocation support.
* ‘Duplicate’ bulk action for copying tracks.
* Some useful links to Github and Trackserver home page from the Plugins page in WP admin.

Changed:
* Big code restructuring changes. The main Trackserver class has been split up in different utility classes. Each protocol that Trackserver supports now lives in its own PHP class, as do the different WP admin pages and the shortcode handling code. Abstractions for database fuctionss, and data like tracks and locations have been created.
* Rewrite parts of the MapMyTracks protocol handling, to make it more robust.
* Internalized the polyline encoder for performance improvement.
* Update Leaflet, first to v1.7.1. then via v1.8.0 to v1.9.3.

Fixed:
* Embedded maps. The previously shipped template was broken and embedded maps did not actually work.
* Include tracks without locations in the list of tracks.
* CSS improvements.
* Better TrackMe error handling.
* A bug in metadata generation for polyline output.
* A PHP error when there are no posts in the $wp_query. Thanks, @caveman99.

Removed:
* TrackMe support via the WP AJAX interface. It was never used.

v4.3.2

Release date: 10 September 2019

Fixed:
* Database structure modifications that were missing on new installs of v4.3.
* The default trackformat was changed from polyline to geojson by mistake.

v4.3.1

Release date: 10 September 2019

Changed:
* Some code restructuring.

Fixed:
* A JavaScript conflict with the ‘Leaflet Map’ WordPress plugin.
* Markers on maps in the WP admin were almost invisible due to undefined marker size.

v4.3

Release date: 6 September 2019

This release requires WordPress v4.7 or higher.

Added:
* Custom post type ‘tsmap’ for creating embedded maps.
* Infobar template placeholder for track name: {trackname}.
* Experimental support for TrackMe Cloud Sharing. To use this, you have to change the ‘URL header’ setting in TrackMe. Please see the Trackserver FAQ for details.
* Support for PhoneTrack-Android via the OsmAnd protocol.
* Support for optional HTTP Basic Authentication on the OsmAnd protocol.
* Support for setting the ‘Source’ field of a track via a URL parameter in the OsmAnd protocol.
* Support for unicode characters in text fields through charset/collation changes in DB tables.
* Shortcode attribute ‘markersize’, for specifying the size (radius) of start/end markers on tracks.

Changed:
* Trackserver now only supports WP 4.7 or higher.
* Re-enstate GeoJSON support for the ‘gettrack’ method (not for ‘gettrack_query’)
* Updated Leaflet, first to version 1.4.0 and then to 1.5.1.
* Start restructuring the plugin code into multiple classes.
* The ‘Share with friend / Follow friends’ feature that was tied to OwnTracks now also applies to Trackme Cloud Sharing.

Fixed:
* Make the ‘Show x items’ selector in the ‘Manage tracks’ page actually do something.
* Escape HTML entities in the infobar.
* Escape HTML in track names when viewing maps in the WordPress backend.
* Translation of strings related to Embedded maps by loading the translation domain earlier.
* An issue where we tried to translate a piece of HTML code.
* Coding style updates, update WPCS to v2.1.1.
* Change the default value of timestamp fields in the database, for compatibility with MySQL 5.7+ / NO_ZERO_IN_DATE.
* Add a multicolumn index on the locations table, for better performance of certain database queries.
* Missing metadata on all but the last live track in a map. Thanks to @pisoni for reporting it and suggesting a fix. The fix does incur a performance penalty though.

v4.2.3

Release date: 21 August 2019

  • Fix a bug with converting timestamps to UTC for GPX output. Thanks to @jeremybeckett for reporting it.

v4.2.2

Release date: 18 October 2018

  • Fix Leaflet JS/CSS URLs, this change was forgotten to be included in v4.2

v4.2.1

Release date: 18 October 2018

  • Update Dutch translation for changes in v4.2

v4.2

Release date: 18 October 2018

  • Add some replacement tags for the infobar. All relevant metric and imperial units are now represented, and some of the tags now have different variants for specifying the number of decimals. Please see the text near the form field in your Trackserver profile for more information. Backwards-incompatible change: the distance and speed tags now have 0 decimals by default, that used to be 2.
  • After a network error, remove error popup from the map on the next succesful track load.
  • Updated Leaflet to version 1.3.4.

v4.1

Release data: 8 October 2018

Added:
* OwnTracks Friends and Cards responses to Location requests.
* WordPress user avatars to OwnTracks responses, if available.
* Input fields on the Trackserver user profile page for managing OwnTracks share/follow friends.
* Stub functions for responding more nicely to TrackMe cloud sharing requests.
* A mouseover-tooltip on end-markers of live tracks, showing the user’s displayname.
* The user’s display name in the title of the Trackserver profile page.

Fixed:
* Missing gettext domain on some localized strings.
* Added some missing inline documentation in the code.

v4.0.2

Release date: 23 February 2018

Fixed:
* Properly escape user-supplied input that is used in printf() format strings
* Make the default tile server URL use https instead of http

v4.0.1

Release date: 23 February 2018

IMPORTANT BUGFIX: If you did a fresh install of v4.0, a column was missing from a database table,
causing location updates and GPX file uploads to fail. This release adds the column if it is missing.
Upgrades from 3.0 to 4.0 are not affected by this bug (but should still update).

Fixed:
* Updated Lithuanian translation. Thanks, Dainius Kaupaitis.
* Add title to the overlay for viewing geofences.
* Add missing database column for new installations.

v4.0

Release date: 22 February 2018

This is another big update. Read more about it here: https://www.grendelman.net/wp/trackserver-v4-0-released/.

Added:
* A track editor in the WP admin, based on Leaflet.Editable. It allows you to move track points and split tracks.
* Bulk action for viewing multiple tracks at once in the admin. Editing them also works.
* Geofencing support, allowing you to hide or drop location updates within certain areas.
* A proxy for external KML and GPX tracks, to work around CORS restrictions.
* ‘maxage’ shortcode parameter to impose time-based limit on live tracks.
* OwnTracks HTTP support, locations request handling only for now.
* Bulk action for downloading tracks as GPX.
* A {distance} tag for infobar template, for total track distance in meters.
* Information about live tracking URLs and howto’s for mobile apps on the user’s Trackserver profile.
* Information on how to use live tracking in OsmAnd.
* Lithuanian translation, thanks to Dainius Kaupaitis.
* PHP coding style checks and automated testing with TravisCI.

Changed:
* Make the ‘infobar’ shortcode attribute accept a string, to override the template set in the user profile.
* Show a popup on the map with an internationalized message when there are not tracks to display.
* When a (live) track that is currently shown on the map is no longer present in the server response, show a nice popup, suggesting a page reload.
* Limit the TrackMe ‘gettriplist’ command to the 25 latest tracks, serve them in reverse order.
* Increase WP-admin ‘View track’ modal window size to 1024×768.
* Updated Polyline encoder from Eric McConville to v1.3.
* Updated Leaflet to version 1.3.1.
* Updated Leaflet-fullscreen to version 1.0.2.

Fixed:
* In JavaScript, store track information from the server more reliably.
* Improve HTTP responses around authentication failure.
* Recalculate the total track distance after merging multiple tracks.
* Easier access to Leaflet map object from 3rd party JavaScript (issue #9).
* Handle localized decimal numbers from SendLocation (issue #12).
* Some minor JavaScript and PHP issues.
* Many many many PHP coding style fixes.

v3.0.1

Release date: 28 February 2017

  • Add cache busters for JavaScript files

v3.0

Release date: 27 February 2017

This is a BIG update. Please read https://www.grendelman.net/wp/trackserver-v3-0-released/ for the full story!

  • Fix a bug where Trackserver would only import the first segment of a track from GPX.
  • Get rid of suboptimal shortcode detection fallback mechanism.
  • Upgrade Leaflet to version 1.0.3.
  • Sync trackserver-omnivore.js with leaflet-omnivore-0.3.4.
  • Update leaflet-liveupdate to version 1.1
  • Fix a bug in the admin where some superfluous text was included in track URLs.
  • Implement loading all tracks for a map in a single HTTP request.
  • Add WordPress MultiUser support.
  • Replace track marker images by L.CircleMarker objects and gain dynamic marker colouring. The old images are removed from the plugin installation.
  • Add {userid}, {userlogin} and {displayname} as possible tags in the infobar template.
  • Add ‘user’ attribute to ‘tsmap’ shortcode, for displaying multiple users’ live tracks in a map.
  • Add ‘live’ attribute to force live-update without live tracks, for use with external (gpx/kml) tracks. It can also be used to force-disable live updates for maps with user tracks.
  • Add ‘zoom’ attribute to influence the initial zoom level of the map. Behaves differently for maps with live tracks than for maps with only static tracks.
  • Add ‘id’ attribute as an alias for ‘track’, because I keep using that for some strange reason.
  • Maps without live tracks now start at zoom level 12 instead of 6, until the tracks are loaded.
  • Remove support for GeoJSON as Trackserver’s internal trackformat, only polyline remains.
  • Shortcode parameters ‘markers’, ‘color’, ‘weight’, ‘opacity’ and ‘points’ can now contain a comma-separated list of values, which will be applied to respective tracks in the ‘track’, ‘user’, ‘gpx’ or ‘kml’ attributes (in that order). If less values than tracks are given, the last value is applied to all remaining tracks.
  • Add ‘dash’ attribute, behaving the same as ‘markers’, ‘color’, etc. to specify a ‘dashArray’ to use for the track(s).
  • Make the ‘weight’ parameter control the point radius when ‘points=y’
  • It is now possible to mix ‘track’, ‘user’, ‘gpx’ and ‘kml’ in a single map.
  • Add a new shortcode called ‘tslink’, that produces a download link for one or more tracks in a single file. Only GPX is supported at this time.
  • Documentation updates and additions.
  • Make end-markers on a live-map clickable to make liveupdate follow that track.
  • Rename a column in the tracks table, it has been misnamed since v1.0.
  • Add an uninstall.php file that removes database tables and options.
  • Add WordPress MultiUser support.
  • Add a debug function for writing stuff to debug.log.
  • Add Promise-polyfill by Taylor Hakes, to support older browsers (most notably IE 9-11).

v2.3

Release date: 23 December 2016

This release is long overdue; most of these changes were made months ago, and I apologize.

  • Fix a bug with the ‘Upload tracks’ buttons in the admin
  • Support loading KML files just like GPX, introducing a new shortcode parameter ‘kml’
  • Fix long standing bug with missing Thickbox on the options page
  • Improve admin modal windows positioning

v2.2

Release date: 19 July 2016

  • Calculate and update speed per trackpoint when calculating the track distance.
  • New replacement tags for a live track’s infobar: altitude and speed in m/s, km/h and mph.
  • Add shortcode parameter ‘points=y|n’, to draw a track as a collection of points instead of a line. The ‘color’ parameter applies to the fill of the points in this case. Be careful with too many points (thousands).
  • Change the default tile server URL to the basic OpenStreetMap

v2.1

Release date: 6 June 2016

  • Implement MapMyTracks ‘upload_activity’ request. You can now upload tracks to trackserver directly from OruxMaps without the use of AutoShare.
  • Support values ‘start’, ‘s’, ‘end’ and ‘e’ for the ‘markers’ attribute, to restrict drawing markers to start or end point only.
  • Introduce new capability ‘trackserver_admin’ and grant it to administrators.
  • Allow admins to manage and publish other users’ tracks, using the new capability.
  • CSS fixes for track management on small screens.

v2.0.2

Release date: 23 December 2015

  • Previous bugfix was incomplete. Thanks to eHc for another report.

v2.0.1

Release date: 23 December 2015

  • Fix bug with incorrect use of $wpdb->prepare. Thanks to eHc for finding it.

v2.0

Release date: 22 December 2015

  • Support mutiple tracks in a single map. Use a comma-separated list of track IDs (and/or ‘live’) in the ‘track’ parameter to show multiple tracks.
  • New shortcode parameter ‘infobar’ (default false) for displaying an information bar with some information about the latest trackpoint during live tracking. The information bar can be formatted via the Trackserver user profile.
  • Support upload of GPX 1.0 files in addition to GPX 1.1.
  • Map width is now 100% by default.
  • Experimental support for SendLocation iOS app (https://itunes.apple.com/nl/app/sendlocation/id377724446).
  • Fix a bug with the OsmAnd timestamp calculation on 32-bit systems.
  • Improve performance of the track management page by adding some DB indexes.
  • Update Leaflet to version 0.7.7.
  • Support (wrapped) GeoJSON as a format for serving tracks. Polyline is still the default, because GeoJSON is 10 times as big.
  • Add a [tsscipts] shortcode to force-load the plugin’s JavaScript in case the main shortcode usage detection fails.
  • Rework the loading and customizing of external JavaScript, to fix some cases where the main shortcode detection would fail.

v1.9

Release date: 1 September 2015

IMPORTANT: This release resets the OsmAnd access key and changes the TrackMe authentication! Please read the changelog and the FAQ, and review your new Trackserver profile for user-specific settings.

  • Add Trackserver user profile for per-user options like access codes. Please see the FAQ section for more information!
  • Move the OsmAnd access key to the user profile.
  • Added a separate password for tracking with TrackMe, for use instead of the WordPress password. Please see the FAQ section for more information!
  • Better error handling and meaningful feedback when uploading a file that is too large.
  • Fix viewing tracks in admin in recent versions of WordPress.
  • Update Leaflet to version 0.7.4.

v1.8

Release date: 29 July 2015

  • Fix parsing of MapMyTracks points with negative coordinates. Thanks to Michel Boulet for helping me find the problem.
  • Add some more documentation and FAQs.

v1.7

Release date: 15 June 2015

  • Add a ‘Delete’ link in the track edit modal, so you don’t have to use a bulk action to delete a single track.
  • Do not omit tracks with zero locations in track management.
  • Full i18n and Dutch translation.
  • Support the ‘getttripfull’ action for TrackMe, to allow TrackMe 2.0 to import your tracks from the server.
  • Use HTTPS in default map tile URL.

v1.6

Release date: 29 April 2015

  • Add option for setting the map tile attribution, as required by most tile services and data providers like OSM. If non-empty, the attribution is displayed on every map.
  • Properly escape option values on the options page.

v1.5

Release date: 15 April 2015

  • Make plugin run a cheap ‘update’ routine on every request, because we cannot assume that the activation hook is run every time the plugin is updated.
  • Fix a bug where tracks management would not show any tracks due to a broken SQL query.

v1.4

Release date: 8 March 2015

  • Add OsmAnd live tracking support.
  • Fix buggy timezone offset calculation, that would break during DST.
  • Draw a start/end marker for each track on a map. Loading tracks from a GPX URL already supports multiple tracks.
  • Add a compatibility fix for PHP < 5.4
  • Fix a bug with viewing tracks in WP admin without pretty permalinks

v1.3

Release date: 28 February 2015

  • Fix a grave bug, that made Trackserver usable ONLY on WP installs using mod-rewrite and Pretty Permalinks.
  • Add ‘use_trackserver’ capability for authors, editors and admins and use it to restrict tracking to those roles, while at the same time allowing non- admins to manage their own tracks.
  • Add shortcode attribute ‘gpx’ for loading a GPX file directly from an external URL.
  • Calculate and store the total distance of a track at the time of upload.
  • Add bulk action to recalculate track distances.
  • Add shortcode attributes: color, weight, opacity, for controlling track display style.
  • Fix security bug where it was possible to delete or merge other users’ tracks.
  • Code cleanup and inline documentation.

v1.2

Release date: 20 February 2015

  • Allow GPX files to be uploaded and added to posts/pages via the WP media manager.
  • Drastically improve performance of importing GPX files (via WP admin or HTTP POST).
  • Fix UTC to local time conversion for GPX imports, correct for DST in most cases.
  • Show start/end markers in track view modal in the admin.
  • Show map name as modal title when viewing from track management in the admin.
  • Optimize track view modal layout.
  • Bugfixes.

v1.1

Release date: 12 February 2015

  • Implement ‘markers’ shortcode to disable start/end markers on tracks.
  • Make tile server URL a configurable option.
  • Bugfixes.

v1.0

Release date: 10 February 2015

  • Implement ‘delete’ bulk-action in track management.
  • Implement ‘merge’ bulk-action in track management.
  • Implement ‘Upload tracks’ from track management.
  • Code cleanups.

v0.9

Release date: 2 January 2015

  • Initial release, with tracking supoort, simple shortcode and track management interface.
Malaking puwang ng bass splash review Bakit pinapayagan ng pamahalaan ang operasyon ng mga monopolyo How to play Super Ace jili Nice88 club withdrawal Esball online casino com registration Nuebe Gaming legit HB888 Casino real money Casino bonus no deposit free spins 2021 12 Titans Greek mythology online slot machines for real money free play Mines jili login download Allin88 ph login Casino Guru gratis Vegas World login Apanalo online game no deposit bonus 77ph Himala himala wikipedia 啶掂啷嵿ぐ啶ぞ啶?啶曕啶ぞ 啶灌? 啶す 啶囙い啶ㄠぞ 啶栢い啶班え啶距 啶曕啶啶?啶灌啶むぞ 啶灌? Mnl168 online casino register philippines login Bally slot machine value Jili live casino no deposit bonus Gcash gambling reddit philippines tamabetcasino Jili magic lamp app Mwplay888 net download for android Vegas Live Slots hack APK Clive and jill sidequest ffxvi Jiliasia online casino Online bingo jili withdrawal Chili for a crowd Silver Palate Jili168 register philippines Jili mk casino Jili cc download for android Habanero online casino games philippines Philucky withdrawal format 377 jili login register philippines Jili slots download Bsa387 login password Ginto Casino link 49jili login to my account login philippines app Royal777 casino no deposit bonus 8 juli feiertag wikipedia Ano ang mga flash game sa hollywoodbets app download Game of Thrones Slots referral code Igt address manila Zynga slots free coins cheat android Jilicash real money withdrawal Paano gumagana ang mga online slot machine login Ezwin online casino philippines Peso88 login register Jili kaganapan login register Winning plus 8 login philippines masuwerteng iikot ang mga nakakalokang slot 123jili app Login casino games online unblocked Transaction password USDT Baccarat games online real money Appointment slots vs appointment schedule quick hit slots commercial actor Multiclass spell slots table Slot schedule template 啶灌啶曕啶?啶曕ぞ 啶い啷嵿い啶?啶曕た啶むえ啶?啶灌啶むぞ 啶灌 Jili jackpot 777 download for android latest version Million 888 casino login register Tongits go apk unlimited money latest version Pinakamahusay na jili slot game download YE7 Download App BET99 Quebec Free 100 online casino registration facebook page 2021 slots no deposit bonus Online gambling philippines real money Jilibet casino login philippines Super Royal 777 Slots go casino login Register Youtube ng slots today Peso 888 apk Mini777 register download PG gaming casino login Wizard of Oz free coins gamehunters Philippine News today live 247Spin free 100 spin the wizard of oz slots free coins E2 jili casino login Konjac jelly Japan Big bet review korean Online casino Philippines News 7 Juli 2024 memperingati Hari Apa Jili 747 casino login Winph 777 login philippines app benefits of online casino games Wild aces online casino real money Mwcash88 Bonus hunter cc email Maduna clan names FF16 change party members Online casino games real money free spins no deposit Dbx casino real money philippines Okada online casino apk latest version Skype Download for PC Jilibet donnalyn login Register online casino 777 Pub download old version Spaghetti Jollibee price Jili no 1 login register Jiliasia app apk Super slots apk old version 646 casino login Register Philippines Listahan ng laro ng skillz login Totoong online pokies philippines release the kraken clash of the titans (1981) Casinos online real money philippines Phil168 APK Download Chumba Casino login Www 49 jili casino login password Fb jili casino login download apk Jlbet slot login Jili 777 lucky slot login register philippines apk Pagcor logo meaning Hard Rock online casino login 77ph com login password download Ano ang gamot sa mataas ang sugar Online casino download APK Geely Emgrand price Philippines BLBET Tapwin 2024 download apk Lodi 646 casino login ph Royal558 download Abc jili register philippines download LVJILI login Royal fishing jili download for android Free60 casino philippines Kk jili libre 58 real money download PHFUN login Nice88 download free ios Best penny slot machines to play at the casino for beginners portal.pagcor.ph sitemap online casino games no deposit bonus Unlapi AAA Jili login Bongobongo ug Casino Jili x yb download apk do 888 casino register Cash Rush slots 777 apk latest version Free online casino games win real money no deposit Philippines Fortune 888 login password Slots casino login no deposit bonus 49 jili time philippines download Nuebe register login Jili fishing game download free Win99 casino philippines Bingo Super Star download 55bmw win withdrawal Jili kilig login download Superball Keno online Hacksaw slots real money Pagcor address philippines 188 jili demo account hack Vegas online casino games free play Jili 49 net casino login philippines 777 jili jackpot apk latest version Fc slot demo free download Jili under maintenance today download android 3 patti slots patti online play Jili bingo download for android Smbet register philippines Osm jili register mobile number philippines MWGAMING 188 register Nuebe agent login philippines Online casino color games philippines Is Winford Casino open today Jili update today WK777 slot Jili casino review philippines slotomania online Lucky jili slots login register mobile 188 jili casino login download philippines Baccarat game strategy reddit Jili22 promotion How to withdraw in jili slot online 1xslots login Mnl168 online casino register philippines login Paano maglaro ng slot gambling login casino for real money online Best online casino Philippines reddit Jili deposit 50 withdrawal limit Nextbet philippines registration 168jili login registration Www royal888casino net register Double Win Withdrawal App Fisheries department officials 777 Lucky JILI Slots Casino APK download Nz online casino games real money 888php withdrawal Jili mines predictor apk Online casino jackpot slots free play yy777cam Jili one login download mainstream records lee young-ji 77ph com download free 49 jili years login register Jili slot club jackpot 777 download free money philippines Www betvisa games app 1888 jili casino withdrawal online July 10 religious holiday Labet88 login registration 2021 Osm jili casino online games philippines download Money 888 login download Empire slot machine download Ireland online casino games free play Kk jili casino login registration download apk 1000 free games to play with friends Poseidon god son Jili lucky slot app download Big baller club casino login registration philippines Fish Hunter - Shooting Fish Pnp 888 jili slot game login app Limbo game download for PC Highly Compressed Jili jackpot 777 download apk ios slot machine free games free spins deposit bonus Jackpot meter app for android Instant withdrawal betting app Dama N.V. casinos no deposit Bonus Joy 7 casino login free chips Eliakim Sadoki Hadaa Ya Walimwengu Gemdisco login 08 jili register app Jollibee slot casino login philippines register online Award winning chili recipe Allrecipes Helens Slot APK old version Mga kahinaan ng mga pragmatic slot machine login Jili pulang sobre register online Jili777 free 150 no deposit bonus Philippines Jili no 1 com withdrawal philippines Slot online game free real money Jackpot joker jili demo free download Best pg slot game free no download Wagi77 login Philippines Rich9 pinakamainit na laro login Fortune gaming88 login philippines Royal Slot Login Fun facts about July 19th Geely gx3 fiche technique philippines IND slots APK yono Ox jili slot withdrawal What happened on October 7 Al Jazeera 777 pub com login download Nice88 app 99 Fortune Casino login Register Tmtplay888 Jiliplay login download Love jili vip login password 888bet registration online Dragon vs Tiger hack apk Lucky JILI slots login register Kpl casino Online casino game for real money free play 777pub open now promo Video poker jacks or better strategy chart Jili 365 casino login register philippines no deposit bonus download Free slots com party bonus Animal Husbandry Minister Bihar list 188 JILI casino login registration Philippines Anuani ya katibu tawala mkoa wa dar es salaam NetBet registration Fg777 register philippines 90 jili live login download One slot game download Agent GEMDISCO Jili 999 com withdrawal Jilimk casino log in no deposit bonus tg777 login register philippines Pagcor login philippines List of licensed POGO in Philippines 2023 How many cannabinoid receptors are there in the human body Q25 jili download ios Ff777 vip login Jili 49 dot com registration philippines Ano ang speed roulette review Ph joy vip login registration philippines 4 ram slots which ones to use Mga puwang ng video youtube Jackpot Party Instagram free coins www.free facebook.com log in Betvisa download for android 49jili pogcor Betso888 login download Jollibee slot login Fruit Theme Birthday Party Wjslot claim form Nextbet Live Casino Lotto go Jili volatility calculator philippines Teenage Kraken Salish Matter Lucky 777 online casino login philippines Slotomania 777 casino real money Mega ace jili demo apk latest version Falcon Play customer service www.666.com games Bingo Jili PH Slots earning app real money no deposit Canara Bank Internet banking PIN generation 8K8 vip login Philippines No 1 jili app for android free download Gonzo's Quest max win 9 Pots of Gold land and win What does Mr Mike Slots do for a living Jili fc slot real money no deposit bonus Ph macao jili register download limbo apk + obb download Swcup6 net live login Register philippines Free slots 8888 no deposit philippines Jili tadhana slots download free Free casino slots 3 lines no download Jili okbet real money philippines Jili88 ph com register login password Slots earning app real money download Jili apps download free for android ios Kurdish traditional dress Labet88 online casino Ez jili telegram ios 94067 water heater door installation Real Boxing 3 download Best casino online Wishbone Games Nextbet login mobile registration Jili no 2 login no deposit bonus Poder Judicial Superace88 club login registration link Triple match 3d master mod apk Sino ang cowboy slots wife Jili 5678 casino login poker star Apanalo casino app login KK JILI casino login app apk Www gibson casino www gibsoncasino com login APEX slot download Best free slot machines play for free no deposit Mining Telegram group link Jili t7 real money Jili369 app download Progressive jackpot meter link Lampara ng genie philippines Best free slots with bonus Asia JILI casino register 888 ladies slots login UNO Spin Millionaire Dimm slots reddit King game app download apk Yy777 index login No deposit slots real money Yeriko by injili bora choir session 49 jili road register philippines Jili slot 777 login register online no deposit bonus philippines 啶啶?啶曕 啶啶班が啶?啶曕ぐ啶ㄠ 啶曕 啶夃お啶距く GGBet welcome bonus Is the 49ers coach a Christian Sino ang may akda ng medusa Ace Super ph casino Login games.747 games.ph/launchgame open now Tiktok video Zili 7 Gold Fruits slot Peraplay APK download Labet88 register philippines app Love jili vip login philippines Slots download free Jili slot jackpot login register Junglee Rummy APK Paddy power virtue Welke dag is het vandaag in belgie Nn777 login philippines app Pb777 login id and password free Sweet Bonanza free spins no deposit Online slots casino 888 real money no deposit online casino games real money Osm jili casino Megaways slots login Konami free slots no download Big Bass Hold and Spinner Megaways demo Jili 888 register Jili mines download free Best free video poker no download fishing slot casino - free 100 000 coins Jili22 NEW com register Big Bass Bonanza Geely subsidiaries in philippines State fish of bihar in english Game of Thrones Slots Casino free coins hack Lucky jili casino login registration philippines apk Mga laro ng slot na nagbabayad ng totoong pera apk Niceph casino real money Fortune Dragon PG slot demo Reference generator Jili88ph net register download FG7777 Jili super win apk best online casino games to win money Bagong jili register app 777sm vip login Jl bet slot register Jili casino sign up bonus no deposit philippines Phlove Casino Login Register Jili slot online real money Ez jili code free download Cannabinoids structure How does Dragon Link slot work 188 jili casino download free Which casino has the most winners in Vegas Goldfish slots apk Fisheries, Bihar gov in Medusa megaways real money Mwcash88 casino login Best time to play crazy time reddit Voslot jili register philippines Ang tao ba ay nagmula sa unggoy PHL63 login register Demo Jili Golden Empire Download app and get bonus Pogibet free 100 philippines 22FUN APK Lucky JILI Casino login registration Win win Game zambia online app download Win100 com casino group win100 originals win100 originals register Mlbb Win Rate Calculator APK Mi777 casino login philippines register Do888 casino login no deposit bonus Jill Scott net worth 8 jili slot download for android 55X Casino Login Register Philippines Ug777 app download apk for android 94067 water heater door replacement Loveph casino Tianjin University of Science and Technology How to play Fortune Gems online Earn money online Philippines legit Xo jili com register philippines Cruise casino in Goa Play slot machines for free online no deposit Is golden Cowboy good tds online casino games volatility Tmtplay casino login register mobile 啶戉え啶侧ぞ啶囙え 啶曕啶膏啶ㄠ 啶椸啶?啶曕啶膏 啶栢啶侧啶? EZJILI Login Register Game room online casino games real money Casino dealer Reddit ph Slots jackpot meter philippines app Pldt 777 real money withdrawal Jackpot World redeem code free 2024 Jilibay free 68 no deposit bonus Bet88 ph app download for android OKBet rewards app Julie emergency contraception reviews 啶ぞ啶椸啶?啶う啶侧え啷?啶曕ぞ 啶膏す啶?啶夃お啶距く Mega win login Best online casino games real money app Jiliasia ace download Jili 178 real money app Pag-IBIG membership Double DaVinci Diamonds free slot game jili 711 Slot virtual real money free Jili tongits withdrawal limit Okbet casino login philippines download Sabong derby 2023 Full Video MONOPOLY Slots download White part of eye swollen like jelly home remedies Ez jili codes 2021 Wjslot com rewards login How many evolutions can you have in a deck Clash Royale Online casino jili login register House of Fun VIP PLUS download SM Megamall 3 day sale 2024 dates Phil163 login Simple chili recipe Jili slot machine apk latest version Jili188 login download Boss88 Slot Login Jili go login philippines Online casino games with free signup bonus philippines Jili mines download apk Fc slot online philippines Y777 jili real money withdrawal Win99 online casino login register Lucky jili slots login register mobile philippines BetVictor UK Jilino1 new site Jili no minimum deposit philippines 2020 Royal777 login register philippines Forgot transaction password in phdream Casino plus jili slot real money Win99 slot games free apk Nn777 slot jili real money 38jili login GO Keyboard APK betBonanza mobile login registration Dragon cash vs Dragon Link 8k8 online casino games downloadable content philippines Best slots to play on FanDuel reddit balato8aa Crown89ph casino login Online casino builder Wjevo22 app irich slots&games casino 777 Boxing king casino real money Jili22 vip202 download online casino games with no minimum deposit Mega Wheel game download Jili apps download for android free Diablo 4 enchantment slot not working Online lucky sweepstakes no deposit bonus 747 online casino games philippines Super ace demo game online free Spin and win cash in Uganda withdrawal PG Soft Wild Bounty Showdown 777sky slot Jiliapp download latest version Www royal888casino net register Royal slots real money login ????? ?? ???? ??? ???? ????? ????? Phkuya com casino login PHIL168 new link Royal888casino net withdrawal July 8, 2024 Casino machine Jili lucky slot app apk Pragmatikong laro ng big bass bonanza videos 200jili download latest version Dometic 94067 Online slot machines philippines 12 Titans Greek mythology Online slots strategy Casinos online slots real money Jili official website app for android Play tongits online real money philippines Bmy88 net login password Jili 646 ph register app ios Kumuha ng jili app login download Ezjili com download ios Mega Ace mechanics Jili ace 777 no deposit bonus Jili live club login Jili 747 login app 291 jili 01 register download Tongits Go new version Boss JILI casino login Rich711 casino login download 9jlbet Real money casino app apk Jili event login app Jackpot fishing jili download free Pagsasalin ng teksto Sixers game today Please complete the required turnover for withdrawal tagalog Majhail X song download Mp3 April 8 2024 holiday Philippines Pg777 login register online Crazy Time prediction telegram Tadhana slots apk download old version Transaction password in scatter example Mine (Taylor Swift release date) Jili zeus slot login register International casino app Monopolyo ng big baller login Win888pub app Diablo 4 enchantments Phmacau club 啶す啶苦啶︵啶班ぞ 啶溹啶む 啶曕 啶啶∴ Apat na uri ng tunggalian at halimbawa Sw888 casino register BYU portal 49 jili vip login philippines Ubet95 Casino login Jili 178 ph register Is online gambling legal in Philippines Jili t7 login registration form Fg777 official withdrawal How to get unlimited coins on Vegas Live Slots Go88 slot login register download Slot sites philippines Pnxbet77 legit Online lucky 9 gcash download bwinners - online sports betting virtual & casino games Fachai free 150 Casino table games inside (2008) Ocean King Jackpot download Boom casino login KK JILI Casino Login app apk Nexusgaming88 agent login philippines Bonus 365 casino login Free unlimited bingo card generator PDF Microsoft login Jill meaning slang origin Grand slot Palace online casino W888 login Jili369 real money login Nexus88 Gaming login register Jackpot fishing demo free download Jajji veer punjabi gane mp3 download online casino games not real money Wagi 777 download for android free spins bonus no deposit Best casino online slots europe Bombing Fishing demo Limbo bar game Lodigame 291 login registration philippines Mammoth Gold Megaways Peraplay login Fb jili casino login download free no deposit bonus Bingo filipino machine price Login slot machine app Nextbet app download apk Slots game machine free Is DraftKings Casino legal in Massachusetts Webcam app Free unlimited bingo card generator What do CB1 receptors do 177bet cc download Jiliasia casino login philippines Online lucky 9 gcash withdrawal KK JILI register Slots rivals ladbrokes login Jilivip download ios online casino games in florida slot o pol online Jl777 Login Register Charge Buffalo free play Lucky Tongits gcash download Ph646 register mobile philippines Promotion 100 free 58jili login registration online x570 ram slots Mines predictor free Jili17 register mobile Kkjili com app download latest version Best free bonus slots real money Gba 777 casino no deposit bonus Best slots to buy bonus GGBET GCash Wild hammer megaways apk Real money gambling games philippines Jiliko photos free Libreng mga laro ng slot online register MVG SunBet login Bet777 Login Casino keno games free online no deposit Casino ng rainbow riches real money Jili referencing indian law ppt Free casino online real money Philboss link login Jili slot 777 login register online philippines Premiumbets TG777 app login 10 07 day Pocket GK Book PDF in Hindi Online casino 50 cash in no deposit Free slots paypal deposit Phlwin online casino hash encryption games traceable fair casino apk casino game casino Jili188 tv login password 5e sorcerer spell slots guide Alamat ng wizarding wars reddit Jili slot jackpot 777 withdrawal Www jilino1 club app Betso89 register Free website browser download pagcor online casino games Poker machines games casinos online free bonus Play video poker free no download for android Is Seybold journal Scopus Indexed How to withdraw in jili online gcash mwplay888.net login Phpslot app apk Top 1 game in the world 2024 Bingo plus pagcor login password 178jili HP777 Casino Jili day app apk Casino guru Brazil nuebegamingslot Jili casino app login download Jili 09 register download taylor swift july 9th 1:38 Geely Coolray 2024 Release date Philippines Jollibee picture outside Xo jili casino login register mobile Spielautomaten kaufen Royal Club apk Mod Helens gogo jili login register philippines Lucky 777 apk latest version Katangian ni apollo sa cupid at psyche Doble Engineering Casino jili real money app Slot machine png Falcon casino login register 5e multiclass spell slots Arcane Trickster Jili slot jackpot app download Paano maglaro ng slot para kumita withdrawal casino slot games real money Helens gogo jili register philippines Casino articles topics Fachai free 100 Slot 50 minimum deposit Philippines sm 3-day sale schedule 2024 Magic jili slot game login Are casino Apps rigged Tala888 download jackpotfree Big bet review guardian online casino games for free Fg777 casino login register link Betvisa best online casino Microsoft Store download lodivip3web Jili 789 download Best online casino games for real cash Tongits go 4.1 6 apk download latest version Gba333 login Register Phone club Game online azure pre-validated domain Sabong app apk Bandit Slots Youtube Jacks or Better strategy app Magandang slot ba ang Sweet Bonanza? 100 free spins no deposit no wagering requirements philippines Fg777win com login Pci slot types explained Nakakabuti ba ang sugal sa tao Tmtplay casino login register mobile Galaxy 88 casino com login register Free flash video poker download no download Winford Online casino login JIL pastor Winhq9 login register mobile W500 one Jili veo casino login registration Buenas 88 Register How to withdraw 90 jili club philippines online Jili free 100 php no deposit bonus philippines Jili com casino register Minecraft Crazy games Mitran de boot remix mp3 song download 320kbps Anjeer Dry fruit tg777 customer service 24/7 Arat365 com login Apps na pwedeng kumita ng pera legit 9k slot Casino Jili 8888 download for android William Hill live Tesla jili login philippines 啶す啶苦啶︵啶班ぞ 啶溹啶む x7-16 啶啶侧啶? Okada Online Casino download ios Lucky Neko demo play Jili lucky download for pc Original Buffalo wings recipe 777 jili Casino real money Betsson Group Glassdoor 40 jili casino login philippines app 777ku login App Byu jili register download Yesjili com login philippines Jackpot fishing game real money Ubet95 app apk 888 casino app store download Betway zambia online live sports betting download jili 80 iRich kh free download Mga nakakatawang palaro Top online slots online lucky 777 slot game download 50 deposit game online 49 jili games Online casino game with real money Freeplay Casino no deposit bonus Jili 646 777 login register philippines link Kk jili login register online philippines Anti epidemic online casino gcash login Gold 168 Casino login Royal777 register JILI6 promo code Philippines Lodislot 777 casino online real money Ijility maumelle ar Mnl168 download for android Bet 888 login philippines Boeing Secure Login 188 JILI Casino login Jili asya download Mr joker Photo Dinosaur tycoon jili ios download Jili777 login register Philippines 49 jili games download Wow888one philippines Phl63one philippines Mega Medusa Casino login Win888 casino register online Pldt 777 real money withdrawal solaire online casino games MNL63 free 100 No Deposit Jili caishen casino irich slots&games casino 777 Free slots poker online real money Casinos online for real money philippines Royal Club login app download free Online casino free real money DO888 online casino JILI188 app Charge buffalo jili download free Jili free 100 no turnover philippines no deposit bonus Gogosolot online Casino Login Superjilli ph Jili365 bet login sign up philippines Jili x super ace download 5 jili casino login register online Lolliplay login no deposit bonus Pldt jili slot download ios New online casino free chip no deposit Is transaction password and atm pin same sbi mega joker spielautomat Baccarat Strategy book Sweet Bonanza Candyland live Jili 337 withdrawal fee Baccarat Evolution Jili games download for pc slots with real money online 5jl Casino Login Super Ace slot demo SWERTRES sureball hearing today Philippines youtube Jili big win login register Online casino games no deposit free spins philippines Top online slots online lucky 777 slot game download Big baller Club info login Non working holiday Pasig 45 days from july 9, 2024 777 10 jili casino register download jackpot giant slot 90 jili register download JL777 Casino Tp777 com login register mobile Casino tr c tuy n login Gogo jili app download apk mod Legends Slot Bingo JILI 52 Club APK Jilievo888 com login register online Lucky jili real money 888bets mozambique app download Happy jackpot slots Fairground Slots no deposit bonus Wild ace demo download New Vegas slots luck Casino mania bonus Huff and more Puff slot machine for sale baccarat game how to play Jili ph register online Jolibet withdrawal Football teams Premier League sissi slot machine free play Jili vip login register philippines download app ios Transaction password in tagalog example brainly Play free casino games online without downloading for android ELK casino games Libreng computer video poker download Winph6aa philippines Jlbetslot 49 jili casino slots login Jili app casino download apk for android Mnl168 online casino register philippines apk Jili 80 login register Jili free withdrawal app Maaari ba tayong maglaro ng monopoly online play SYNOT Interactive Playzone cashback labet88.com app Jili49 login register Jili asia com casino login download Gold slots casino sa facebook login Jili balita withdrawal fee Gamezy Rummy Jili day register online 90jili game club download PH Macao game 777sky casino philippines Ibetph web casino Best online casino games philippines gcash 247 slots login Elf bingo jili online registration Funny captions for online casino games 777 lucky slot no deposit bonus OKBet App download apk Z25 Gaming P88 jili login app Jili77win philippines DuckyLuck Casino Ttjl casino link app 55jili login Cali 777 com login password LIMBO APK download latest version 200jili login philippines 646 jili 01 login app FB JILI Login Golden Wealth Baccarat live Panaloka login registration Tala0888 download apk GemDisco Login register Lion dance history Ezjili login register mobile Royal777 register Jili 337 login register philippines download Fishing era poppo How to play jackpot fishing app Libreng jili games login Swerte ng buto 77ph1 com login password How do i install tongits go on android Joy jili casino login register philippines free chips Slot machine 777 login Jili online slot apk Jili ko o casino login register APK injector Slot Pragmatic Play Gogo JILI Casino login 50 minimum Z790 ram slots for gaming Tongits Go update download How to compute special non working holiday Philippines 777 Casino 77 free spins login MWGAMING Login Password How to play taya 777 online How does Lee Young ji know English Phdream88 login app 63jili download ios ME777 Casino Login Philippines Baba Slots online casinoplusslot How to play jili super ace online Unibet sign up bonus 60 jili login download no deposit bonus Philippine online casino no deposit bonus pxbetgamingslot Online casino games that pay real money no deposit 49jili flag login password Jili 2024 login register Paano maglaro ng jili super ace login download Vip jili login philippines app Jili bingo download for android 9Y game City Jili jackpot lucky casino real money no deposit bonus Easy money jackpot fishing philippines Casino free games slots machine no deposit Slots7 Casino free spins Winjili ph login registration Jili games free 100 download apk Jiliplay999 com login Hot chilli megaways review Jili games apk latest version ang mga slot ay nagsusugal Nice 888 login philippines Playzone Casino FC jackpot Casino login Spin jackpot YONO apk Juegos de casino gratis sin descargar ni registrarse Gold slots casino sa facebook withdrawal Jili 168 login registration link Mitran De Junction Te Mp3 Song Download pagalworld Lovejili app for android apk download Helens gogo jili casino login Transaction password in scatter example mainit na jili casino Casino online free credit no deposit How do i install tongits go on iphone Boombet casino 100 JILI casino no deposit bonus Peso88aa philippines Jiliko gcash withdrawal Jili veo login philippines Jili slot game download apk latest version Macau casino online login philippines online casino Katangian ni sita sa rama at sita 49jili login to my account philippines app Forgot transaction password Fg777app download Baccarat in casino online 98 jili casino login register philippines download app Marvelbet apps download apk for android Xo jili app login Speed roulette strategy betway zambia live soccer online casino games Casino 777 lucky jili slots real money yakuza: like a dragon slots high payout token Wild Coaster PG slot Turkish Airlines flights Bet jili app download for iphone Why do slot machines have bingo cards Ez jili code philippines DOUBLE Jackpot Slot MACHINE for sale play free online casino games Bet777 Login app Supabets mobile app download Winning plus 40 apk Play top Dollar slot machine online free no download Jackpot meter jili download apk Plot 777 casino login register link Best time to play jili slot on sunday reddit