Suppressed or Removed Features - jpsonic/jpsonic GitHub Wiki
To achieve sustainable development, it is often important to clean up obsolete functions. In Jpsonic, if there are any concerns regarding the specifications or implementation of a legacy server's functionality, the functionality may be disabled by default.
Starting with v114, features marked as "deprecated" will be gradually removed.
You can check which features are currently suppressed by going to Settings > General > Suppressed legacy features
. Items listed here may be kept as is, removed, or reinstated with improvements.
The following may be revised in a later version or may remain as is.
Features suppressed | Reason | Remarks |
---|---|---|
Use Remember Me authentication | I haven't reviewed it in detail, but it seems like the encryption isn't strong enough. | The first thing to do is to fix the password related functionality. Let's improve their quality first. Remember Me is more of a last thing to do. |
Use Internet TV/Radio | Its functionality remains very low because few people maintain it. | You have to stop and think about whether that really has anything to do with Selfhosted. If only an implementation relays external streaming, it may only technically introduce drawbacks and risks. (Podcasts are downloads, not relays. You can even run a security scan before playing. Technically it's a different kind of structure) No active removal, and improvements are desired but are of very low priority. |
Use Jsonp | Considered undesirable in modern times for security reasons | Since it is one of the definitions of Subsonic API, it will not be actively deleted. |
Anything marked as "Deprecated" will likely be removed in the near future.
Features suppressed | Reason | Remarks |
---|---|---|
Use Search Index Details | It is not a function of the media server. That would be a debug feature | Please use Lucene Luke |
Use Information about database tables | It is not a function of the media server. That would be a debug feature | Please use some SQL tool |
Use Chromecast | Because a very low quality Javascript called cast_sender.js is used. | I'm not negative about Chromecast. However, I think that handling it on the browser is not efficient. Please use UPnP Apps that support Chromecast, such as BubbleUPnP. It will have more powerful browsing/searching and Cast integration. |
Use Party Mode | The functionality is unclear, especially for first-time users. The implementation is also complicated. | This is to suppress some functions to avoid malfunctions. In my personal opinion, it would be better to find a better way to avoid malfunctions or to keep the functionality more general. It's too complicated and can be a blocker to web page maintenance. |
These are clearly features that have had some or all of the code removed. Note that some features were removed because they were more in need of a better alternative than completely abandoned.
Some users may be disappointed to see Sonos and Jukebox removed. Technically, I should be able to create something practical all by myself. However, those are not core features. Core processes such as Browsing, Search, and Scan are more important. On the other hand, there are fewer people who can maintain them. Please understand that there will be some degree of priority.
Technically, features such as these bonus features and lyrics information are loosely related to the design of the core functionality. It is even possible to create a Wrapper Server if a good quality Subsonic server exists. It doesn't even need to be implemented in Java. In other words, the idea is not to make the main body bloated with everything, but it is also possible to separate it. If there are developers who seriously think about this kind of thing, collaboration is possible. Do you think you can create related microservices using Docker?
Version | Features removed | Reason | Remarks |
---|---|---|---|
v114.2.0 | Publish server log to general users | Currently, users with general privileges cannot view logs unless the settings are changed. This switch will be removed and changed to only visible to admins. In the first place, it is not a very common design for Apps to have a view that allows you to view server logs. | The concept of relying on constantly emitted logs to know what the server is doing is very bad design. Normally, the file log view itself is not necessary. Output to file logs would also need to be minimal. |
v114.2.0 | Publish network usage status to general users | As with logs, this would also be sufficient if available to the Admin. We must balance your desire to know what files other users are accessing with your desire not to be informed. | |
v114.2.0 | NowPlaying(Web page) | The features to notify other users of the song being played on the right side of the screen will be removed. (Information on the song being played by other users, not information on the song being played by you) There would be no need for the functionality. It also contained many inappropriate implementations. | Subsonic has a chat feature. The idea is to find out what songs other people are listening to and talk to them via chat. This is often seen on music-related SNS. It's probably not worth the server resources to achieve this on a personal server. |
v114.2.0 | Publish playlist on Posdcast | In Subsonic/Airsonic, a mechanism is enabled in which Playlists are published as Podcasts. In Jpsonic, this was suppressed by Options. This is unnecessary and will be removed. | t's bad design to expose or accept anything without the notice for user. If we really need it, we should develop something of higher quality. If not, it's better not to have it. |
v114.2.0 | External player | I don't completely deny m3u. However, local app launch via m3u by the browser is a lost technology. In the heyday of RealMedia/RealPlayer, which used to have no guard against security, it was possible to play music with external apps from the standard OS/browser without relying on browser plug-ins. Please note that this subsonic feature was designed during this era. Modern browsers do not allow m3u to launch external apps directly. For security reasons, downloading rather than direct execution is the default behavior. | |
v114.2.0 | Copy non-ascii name files when transcoding | This is a Windows-only process that has been around since the early days of Subsonic, and is an implementation of a workaround for a bug in ffmpeg back then. For files whose file path is "??????", the file is copied to a tmp file with a random alphanumeric name during transcoding, and the copy destination is passed to ffmpeg. Not needed now. | What happens if you do this for a song that is several hundred MB long...? |
v114.2.0 | Remove track number from ID3 song title | There is a specification from Subsonic that if the song name cannot be obtained from the tag, it will determine the song name by predicting it from the file name. At this time, if a prefix that looks like a track number is added to the beginning of the file name, it will be removed. Strictly speaking, there is a case where this is not possible, and if the 10th song happens to be "10 Years Today", it will malfunction. The problem is that even if the correct value is entered in the ID3 tag, the value is manipulated. Overprocessing. | This feature was retained out of consideration for users who rely on this feature. However, strictly speaking it is a bug. Therefore, unnecessary processing will be removed. |
v114.2.0 | Clean-up | Jpsonic has been modified to automatically perform the process equivalent to cleanup during scanning, so it is not necessary. | As a related feature, a music folder archive function will be added in a later version. This prevents data from being automatically deleted even if the file itself no longer exists. |
v114.2.0 | Verbose folder checks | When accessing a music folder, a check is made to see if the music folder exists. The existence check itself is considered meaningless because it becomes meaningless the moment the check is performed, and the theory in Java is to detect it as a runtime error. | This process is inefficient on certain OSes and JVMs and can cause serious problems depending on the number of music folders. It's almost like a bug. |
v111.6.0 | Refresh buttons | This button is meaningless as fast access mode has been removed in v111.2.0. It was deleted. | |
v111.6.0 | Database integrity check | This is a data check that was present in the internal details of About. Removed because it is unnecessary in Jpsonic | |
v111.2.0 | Fast access mode | When the high-speed access mode is OFF, it is possible to cause an overflow from the web screen using a specific procedure (reproducible with Subsonic), so it has been deleted. In Jpsonic, the initial value was set to ON as a temporary support, but this has been removed. In Jpsonic, fast access mode is always ON, which means it is mandatory to scan before browsing. | The partial scan that Subsonic wanted to achieve could probably be achieved by other methods as well. |
v110.2.0 | SHOUTcast | SHOUTcast doesn't have a lot of traffic worldwide, and its usage is unevenly distributed. There is little point in maintaining the server function (aside from the client). The disadvantages of leaving unverified code against cross-site scripting are greater. | |
v110.1.0 | Sonos | Suppressed in v109.3.0 due to low quality. It was later removed because it caused problems when running Spring tests with certain IDEs. In any case, the implementation is outdated and probably won't work with current Sonos. Ever since Sonos' dispute with Google over patent rights, Jpsonic has focused on improving the quality of UPnP. One of the benefits of Open Source is that it avoids Vendor lock-in. | Chrome Cast and Sonos both use UPnP technology. Repurposing is possible if necessary, but reinventing the wheel is best avoided if possible. As a matter of fact, it is possible to send to various devices using UPnP as a window. e.g Highly reusable configuration Don't you think core functionality should take priority when it comes to time spent improving quality and usability? |
v110.1.0 | Java Jukebox | It was suppressed in v109.3.0 due to poor implementation quality. It was later removed to support Java 16 and later. This is an implementation that is out of the question from birth, as it violates the prohibition of "Don't use Sun's packages." |
Should Not call 'sun' Packages JEP 396 |
v108.0.0 | Artist images for web pages | This is because the images on Last.fm are no longer available. | It may be reimplemented in a different spec. In fact, Jpsonic's cover art process has been improved overall, with the exception of this. (First priority was to remove glitches in image processing.) |
Airsonic era | Path search | This led to irregularities in analysis and cost calculations, and incorrect searches. Also, in general, it may be considered bad design for users to search internal file paths on the server. | Of course, it is possible to implement a fully functional file path search. However, it seems that this is not a very common feature. |