AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Plugins (https://forums.alliedmods.net/forumdisplay.php?f=108)
-   -   Jukebox for Source - Streaming Music System v0.5.5.0 Beta (https://forums.alliedmods.net/showthread.php?t=104827)

SirLamer 09-28-2009 00:22

Jukebox for Source - Streaming Music System v0.5.5.0 Beta
 
4 Attachment(s)
Jukebox for Source is a fully featured music streaming plug-in for SourceMod. It is designed to offer a complete solution for server admins who want to enrich their server's character and overall experience and places heavy value on social play. Jukebox uniquely offers a searchable and dynamic interface similar to those of many other music players, such as iTunes and WinAmp.

Jukebox is compatible with all Source engine mods on both Linux and Windows. For admins, Jukebox also includes a web-based suite of tools for uploading and managing your music library.

Features

Jukebox Features
  • Intuitive, dynamically generated menu-based interface.
    • Browse tracks by genre, artist, album or title.
    • Look up and select from the newest or most popular tracks.
  • Command-line interface, including full search capability, for more familiar users.
  • Customizable playback behavior available to each client, with automatically saved and restored settings.
  • Easily listen to an entire genre, album or any search result using convenient playlist generation and playback.
  • Queue up additional tracks at any time.
  • Easy-to-read display of track info in synchronization with playlist tracks.
  • Admin-reserved ability to play music for everyone on the server.

Administrative Features
  • Easily integrate MP3 tracks from any folder on your website.
    • Currently designed for separate FTP upload prior to track integration.
  • Supports batch processing of new tracks. Upload several albums at once!
  • Minimizes work in populating track metadata.
    • Automatic ID3 extraction.
    • Make batch changes to album, artist and genre info.
  • Browse, preview, edit and delete tracks using the provided library browser.
  • Optionally host MP3 files on a low-cost remote server.
    • Intended for rental packages which do not include enough bandwidth and storage spaces for Jukebox.
    • Remote file server is automatically managed via FTP.
  • Access is controlled and secure.
    • Create user accounts for people you wish to have uploading or administrative access.
    • Identify who is uploading which tracks.
    • Non-administrative users may edit and delete their own additions.
  • No risk of leeching.
    • Playback URLs expire due to encrypted timestamp.
    • Stored files have randomized file names, making direct browsing impractical.

Requirements
  • Website Server
    • PHP 5 or later
    • MySQL 5 or later
  • Source Engine Game Server
    • SourceMod 1.3.8 or later
    • Access to same MySQL database as Website Server
    • Mod must include an HTML-enabled Message of the Day feature
  • Remote File Server (optional)
    • FTP server
  • User requirements

ConVars
  • jb_admin_flags_playall (default: “jz”) – An admin flag string identifying the admin flags that grant Public Stream playback control permissions, or leave blank to grant access to all users.
  • jb_admin_flags_reserved (default: “jz”) – An admin flag string identifying the admin flags that grant Jukebox operation rights during the 'reserved' state.
  • jb_admin_flags_settings (default: “hz”) – An admin flag string identifying the admin flags that grant Jukebox Admin Menu access, or leave blank to grant access to all users with general Admin Menu access rights.
  • jb_advertisement (default: 0) – The number of seconds after first spawning to display the Jukebox advertisement, or set to 0 to not display the advertisement.
  • jb_announce_mode (default: 1) – Sets the in-chat playback announcement mode. 0 = no announce, 1 = announce first track of each selection list, 2 = announce every track for Public Stream and only first track for Private Streams, 3 = announce every track for Public and Private Streams.
  • jb_base_url (default: “”) – URL path to Jukebox's base folder.
  • jb_db_conn_name (default: “default”) – Named SQL connection to be used by Jukebox. Database must be defined within sourcemod/configs/database.cfg
  • jb_db_log_history (default: “jb_log_history”) – SQL table name for the Log History table.
  • jb_db_log_usernames (default: “jb_log_usernames”) – SQL table name for the Log Usernames table.
  • jb_db_options (default: “jb_options”) – SQL table name for the Options table.
  • jb_db_playlists (default: “jb_stream_tracks”) – SQL table name for the Playlists table.
  • jb_db_streams (default: “jb_streams”) – SQL table name for the Streams table.
  • jb_db_tracks (default: “jb_tracks”) – SQL table name for the Tracks table.
  • jb_enabled (default: 1) – Set to 0 to disable Jukebox, 1 to enable Jukebox for all users, 2 to reserve Jukebox operations for admins.
  • jb_leech_password (default: “”) – Anti-leech password used to timestamp produced URLs. Must match the leech password specified on the web server.
  • jb_log_use (default: 0) – Enables playback logging.
  • jb_monitor_jboff_use (default: 3) – The number of times the user must cancel a play-to-all song to be automatically reminded and invited to adjust personal playback settings. Set to 0 to disable.
  • jb_motd_restart (default: 0) – When enabled, users will be reconnected to their music stream after being interrupted by an HTML-based Message of the Day.
  • jb_playall_default (default: 1) – Default setting for if clients should comply with 'play all' command.
  • jb_playall_on_connect (default: 1) – When enabled, connecting new players will be merged into the latest active play-to-all stream.
  • jb_popularity_decay_interval (default: 86400) – The interval time between popularity decay events, in seconds.
  • jb_popularity_decay_rate (default: 5) – Percentage rate of decay of popularity scores per interval time.
  • jb_queue_default (default: 0) – Default setting for automatic music queuing.
  • jb_reserved (default: 0) – Reserves Jukebox operation for admins.
  • jb_volume_default (default: 80) – Default playback volume for new users.
  • jb_volume_loud (default: 20) – Volume boost for ‘loud’ playback.
  • jb_volume_min (default: 10) – The minimum permitted volume setting, as a percentage of maximum volume.
  • jb_volume_soft (default: -20) – Volume reduction for ‘soft’ playback.

Commands
  • sm_jukebox – Invokes the Jukebox music system.
  • sm_jb – Shorthand alias for sm_jukebox.
  • sm_jboff – Stop music playback.
  • sm_jballoff – (Admin reserved) Stop music playback for all players.
  • sm_eavesdrop – Use: sm_eavesdrop <username>. Join the most recently started music stream, or a particular player’s stream, if named.
  • sm_volume – Use: sm_volume <value>. Stores a playback volume level from 1 to 100%.

Version Info

Current Version: 0.5.5.0
  • Completely replaced the music playback system with a new HTML5 and flash-based media player called jPlayer. This new media player will allow Jukebox to work as it did previously within TF2, Counter-Strike and any other Source Engine games and mods that make use of the newer WebKit browser which accompanied the Mac OS updates.
    • Jukebox now requires all users to have Adobe Flash for Other Browsers installed for music playback to work. This same version of Flash is required by all users for full functionality within the Steam store. More information may be found here: https://support.steampowered.com/kb_...8175-XFMJ-5769

Version 0.5.4.2:
  • (include/login/constants.php, include/settings.php) Changed document include method to avoid path error observed on many servers.

Version 0.5.4.1:
  • (include/login/constants.php, include/settings.php) It is no longer required to populate constants.php with settings. Settings.php has been updated with additional fields.
    • Existing installations are required to replace settings.php on your server with the new version in the upgrade package.
  • Fixed major error during track change process introduced in previous release.
  • Removed log error which reported lack of track info during Playback Menu start.
  • Changed new user Options entry sequence to deal with slow SQL query case.
  • (Database) Corrected absence in SQL installation script included in 0.5.4.0 so that the default “admin” account is not properly created.
    • Existing installations need not take any special action. This correction does not affect those who took the upgrade path to 0.5.4.0.
  • (General admin website) Completed edit of webscript to use full PHP open tag, so that the php.ini setting “short_open_tag” can be left at its default value of false.
  • Legacy SQL installation scripts are no longer distributed with Jukebox, to avoid confusion. Refer to the development thread for legacy versions.

Version 0.5.4.0:
  • Jukebox is now developed and tested on SourceMod 1.3.1.
    • This and future releases should be run on a server running SourceMod 1.3.1 or later.
    • Technical support is not offered for servers which do not run on SourceMod 1.3.1 or later.
  • Made several SQL database changes.
    • Existing installations must run the included SQL database upgrade script. The upgrade to version 0.5.4.0 can be found within the “sql” folder in the website files.
    • Fixed SQL database error so that the “queue” column within “jb_streams” is created with a default value of 0.
    • Revised design of Playback Log to simplify the design of various search operations.
      • Log entries are stored in “jb_log_history”, each containing a “user_id”, “username_id” and “track_id”.
      • Each “user_id” refers to a user entry in the “jb_options” table, which includes the user’s Steam ID.
      • Each “username_id” refers to the Username entry in the “jb_log_usernames” table, which includes the user’s Username observed when he or she connected to the server.
      • Each “track_id” refers to a Track entry in the “jb_tracks” table.
      • In addition to the above, the “jb_log_history” table stores some event data. The “start” column denotes the time at which the listened to track began playing, not the time at which the user joined in listening. The “joined” column denotes the amount of time into playback of the track that the user started listening. The “finish” column denotes the amount of time into playback of the track the user ended listening. Entries with a “finish” value of 0 implies that the track is currently being listened to.
    • Removed “jb_log_users” table, replacing its function with the Steam ID data already within “jb_options”.
      • Removed cvar “jb_db_log_users”.
  • Restored custom named database feature previously removed in 0.5.3.1, this time corrected to properly connect using connection names other than “default”.
    • Restored cvar “jb_db_conn_name” (default = “default”). Named SQL connection to be used by Jukebox. Database must be defined within sourcemod/configs/database.cfg
    • Existing installations must add this cvar to jukebox.cfg and specify the named database connection to be used by Jukebox.
      • For most servers, the value should either be “default” or “jukebox”.
  • (upload.php) Fixed Jukebox incorrectly type casting the playtime duration from floating point to integer.
    • Previously uploaded MP3s have the playtime stored as a value rounded to the second. Server admins are strongly advised to run “jukebox_0540_playtime_fix.php” found within the “sql” folder. It must be moved to Jukebox’s root folder and run from there. While not technically required, Jukebox will benefit from a more accurate playtime measurement.
  • Server admins can now specify which admin flags grant access to the Public Stream playback, Reserved use and Admin Menu functions.
    • Added new cvar “jb_admin_flags_playall” (default = “jz”). An admin flag string identifying the admin flags that grant Public Stream playback control permissions, or leave blank to grant access to all users.
    • Added new cvar “jb_admin_flags_reserved” (default = “jz”). An admin flag string identifying the admin flags that grant Jukebox operation rights during the 'reserved' state.
    • Added new cvar “jb_admin_flags_settings (default = “hz”). An admin flag string identifying the admin flags that grant Jukebox Admin Menu access, or leave blank to grant access to all users with general Admin Menu access rights.
    • The admin flag “z” must explicitly be included in order to grant access rights to admins with this “root” admin flag.
    • Refer to the SourceMod Wiki for more information on admin flags: http://wiki.alliedmods.net/Adding_Admins_(SourceMod)
  • The in-chat playback announcement feature can now operate in any one of three different modes.
    • Mode 1 (default): Announce the first track of each Public and Private Stream.
    • Mode 2: Announce the first track of each Private Stream and every track from the Public Stream as they begin playing.
    • Mode 3: Announce every track from all Private and Public Streams.
    • Added new cvar “jb_announce mode” (default = 1). Sets the in-chat playback announcement mode. 0 = no announce, 1 = announce first track of each selection list, 2 = announce every track for Public Stream and only first track for Private Streams, 3 = announce every track for Public and Private Streams.
  • Users can now Eavesdrop on the Public Stream without knowing who created it by including the search keyword “public”.
    • Usage example: “!eavesdrop public”
  • Added “Back” menu operation to search results menus.
  • Corrected error during config file reading which caused some settings to be improperly read unless the plugin were loaded twice.
  • Improved accuracy of track progression tracking on heavily loaded servers and over map changes.
  • Fixed calculated “Last Updated” time to properly correct for time difference between the game and MySQL server clocks.
  • If a queued playlist starts during map change, the participating users will be connected to the queued stream after reconnecting to the server.
  • (query.php) Fixed minor error which would improperly format MP3 paths in the playlist when the Jukebox path includes uppercase characters.
  • (browse.php) Improved Browse page’s sorting to properly coordinate target sort column, sort direction and page number.
  • (browse.php) Added visualization to the sorting controls to indicate current status.
  • (browse.php) Added a “Date Added” column to the Browse page.
  • (browse.php, upload.php) Replaced Function text buttons and links with graphical buttons.
  • (browse.php, upload.php) Added various Javascript enhancements in order to improve general ease of use and work flow.
  • (upload.php) Admins and Uploaders can now delete uploaded items directly from within the Add Tracks page.
  • (upload.php) Improved deletion process to allow Windows servers to delete uploaded tracks with spaces in the file name.
  • (upload.php) Subfolder objects in the list now display the number of files within the subfolder.
  • (upload.php) Tracks selected for addition to the library can be selectively removed during the Edit stage.
  • (upload.php) The Add Tracks process will not proceed past the Edit stage until all errors have been cleared.
  • (upload.php) Changed how Jukebox determines the local folder path to avoid a rare and unknown false path issue.
  • (General admin website) Added display of installed Jukebox version.
  • (General admin website) Updated several scripts so that the php.ini setting “short_open_tag” is no longer required to be On.
    • Existing installations are advised to return “short_open_tag” to “Off” if it was previously adjusted.

Version 0.5.3.3:
  • Added proper character escape step to SQL queries so that searches involving special characters like ‘ and “ will properly execute.

For additional change log history, please refer to the support manual included within the Jukebox installation bundle.

Planned Features:

These are ordered from most to least urgent.
  • Alphabetical sub-grouping of the Browse Menu (2010/01/19)
  • Menu-based eavesdropping, including "who's listening to what" info. (2010/01/11)
  • Better management of queued music. (2010/01/11)
  • Public and Private playlist creation, including the ability to save them to the server for later use. (2010/03/22)
  • Automatic music playback on map change and on first join. (2010/01/11)
  • Automatic database tables installation for easier setup. (2010/01/11)

Known Bugs:
  • When adding tracks, double quotes (") get dropped from metadata fields right as it is saved to the server (but is carried through the rest of the way) (2009/04/28)

Reporting Bugs

The purpose of this beta release is to gather bug-reporting feedback from multiple servers. Progress on Jukebox depends on bug reports.

When reporting a bug, specify the version of Jukebox that you are running. Provide an appropriately detailed description of the symptoms and the sequence of events that led to it. Specify if the problem is being experience on the game server, the web server or both. Also check the console for errors when attempting to invoke Jukebox commands.

Include details on the server machine displaying the bug, such as your SourceMod version, game server OS, web server OS, PHP and MySQL version, etc.

Submit bug reports via this thread, which will be reviewed by SirLamer.

More Info
  • Server operators are advised to refer to the documentation within the release package for more detailed information.
  • An operational guide tailored to end-users is in development. This manual is accessible from within the game but can also be accessed by clicking here. Note: Though the design and layout is not finished, all the needed information is available.

Acknowledgements

SirLamer 09-28-2009 00:26

Re: Jukebox for Source - Streaming Music System
 
Reserved for future uses.

Jindo 09-28-2009 02:30

Re: Jukebox for Source - Streaming Music System
 
Fantastic, I'll be testing this later!

exvel 09-28-2009 05:47

Re: Jukebox for Source - Streaming Music System
 
http://indipepal.com/wortal_static/s.../thumbs-up.gif
Good job

BDeep 09-28-2009 22:05

Re: Jukebox for Source - Streaming Music System
 
Code:

L 09/28/2009 - 21:48:38: [SM] Plugin encountered error 11: Invalid memory access
L 09/28/2009 - 21:48:38: [SM] Displaying call stack trace for plugin "jukebox.smx":
L 09/28/2009 - 21:48:38: [SM]  [0]  Line 2966, W:\server script\sourcemod123\scripting\jukebox.sp::DelayedDisplayMessage()
L 09/28/2009 - 21:49:31: [SM] Plugin encountered error 11: Invalid memory access
L 09/28/2009 - 21:49:31: [SM] Displaying call stack trace for plugin "jukebox.smx":
L 09/28/2009 - 21:49:31: [SM]  [0]  Line 2966, W:\server script\sourcemod123\scripting\jukebox.sp::DelayedDisplayMessage()
L 09/28/2009 - 22:00:27: [SM] Plugin encountered error 11: Invalid memory access
L 09/28/2009 - 22:00:27: [SM] Displaying call stack trace for plugin "jukebox.smx":
L 09/28/2009 - 22:00:27: [SM]  [0]  Line 2966, W:\server script\sourcemod123\scripting\jukebox.sp::DelayedDisplayMessage()

I followed the setup instructions to the "T" I can upload files and add them, however when i try to play them from the website a window pops up with a WMP plugin in it but wont play anything. In game the menu comes up but nothing will play. The errors above happen as soon as someone types one of the Jukebox commands. IF you want to see the site PM me and I will get you the URL and a user/pass.

Also users cannot register after I created my login, it just takes them to the login page when they click "register"

Other than all of that it looks like a great plugin and I am anxious to get it working. :up:

DontWannaName 09-29-2009 01:02

Re: Jukebox for Source - Streaming Music System
 
Is there somewhere to test or look at it from a website?

SirLamer 09-29-2009 04:14

Re: Jukebox for Source - Streaming Music System
 
Do you mean you want to try a demo of the web software?

I don't have a public demo set up, but that is an interesting idea. I will look into doing that. Since a demo would have to clean out songs once in awhile, it'll require an little extra code that I haven't written yet. But I will consider it and link to it here if I do it.

Keep in mind that the real product is not the web software, it's the in-game plugin. The website is honestly very simple, functional, and boring.

BDeep, I am doing some research on your error. This is the first time I've had it reported and I have never seen it myself, so this generic "memory access" error is troubling me right now. If I can't sort it out, I might prepare a special build for you that will spit out some data I can interpret right before throwing that error, to give me some hints.

Are you sure that error appears as soon as someone types "!jb" and not later when someone selects an item when trying to play a song?

Edit: I connected to your server to try it out. The !jb command loaded the menu properly, and I told it to play a random song JUST as the map changed. So I wasn't able to gauge the issue properly. After the map changed, Jukebox wouldn't work anymore, though I could tell that it was catch the command because it wouldn't display "/jb" in chat. I know that doesn't tell me much, but maybe if I go back and try it again another time where I don't have such bad timing, I can have a look at how it is behaving on your system.

DontWannaName 09-29-2009 05:57

Re: Jukebox for Source - Streaming Music System
 
Doesnt it open up the internet game browser to play the music? If so thats the page I would want to see. They always lag clients and the scripts can even crash them and now clients can disable them.

BDeep 09-29-2009 09:14

Re: Jukebox for Source - Streaming Music System
 
SirLamer,

I had moved it to the disabled folder but not changed the map, LOL. Sorry. I will throw it back in now and change the map so that you can try it out. I think that you might be right about the error as well it might be when they choose an item. I can find out for you today.

shustas 09-29-2009 09:48

Re: Jukebox for Source - Streaming Music System
 
So is this some another !radio plugin or can it actualy play music for events like hs or connecting or map end?
And streaming music from where internet or local game server?


All times are GMT -4. The time now is 05:23.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.