sismics / music Goto Github PK
View Code? Open in Web Editor NEWModern web-based music server
License: GNU General Public License v2.0
Modern web-based music server
License: GNU General Public License v2.0
org.h2.jdbc.JdbcSQLException: Row not found when trying to delete from index "PUBLIC.T_AUTHENTICATION_TOKEN_DATA: 25467 25468"; SQL statement:
update T_AUTHENTICATION_TOKEN ato set ato.AUT_LASTCONNECTIONDATE_D = ? where ato.AUT_ID_C = ? [90112-175]
This is a fixed H2 bug, see: https://code.google.com/p/h2database/issues/detail?id=566
Upgrade the database to the latest version.
Don't return the full (unpaginated) list on 1st load, as it can take a long time depending on the number of albums
Copy the album art into albumart.jpg in the album folder
In the album list (#/music/albums/), the info "Artist" - "Album" is shown underneath the album art.
A click on this label will always lead to the album page.
It would be cool to separate the label in 2 parts, so a click on the Artist will lead directly to the artist page.
It is uneffective
It will prevent a possible failure when copying a cover into a diretory, or updating ID3 tags
20 Jul 2014 14:41:44,566 ERROR
com.sismics.rest.exception.ServerException.<init>(ServerException.java:36)
TagError: Error tagging the file
org.jaudiotagger.audio.exceptions.CannotWriteException: Cannot make
changes to file /var/music/importaudio/Pumpkin - SILENCE RADIO
(JUKEBOX CHAMPIONS REMIX) feat. Pugs Atomz - prod. Jukebox Champions -
scratches DJ Lyrik.mp3
at org.jaudiotagger.audio.generic.AudioFileWriter.precheckWrite(AudioFileWriter.java:280)
at org.jaudiotagger.audio.generic.AudioFileWriter.write(AudioFileWriter.java:308)
at org.jaudiotagger.audio.AudioFileIO.writeFile(AudioFileIO.java:334)
at org.jaudiotagger.audio.AudioFileIO.write(AudioFileIO.java:164)
at com.sismics.music.rest.resource.ImportResource.tag(ImportResource.java:222)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:406)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:350)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:106)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:259)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:319)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:236)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1028)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:373)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:219)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:598)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1367)
at com.sismics.util.filter.TokenBasedSecurityFilter.doFilter(TokenBasedSecurityFilter.java:119)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)
at com.sismics.util.filter.RequestContextFilter.doFilter(RequestContextFilter.java:101)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1338)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)
It's useless
LastFmService.java@297
Use file created date to fill the "order" idv3 tag.
Steps to reproduce :
The fields should be validated only after the form is submitted
I think we should store the corrected names (artist/album/track) returned from Last.fm when played, and pass these one when loving the track.
Add a button to kill the youtube-dl process
Currently it seems stuck to 0.
Steps to reproduce :
Sort by last modification (same as ls -lt)
If I drop a new "albumart.jpg" into an album folder, the album art is not updated.
I tried immediate and full rescan.
https://www.youtube.com/watch?v=_T8ve7GfJGY
The logs indicates that the conversion is stuck after the last step:
Deleting original file /var/music/importaudio/BADBADNOTGOOD - Kaleidoscope (Kaytranada's Flip).m4a (pass -k to keep)
I can't see any youtube-dl or ffmpeg process running.
Feature to create a magic playlist based on love status, play count and creation date.
Would it be possible to add additional id3 tags in this screen?
Especially the track n# when importing an album from Bandcamp etc
It is too slow right now
Current navigation makes it difficult to navigate in the collection:
It would be best if there was no reloading time and the position was kept (see how it's done in Google Music for reference).
Steps to reproduce :
Add a resource to load album art at "medium" resolution (322*322px)
11-30 19:26:59.365 587-2501/system_process I/MediaFocusControl﹕ AudioFocus abandonAudioFocus() from android.media.AudioManager@336b9330com.sismics.music.service.AudioFocusHelper@32c67ba9
11-30 19:27:08.155 5949-5949/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.sismics.music, PID: 5949
java.lang.RuntimeException: Unable to start receiver com.sismics.music.service.MusicIntentReceiver: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.sismics.music.action.PAUSE }
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2586)
at android.app.ActivityThread.access$1700(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.sismics.music.action.PAUSE }
at android.app.ContextImpl.validateServiceIntent(ContextImpl.java:1674)
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1703)
at android.app.ContextImpl.startService(ContextImpl.java:1687)
at android.content.ContextWrapper.startService(ContextWrapper.java:515)
at android.content.ContextWrapper.startService(ContextWrapper.java:515)
at com.sismics.music.service.MusicIntentReceiver.onReceive(MusicIntentReceiver.java:38)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2579)
at android.app.ActivityThread.access$1700(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
11-30 19:27:12.495 587-1037/system_process I/ActivityManager﹕ Process com.sismics.music (pid 5949) has died
Buttons: Play, add to playlist, and Like
Same principle as on the playlist
I think especially the "Like" button is confusing right now, we don't know for sur if a tracked has been liked or not (is it a solid heart icon?)
Without having to hit the "refresh" button
Steps to reproduce :
Only the final .mp3 shoud be shown, and be allowed to tag only after the encoding is complete.
Steps to reproduce :
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.