The Music Request System

Mirror maintainer's note: the download and MD5 links on this page have been removed.
Download the MRS from the previous page, or directly from the original server.

What is the MRS?
Pre-requisites
Downloading the MRS
Installation Notes
Upgrading the MRS manually
Bug reports
Contact Me
Changelog


What Is The Music Request System?

The Music Request System is a simple software set allowing users to request songs out of a live DJ's playlist. This makes it easier for the user to know whether or not their request can be played. It also allows a DJ to easily keep track of their music library.

The MRS came about in 2015 when I decided that it would be really nice to have an easy way to make sure requestees would have their songs heard. It was released to the public in 2017.


Pre-requisites

The MRS can run on any variety of system software. Note that the primary testing environment is Linux, so you will likely have the best results with that. Windows, Mac OS and others, either IIS or Apache, are supported. If you find they don't work, let me know.

The MRS requires PHP to run, along with the following extra packages:

How you install these depends upon your operating environment. The packages listed are for Linux.

Releases in the 2.x and earlier families use text files to store all information. As such, write access is necessary. See the installation notes.

Any pre-requisites discovered that are not listed here should be brought to my attention.


Downloading The MRS Software

Please be sure to read the pre-requisite section and installation notes. Report bugs if they are encountered. Also look at the changelog.

Current releases (as of May 18, 2018):
Stable: 2.2 revision 28
Beta: Outdated, see above release

For new installations

Simply download the ZIP file and extract it into an empty directory. It produces a fully functional MRS with default settings. You will probably want to change these.
You may download the MD5 checksum and use that to verify the package you download.

Stable: Install package | MD5
Beta: see older releases

For upgrades

MRS releases, beginning with MRS 2.0b5.77, will automatically download the install packages without intervention, but it is limited to downloading only the latest release. If you wish to upgrade to something other than the latest release (this is discouraged but allowed), or you are running a later release, you will need to download both the upgrade package and the MD5 checksum file.

Install packs cannot be used to run an upgrade.
Both files must be placed in the "upgrade" subdirectory. The package must be named "latest.zip" and the MD5 text file "latest-md5.txt", or it will not work.
"Downgrades" may be possible but are not explicitly supported. Attempt at your own risk.
If you are running a release prior to MRS 2.0b4.68, you must upgrade manually.

Even if you use a non-destructive upgrade option, back up everything first. You may regret not doing so later!

Stable: Upgrade package | MD5
Beta: see older releases

Older releases

Please note that these older versions are not supported! They may contain serious bugs and other problems, and may be insecure. The only way to receive support is to be running the latest version!

Previous beta: Install package | Install MD5 | Upgrade package | Upgrade MD5
For PHP older than 5.5 (2.0.77): Install package | Install MD5 (note that you may upgrade to future releases after installing, thus only install packages are provided)
Browse previous releases
Releases so old no one should run them

Other downloads

"Official" alternative system backgrounds
Functional external API files
Modernized upgrade scripts WARNING: You CANNOT use these scripts to upgrade to ANY MRS release currently avaliable! They only work for releases made AFTER 2.2.28!


Installation Notes

Installation is generally straight-forward, with one minor hitch: write-access is required for everything
That is, whatever user the web server is running as (the default with Apache under Linux, as of this writing, is "www-data") MUST be able to write and read to all storage locations of the MRS!

Since this is a potential security vulnerability, if you are unwilling to allow this, you cannot use the MRS software.
Under Linux, the simple solution is to make www-data the owner using the chown command. To make this process quick, use the R switch. For information about what it is doing, use the v switch.
Other changes to permissions may be successful, but you are on your own. Likewise, on Windows, you are on your own. If you do manage to figure it out, let me know and I can post the instructions below.

Upon successful installation, log in to the system using the default password of "admin". The very first thing you should do is change the password. All configuration options should be straightforward. Set them as you wish.


Upgrading the MRS Manually

Download the upgrade package. While possible to use the install package, it may not contain everything that you need in order to upgrade fully. Make sure the MRS is not accepting requests before performing an upgrade, so as to not surprise a would-be requester.

Extract the package somewhere. In it will be a bunch of .php files, and a few text files, as well as a background GIF and a favicon. If you wish to use the background and favicon, move these into the "backend" subdirectory.
All text files other than "version.txt", "config.txt" and "addtlconfig.txt" can be removed as they are not required. "version.txt" should be moved into the "backend" subdirectory.

Before moving any PHP files or changing configurations, check for a "preprocess.php" file. If one exists, open it and perform the actions specified in the "preprocessor_run()" function. Alternatively, you can write a PHP script that invokes this function call. It will return true on success, and a status code on failure. Delete the file after completion as it is not needed for anything else.

All single part PHP files, that is those without a dash ('-') in the filename (except for "preprocess.php" and "postprocess.php", if either is present), should be moved to the root of the MRS. For other PHP files, before the dash is the folder, after is the filename. Place these files in the specified folder and rename them, being sure to overwrite any that exist already.

Open up "config.txt". In it are configuration lines of the format "filename|config". If a file on that list doesn't exist, create it with the specified config as the contents. Overwrite those that you want to overwrite, if any.
Open up "addtlconfig.txt". For all files not present in both this list and the one in "config.txt", remove the file as it is no longer required.

Check for a "postprocess.php" file. If it exists, open it and perform the actions specified in the "postprocessor_run()" function, as with "preprocess.php". The actions performed are likely required in order for the MRS to function properly! Delete it upon completion.

Anything left over after all the processes can be deleted now.

Any bugs or problems encountered should be reported. Please be sure to make a backup before performing an upgrade.


Bug Reports

Bug reports should be sent to mrsbugreports@gmail.com to distinguish them from regular contact requests and other emails. Be sure to include the word "bug" in the subject, or the email will never be seen.

Bug reports may also be submitted via the Stereo Dust Particles forum. Note an account on the forum is required to post.


Contacting Me

Contact with me is provided through this form. You may also contact me directly via YouTube (link is in the copyright notice below), or through email at lowendradiorequests@gmail.com.

Spam will not be responded to or looked at. Be sure to provide a meaningful and descriptive title when sending me messages! Bug reports should contain enough information that I can easily replicate the problem.
Feedback is also welcome, provided it is constructive.


Changelog

Version 2.0
Revision 66 (Stable): First public release.
Revision 68 (Beta b4): Now contains automated upgrade scripts. Adds preliminary support for information after editing song lists. Added support for system overflow protection. Fixed bug: system ignores "disable requests for users with active requests" setting and denies access anyways.
Revision 69 (Beta b4): Security fixes. More detailed error messages in the event of a problem. Return codes on pages that redirect somewhere else to provide details about what just happened. Removal of "fallback" email sending functionality; the system now sends errors if there is no supplied email address. Ability to send emails is now a configurable option. List editing pages now display the song list format, and also remove problematic characters.
Revision 70 (Stable): Fixed bug: "open requests" setting does not result in open requests being available. Added a bypass to the automatic download of "latest-md5.txt" during an upgrade (allowing for upgrades to previous versions than the latest).
Revision 71 (Beta b5): Fixed bug: "undefined index: '<index name>'" errors when PHP error reporting is changed to E_ALL. Fixed bug: index page reports "over 1 songs" even with an empty song list.
Revision 77 (Beta b5): Reorganized upgrade check page. Upgrade scripts download the latest MRS upgrade package automatically now if the package is absent. Introduced ability to check only for stable builds. Various security enhancements.
Revision 77 (Stable): Added "directive" support to upgrade scripts (backported from 2.1b1.0)

Version 2.1
Revision 0 (Beta b1): Added "directive" support to upgrade scripts (fixes "unable to open securitycheck.php" bug). Fixed bug: warning related to fclose on songlist>baselist copy page. Reorganized administrative page. Added a method to distinguish between played, queued and unseen requests (PARTIAL IMPLEMENTATION).
Revision 1 (Beta b1): Added in a "system unique ID" feature. Added "light mode" functionality. Attempted bug fixes with regards to "open request" logic on the posting pages. Made it clear that the number of requests listed on the index page is the number of requests made all-time on the system.
Revision 6 (Beta b1): Implemented system UID into authentication mechanism. Links to queue, decline and mark requests now appear based on what the current status of the request is. Implemented a feature to hide posts after a specified period of time (disabling post marking, deletion by creator and reporting). Fixed bug: if backend file for light mode is not present, the system UID value is set to "no". Added administration session timeout functionality. A few changes were made to the upgrade process. "Dry run" functionality added to upgrade process.
Revision 7 (Stable): Added support for storing session details in a location other than the default. Fixed bug: certain characters stripped from requests.
Revision 12 (Stable): Added ability to import a text file and parse it into song list format. Modified about page text to be more clear. Fixed bug: "unidentified index" on post2 page. Removed system email functionality. Removed contact page. Modified request report functionality to store information locally instead of emailing it. Added automatic refreshing to the home page. Added ability to display a custom message on the home page.

Version 2.2
Revision 2 (Beta b1): Ground-up-rewrite of the home page, admin validation, administration and post marking pages. Home page now sorts requests: unseen at the top, followed by queued and then declined/played. Admin console features a "killswitch" for the automatic redirect on completion, and the ability to reset all settings to the defaults. Requestees can now submit comments along with the request.
Revision 8 (Beta b1): Ground-up-rewrite of song selection and request creation pages. Enhanced display of songs on selection page. Added support for external interfaces. Added preliminary support for custom fields in song database.
Revision 28 (Stable): FIXED BUG: privilege escalation possible on admin.php page. FIXED BUG: link to post a song not on song list disabled when it shouldn't be. Added support for filenames added to the music list. Added system API calls.


The Music Request System is copyright © 2015-2018 Brad Hunter/CarnelProd666, and is licensed under the DBAD Public License, version 1.1. Unauthorized duplication or modifications are prohibited. Know what you are getting, and from where. No warranty, express or implied, is offered with this software except in basic support circumstances.
View the rest of the site.

Valid HTML 4.01 Transitional