Download

The TSN Ranksystem is an open source project,
it is free to use under the GNU GPLv3 license.

Download the latest version:
DOWNLOAD (Version: 1.2.12)
 

MD5: f6aea85820904cfccdbca5b20d374ba7

Do you like this tool?

Then you might want to sponsor a beer for the developer.

This enables them to develop new features more smoothly! ;-)
Donate (via PayPal)

Features

A list of features will follow soon!

Demonstration System:
Statistics - Site (demo)
Webinterface (demo)

Installation on Linux

1) Requirements

Before we can start to install the TSN Ranksystem, we need to check the requirements for the environment are met.

 

For the statistics page and to be able to run the Bot in a PHP process, we need a webspace (webserver).

 PHP 5.5.0 or higher
 PHP with privileges for the command "exec"
 PHP with unlimited script execution time; especially you should check this on a webhosting
 required PHP extensions:
- PHP PDO extension
- PHP cURL extension
- PHP Zip extension
- PHP SSH2 extension

 network connection to the TS3 ServerQuery of your TS3 server on TCP; default port 10011
 network connection to ts-ranksystem.com (IP: 164.132.201.2) on TCP port 443
 optional: job scheduler (for automatically restart the Bot) like a cronjob

The database will storage all information. This is necessary to get a real time statistic page.

 MySQL (or derivative like MariaDB)
 requires its own database
 required privileges:
- Data:
SELECT, INSERT, UPDATE, DELETE
- Structure:
CREATE, ALTER, INDEX, DROP

To connect with the TeamSpeak 3 server, we need access to the TS3 ServerQuery interface.

 Network connection between the webspace and the TS3 ServerQuery
 TS3 ServerQuery User with following permissions:
- b_virtualserver_info_view
- b_virtualserver_client_list
- b_virtualserver_client_dblist
- b_virtualserver_client_dbinfo
- b_virtualserver_notify_register
- b_virtualserver_servergroup_list
- i_group_member_add_power
- i_group_member_remove_power
- b_icon_manage
- b_client_remoteaddress_view
- i_client_private_textmessage_power
- i_ft_file_browse_power
- i_ft_file_download_power

 

2) Download & Unzip

Download and unzip the file ranksystem_latest.zip.

 

3) Upload to webspace

Upload the whole unzipped folder to a directory on your webspace and grant permissions to the user of your webserver.

 

4) Run install process

Open the "install.php" on your browser and follow the instructions https://your.url/ranksystem-folder/install.php.

 

5) Configure webinterface

Configure the TSN Ranksystem about the webinterface https://your.url/ranksystem-folder/webinterface/.
For each parameter you'll find a documentation by mouse click on it.

 

6) Start Bot

Start the TSN Ranksystem Bot via the webinterface.

 

7) Add cronjob (optional)

Optional: Create a cronjob to be sure, the Bot is running 24/7. This will restart the Bot automatically, e.g. on a database restart.

Open a SSH session to the host machine of your webserver.

Enter the command crontab -e, go to editing mode (in VIM you need to press i).

Paste the following in a new line:

*/10 * * * * sudo -u www-data php /path_to_your_webspace/path_to_the_ranksystem/worker.php check >/dev/null 2>&1

Configure the path, where your TSN Ranksystem is located and replace www-data with the user of your webserver.

Save and quit the crontab (in VIM :wq).

Installation on Windows

1) Requirements

Before we can start to install the TSN Ranksystem, we need to check the requirements for the environment are met.

 

For the statistics page and to be able to run the Bot in a PHP process, we need a webspace (webserver).

 PHP 5.5.0 or higher
 PHP with privileges for the command "exec"
 PHP with unlimited script execution time; especially you should check this on a webhosting
 required PHP extensions:
- PHP PDO extension
- PHP COM extension
- PHP cURL extension
- PHP Zip extension
- PHP SSH2 extension

 network connection to the TS3 ServerQuery of your TS3 server on TCP; default port 10011
 network connection to ts-ranksystem.com (IP: 164.132.201.2) on TCP port 443
 optional: job scheduler (for automatically restart the Bot) like a task scheduler

The database will storage all information. This is necessary to get a real time statistic page.

 MySQL (or derivative like MariaDB)
 requires its own database
 required privileges:
- Data:
SELECT, INSERT, UPDATE, DELETE
- Structure:
CREATE, ALTER, INDEX, DROP

To connect with the TeamSpeak 3 server, we need access to the TS3 ServerQuery interface.

 Network connection between the webspace and the TS3 ServerQuery
 TS3 ServerQuery User with following permissions:
- b_virtualserver_info_view
- b_virtualserver_client_list
- b_virtualserver_client_dblist
- b_virtualserver_client_dbinfo
- b_virtualserver_notify_register
- b_virtualserver_servergroup_list
- i_group_member_add_power
- i_group_member_remove_power
- b_icon_manage
- b_client_remoteaddress_view
- i_client_private_textmessage_power
- i_ft_file_browse_power
- i_ft_file_download_power

 

2) Download & Unzip

Download and unzip the file ranksystem_latest.zip.

 

3) Upload to webspace

Upload the whole unzipped folder to a directory on your webspace and grant permissions to the user of your webserver.

 

4) Run install process

Open the "install.php" on your browser and follow the instructions https://your.url/ranksystem-folder/install.php.

 

5) Set PHP Path

Set the path to the php.exe (PHP installation) inside the other\phpcommand.php. Examples you'll find inside this file.

 

6) Configure webinterface

Configure the TSN Ranksystem about the webinterface https://your.url/ranksystem-folder/webinterface/.
For each parameter you'll find a documentation by mouse click on it.

 

7) Start Bot

Start the TSN Ranksystem Bot via the webinterface.

 

8) Add new Task (optional)

Optional: Create a task inside the task scheduler to be sure, the Bot is running 24/7. This will restart the Bot automatically, e.g. on a database restart.

Windows help how to create a new task.

Add the following options:

C:\path\to\php.exe -f C:\path\to\Ranksystem\worker.php check

Configure the path, where you find your PHP installation and also the path where your TSN Ranksystem is located.

Get a hosting

When you are not able to host the TSN Ranksystem yourself, you can ask here for a hosting.

The hosting is absolutely free. If you want to support this service, donations are welcome. ;-)

If we accept your request, the hosting will remain as long as the Bot is running and able to connect to your TS3 server. Bots, which are offline for more than one week (=inactive) will be deactivated and after one additional week deleted.


Request a hosting

With the hosting we take the part of the requirements of the webspace and the database.
- You still need access to the TS3 server via ServerQuery; ServerQuery credentials (username and password) are required!
- Be sure your TS3 server allows connection from our IP address 164.132.201.2.
- You should whitelist these IP also inside the query_ip_whitelist.txt, which you'll find inside the TS3 server installation directory.

 
 
 

After submitting your request it could take a few hours to create the hosting, cause we check each one manually! You will definitely get an answer. In case of accepting we will send you all needed information (credentials & guide) via email.

Bot Commands

Command Parameter Bot-Admin Description
!help
!info
!cmd
!commands
- none - - / - Get a list of valid bot commands
Since version 1.3.0 it will sends you here.
!version - none - - / - Returns the current version under which the Ranksystem runs.
!update
!checkupdate
- none - required Performs a check for new available updates.
Since the Ranksystem updates itself automatically, the update
process will be started as soon as a new version detected.
!next
!nextup
- none - - / - This checks the user-related required time to reach the
next higher rank. The investigated time will be sent as a private
chat message to the user.
!restart
!reboot
- none - required Initiates a reboot of the Ranksystem bot.
!shutdown
!quit
!stop
- none - required Initiates a shutdown of the Ranksystem bot.
!log
!logs
Parameter 1
number of log entries
expect number between 1 and 999

Example:
!log 5
This will give you the last 5 log lines.
required Get the last few log entries of the Ranksystem-Log
via private chat message.
!runtime
!runtimes
- none - - / - Get the last 10 runtimes of the Ranksystem bot.
Each value represents the needed duration for one round
of the bot, measured in seconds.
!uptime
!online
- none - - / - The bot sends the time of the last (re)start and
also calculates the online time.
!clean - none - required Starts the process of cleaning the user database.
It only has an effect when the function 'clean clients' is activated.
!reloadgroups
!reloadicons
- none - required Cleans the group cache.
All server groups will be reloaded from the TS3 server and associated with this the group icons will be re-downloaded.
Also the servericon will be re-downloaded.
 

Changelog

Explanation

!   Note          (bigger) change you should notice of; in some cases there are things to do
*   Information   for your information, but there is nothing you need to do; changed something works in background
+   Feature       added a new feature or enhanced a feature
-   Bugfix        fixed a bug or corrected something
 
 

1.3.0 (2019-05-XX) - NOT YET RELEASED!!!!

! dropped table "config" as announced with version 1.2.12
! The Ranksystem got his own website -> https://ts-ranksystem.com ; We will relocate the version check with one of the next releases; be sure, you whitelist the network traffic (TCP on port 443) to the new domain
* increased column size for config parameters up to 21588 signs (before 5000); with this you can increase the rankup definition and/or choose longer messages; within this we wrap chat messages, which are bigger than 1024 characters
* due the repaired query command dbclientlist with TS3 server version 3.7.0 we removed our dummy database-select to hold the connection; on problems, please update your TS3 server
* minor changes on the install.php
* optimized response speed for bot commands
* updated library FontAwesome to version 5.7.2
* updated library jQuery to version 3.4.0
* optimized file permissions check during bot startup and on install process; the error message during installation now shows more information
* updated library morris chart to version 0.5.1; within added a red line with current max slots
* added requirement-check also on the login screen of the webinterface; this should prevent error reports in changed environments
* updated czech translation; thx to Nicer
+ added auto reconnect for the bot when conection to TS3 server dropped; the attempt of the re-connection takes place with gradually increased times
+ added new parameter update channel, selectable about the webinterface
+ added new parameter for default sorting on List Rankup page, selectable about the webinterface
+ added new bot commands !uptime, !logs, !runtimes and !reloadgroups
+ added new parameters for log-level and log-size for the ranksystem.log, selectable about the webinterface
+ boost factor can now handles decimal numbers; you can enable a factor e.g. 1.25
+ added new parameters (%7$s - current user rank, %8$s - name of the current servergroup, %9$s - current servergroup since) to command !nextup
+ added values for the achievements (My statistics) to the webinterface; they are now configurable
+ added output of the worker.php to the message when starting/stopping/restarting the bot about the webinterface
+ added status of the bot to the webinterface
- fixed some spelling errors in german language file
- fixed SQL command to clean the table user_iphash; no longer existing users (on TS server deleted user) got stuck
- fixed problem on webinterface when changing the password
 

1.2.12 (2019-02-24)

! changed configuration table of the Ranksystem-Bot and how config-values are handled inside the code. There is nothing you need to change on the webinterface or anywhere else. Only, when you have written third-party-applications and are using the table "config", you need to know the new table is "cfg_params" (Attention: this table has a new database-structure!); old table "config" still exists with 1.2.12 as a clone, but will be deleted with the next version!
* removed link on stats site (report to serverlist) to planetteamspeak since ScP has closed his services; RIP!
+ added new option 'fast hashing' to the IP hash function; these do not decreases the performance of the statistics page as much as it does the already existing 'secure hashing'
+ added spanish translation; thx to JavierlechuXD
- fixed wrongly named group in log when removing an expired boost group
- fixed platforms donut chart on stats page; values of Android and Linux were inverted
- fixed admin mode on "list rankup"; when joining the list rankup in admin-mode and changing sorting of the site, the admin mode was lost
 

1.2.11 (2018-09-27)

* optimized version check for command !version and on some other places
* optimized some help texts on the webinterface (leading english and german); also cleaned up the language files
* updated russian translation; thx to bykidi
* removed 2nd TS3 queryname; is no more needed with server version 3.4.0 or above
+ added support for new connect parameter 'client_nickname' which comes with version 3.4.0; this allows setting the nickname of query clients before they become visible on the virtual server
+ added cleaning tables admin_addtime and addon_assign_groups due Ranksystem update process
+ added database table for CSRF token; with that multiple siteswitches are possible without getting an CSRF error
+ added message to Ranksystem admin user, when a servergroup gets deleted, which is configured to the Ranksystem
+ added new check the HSTS header is already sent; on some webservers got a problem, which already sent this information
+ added sticking display size of group- and servericons on the stats page to 16x16 pixel
 

1.2.10 (2018-08-25)

! new PHP extension PHP-SSH2 is needed (only when you are using a secure (ssh) connection to your TS3 server, requires TS3 server version 3.3.0 or above)
* improved handling on worker.php for a higher compatibility on windows
* improved handling on cleaning Ranksystem database due query command "clientdblist" got very slow with server version 3.3.0 in some cases; bot hangs on "Get TS3 Clientlist...", timed out and needs a restart; now the Bot sends dummy requests to the database to hold the connection
* improved handling on install.php when database credentials are correct but permissions to database fails; only write out the credentials, if all database stuff was created correctly
* updated TS3 PHP Framework (version 1.1.33 from August 21, 2018)
* minor improvement of the Ranksystem.log
* updated polish translation; thx to isseihere
+ added SSH support, which is avaiable since TS3 server version 3.3.0; THIS FEATURE IS IN BETA STATUS!! (There are known ?TeamSpeak? bugs -> random connection losts)
+ added logging for login attempts on the webinterface inside the ranksystem log
- fixed bug on admin function (add / remove time), when using the filer "hide excepted clients"
- fixed problem with verify process; removed CSRF check here for the moment, cause there are no problem in case of faking data (token matchs or not..)
 

1.2.9 (2018-08-19)

! new TS3 permission b_serverinstance_version_view needed
* added warning, when changing hashing of IP addresses (user needs new connection to TS3 server)
+ added function to remove time from a user (possibility to punish / justice)
- fixed file encryption of core_ru.php (russian language), which caused the statistic graph not to be shown
- fixed problem with verify process, when multiple users are connected with the same IP address (which arised with version 1.2.8)
- fixed some display issues on stats page
 

1.2.8 (2018-07-22)

* increased session security by activating HSTS-header
* updated russian translation; thx to bykidi
* secured from pishing for all external links due hiding the referrer
* improved some code to reduce notices/warnings on stats page
- fixed XSS vulnerability with TS3 Client name; thx to FarisDev
- fixed changing language on install.php were not working
- fixed error with donut chart on stats page, when the database still have not enough different values for all stats
 

1.2.7 (2018-06-27)

! hashing of ip-address (reason EU-GDPR) as option (webinterface -> other); TS user needs to reconnect to the TS3 server to be able to verify with stats page after
! added support for MySQL 8.0 and MariaDB >= 10.3
* increased session security
* increased security on stats/ page; thx to JVMerkle
* increased performance on stats page; it is shitty fast now :-)
* updated TS3 PHP Framework (version 1.1.33 from April 18, 2018)
* updated portuguese translation; thx to Pasha
* modified check on worker.php, if a process is already running
* minor code optimizations, also removed april fool (was only valid on 1st April)
+ added support for special characters (utf-8 mb4), which came with TS server version 3.2.0; before we had it for servergroup names, now for all other needed (among other things: user nicknames)
+ added polish translation; thx to DoktorekOne
+ added CSRF token for protection against Cross-Site-Request-Forgery and replay attacks
- fixed "lost update" problem on manual adding time to an user (function about the webinterface)
- fixed problem, when timezone had a very long name; now all timezone will be supported
- fixed connection problems, when the TS3 query username or password contains special characters
 

1.2.6 (2018-03-25)

* increased performance (vs. 1.2.4 again in avg. ~25% better now); saves CPU time and memory (RAM)
* updated bootstrap-select to the actual version; bigger selections are now much more faster; thx to caseyjhol the lead developer of it
* changed startup process to be sure the auto updater will runs before the config check
* changed log file rotation; the Bot did a restart on rotation before, now it will stay connected to the TS3 server
* removed unneeded update info check; update notification will now be sent to the admin ID (webinterface -> other), which is multiple since 1.2.4; reworked update notification, which will now be sent on startup after an update
* updated italian translation; thx to jacopomozzy
+ added czech translation; thx to KeviN
- fixed bad config check (servergroup not found); if a servergroup is missed, the Ranksystem will first sync all ts3 servergroups and after that check again the config; only if the config is still bad, it will stop
- fixed wrong ascending/descending sorting, if the site were changed about the pagination
- fixed cross site scriptig vulnerability on stats/list_rankup.php
- fixed problem with special characters inside the server group name; 4 byte chars (utf8mb4) where not possible to save before and run into a database error inside the Ranksystem log
 

1.2.5 (2018-02-23)

! disable update support for versions under 1.2.0; when you are using a version below 1.2.0 and want to update, we recommend to do a fresh installation
* changed order of Bot startup procedure; now the update process will be done before the config check; this will make sure the update process will runs also, if the config is wrong
- fixed wrong values in the column nextup on the stats page for user, which are offline
- fixed empty lines in log file on updating the Ranksystem; will take note with updates above 1.2.5
- fixed problem on correction boost, when a wrong server group were configured inside; the configure check prevented the new value from being saved
- fixed problem "not enough data..." for the top user of the month; with version 1.2.4 has been added a new deletion method of unused stuff and the old one has been forgotten to be removed
- fixed special case, if no user was online for at least 1 second for more then one week, the server stats could not be saved correctly
 

1.2.4 (2018-02-12)

! changed parameter 'check' for the worker.php (startscript). Now this parameter will only start the Ranksystem, if it was crashed. In case the Ranksystem was stopped with 'stop' parameter, it will not start the Ranksystem with 'check' parameter.
! you need to define a verification channel ID to the webinterface -> core; the needed channel has to be set up manually on your TS3 server; for more information read also the online help inside the webinterface at this parameter
* increased performance: on bigger databases it will run much faster (valuable on response speed of chat commands). on smaller databases it will reduce needed resources (CPU)
* improved memory handling (RAM)
* optimized session handling on stats page and webinterface; now the Ranksystem don't touch other sessions from the same domain (relevant to multiple Ranksystem installations or other systems on the same domain, which are also using sessions)
* optimized logs preview on webinterface (site load is much faster; now all lines will be shown, also array outputs on SQL errors; error and critical entries are now red colored)
* send a little more information about Ranksystem instance to ts-n.net like total_user, user_week_ total_online_week [..] (will be sent on update check; normally 2 times a day); there will not be sending any personal data of any user, it is only instance information! also, this information will never be shared without your agreement with third ones or published to be able to associate it with your instance; our plan is to build a summary of stats (of all instances) and perhaps we will share this sometime on a website
+ made the field "admin ID" multiple (unique client ID of the admin of the Ranksystem); multiple admin uuids can be entered comma separated; note that other admins are also be able to reset the password for the webinterface
+ added new chat command "!clean" to the Ranksystem Bot; the cleaning will run at least once a day; with this command you can force to make it instant
+ added a link to the verification process with that it is possible to redeem the token automatically (before it must be entered manually)
+ added new verification step, when the users IP between website and TS3 server differs; at this point the user can register himself also with a token; to protect from spams the user need to join a verification channel, where he will be able to choose himself to be able to receive the token
+ added a few more cleaning checks; now old avatars of deleted users will be deleted from the web space
+ added percentage column for lists of nations, platforms and versions
+ added update notification on stats page and webinterface, when an update was done the last few days ago; appears once a time per browser session
+ added new validation check on TS3 host address to prevent entering a port inside, which would be wrong placed here
+ added new validation check on defined servergroup IDs (rankup definition, servergroup exception, boost); the check will be done at 3 points:
	1) saving a wrong ID inside the webinterface
	2) on starting the Ranksystem Bot
	3) on the Bots job to update the servergroups, when one group gotten removed
+ added check when removing the server icon on the TS3 server; then it will now also remove the icon from the Ranksystem
+ added check when removing an icon of a servergroup on the TS3 server; then it will now also remove the icon from the Ranksystem
+ added check for slow running Ranksystem instance and offer suggestions to optimize the environment
+ added check to top user sites of the week and month; if there are not enough data collected, on this sites will be shown the message "not enough data..." instead of wrong results
- fixed wrong sorting of the column 'next servergroup' on List Rankup (stats page)
- fixed the nations list; full name wasn't showing for some languages, even though they were available
- fixed link to the webinterface on the stats page (and vice versa), which was not working when the website port was not default (80 or 443)
 

1.2.3 (2017-12-24)

! changed location of folder "icons" to "tsicons" due problems with default apache config (personal note to me: apache sucks)
! increased site load on stats/index.php and decrease needed ressources for the Ranksystem Bot, due lost of database index on some installations
* renamed combined_stats.css and combined_stats.js files due some adblocker blocks them
* corrected italian translation; thx to jacopomozzy
* corrected russian translation; thx to bykidi
* corrected english translation; thx to M0V3
* corrected some minor other texts on language files
* optimized value checks inside the webinterface to avoid user error
* optimized some minor code stuff; so it gets minimize better performance
+ added new parameter to messages (rankup notification & command !nextup) with the name of the user (recipient)
+ added new check on install process for windows; the COM_dotnet extension of PHP need to be enabled or the installation will be stopped
+ added new check on install process; when MySQL was choosen on install.php (step 1), it will be checked if PHP MySQL is installed & correct enabled
+ added a button to restart the Ranksystem to success message by saving a change inside the webinterface
+ added two more slowmodes (2 seconds and 5 seconds) for low level server; use it only, if you have trouble with cpu load
+ added portuguese translation; thx to Pasha
- fixed problem on saving ts voice port (which comes with database optimization 1.2.1), when it is over 32767; now full port range 65535 is available
- fixed problem with addon 'assign Servergroups'; servergroups couldn't be given/removed when 'Rank up notification' was disabled
- fixed error on editing dateformat inside the webinterface; new value got saved but not changed on view (reload of site fixed the problem)
- fixed wrong link to the netherlands (nl) language on stats, webinterface and installation page
- fixed error 'calc_serverstats 8', which appears in ranksystem.log; it happened on the special case, if no user with a country flag were on the TeamSpeak server online on a fresh (empty user table) Ranksystem installation (only user over localhost are connected)
 

1.2.2 (2017-01-21)

* Added support for PHP 7.1
* Fixed TS3 PHP Framework library for PHP 7.1 support
+ optimized site loading stats/index.php for servericon.png; change from classic image to embedded data
+ optimized site loading for stats/ and webinterfac/ due merging the css and js files
+ added lines for active times on stats/my_stats.php (it can take a day until all clients are calculated)
+ added function avatar delay; delays the download of new avatar files; define the time inside the webinterface - teamspeak
+ added free text filter for ranksystem log on webinterface/bot.php
+ added french translation; many thx to Quentinti
+ added restart after update process; will take effect with versions > 1.2.2
+ added addon "assign Servergroups"
- fixed wrong stats on exception mode 'reset time'; remove now also the history of the count/idle to build correct stats (stats/my_stats.php)
- fixed message next up, when user is excepted; with version 1.2.1 was the exception changed and until this the user get only the message (excepted) if he was excepted by the channel. This is wrong, the user should get the message (excepted) on group or client exception and not on the short point of a channel exception.
- fixed database field for TS3 query port; the field was not unsigned, so there was 32767 as highest value possible (now is the highest value 65535)
 

1.2.1 (2016-12-17)

* optimize database structure; increase the database perfomance
+ added statistics based on lastseen (clients online 24h, last 7d, last 30d, last 90d)
+ added full list for nations, versions and platforms with user count (linked on stats/index.php)
+ unset https warning on install.php if an error occurred; to focus the main problem
- fixed syntax error on italian translation
 

1.2.0 (2016-11-26)

! php-zip (package) is needed on the webserver (see requirements)
! with new update process this is the last update you need to do manually
* updated libraries (jquery lib to 3.1.1, fontawesome to 4.7.0, flag-icon-css to 2.8.0, Raphaƫl JavaScript Vector Library to 2.2.1, bootstrap touchspin to 3.1.2, bootstrap select to 1.11.2)
* changed handling for the update interval; the update info message will now be sent instant after receiving an update and so long till one use could reached
* moved libraries to folder 'libs'
* allow boost factor 0 (no time gets counted) for misused punishing group, which gets removed automatically
+ added automatically update function (more informations on GitHub)
+ added other/phpcommand.php to define a different php command (when you have more then one PHP version on your system); default is 'php'
+ added exception mode; define how to handle the time for excepted (for more take care about the description inside the webinterface)
+ added notify register for channel and server chat; bot commands are now also via channel or server chat possible
+ added dutch translation (initiate already the half); thx to 0x0539
+ redirect webinterface/ respectively webinterface/index.php to TeamSpeak config, if session is already active
+ added check in webinterface on logpath; must end with a slash or backslash
+ added check on startup if files on webspace are writeable (needed for update function)
- solved list_rankup.php when scrolling the table header column width changed due fixing on top
- fixed on command "!nextup" with mode "active time" a wrong time was given back
 

1.1.3 (2016-11-02)

+ added check php-curl is available on install.php and on bot startup
+ added check on startup if logpath exists and is writeable
+ added new mode for bot command "!nextup"; for more see description in webinterface
- fixed error on command "!nextup" (message for each rank - issue 154)
 

1.1.2 (2016-10-30)

! new TeamSpeak permission "b_virtualserver_notify_register" required (for bot commands via text message)
! php-curl (package) is needed on the webserver - for linux "apt-get install php-curl"
+ added check to worker.php; if user is root -> show warning
+ added commands "help", "version", "restart", "shutdown"; TeamSpeak user can write the command to the Ranksystem bot via private text message; "shutdown" only for the Ranksystem admin
+ added command "!nextup"; TeamSpeak user can write the command to the Ranksystem bot via private text message and will get their needed time for the next rank up
+ added function to reset the password of the webinterface access
+ added function to change the password of the webinterface access
+ added function to add online time to user (reimplent due lost of version 1.1.0)
+ added function to hide the navigation on stats page (webinterface - stats page - show site-navigation)
+ added timestamp of getting the last servergroup (only those, which are given by the Ranksystem), which can be shown on the stats/list_rankup.php
+ added a check that simpleXML (linux package php7.0-xml) is available to the install.php (is needed with PHP7 for the TS3 PHP Framework)
+ added link on stats page (only for admin) to the webinterface and reverse
+ added "connect TS3" link on menu bar on stats page, if visitor is not connected to the ts3 server
* store filter selection on Ranksystem log (inside webinterface) in session
* added missed text passages on stats page to the language file
- fixed problem with continuously download of icons
- fixed wrong calculation of the versions donut-chart on stats/index.php
- fixed on webinterface that https info message overwrites an error message on failed login
 

1.1.1 (2016-10-08)

! updated TS3 PHP Framework to version 1.1.24
+ added IPv6 support
+ added a few checks to the install.php to valid the requirements are fulfilled
+ added questionmark icon to webinterface on hover a form field to indicate the online help
+ added check for the boost function, that boost factor can't be 0
+ added filter function for log-level inside the webinterface
+ disabled showing rank on list_rankup.php and on my_stats.php for clients, which are excepted (cause they are no part of the rank)
+ added server news to webinterface; the server-news files is obsolete now. The text can be changed inside the webinterface.
+ added index.php on root directory, which redirects to the "stats/" page
+ minor code improvements
* drop table job_log, which is no more needed -> ranksystem.log
- fixed client was not showing in list_rankup.php when client was in highest group and was excepted but 'excepted client' and 'Clients in highest level' was active
- fixed representation on list_rankup.php for excepted clients on column 'next rank up' and 'next servergroup'
 

1.1.0 (2016-08-20)

! PHP with version >= 5.5.0 required; If PHP version is to old, the TSN Ranksystem will stops directly after startup and log this into ranksystem.log!
! fixed security vulnerability by replacing webinterface; Please be sure the old webinterface.php got deleted after update!
! reworked webinterface; its now in bootstrap look like the stats site. To open the webinterface use subfolder "webinterface/" instead of "webinterface.php"
! updated bootstrap to version 3.3.7
+ added brute force protection to the webinterface
+ encrypt the password for the webinterface inside the database
+ added function ingore idletime; idle time of an user will be ignored (counted as active time), if it is under a predefined value
+ added possibility to except channel
+ added arabic translation (already a small part); thx to DeStRoYzR
+ added romanian translation (already a small part); thx to SakaLuX
+ performed update function; new version will now stored in database. So update info interval could be now more often then 1800 seconds.
+ added a few syntax checks inside the webinterface, which valid entries of fields like 'rank up definition'
+ added new filter country
+ added new filter lastseen
+ described filter functions on stats/list_rankup.php
+ optimized handling of client IP for session handling my_stats.php
- fixed serverlist report with ip address 127.0.0.1
 

1.0.2 (2016-05-22)

! windows support is back (for the webspace); the COM extension for PHP is required (extension=php_com_dotnet.dll -> only Windows!)
! check ts3 permission "b_client_remoteaddress_view" is set for query account
* initiate log level; log entries now have a log category
+ added log rotation; ranksystem.log will be rotate on filesize of 5 MiB
+ added italian translation; many thx to ZanK
+ added filter function on list_rankup.php; filter are usable about the search field (filters are: "filter:excepted:", "filter:nonexcepted:", "filter:online:", "filter:nononline:", "filter:actualgroup:GROUPID:"); documentation on a info box will follow
+ color online users on column "last seen" on list_rankup.php
+ increase perfomance for siteload on stats/index.php, when TSN Ranksystem already longer runs
+ added progress bar for next rankup on my_stats.php
+ the parameter "Idletime" will now be consided on calculation for the rank (i.a. on list_rankup.php?sort=rank)
- fixed wrong labeling on Top User sites for "active time" / "online time"; depending on the parameter "Idletime"
- fixed ip 127.0.0.1 were shown on stats/index.php instead of the external address
- fixed wrong subtraction of online time of already deleted users on "Online time of all user / week" and "Online time of all user / month"; in special cases it could come to minus values
- fixed wrong info in log for needed file permissions on folders (avatars, icons, logs)
- fixed wrong update notification after first run with new version
- fixed ts3 server address on stats/index.php; when ts3 address is localhost and the URL contains "www.", the "www." will be removed out of the showing ts3 address
 

1.0.1 (2016-05-01)

 ! changed the way to update the database. Its now part of the "bot.php". So no run of an update-files is needed any more. Please check the ranksystem.log for possible errors!
+ improved needed ressources for smaller server (based on count of TeamSpeak User)
+ added option to choose language on stats sites; default is what has been set about the webinterface
* in some case the "virtualserver_created" date of teamspeak is zero (perhaps a ts server bug); catch this instead of showing 01/01/1970
- optimized the restart function; now it should also work with the slowmode "high delay" and doesn't come to multiple parallel running TSN Ranksystem instances
- fixed error in stats/index.php on line 253; change code to enable support for 5.2.1 or above (before a part of it needs 5.4 or above)
- fixed progress bar on my_stats.php; percentage value was missed in some case
- fixed timzone wasn't taken correctly
- fixed repeatedly download of the servericon
- fixed servergroup exceptions wasn't consided on Top User sites
 

1.00 (2016-04-18)

! lost Windows support (for the webspace) at the moment; TeamSpeak server is still supported with Windows!
! changed the way the TSN Ranksystem works. The TSN Ranksystem connects now 24/7 to the TeamSpeak server and not each minute again. It get therby more precise, but also needs more ressources (on ressource problems, try to activate the slowmode). The worker.php is now needed to check the Bot is still connect to the server, if not it has the job to restart it. A logfile, what the bot does and also very helpful in error case, you find on "logs/ranksystem.log".
! changed the column rank on list_rankup.php; this column show now the real rank and not only a consecutive number
+ added a new site, reachable as subfolder "stats". There are some informations / stats about the TeamSpeak server and the TSN Ranksystem. There is to much to describe all, so perhaps take a look to it
+ added search (filter) function on list_rankup.php
+ added option on list_rankup.php to limit the entries
+ added column actual servergroup in list_rankup.php as option
+ added function "boost"; You can define a servergroup for the TSN Ranksystem as boost group. There is also to define how much the boost should count (factor) and how long it should be grant (time). User in the specified servergroup get rated their online time by the factor. The higher the factor, the faster an user reaches the next higher rank. Is the time expired, the boost servergroup get automatically removed from the concerned user.
- correct error by hiding column next servergroup on list_rankup.php
 

0.13-beta (2015-09-04)

* fullfilled russian translation; many thanks to sergey
- corrected problem by saving icons (PHP Warning:  file_put_contents[..])
- corrected wrong array shift by clean TSN Ranksystem database (get error like: parse/syntax error)
- complemented some missed database options with update 0.12-beta
 

0.12-beta (2015-08-30)

+ added option to show clients in highest group in list_rankup.php (not even in adminlist)
+ added function to clean TSN Ranksystem database; this deletes clients, which doesn't exist any more in the TeamSpeak database. You can also use the perfectly with the ClienCleaner together (//ts-n.net/clientcleaner.php)
+ added servergroupicon to the column next servergroup in list_rankup.php; servergroup icons get downloaded with worker.php to the subfolder "icons"
- correct count on feeter in list_rankup.php (sitegen needs to be enabled)
 

0.11-beta (2015-03-27)

! changed database connection from MySQLi to PDO; Within this also other databases (e.g. MS SQL, Oracle ..) are possible
+ added slowmode to prevent against bans in case of flood
+ added function for renew the servergroups; can be helpful, when user are not in the servergroup, they should be at the defined online time
+ added link inside the webinterface with an admin overview for the list_rankup.php with all fields/columns
+ added variable language support for list_rankup.php -> list_rankup.php?lang=en
+ added column rank number to list_rankup.php as option
+ added column last seen to list_rankup.php as option
+ added new menu to the webinterface to edit the database configuration
* smaller other improvements
- fixed bug, that the SQL statements failed with an error, when a client is using a backslash in its name or a servergroup contains a special sign
- fixed bug; clients with | character in his username couldn't be use for the "selective clients functions", cause the uuid couldn't be dissolving
- fixed bug; fixed wrong update information, when update server is not reachable
- fixed bug; year 2038 problem (max. integer 2147483647) solved, 64-bit system required; for old entries could stand a wrong ip address "127.255.255.255" in database
 

0.10-beta (2015-02-01)

+ added russian translation; many thanks to sergey
+ added option to remove client out of the servergroup (which was given by TSN Ranksystem), by deleting clients out of the TSN Ranksystem database
+ added function to delete one or multiple selected clients out the TSN Ranksystem database
+ added function to set manual a summary online time for one or multiple selected clients
+ added the most important colors to the webinterface; to define it there
+ added column next servergroup in list_rankup.php as option; new TeamSpeak permission required (b_virtualserver_servergroup_list)
+ added option to hide the site generation at the end of the site
+ added client count to the site generation
* relaunched the webinterface; separate the different settings and functions in own sectors, which are foldable
- fixed bug; add a check, when a servergroup was manually given to a client, which is relevant for the TSN Ranksystem. This clients will not until add to a servergroup, they reached the time for the next higher rank.
- fixed bug; sorting on list_rankup.php for the column 'next rank up' is now correct
 

0.02-alpha (2014-12-20):

+ added time format as value
+ added column with active time to list_rankup.php
+ hide excepted clients or rather groups in list_rankup.php as option
+ hide each column in list_rankup.php as separate option
* check version after predefined time, not with every run the worker.php, to save traffic
- fixed bug of wrong sorting for next rankup; the time for next rankup of offline users will now calculate new with every run the worker.php
- fixed bug of countdown the next rankup time in list_rankup.php of offline users
- fixed bug with header problems by saving options in the webinterface.php
- fixed bug that a "reseted" user do not gets an update for his new cldbid
 

0.01-alpha (2014-10-05)

! initial release

Support

Please report bugs and also feature requests preferred on GitHub.

You can also get support on our public TeamSpeak server ts-n.net.
Contact an admin there (server group: Ranksystem Staff Ranksystem - Staff). Please stay patient, when we don't react immediately. Please give us at least 10-15 minutes to response.

You want to ask for a free hosting? Have a look above to request a hosting.