What is the MRS?
Pre-requisites
Downloading the MRS
Downloading the MRS from a Mirror
Installation Notes
Upgrading the MRS manually
Bug reports
Contact Me
Changelog
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.
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, IIS, Apache, Nginx and more, are all 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.
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 July 6th, 2018):
Stable: 2.2 revision 181
Beta: 2.3b1 revision 36
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: Install package | MD5
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 These are being made available for anyone that wishes to test new features and fixes as they become available, without waiting for the latest beta. They are considered alpha quality, and are untested. To install, download and place the package and its MD5 hash in the "upgrade" subdirectory. It is only provided as an upgrade package. See the changelog file for version information 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 2.2 beta: Install package | Install MD5 | Upgrade package | Upgrade MD5 "Official" alternative system backgrounds Please note that not all mirrors are fully up to date. Want to be listed here? Let me know. Likewise, let me know if you are listed and have recently updated or changed your mirror in any way. Greyghost: last updated July 3rd, 2018, hosting version 2.2.181. Installation is generally straight-forward, with one minor hitch: write-access is required for everything Since this is a potential security vulnerability, if you are unwilling to allow this, you cannot use the MRS software. 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. 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. 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. 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 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. 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. Version 2.0 Version 2.1 Version 2.2 Version 2.3
Beta: Pre-Release Build
Be aware that there is the high potential for breaking bugs! Only one release is avaliable, as new builds are published older builds are removed.
Package | MD5 | ChangelogOlder releases
Browse previous releases
Releases so old no one should run themOther downloads
Functional external API files
Modernized upgrade scripts and their required backend files. WARNING: You CANNOT use these scripts to upgrade to ANY MRS release prior to 2.2b3.101!
Using 000webhost? Notice a large number of error messages on the homepage? Download this to fix the problem.
Trusted Mirrors
Installation Notes
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!
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.
Upgrading the MRS Manually
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.
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.
Bug Reports
Contacting Me
Feedback is also welcome, provided it is constructive.
Changelog
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)
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.
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.
Revision 101 (Beta b3): All pages now have at least some functionality centralized. Modernized the upgrader. Added the license page. Major bug fixes to the internal API. Bundles password_compat for users running PHP versions < 5.5.
Revision 124 (Beta b3): Added custom error handler. Added ability to control what error messages are displayed. Added IP address to post page. FIXED BUG: no favicon on index page. FIXED BUG: undefined variable on login page. FIXED BUG: undefined variables on admin page. FIXED BUG: undefined variable on logout page. FIXED BUG: output on post2 when posting (undefined variables and debugging information). FIXED BUG: submission of blank name allowed when not anonymous. Removed extra unnecessary code from all pages. Reworded about page. FIXED BUG: erroneous setting submissions caused settings to be blanked. Added ability to disable post blanking on main page. Requests sorted newest to oldest, per group.
Revision 132 (Stable): Rewrote banning pages. Banning pages now report success or failure. Added filename support to backend that was previously missing. FIXED BUG: invalid number of parameters supplied to write_request on queue, decline and played pages. FIXED BUG: invalid parameters supplied to fwrite, blank files output on archive page. FIXED BUG: search feature doesn't work when multiple words are specified.
Revision 134 (Stable): FIXED BUG: when system closed and "enabled request viewing when locked" is off, requests do not show up for the administrator. FIXED BUG: external API calls to queue, decline and mark as played do not function.
Revision 140 (Stable): Rewrote numerous pages to use centralized functions. FIXED BUG: API calls still not working in certain circumstances. FIXED BUG: unable to queue, decline or mark requests directly from the MRS.
Revision 148 (Beta b3): Rewrote the ban subsystem. Added capability to log error messages to a file.
Revision 164 (Beta b4): Rewrote login, logout, index, password change, logging information, request edit, about pages. Login and logout no longer automatically redirect to homepage. Rewrote view pages for reports, logs, and rules. Rewrote edit pages for rules, song list edit, base list edit, and song list upload. Rewrote session information purge page. FIXED BUG: in logging mode, the timezone isn't set on the view pages for logs and reports. FIXED BUG: security issues on song list edit, song list upload, base list edit. FIXED BUG: Log file opened unnecessarily on archive page.
Revision 180 (Stable): All pages rewritten to use centralized functions. Added referrer to login links.
Revision 181 (Stable): FIXED BUG: removed second import of functions page from how to search page. Added error levels to error handler.
Revision 36 (Beta b1): Marked several functions for future removal, and replaced most if not all calls to them with calls to other appropriate or new functions. Implemented new song list mechanism. Added strict searching capablity. Rewrote the administration console. Removed all base list functionality. Rewrote the list editing and list importing pages. Added a separate page for straight additions to song list.
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.