INFO: Java 1.8.0_322 Amazon.com Inc. (64-bit)
INFO: Linux 4.4.0-1128-aws amd64
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/src/app/build/libs/sonarlint-core-2.17.0.899.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/src/app/build/libs/sonarlint-cli-2.1.0.566.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
INFO: Index files
INFO: Invalid character encountered in file '/code/public/upnp/images/icon120.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/upnp/images/icon48.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/upnp/images/icon48.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/upnp/images/icon120.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/upnp/images/upnp.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/upnp/images/icon32.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/upnp/images/icon32.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/favicon.ico' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/templates/jplayer.midnight.black.seeking.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/templates/fonts/dejavusanscondensed.ttf' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/templates/fonts/dejavusanscondensed.eot' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/templates/fonts/dejavusanscondensed.woff' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_add.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_stop.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_next.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_admin.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_play.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_playlist_add.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_home.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_random.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_play_add.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_edit.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_delete.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_add_user.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_disable.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_enable.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_plugin.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_feed.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_logout.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_all.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_view.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_prev.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/icons/icon_pause.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/missing.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/videoplay.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/ajax-loader.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/blankmovie.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/blankalbum.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/ajax-loader2-light.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/ratings/star_rating.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/ratings/star_rating.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/ajax-loader2.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/blank-pixel.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/ajax-loader-light.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/ampache-light.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/themes/reborn/images/ampache-dark.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/default/sprite_next.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/default/loader.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/default/sprite_y.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/default/sprite_prev.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/default/default_thumb.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/default/sprite.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/default/sprite_x.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/light_rounded/btnPrevious.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/light_rounded/loader.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/light_rounded/btnNext.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/light_rounded/default_thumbnail.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/light_rounded/sprite.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/light_square/btnPrevious.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/light_square/loader.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/light_square/btnNext.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/light_square/default_thumbnail.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/light_square/sprite.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_rounded/btnPrevious.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_rounded/loader.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_rounded/btnNext.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_rounded/contentPattern.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_rounded/default_thumbnail.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_rounded/sprite.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_square/btnPrevious.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_square/loader.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_square/btnNext.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_square/contentPattern.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_square/default_thumbnail.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/dark_square/sprite.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/facebook/btnPrevious.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/facebook/loader.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/facebook/btnNext.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/facebook/contentPatternRight.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/facebook/contentPatternLeft.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/facebook/contentPatternTop.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/facebook/default_thumbnail.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/facebook/sprite.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/prettyPhoto/facebook/contentPatternBottom.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/fullscreen/1.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/fullscreen/high.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/fullscreen/wide.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/fullscreen/5.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/fullscreen/2.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/fullscreen/3.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/fullscreen/6.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/fullscreen/4.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/fullscreen/huge.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/thumbnails/t_1.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/thumbnails/flash-logo.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/thumbnails/t_4.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/thumbnails/t_2.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/thumbnails/t_5.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/thumbnails/t_3.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/prettyphoto/images/thumbnails/quicktime-logo.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jplayer/jquery.jplayer.swf' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/UberViz/loader.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/rhinoslider/img/slider/05.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/rhinoslider/img/slider/04.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/rhinoslider/img/slider/02.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/rhinoslider/img/slider/03.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/rhinoslider/img/slider/01.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/rhinoslider/img/rhinoslider-sprite.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-jplayer-midnight-black/jplayer.midnight.black.interface.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-jplayer-midnight-black/jplayer.midnight.black.seeking.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-jplayer-midnight-black/jplayer.midnight.black.video.play.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-jplayer-midnight-black/jplayer.midnight.black.playlist.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-jplayer-midnight-black/jplayer.midnight.black.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/animated-overlay.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-icons_222222_256x240.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-icons_454545_256x240.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-bg_glass_65_ffffff_1x400.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-bg_highlight-soft_75_cccccc_1x100.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-bg_flat_0_aaaaaa_40x100.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-bg_flat_75_ffffff_40x100.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-bg_glass_75_e6e6e6_1x400.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/animated-overlay.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-icons_cd0a0a_256x240.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-bg_glass_95_fef1ec_1x400.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-bg_glass_75_dadada_1x400.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-bg_glass_55_fbf9ee_1x400.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-icons_888888_256x240.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/lib/modules/jquery-ui-ampache/images/ui-icons_2e83ff_256x240.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_play_next.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/fileupload-border.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/topmenu-upload.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_share_twitter.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_add.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_stop.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_server_lightning.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_lock.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_fullscreen.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_multilines.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/background.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_share.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_duckduckgo.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_link.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_flag.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_visualizer.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_next.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_admin.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/topmenu-artist.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/topmenu-album.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/blankuser.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_tick.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_play.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_playlist_add.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_sort.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_wikipedia.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_musicbrainz.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_stop_hover.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_wand.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_share_facebook.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_volumeup_light.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_home.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_replaygain_dark.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/background.light.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/topmenu-radio.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_batch_download.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/blankalbum.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_preferences.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_download.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/topmenu-logout.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_run.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/fileupload-icons.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_share_googleplus.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_cancel.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/topmenu-playlist.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_info.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_add2.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_volumeup.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_flag_off.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_random.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_play_add.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_replaygain.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/ratings/star_rating.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/ratings/x.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/ratings/x_off.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_edit2.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_prev_hover.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_volumemute.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/topmenu-tagcloud.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_edit.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_playlist_add_all.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_refresh.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_delete.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_money.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_add_user.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/ampache-reborn-dark.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_broadcast.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/topmenu-home.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_disable.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_lastfm.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_image.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_play_hover.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_enable.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_album.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_clean.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_plugin.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_flow.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_add_wanted.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/blank-pixel.gif' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_file_refresh.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_volumedn.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/top_bg.jpg' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_save.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/topmenu-favorite.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_drag.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/topmenu-flag.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_next_hover.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_play_preview.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/ampache.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_statistics.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_feed.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_pause_hover.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_ampache.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_add12.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_logout.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_minimize.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_equalizer.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_add_key.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_all.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_add_tag.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_mail.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_google.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_view.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_upload.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_microphone.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_comment.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/ampache-light.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_prev.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/close.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/ampache-dark.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_pause.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_cog.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_play_add_preview.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_world_link.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/ampache-reborn-light.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/public/images/icon_playlist_loop.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/he_IL/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/fr_BE/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/ru_RU/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/es_ES/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/ar_SA/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/nb_NO/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/uk_UA/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/sv_SE/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/de_CH/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/hi_IN/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/ro_RO/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/nl_NL/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/id_ID/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/ko_KR/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/en_AU/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/zh_CN/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/en_GB/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/ja_JP/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/cs_CZ/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/zh_TW/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/tr_TR/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/fa_IR/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/hu_HU/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/fi_FI/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/zh_SG/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/gl_ES/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/de_DE/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/fr_FR/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/pt_BR/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/da_DK/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/zh-Hant/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/pl_PL/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/el_GR/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/vi_VN/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/ca_ES/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/locale/it_IT/LC_MESSAGES/messages.mo' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/resources/fonts/FreeMono.ttf' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/docs/examples/ampache_cron.xml' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: 2391 files indexed
INFO: 1915 source files to be analyzed
ERROR: Unable to parse file: /code/src/Module/Util/RequestParser.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\Util;
27:
28: use Ampache\Module\System\LegacyLogger;
29: use Psr\Log\LoggerInterface;
30:
31: /**
32: * Provides utility methods related to frontend request parsing
33: */
34: final class RequestParser implements RequestParserInterface
35: {
36: private LoggerInterface $logger;
^
37:
38: public function __construct(
39: LoggerInterface $logger
40: ) {
41: $this->logger = $logger;
42: }
43:
44: /**
45: * Return a $_REQUEST variable instead of calling directly
46: */
ERROR: Unable to parse file: /code/src/Module/Util/FileSystem/FileNameConverter.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\Util\FileSystem;
27:
28: use Ahc\Cli\IO\Interactor;
29: use Ampache\Config\ConfigContainerInterface;
30: use Ampache\Repository\Model\Catalog;
31: use Ampache\Module\System\Core;
32: use Ampache\Module\System\Dba;
33:
34: final class FileNameConverter implements FileNameConverterInterface
35: {
36: private ConfigContainerInterface $configContainer;
^
37:
38: public function __construct(
39: ConfigContainerInterface $configContainer
40: ) {
41: $this->configContainer = $configContainer;
42: }
43:
44: public function convert(
45: Interactor $interactor,
46: string $source_encoding,
ERROR: Unable to parse file: /code/src/Module/Util/Ui.php
ERROR: Parse error at line 50 column 13:
40:
41: /**
42: * A collection of methods related to the user interface
43: */
44: class Ui implements UiInterface
45: {
46: private static $_ticker;
47: private static $_icon_cache;
48: private static $_image_cache;
49:
50: private ConfigContainerInterface $configContainer;
^
51:
52: public function __construct(
53: ConfigContainerInterface $configContainer
54: ) {
55: $this->configContainer = $configContainer;
56: }
57:
58: /**
59: * find_template
60: *
ERROR: Unable to parse file: /code/src/Module/Util/VaInfo.php
ERROR: Parse error at line 136 column 13:
126: protected $_raw = array();
127: protected $_getID3 = null;
128: protected $_forcedSize = 0;
129: protected $_file_encoding = '';
130: protected $_file_pattern = '';
131: protected $_dir_pattern = '';
132:
133: private $_broken = false;
134: private $_pathinfo;
135:
136: private UserRepositoryInterface $userRepository;
^
137:
138: private ConfigContainerInterface $configContainer;
139:
140: private LoggerInterface $logger;
141:
142: /**
143: * Constructor
144: *
145: * This function just sets up the class, it doesn't pull the information.
146: *
ERROR: Unable to parse file: /code/src/Module/Util/AjaxUriRetriever.php
ERROR: Parse error at line 32 column 13:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Module\Util;
27:
28: use Ampache\Config\ConfigContainerInterface;
29:
30: final class AjaxUriRetriever implements AjaxUriRetrieverInterface
31: {
32: private ConfigContainerInterface $configContainer;
^
33:
34: public function __construct(
35: ConfigContainerInterface $configContainer
36: ) {
37: $this->configContainer = $configContainer;
38: }
39:
40: public function getAjaxUri(): string
41: {
42: return sprintf(
ERROR: Unable to parse file: /code/src/Module/Util/UtilityFactory.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Repository\UserRepositoryInterface;
30: use Curl\Curl;
31: use Psr\Log\LoggerInterface;
32:
33: /**
34: * Factory to create utility classes like Mailer
35: */
36: final class UtilityFactory implements UtilityFactoryInterface
37: {
38: private UserRepositoryInterface $userRepository;
^
39:
40: private ConfigContainerInterface $configContainer;
41:
42: private LoggerInterface $logger;
43:
44: public function __construct(
45: UserRepositoryInterface $userRepository,
46: ConfigContainerInterface $configContainer,
47: LoggerInterface $logger
48: ) {
ERROR: Unable to parse file: /code/src/Module/Util/WebFetcher/WebFetcher.php
ERROR: Parse error at line 44 column 13:
34: use Psr\Log\LoggerInterface;
35:
36: /**
37: * Provides functionality for downloading web-content
38: */
39: final class WebFetcher implements WebFetcherInterface
40: {
41: /** @var int Curl operation timeout in seconds */
42: private const TIMEOUT = 300;
43:
44: private ConfigContainerInterface $config;
^
45:
46: private UtilityFactoryInterface $utilityFactory;
47:
48: private LoggerInterface $logger;
49:
50: public function __construct(
51: ConfigContainerInterface $config,
52: UtilityFactoryInterface $utilityFactory,
53: LoggerInterface $logger
54: ) {
ERROR: Unable to parse file: /code/src/Module/Util/Slideshow.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\Util;
27:
28: use Ampache\Module\Statistics\Stats;
29: use Ampache\Repository\Model\ModelFactoryInterface;
30: use Ampache\Repository\Model\Plugin;
31: use Ampache\Module\System\Core;
32: use Ampache\Repository\Model\Song;
33:
34: final class Slideshow implements SlideshowInterface
35: {
36: private ModelFactoryInterface $modelFactory;
^
37:
38: public function __construct(
39: ModelFactoryInterface $modelFactory
40: ) {
41: $this->modelFactory = $modelFactory;
42: }
43:
44: public function getCurrentSlideshow(): array
45: {
46: $user_id = Core::get_global('user')->id ?? -1;
ERROR: Unable to parse file: /code/src/Module/Util/ZipHandler.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\System\LegacyLogger;
31: use Psr\Log\LoggerInterface;
32: use ZipStream\Exception;
33: use ZipStream\ZipStream;
34:
35: final class ZipHandler implements ZipHandlerInterface
36: {
37: private ConfigContainerInterface $configContainer;
^
38:
39: private LoggerInterface $logger;
40:
41: public function __construct(
42: ConfigContainerInterface $configContainer,
43: LoggerInterface $logger
44: ) {
45: $this->configContainer = $configContainer;
46: $this->logger = $logger;
47: }
ERROR: Unable to parse file: /code/src/Module/Util/Rss/AmpacheRss.php
ERROR: Parse error at line 51 column 13:
41: use Ampache\Repository\Model\ModelFactoryInterface;
42: use Ampache\Repository\Model\Podcast;
43: use Ampache\Repository\Model\Song;
44: use Ampache\Repository\Model\User;
45: use Ampache\Repository\Model\Video;
46: use Ampache\Repository\ShoutRepositoryInterface;
47: use Ampache\Repository\UserRepositoryInterface;
48:
49: final class AmpacheRss implements AmpacheRssInterface
50: {
51: private UserRepositoryInterface $userRepository;
^
52:
53: private ShoutRepositoryInterface $shoutRepository;
54:
55: private ShoutObjectLoaderInterface $shoutObjectLoader;
56:
57: private RssPodcastBuilderInterface $rssPodcastBuilder;
58:
59: private ModelFactoryInterface $modelFactory;
60:
61: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Util/Rss/RssPodcastBuilder.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Repository\Model\User;
31: use PhpTal\PHPTAL;
32:
33: /**
34: * Builds ths rss-podcast xml structure
35: *
36: * Uses phptal and a podcast-template to build the podcast xml
37: */
38: final class RssPodcastBuilder implements RssPodcastBuilderInterface
39: {
40: private TalFactoryInterface $talFactory;
^
41:
42: public function __construct(
43: TalFactoryInterface $talFactory
44: ) {
45: $this->talFactory = $talFactory;
46: }
47:
48: /**
49: * Returns the rss-podcast xml
50: */
ERROR: Unable to parse file: /code/src/Module/Util/Rss/Surrogate/PlayableItemRssItemAdapter.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Repository\Model\Podcast_Episode;
33: use Ampache\Repository\Model\Song;
34: use Ampache\Repository\Model\User;
35: use Generator;
36:
37: /**
38: * Abstraction layer for creating rss/podcasts from playable-items
39: */
40: final class PlayableItemRssItemAdapter implements RssItemInterface
41: {
42: private ModelFactoryInterface $modelFactory;
^
43:
44: private playable_item $playable;
45:
46: private User $user;
47:
48: public function __construct(
49: ModelFactoryInterface $modelFactory,
50: playable_item $playable,
51: User $user
52: ) {
ERROR: Unable to parse file: /code/src/Module/Util/Captcha/easy_captcha.php
ERROR: Parse error at line 88 column 12:
78: public $ajax_tries;
79: public $created;
80: public $expires;
81: public $failures;
82: public $grant;
83: public $id;
84: public $image;
85: public $maxpasses;
86: public $passed;
87: /** @var list<string> */
88: public array $prev = [];
^
89: public $saved;
90: public $sent;
91: public $shortcut;
92: public $text;
93: public $tries;
94:
95: #-- init data
96: /**
97: * easy_captcha constructor.
98: * @param $captcha_id
ERROR: Unable to parse file: /code/src/Module/Util/Mailer.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Module\System\Dba;
30: use PHPMailer\PHPMailer\Exception;
31: use PHPMailer\PHPMailer\PHPMailer;
32:
33: /**
34: * This class handles the Mail
35: */
36: final class Mailer implements MailerInterface
37: {
38: private ?string $message = null;
^
39:
40: private ?string $subject = null;
41:
42: private ?string $recipient = null;
43:
44: private ?string $recipient_name = null;
45:
46: private ?string $sender = null;
47:
48: private ?string $sender_name = null;
ERROR: Unable to parse file: /code/src/Module/LastFm/LastFmQuery.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\System\Core;
30: use WpOrg\Requests\Requests;
31: use SimpleXMLElement;
32:
33: final class LastFmQuery implements LastFmQueryInterface
34: {
35: private const API_URL = 'http://ws.audioscrobbler.com/2.0/?method=';
36:
37: private ConfigContainerInterface $configContainer;
^
38:
39: public function __construct(
40: ConfigContainerInterface $configContainer
41: ) {
42: $this->configContainer = $configContainer;
43: }
44:
45: /**
46: * @throws Exception\LastFmQueryFailedException
47: */
ERROR: Unable to parse file: /code/src/Module/Metadata/MetadataManager.php
ERROR: Parse error at line 45 column 13:
35:
36: /**
37: * Manages the access to metadata related data
38: */
39: final class MetadataManager implements MetadataManagerInterface
40: {
41: /**
42: * Cache variable for disabled metadata field names
43: * @var null|list<string>
44: */
45: private ?array $disabledMetadataFields = null;
^
46:
47: private MetadataRepositoryInterface $metadataRepository;
48:
49: private MetadataFieldRepositoryInterface $metadataFieldRepository;
50:
51: private ConfigContainerInterface $configContainer;
52:
53: public function __construct(
54: MetadataRepositoryInterface $metadataRepository,
55: MetadataFieldRepositoryInterface $metadataFieldRepository,
ERROR: Unable to parse file: /code/src/Module/Label/Deletion/LabelDeleter.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Module\Art\ArtCleanupInterface;
29: use Ampache\Repository\Model\Label;
30: use Ampache\Repository\Model\Rating;
31: use Ampache\Repository\Model\Userflag;
32: use Ampache\Repository\LabelRepositoryInterface;
33: use Ampache\Repository\ShoutRepositoryInterface;
34: use Ampache\Repository\UserActivityRepositoryInterface;
35:
36: final class LabelDeleter implements LabelDeleterInterface
37: {
38: private ShoutRepositoryInterface $shoutRepository;
^
39:
40: private LabelRepositoryInterface $labelRepository;
41:
42: private UserActivityRepositoryInterface $useractivityRepository;
43:
44: private ArtCleanupInterface $artCleanup;
45:
46: public function __construct(
47: ShoutRepositoryInterface $shoutRepository,
48: LabelRepositoryInterface $labelRepository,
ERROR: Unable to parse file: /code/src/Module/Label/LabelListUpdater.php
ERROR: Parse error at line 31 column 13:
21: *
22: */
23:
24: namespace Ampache\Module\Label;
25:
26: use Ampache\Repository\LabelRepositoryInterface;
27: use DateTime;
28:
29: final class LabelListUpdater implements LabelListUpdaterInterface
30: {
31: private LabelRepositoryInterface $labelRepository;
^
32:
33: public function __construct(
34: LabelRepositoryInterface $labelRepository
35: ) {
36: $this->labelRepository = $labelRepository;
37: }
38:
39: /**
40: * Update the labels list based on a comma separated list (ex. label1,label2,label3,..)
41: */
ERROR: Unable to parse file: /code/src/Module/Wanted/MissingArtistFromMusicBrainzRetriever.php
ERROR: Parse error at line 44 column 13:
34: * Uses MusicBrainz to retrieve missing artist data
35: *
36: * @phpstan-type MissingArtistResult array{
37: * mbid: string,
38: * name: string,
39: * link: string
40: * }
41: */
42: final class MissingArtistFromMusicBrainzRetriever implements MissingArtistRetrieverInterface
43: {
44: private MusicBrainz $musicBrainz;
^
45:
46: private CacheInterface $cache;
47:
48: private LoggerInterface $logger;
49:
50: public function __construct(
51: MusicBrainz $musicBrainz,
52: CacheInterface $cache,
53: LoggerInterface $logger
54: ) {
ERROR: Unable to parse file: /code/src/Module/Wanted/MissingArtistFinder.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Module\Wanted;
27:
28: use MusicBrainz\Exception;
29: use MusicBrainz\Filters\ArtistFilter;
30: use MusicBrainz\MusicBrainz;
31:
32: final class MissingArtistFinder implements MissingArtistFinderInterface
33: {
34: private MusicBrainz $musicBrainz;
^
35:
36: public function __construct(
37: MusicBrainz $musicBrainz
38: ) {
39: $this->musicBrainz = $musicBrainz;
40: }
41:
42: /**
43: * @return array<array<string, string>>
44: *
ERROR: Unable to parse file: /code/src/Module/Wanted/WantedManager.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\System\Dba;
32: use Ampache\Repository\Model\database_object;
33: use Ampache\Repository\Model\Plugin;
34: use Ampache\Repository\Model\User;
35: use Ampache\Repository\Model\Wanted;
36: use Ampache\Repository\WantedRepositoryInterface;
37: use MusicBrainz\MusicBrainz;
38:
39: final class WantedManager implements WantedManagerInterface
40: {
41: private WantedRepositoryInterface $wantedRepository;
^
42:
43: private MusicBrainz $musicBrainz;
44:
45: public function __construct(
46: WantedRepositoryInterface $wantedRepository,
47: MusicBrainz $musicBrainz
48: ) {
49: $this->wantedRepository = $wantedRepository;
50: $this->musicBrainz = $musicBrainz;
51: }
ERROR: Unable to parse file: /code/src/Module/Database/DatabaseCharsetUpdater.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Database;
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\System\Dba;
30:
31: final class DatabaseCharsetUpdater implements DatabaseCharsetUpdaterInterface
32: {
33: private ConfigContainerInterface $configContainer;
^
34:
35: public function __construct(ConfigContainerInterface $configContainer)
36: {
37: $this->configContainer = $configContainer;
38: }
39:
40: public function update(): void
41: {
42: $database = $this->configContainer->get('database_name');
43: $translated_charset = Dba::translate_to_mysqlcharset($this->configContainer->get('site_charset'));
ERROR: Unable to parse file: /code/src/Module/Playlist/PlaylistLoader.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Playlist;
27:
28: use Ampache\Repository\Model\ModelFactoryInterface;
29: use Ampache\Repository\Model\Playlist;
30:
31: final class PlaylistLoader implements PlaylistLoaderInterface
32: {
33: private ModelFactoryInterface $modelFactory;
^
34:
35: public function __construct(
36: ModelFactoryInterface $modelFactory
37: ) {
38: $this->modelFactory = $modelFactory;
39: }
40:
41: public function loadByUserId(int $userId): array
42: {
43: $playlists = Playlist::get_playlists($userId, '', true, false);
ERROR: Unable to parse file: /code/src/Module/Catalog/Export/ItunesExporter.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Module\Catalog\Export;
27:
28: use Ampache\Repository\Model\Catalog;
29: use Ampache\Repository\Model\Song;
30: use Ampache\Repository\SongRepositoryInterface;
31:
32: final class ItunesExporter implements CatalogExporterInterface
33: {
34: private SongRepositoryInterface $songRepository;
^
35:
36: public function __construct(
37: SongRepositoryInterface $songRepository
38: ) {
39: $this->songRepository = $songRepository;
40: }
41:
42: /**
43: * Exports all songs
44: *
ERROR: Unable to parse file: /code/src/Module/Catalog/Export/CatalogExportFactory.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\Catalog\Export;
27:
28: use Ampache\Repository\Model\ModelFactoryInterface;
29: use Ampache\Repository\SongRepositoryInterface;
30:
31: /**
32: * Builds exporter classes
33: */
34: final class CatalogExportFactory implements CatalogExportFactoryInterface
35: {
36: private SongRepositoryInterface $songRepository;
^
37:
38: private ModelFactoryInterface $modelFactory;
39:
40: public function __construct(
41: SongRepositoryInterface $songRepository,
42: ModelFactoryInterface $modelFactory
43: ) {
44: $this->songRepository = $songRepository;
45: $this->modelFactory = $modelFactory;
46: }
ERROR: Unable to parse file: /code/src/Module/Catalog/Export/CsvExporter.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Module\Catalog\Export;
27:
28: use Ampache\Repository\Model\Catalog;
29: use Ampache\Repository\Model\ModelFactoryInterface;
30: use Ampache\Repository\SongRepositoryInterface;
31:
32: final class CsvExporter implements CatalogExporterInterface
33: {
34: private SongRepositoryInterface $songRepository;
^
35:
36: private string $filePointer;
37: private ModelFactoryInterface $modelFactory;
38:
39: public function __construct(
40: SongRepositoryInterface $songRepository,
41: ModelFactoryInterface $modelFactory,
42: string $filePointer = 'php://output'
43: ) {
44: $this->songRepository = $songRepository;
ERROR: Unable to parse file: /code/src/Module/Catalog/Catalog_beetsremote.php
ERROR: Parse error at line 44 column 15:
34: /**
35: * This class handles all actual work in regards to remote Beets catalogs.
36: */
37: class Catalog_beetsremote extends Catalog
38: {
39: protected $version = '000001';
40: protected $type = 'beetsremote';
41: protected $description = 'Beets Remote Catalog';
42: protected $listCommand = 'item/query';
43:
44: protected string $uri = '';
^
45:
46: public int $catalog_id;
47:
48: /**
49: * get_create_help
50: * This returns hints on catalog creation
51: */
52: public function get_create_help(): string
53: {
54: return "<ul><li>Install Beets web plugin: http://beets.readthedocs.org/en/latest/plugins/web.html</li><li>Start Beets web server</li><li>Specify URI including port (like http://localhost:8337). It will be shown when starting Beets web in console.</li></ul>";
ERROR: Unable to parse file: /code/src/Module/Catalog/Catalog_beets.php
ERROR: Parse error at line 46 column 15:
36: /**
37: * This class handles all actual work in regards to local Beets catalogs.
38: */
39: class Catalog_beets extends Catalog
40: {
41: protected $version = '000001';
42: protected $type = 'beets';
43: protected $description = 'Beets Catalog';
44: protected $listCommand = 'ls';
45:
46: protected string $beetsdb = '';
^
47:
48: public int $catalog_id;
49:
50: /**
51: * get_create_help
52: * This returns hints on catalog creation
53: */
54: public function get_create_help(): string
55: {
56: return "<ul><li>Fetch songs from beets command over CLI.</li><li>You have to ensure that the beets command ( beet ), the music directories and the Database file are accessible by the Webserver.</li></ul>";
ERROR: Unable to parse file: /code/src/Module/Catalog/Catalog_subsonic.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\System\AmpError;
34: use Ampache\Module\System\Dba;
35: use Ampache\Module\Util\Ui;
36: use Exception;
37:
38: /**
39: * This class handles all actual work in regards to remote Subsonic catalogs.
40: */
41: class Catalog_subsonic extends Catalog
42: {
43: private string $version = '000002';
^
44: private string $type = 'subsonic';
45: private string $description = 'Subsonic Remote Catalog';
46:
47: private int $catalog_id;
48:
49: public string $uri = '';
50: public string $username;
51: public string $password;
52:
53: /**
ERROR: Unable to parse file: /code/src/Module/Catalog/Catalog_dropbox.php
ERROR: Parse error at line 50 column 13:
40: use Kunnu\Dropbox\Dropbox;
41: use Kunnu\Dropbox\DropboxFile;
42: use Kunnu\Dropbox\Exceptions\DropboxClientException;
43: use ReflectionException;
44:
45: /**
46: * This class handles all actual work in regards to remote Dropbox catalogs.
47: */
48: class Catalog_dropbox extends Catalog
49: {
50: private string $version = '000002';
^
51: private string $type = 'dropbox';
52: private string $description = 'Dropbox Remote Catalog';
53: private int $count = 0;
54:
55: private int $catalog_id;
56: private string $apikey = '';
57: private string $secret;
58: private string $authcode;
59: private string $authtoken;
60:
ERROR: Unable to parse file: /code/src/Module/Catalog/GarbageCollector/CatalogGarbageCollector.php
ERROR: Parse error at line 56 column 13:
46: use Ampache\Repository\UserActivityRepositoryInterface;
47: use Ampache\Repository\UserRepositoryInterface;
48: use Ampache\Repository\WantedRepositoryInterface;
49:
50: /**
51: * This is a wrapper for all of the different database cleaning
52: * functions, it runs them in an order that resembles correctness.
53: */
54: final class CatalogGarbageCollector implements CatalogGarbageCollectorInterface
55: {
56: private AlbumRepositoryInterface $albumRepository;
^
57:
58: private BookmarkRepositoryInterface $bookmarkRepository;
59:
60: private ShoutRepositoryInterface $shoutRepository;
61:
62: private UserActivityRepositoryInterface $useractivityRepository;
63:
64: private UserRepositoryInterface $userRepository;
65:
66: private MetadataManagerInterface $metadataManager;
ERROR: Unable to parse file: /code/src/Module/Catalog/Update/UpdateCatalog.php
ERROR: Parse error at line 38 column 13:
28: use Ahc\Cli\IO\Interactor;
29: use Ampache\Config\AmpConfig;
30: use Ampache\Repository\Model\Album;
31: use Ampache\Repository\Model\Catalog;
32: use Ampache\Module\Catalog\GarbageCollector\CatalogGarbageCollectorInterface;
33: use Ampache\Module\System\Dba;
34: use PDOStatement;
35:
36: final class UpdateCatalog extends AbstractCatalogUpdater implements UpdateCatalogInterface
37: {
38: private CatalogGarbageCollectorInterface $catalogGarbageCollector;
^
39:
40: public function __construct(
41: CatalogGarbageCollectorInterface $catalogGarbageCollector
42: ) {
43: $this->catalogGarbageCollector = $catalogGarbageCollector;
44: }
45:
46: public function update(
47: Interactor $interactor,
48: bool $deactivateMemoryLimit,
ERROR: Unable to parse file: /code/src/Module/Catalog/Update/AddCatalog.php
ERROR: Parse error at line 35 column 13:
25:
26: namespace Ampache\Module\Catalog\Update;
27:
28: use Ahc\Cli\IO\Interactor;
29: use Ampache\Config\ConfigContainerInterface;
30: use Ampache\Config\ConfigurationKeyEnum;
31: use Ampache\Repository\Model\Catalog;
32:
33: final class AddCatalog extends AbstractCatalogUpdater implements AddCatalogInterface
34: {
35: private ConfigContainerInterface $configContainer;
^
36:
37: public function __construct(
38: ConfigContainerInterface $configContainer
39: ) {
40: $this->configContainer = $configContainer;
41: }
42: public function add(
43: Interactor $interactor,
44: string $catalogName,
45: string $catalogPath,
ERROR: Unable to parse file: /code/src/Module/Catalog/Catalog_Seafile.php
ERROR: Parse error at line 48 column 20:
38: use Ampache\Module\Util\Ui;
39: use Ampache\Module\Util\VaInfo;
40: use Exception;
41: use ReflectionException;
42:
43: /**
44: * This class handles all actual work in regards to remote Seafile catalogs.
45: */
46: class Catalog_Seafile extends Catalog
47: {
48: private static string $version = '000001';
^
49: private static string $type = 'seafile';
50: private static string $description = 'Seafile Remote Catalog';
51: private static string $table_name = 'catalog_seafile';
52:
53: /** @var SeafileAdapter seafile */
54: private $seafile = null;
55: private int $catalog_id;
56: private int $count = 0;
57:
58: private $api_key;
ERROR: Unable to parse file: /code/src/Module/Catalog/Catalog_local.php
ERROR: Parse error at line 55 column 13:
45: use Ampache\Module\Util\Recommendation;
46: use Ampache\Module\Util\Ui;
47: use Ampache\Module\Util\VaInfo;
48: use Exception;
49:
50: /**
51: * This class handles all actual work in regards to local catalogs.
52: */
53: class Catalog_local extends Catalog
54: {
55: private string $version = '000001';
^
56: private string $type = 'local';
57: private string $description = 'Local Catalog';
58:
59: private int $catalog_id;
60: private int $count = 0;
61: private array $songs_to_gather = array();
62: private array $videos_to_gather = array();
63:
64: public string $path = '';
65:
ERROR: Unable to parse file: /code/src/Module/Catalog/Catalog_remote.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\System\Dba;
35: use Ampache\Module\Util\Ui;
36: use AmpacheApi;
37: use Exception;
38:
39: /**
40: * This class handles all actual work in regards to remote catalogs.
41: */
42: class Catalog_remote extends Catalog
43: {
44: private string $version = '000001';
^
45: private string $type = 'remote';
46: private string $description = 'Ampache Remote Catalog';
47:
48: private int $catalog_id;
49:
50: public string $uri = '';
51: public string $username;
52: public string $password;
53:
54: /**
ERROR: Unable to parse file: /code/src/Module/Cli/ExportAlbumArtCommand.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Repository\Model\Catalog;
30: use Ampache\Module\Album\Export\AlbumArtExporterInterface;
31: use Ampache\Module\Album\Export\Exception\AlbumArtExportException;
32: use Ampache\Module\Album\Export\Writer\MetadataWriterTypeEnum;
33: use Ampache\Module\System\LegacyLogger;
34: use Psr\Container\ContainerInterface;
35: use Psr\Log\LoggerInterface;
36:
37: final class ExportAlbumArtCommand extends Command
38: {
39: private LoggerInterface $logger;
^
40:
41: private AlbumArtExporterInterface $albumArtExporter;
42:
43: private ContainerInterface $dic;
44:
45: public function __construct(
46: LoggerInterface $logger,
47: AlbumArtExporterInterface $albumArtExporter,
48: ContainerInterface $dic
49: ) {
ERROR: Unable to parse file: /code/src/Module/Cli/PrintTagsCommand.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\System\Dba;
30: use Ampache\Module\Util\UtilityFactoryInterface;
31: use Ampache\Module\Util\VaInfo;
32: use Ampache\Repository\Model\Catalog;
33: use Exception;
34:
35: final class PrintTagsCommand extends Command
36: {
37: private UtilityFactoryInterface $utilityFactory;
^
38:
39: public function __construct(
40: UtilityFactoryInterface $utilityFactory
41: ) {
42: parent::__construct('print:tags', T_('Print file tags'));
43:
44: $this->utilityFactory = $utilityFactory;
45:
46: $this
47: ->argument('<filename>', T_('File Path'))
ERROR: Unable to parse file: /code/src/Module/Cli/ComputeCacheCommand.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\Cache\ObjectCacheInterface;
30:
31: final class ComputeCacheCommand extends Command
32: {
33: private ObjectCacheInterface $objectCache;
^
34:
35: public function __construct(
36: ObjectCacheInterface $objectCache
37: ) {
38: parent::__construct('run:computeCache', T_('Update the object cache tables'));
39:
40: $this->objectCache = $objectCache;
41: }
42:
43: public function execute(): void
ERROR: Unable to parse file: /code/src/Module/Cli/UpdateDbCommand.php
ERROR: Parse error at line 35 column 13:
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Config\ConfigContainerInterface;
30: use Ampache\Module\Database\DatabaseCharsetUpdaterInterface;
31: use Ampache\Module\System\Dba;
32:
33: final class UpdateDbCommand extends Command
34: {
35: private ConfigContainerInterface $configContainer;
^
36:
37: private DatabaseCharsetUpdaterInterface $databaseCharsetUpdater;
38:
39: public function __construct(
40: ConfigContainerInterface $configContainer,
41: DatabaseCharsetUpdaterInterface $databaseCharsetUpdater
42: ) {
43: parent::__construct('run:updateDb', T_('Update the database collation and charset'));
44:
45: $this->configContainer = $configContainer;
ERROR: Unable to parse file: /code/src/Module/Cli/AddCatalogCommand.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\Catalog\Update\AddCatalogInterface;
30:
31: final class AddCatalogCommand extends Command
32: {
33: private AddCatalogInterface $addCatalog;
^
34:
35: public function __construct(
36: AddCatalogInterface $addCatalog
37: ) {
38: parent::__construct('run:addCatalog', T_('Create a local media catalog'));
39:
40: $this->addCatalog = $addCatalog;
41:
42: $this
43: ->argument('[catalogName]', T_('Catalog name'))
ERROR: Unable to parse file: /code/src/Module/Cli/HtaccessCommand.php
ERROR: Parse error at line 35 column 13:
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Config\ConfigContainerInterface;
30: use Ampache\Module\System\AmpError;
31: use Ampache\Module\System\InstallationHelperInterface;
32:
33: final class HtaccessCommand extends Command
34: {
35: private ConfigContainerInterface $configContainer;
^
36:
37: private InstallationHelperInterface $installationHelper;
38:
39: public function __construct(
40: ConfigContainerInterface $configContainer,
41: InstallationHelperInterface $installationHelper
42: ) {
43: parent::__construct('htaccess', T_('Create .htaccess files'));
44:
45: $this->configContainer = $configContainer;
ERROR: Unable to parse file: /code/src/Module/Cli/BroadcastCommand.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Config\ConfigContainerInterface;
30: use Ampache\Module\Api\Upnp_Api;
31:
32: final class BroadcastCommand extends Command
33: {
34: private ConfigContainerInterface $configContainer;
^
35:
36: public function __construct(
37: ConfigContainerInterface $configContainer
38: ) {
39: parent::__construct('run:broadcast', T_('Run a UPnP broadcast'));
40:
41: $this->configContainer = $configContainer;
42: }
43:
44: public function execute(): void
ERROR: Unable to parse file: /code/src/Module/Cli/UpdateCatalogCommand.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\Catalog\Update\UpdateCatalogInterface;
30:
31: final class UpdateCatalogCommand extends Command
32: {
33: private UpdateCatalogInterface $updateCatalog;
^
34:
35: public function __construct(
36: UpdateCatalogInterface $updateCatalog
37: ) {
38: parent::__construct('run:updateCatalog', T_('Perform catalog actions for all files of a catalog. If no options are given, the defaults actions -ceag are assumed'));
39:
40: $this->updateCatalog = $updateCatalog;
41:
42: $this
43: ->option('-c|--cleanup', T_('Removes missing files from the database'), 'boolval', false)
ERROR: Unable to parse file: /code/src/Module/Cli/ShowVersionCommand.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Config\ConfigContainerInterface;
30:
31: final class ShowVersionCommand extends Command
32: {
33: private ConfigContainerInterface $configContainer;
^
34:
35: public function __construct(
36: ConfigContainerInterface $configContainer
37: ) {
38: parent::__construct('show:version', T_('Version'));
39:
40: $this->configContainer = $configContainer;
41:
42: $this
43: ->usage('<bold> show:version</end> <comment> ## ' . T_('Version') . '<eol/>');
ERROR: Unable to parse file: /code/src/Module/Cli/ConvertFileNamesCommand.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\Util\FileSystem\FileNameConverterInterface;
30:
31: final class ConvertFileNamesCommand extends Command
32: {
33: private FileNameConverterInterface $fileNameCorrector;
^
34:
35: public function __construct(
36: FileNameConverterInterface $fileNameCorrector
37: ) {
38: parent::__construct('run:convertFilenames', T_('Convert filenames using a charset'));
39:
40: $this->fileNameCorrector = $fileNameCorrector;
41:
42: $this
43: ->option('-f|--fire', T_('Enables `fire-and-forget`-mode (Disables prompting on rename)'), 'boolval', false)
ERROR: Unable to parse file: /code/src/Module/Cli/UpdateCatalogFolderCommand.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\Catalog\Update\UpdateSingleCatalogFolderInterface;
30:
31: final class UpdateCatalogFolderCommand extends Command
32: {
33: private UpdateSingleCatalogFolderInterface $updateSingleCatalogFolder;
^
34:
35: public function __construct(
36: UpdateSingleCatalogFolderInterface $updateSingleCatalogFolder
37: ) {
38: parent::__construct('run:updateCatalogFolder', T_('Perform catalog actions for a single folder'));
39:
40: $this->updateSingleCatalogFolder = $updateSingleCatalogFolder;
41:
42: $this
43: ->option('-c|--cleanup', T_('Removes missing files from the database'), 'boolval', false)
ERROR: Unable to parse file: /code/src/Module/Cli/ExportArtCommand.php
ERROR: Parse error at line 38 column 13:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\Art\Export\ArtExporterInterface;
30: use Ampache\Module\Art\Export\Exception\ArtExportException;
31: use Ampache\Module\Art\Export\Writer\MetadataWriter;
32: use Ampache\Module\System\LegacyLogger;
33: use Psr\Container\ContainerInterface;
34: use Psr\Log\LoggerInterface;
35:
36: final class ExportArtCommand extends Command
37: {
38: private LoggerInterface $logger;
^
39:
40: private ArtExporterInterface $artExporter;
41:
42: private ContainerInterface $dic;
43:
44: public function __construct(
45: LoggerInterface $logger,
46: ArtExporterInterface $artExporter,
47: ContainerInterface $dic
48: ) {
ERROR: Unable to parse file: /code/src/Module/Cli/ArtCleanupCommand.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Config\ConfigContainerInterface;
30: use Ampache\Module\Art\ArtCleanupInterface;
31:
32: final class ArtCleanupCommand extends Command
33: {
34: private ConfigContainerInterface $configContainer;
^
35:
36: private ArtCleanupInterface $artCleanup;
37:
38: public function __construct(
39: ConfigContainerInterface $configContainer,
40: ArtCleanupInterface $artCleanup
41: ) {
42: parent::__construct('cleanup:art', T_('Remove art which does not fit to the settings'));
43:
44: $this->configContainer = $configContainer;
ERROR: Unable to parse file: /code/src/Module/Cli/UpdateCatalogFileCommand.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\Catalog\Update\UpdateSingleCatalogFileInterface;
30:
31: final class UpdateCatalogFileCommand extends Command
32: {
33: private UpdateSingleCatalogFileInterface $updateSingleCatalogFile;
^
34:
35: public function __construct(
36: UpdateSingleCatalogFileInterface $updateSingleCatalogFile
37: ) {
38: parent::__construct('run:updateCatalogFile', T_('Perform catalog actions for a single file'));
39:
40: $this->updateSingleCatalogFile = $updateSingleCatalogFile;
41:
42: $this
43: ->option('-c|--cleanup', T_('Removes missing files from the database'), 'boolval', false)
ERROR: Unable to parse file: /code/src/Module/Cli/SongCleanupCommand.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\Song\SongFilesystemCleanupInterface;
30:
31: final class SongCleanupCommand extends Command
32: {
33: private SongFilesystemCleanupInterface $songFilesystemCleanup;
^
34:
35: public function __construct(
36: SongFilesystemCleanupInterface $songFilesystemCleanup
37: ) {
38: parent::__construct('cleanup:songs', T_('Delete disabled songs'));
39:
40: $this->songFilesystemCleanup = $songFilesystemCleanup;
41:
42: $this
43: ->option('-d|--delete', T_('Disables dry-run'), 'boolval', false)
ERROR: Unable to parse file: /code/src/Module/Cli/ExportPlaylistCommand.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\Playlist\PlaylistExporter;
30: use Ampache\Module\Playlist\PlaylistExporterInterface;
31:
32: final class ExportPlaylistCommand extends Command
33: {
34: private PlaylistExporterInterface $playlistExporter;
^
35:
36: public function __construct(
37: PlaylistExporterInterface $playlistExporter
38: ) {
39: parent::__construct('export:playlist', T_('Export Playlists'));
40:
41: $this->playlistExporter = $playlistExporter;
42:
43: $this
44: ->option('-u|--user', T_('User ID'), 'intval', -1)
ERROR: Unable to parse file: /code/src/Module/Cli/SortFilesCommand.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\Song\SongSorterInterface;
30:
31: final class SortFilesCommand extends Command
32: {
33: private SongSorterInterface $songSorter;
^
34:
35: public function __construct(
36: SongSorterInterface $songSorter
37: ) {
38: parent::__construct('cleanup:sortSongs', T_('Sort songs files'));
39:
40: $this->songSorter = $songSorter;
41:
42: $this
43: ->option('-x|--execute', T_('Disables dry-run'), 'boolval', false)
ERROR: Unable to parse file: /code/src/Module/Cli/AdminAddUserCommand.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Config\ConfigContainerInterface;
30: use Ampache\Repository\Model\User;
31:
32: final class AdminAddUserCommand extends Command
33: {
34: private ConfigContainerInterface $configContainer;
^
35:
36: public function __construct(
37: ConfigContainerInterface $configContainer
38: ) {
39: parent::__construct('admin:addUser', T_('Add a User'));
40:
41: $this->configContainer = $configContainer;
42:
43: $this
44: ->option('-p|--password', T_('Password'), 'strval', bin2hex(random_bytes(20)))
ERROR: Unable to parse file: /code/src/Module/Cli/InstallerCommand.php
ERROR: Parse error at line 35 column 13:
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Config\AmpConfig;
30: use Ampache\Module\System\AmpError;
31: use Ampache\Module\System\InstallationHelperInterface;
32:
33: final class InstallerCommand extends Command
34: {
35: private InstallationHelperInterface $installationHelper;
^
36:
37: public function __construct(
38: InstallationHelperInterface $installationHelper
39: ) {
40: parent::__construct('install', T_('Install the database'));
41:
42: $this
43: ->option('-U|--dbuser', T_('MySQL Administrative Username'), 'strval')
44: ->option('-P|--dbpassword', T_('MySQL Administrative Password'), 'strval')
45: ->option('-H|--dbhost', T_('MySQL Hostname'), 'strval')
ERROR: Unable to parse file: /code/src/Module/Cli/CronProcessCommand.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Util\Recommendation;
36: use Ampache\Repository\BookmarkRepositoryInterface;
37: use Ampache\Repository\Model\UpdateInfoEnum;
38: use Ampache\Repository\PodcastEpisodeRepositoryInterface;
39: use Ampache\Repository\ShareRepositoryInterface;
40: use Ampache\Repository\UpdateInfoRepositoryInterface;
41: use Ampache\Repository\UserRepositoryInterface;
42:
43: final class CronProcessCommand extends Command
44: {
45: private ConfigContainerInterface $configContainer;
^
46:
47: private ObjectCacheInterface $objectCache;
48:
49: private CatalogGarbageCollectorInterface $catalogGarbageCollector;
50:
51: private BookmarkRepositoryInterface $bookmarkRepository;
52:
53: private UserRepositoryInterface $userRepository;
54:
55: private UpdateInfoRepositoryInterface $updateInfoRepository;
ERROR: Unable to parse file: /code/src/Module/Cli/ArtSizeCalculationCommand.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Config\ConfigContainerInterface;
30: use Ampache\Repository\Model\Art;
31: use Ampache\Module\System\Core;
32: use Ampache\Module\System\Dba;
33:
34: final class ArtSizeCalculationCommand extends Command
35: {
36: private ConfigContainerInterface $configContainer;
^
37:
38: public function __construct(
39: ConfigContainerInterface $configContainer
40: ) {
41: parent::__construct('run:calculateArtSize', T_('Run art size calculation'));
42:
43: $this->configContainer = $configContainer;
44: }
45:
46: public function execute(): void
ERROR: Unable to parse file: /code/src/Module/Cli/MoveCatalogPathCommand.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Module\Catalog\Update\UpdateCatalogInterface;
30:
31: final class MoveCatalogPathCommand extends Command
32: {
33: private UpdateCatalogInterface $updateCatalog;
^
34:
35: public function __construct(
36: UpdateCatalogInterface $updateCatalog
37: ) {
38: parent::__construct('run:moveCatalogPath', T_('Change a Catalog path'));
39:
40: $this->updateCatalog = $updateCatalog;
41:
42: $this
43: ->argument('[catalogName]', T_('The name of the catalog to update'))
ERROR: Unable to parse file: /code/src/Module/Cli/AdminUpdateDatabaseCommand.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Config\AmpConfig;
30: use Ampache\Module\System\Dba;
31: use Ampache\Module\System\Update;
32: use Ampache\Repository\Model\UpdateInfoEnum;
33: use Ampache\Repository\UpdateInfoRepositoryInterface;
34:
35: final class AdminUpdateDatabaseCommand extends Command
36: {
37: private UpdateInfoRepositoryInterface $updateInfoRepository;
^
38:
39: private Update\UpdateHelperInterface $updateHelper;
40:
41: private Update\UpdaterInterface $updater;
42:
43: public function __construct(
44: UpdateInfoRepositoryInterface $updateInfoRepository,
45: Update\UpdateHelperInterface $updateHelper,
46: Update\UpdaterInterface $updater
47: ) {
ERROR: Unable to parse file: /code/src/Module/Cli/CacheProcessCommand.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Config\ConfigContainerInterface;
30: use Ampache\Repository\Model\Catalog;
31:
32: final class CacheProcessCommand extends Command
33: {
34: private ConfigContainerInterface $configContainer;
^
35:
36: public function __construct(
37: ConfigContainerInterface $configContainer
38: ) {
39: parent::__construct('run:cacheProcess', T_('Run the cache process'));
40:
41: $this->configContainer = $configContainer;
42: }
43:
44: public function execute(): void
ERROR: Unable to parse file: /code/src/Module/Cli/RunWebsocketCommand.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\Cli;
27:
28: use Ahc\Cli\Input\Command;
29: use Ampache\Config\ConfigContainerInterface;
30: use Ampache\Module\Broadcast\WebSocketFactoryInterface;
31:
32: final class RunWebsocketCommand extends Command
33: {
34: private const DEFAULT_PORT = 8100;
35:
36: private ConfigContainerInterface $configContainer;
^
37:
38: private WebSocketFactoryInterface $webSocketFactory;
39:
40: public function __construct(
41: ConfigContainerInterface $configContainer,
42: WebSocketFactoryInterface $webSocketFactory
43: ) {
44: parent::__construct('run:websocket', T_('Run a Websocket'));
45:
46: $this->configContainer = $configContainer;
ERROR: Unable to parse file: /code/src/Module/Share/ShareCreator.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Repository\Model\Song;
35: use Ampache\Repository\Model\User;
36: use Exception;
37: use Psr\Log\LoggerInterface;
38:
39: /**
40: * Creates new sharing items
41: */
42: final class ShareCreator implements ShareCreatorInterface
43: {
44: private PluginRetrieverInterface $pluginRetriever;
^
45:
46: private LoggerInterface $logger;
47:
48: public function __construct(
49: PluginRetrieverInterface $pluginRetriever,
50: LoggerInterface $logger
51: ) {
52: $this->pluginRetriever = $pluginRetriever;
53: $this->logger = $logger;
54: }
ERROR: Unable to parse file: /code/src/Module/Share/ShareUiLinkRenderer.php
ERROR: Parse error at line 39 column 21:
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Repository\Model\Plugin;
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\Authorization\Check\FunctionCheckerInterface;
33: use Ampache\Module\Playback\Stream;
34: use Ampache\Module\Util\Ui;
35: use Ampache\Module\Util\ZipHandlerInterface;
36:
37: final class ShareUiLinkRenderer implements ShareUiLinkRendererInterface
38: {
39: private FunctionCheckerInterface $functionChecker;
^
40:
41: private ZipHandlerInterface $zipHandler;
42:
43: private ConfigContainerInterface $configContainer;
44:
45: public function __construct(
46: FunctionCheckerInterface $functionChecker,
47: ZipHandlerInterface $zipHandler,
48: ConfigContainerInterface $configContainer
49: ) {
ERROR: Unable to parse file: /code/src/Module/Api/ApiHandler.php
ERROR: Parse error at line 57 column 13:
47: use Ampache\Repository\UserRepositoryInterface;
48: use Psr\Container\ContainerInterface;
49: use Psr\Http\Message\ResponseInterface;
50: use Psr\Http\Message\ServerRequestInterface;
51: use Psr\Http\Message\StreamFactoryInterface;
52: use Psr\Log\LoggerInterface;
53: use Throwable;
54:
55: final class ApiHandler implements ApiHandlerInterface
56: {
57: private RequestParserInterface $requestParser;
^
58:
59: private StreamFactoryInterface $streamFactory;
60:
61: private LoggerInterface $logger;
62:
63: private ConfigContainerInterface $configContainer;
64:
65: private NetworkCheckerInterface $networkChecker;
66:
67: private ContainerInterface $dic;
ERROR: Unable to parse file: /code/src/Module/Api/SseApiApplication.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Module\Authorization\Access;
29: use Ampache\Config\AmpConfig;
30: use Ampache\Module\System\AmpError;
31: use Ampache\Repository\Model\Catalog;
32: use Ampache\Module\System\Core;
33: use Ampache\Module\Util\UiInterface;
34:
35: final class SseApiApplication implements ApiApplicationInterface
36: {
37: private UiInterface $ui;
^
38:
39: public function __construct(
40: UiInterface $ui
41: ) {
42: $this->ui = $ui;
43: }
44:
45: public function run(): void
46: {
47: if (!Access::check('interface', 75)) {
ERROR: Unable to parse file: /code/src/Module/Api/Json4_Data.php
ERROR: Parse error at line 66 column 20:
56: /**
57: * JSON_Data Class
58: *
59: * This class takes care of all of the JSON document stuff in Ampache these
60: * are all static calls
61: *
62: */
63: class Json4_Data
64: {
65: // This is added so that we don't pop any webservers
66: private static ?int $limit = 5000;
^
67: private static int $offset = 0;
68:
69: /**
70: * constructor
71: *
72: * We don't use this, as its really a static class
73: */
74: private function __construct()
75: {
76: // Rien a faire
ERROR: Unable to parse file: /code/src/Module/Api/Api.php
ERROR: Parse error at line 182 column 19:
172:
173: public const API_VERSIONS = array(
174: 3,
175: 4,
176: 5,
177: 6
178: );
179:
180: public const DEFAULT_VERSION = 6; // AMPACHE_VERSION
181:
182: public static string $auth_version = '350001';
^
183: public static string $version = '6.4.0'; // AMPACHE_VERSION
184: public static string $version_numeric = '640000'; // AMPACHE_VERSION
185:
186: /**
187: * @var Browse $browse
188: */
189: public static $browse = null;
190:
191: public static function getBrowse(): Browse
192: {
ERROR: Unable to parse file: /code/src/Module/Api/Json_Data.php
ERROR: Parse error at line 70 column 20:
60: /**
61: * Json_Data Class
62: *
63: * This class takes care of all of the JSON document stuff in Ampache these
64: * are all static calls
65: *
66: */
67: class Json_Data
68: {
69: // This is added so that we don't pop any webservers
70: private static ?int $limit = 5000;
^
71: private static int $offset = 0;
72:
73: /**
74: * set_offset
75: *
76: * This takes an int and changes the offset
77: *
78: * @param int $offset Change the starting position of your results. (e.g 5001 when selecting in groups of 5000)
79: */
80: public static function set_offset($offset): void
ERROR: Unable to parse file: /code/src/Module/Api/Xml3_Data.php
ERROR: Parse error at line 56 column 20:
46: /**
47: * Xml_Data Class
48: *
49: * This class takes care of all of the xml document stuff in Ampache these
50: * are all static calls
51: *
52: */
53: class Xml3_Data
54: {
55: // This is added so that we don't pop any webservers
56: private static ?int $limit = 5000;
^
57: private static int $offset = 0;
58: private static string $type = '';
59:
60: /**
61: * constructor
62: *
63: * We don't use this, as its really a static class
64: */
65: private function __construct()
66: {
ERROR: Unable to parse file: /code/src/Module/Api/Exception/ApiException.php
ERROR: Parse error at line 32 column 15:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Module\Api\Exception;
27:
28: use Exception;
29:
30: abstract class ApiException extends Exception
31: {
32: protected string $type = '';
^
33:
34: public function getType(): string
35: {
36: return $this->type;
37: }
38: }
39:
ERROR: Unable to parse file: /code/src/Module/Api/RefreshReordered/RefreshAlbumSongsAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\ApplicationActionInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\RequestParserInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class RefreshAlbumSongsAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'refresh_album_songs';
38:
39: private RequestParserInterface $requestParser;
^
40:
41: private ModelFactoryInterface $modelFactory;
42:
43: public function __construct(
44: RequestParserInterface $requestParser,
45: ModelFactoryInterface $modelFactory
46: ) {
47: $this->requestParser = $requestParser;
48: $this->modelFactory = $modelFactory;
49: }
ERROR: Unable to parse file: /code/src/Module/Api/RefreshReordered/RefreshPlaylistMediasAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\ApplicationActionInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\RequestParserInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class RefreshPlaylistMediasAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'refresh_playlist_medias';
38:
39: private RequestParserInterface $requestParser;
^
40:
41: private ModelFactoryInterface $modelFactory;
42:
43: public function __construct(
44: RequestParserInterface $requestParser,
45: ModelFactoryInterface $modelFactory
46: ) {
47: $this->requestParser = $requestParser;
48: $this->modelFactory = $modelFactory;
49: }
ERROR: Unable to parse file: /code/src/Module/Api/Api5.php
ERROR: Parse error at line 159 column 19:
149: Method\Api5\SystemPreferences5Method::ACTION => Method\Api5\SystemPreferences5Method::class,
150: Method\Api5\SystemPreference5Method::ACTION => Method\Api5\SystemPreference5Method::class,
151: Method\Api5\PreferenceCreate5Method::ACTION => Method\Api5\PreferenceCreate5Method::class,
152: Method\Api5\PreferenceEdit5Method::ACTION => Method\Api5\PreferenceEdit5Method::class,
153: Method\Api5\PreferenceDelete5Method::ACTION => Method\Api5\PreferenceDelete5Method::class,
154: Method\Api5\DeletedSongs5Method::ACTION => Method\Api5\DeletedSongs5Method::class,
155: Method\Api5\DeletedVideos5Method::ACTION => Method\Api5\DeletedVideos5Method::class,
156: Method\Api5\DeletedPodcastEpisodes5Method::ACTION => Method\Api5\DeletedPodcastEpisodes5Method::class,
157: ];
158:
159: public static string $auth_version = '350001';
^
160: public static string $version = '5.5.6'; // AMPACHE_VERSION
161: public static string $version_numeric = '556000'; // AMPACHE_VERSION
162:
163: /**
164: * message
165: * call the correct success message depending on format
166: * @param string $message
167: * @param string $format
168: * @param array $return_data
169: */
ERROR: Unable to parse file: /code/src/Module/Api/Method/Exception/AccessDeniedException.php
ERROR: Parse error at line 35 column 15:
25:
26: namespace Ampache\Module\Api\Method\Exception;
27:
28: use Ampache\Module\Api\Exception\ErrorCodeEnum;
29:
30: final class AccessDeniedException extends ApiMethodException
31: {
32: /** @var int */
33: protected $code = ErrorCodeEnum::ACCESS_DENIED;
34:
35: protected string $type = 'system';
^
36: }
37:
ERROR: Unable to parse file: /code/src/Module/Api/Method/Exception/ResultEmptyException.php
ERROR: Parse error at line 34 column 15:
24: */
25:
26: namespace Ampache\Module\Api\Method\Exception;
27:
28: use Ampache\Module\Api\Exception\ErrorCodeEnum;
29:
30: final class ResultEmptyException extends ApiMethodException
31: {
32: protected $code = ErrorCodeEnum::NOT_FOUND;
33:
34: protected string $type = 'empty';
^
35: }
36:
ERROR: Unable to parse file: /code/src/Module/Api/Method/Exception/RequestParamMissingException.php
ERROR: Parse error at line 34 column 15:
24: */
25:
26: namespace Ampache\Module\Api\Method\Exception;
27:
28: use Ampache\Module\Api\Exception\ErrorCodeEnum;
29:
30: final class RequestParamMissingException extends ApiMethodException
31: {
32: protected $code = ErrorCodeEnum::BAD_REQUEST;
33:
34: protected string $type = 'system';
^
35: }
36:
ERROR: Unable to parse file: /code/src/Module/Api/Method/AlbumMethod.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\StreamFactoryInterface;
36:
37: /**
38: * Class AlbumMethod
39: * @package Lib\ApiMethods
40: */
41: final class AlbumMethod implements MethodInterface
42: {
43: public const ACTION = 'album';
44:
45: private ModelFactoryInterface $modelFactory;
^
46:
47: private StreamFactoryInterface $streamFactory;
48:
49: public function __construct(
50: ModelFactoryInterface $modelFactory,
51: StreamFactoryInterface $streamFactory
52: ) {
53: $this->modelFactory = $modelFactory;
54: $this->streamFactory = $streamFactory;
55: }
ERROR: Unable to parse file: /code/src/Module/Api/Method/PodcastEpisodesMethod.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Api\Method\Exception\ResultEmptyException;
34: use Ampache\Module\Api\Output\ApiOutputInterface;
35: use Ampache\Repository\Model\User;
36: use Ampache\Repository\PodcastRepositoryInterface;
37: use Psr\Http\Message\ResponseInterface;
38:
39: final class PodcastEpisodesMethod implements MethodInterface
40: {
41: public const ACTION = 'podcast_episodes';
42:
43: private PodcastRepositoryInterface $podcastRepository;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: PodcastRepositoryInterface $podcastRepository,
49: ConfigContainerInterface $configContainer
50: ) {
51: $this->podcastRepository = $podcastRepository;
52: $this->configContainer = $configContainer;
53: }
ERROR: Unable to parse file: /code/src/Module/Api/Method/PodcastDeleteMethod.php
ERROR: Parse error at line 49 column 13:
39: use Ampache\Repository\PodcastRepositoryInterface;
40: use Psr\Http\Message\ResponseInterface;
41:
42: /**
43: * Deletes a podcast
44: */
45: final class PodcastDeleteMethod implements MethodInterface
46: {
47: public const ACTION = 'podcast_delete';
48:
49: private PodcastDeleterInterface $podcastDeleter;
^
50:
51: private ConfigContainerInterface $configContainer;
52:
53: private PrivilegeCheckerInterface $privilegeChecker;
54:
55: private PodcastRepositoryInterface $podcastRepository;
56:
57: public function __construct(
58: PodcastDeleterInterface $podcastDeleter,
59: ConfigContainerInterface $configContainer,
ERROR: Unable to parse file: /code/src/Module/Api/Method/AlbumsMethod.php
ERROR: Parse error at line 44 column 13:
34: use Psr\Http\Message\StreamFactoryInterface;
35:
36: /**
37: * Class AlbumsMethod
38: * @package Lib\ApiMethods
39: */
40: final class AlbumsMethod implements MethodInterface
41: {
42: public const ACTION = 'albums';
43:
44: private StreamFactoryInterface $streamFactory;
^
45:
46: private ModelFactoryInterface $modelFactory;
47:
48: public function __construct(
49: StreamFactoryInterface $streamFactory,
50: ModelFactoryInterface $modelFactory
51: ) {
52: $this->streamFactory = $streamFactory;
53: $this->modelFactory = $modelFactory;
54: }
ERROR: Unable to parse file: /code/src/Module/Api/Xml5_Data.php
ERROR: Parse error at line 70 column 20:
60:
61: /**
62: * XML5_Data Class
63: *
64: * This class takes care of all of the xml document stuff in Ampache these
65: * are all static calls
66: */
67: class Xml5_Data
68: {
69: // This is added so that we don't pop any webservers
70: private static ?int $limit = 5000;
^
71: private static int $offset = 0;
72: private static string $type = '';
73:
74: /**
75: * set_offset
76: *
77: * This takes an int and changes the offset
78: *
79: * @param int $offset Change the starting position of your results. (e.g 5001 when selecting in groups of 5000)
80: */
ERROR: Unable to parse file: /code/src/Module/Api/Edit/RefreshUpdatedAction.php
ERROR: Parse error at line 56 column 13:
46: use Psr\Http\Message\ResponseFactoryInterface;
47: use Psr\Http\Message\ResponseInterface;
48: use Psr\Http\Message\ServerRequestInterface;
49: use Psr\Http\Message\StreamFactoryInterface;
50: use Psr\Log\LoggerInterface;
51:
52: final class RefreshUpdatedAction extends AbstractEditAction
53: {
54: public const REQUEST_KEY = 'refresh_updated';
55:
56: private ResponseFactoryInterface $responseFactory;
^
57:
58: private StreamFactoryInterface $streamFactory;
59:
60: private TalFactoryInterface $talFactory;
61:
62: private GuiFactoryInterface $guiFactory;
63:
64: private Browse $browse;
65:
66: private UiInterface $ui;
ERROR: Unable to parse file: /code/src/Module/Api/Edit/AbstractEditAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\System\Core;
35: use Ampache\Module\Util\InterfaceImplementationChecker;
36: use Ampache\Module\Util\ObjectTypeToClassNameMapper;
37: use Ampache\Repository\Model\library_item;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40: use Psr\Log\LoggerInterface;
41:
42: abstract class AbstractEditAction implements ApplicationActionInterface
43: {
44: private ConfigContainerInterface $configContainer;
^
45:
46: private LoggerInterface $logger;
47:
48: public function __construct(
49: ConfigContainerInterface $configContainer,
50: LoggerInterface $logger
51: ) {
52: $this->configContainer = $configContainer;
53: $this->logger = $logger;
54: }
ERROR: Unable to parse file: /code/src/Module/Api/Edit/ShowEditObjectAction.php
ERROR: Parse error at line 43 column 13:
33: use Psr\Http\Message\ResponseFactoryInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Psr\Http\Message\StreamFactoryInterface;
37: use Psr\Log\LoggerInterface;
38:
39: final class ShowEditObjectAction extends AbstractEditAction
40: {
41: public const REQUEST_KEY = 'show_edit_object';
42:
43: private ResponseFactoryInterface $responseFactory;
^
44:
45: private StreamFactoryInterface $streamFactory;
46:
47: private UiInterface $ui;
48:
49: public function __construct(
50: ResponseFactoryInterface $responseFactory,
51: StreamFactoryInterface $streamFactory,
52: ConfigContainerInterface $configContainer,
53: LoggerInterface $logger,
ERROR: Unable to parse file: /code/src/Module/Api/Edit/EditObjectAction.php
ERROR: Parse error at line 47 column 13:
37: use Ampache\Module\Util\ObjectTypeToClassNameMapper;
38: use Ampache\Repository\LabelRepositoryInterface;
39: use Psr\Http\Message\ResponseInterface;
40: use Psr\Http\Message\ServerRequestInterface;
41: use Psr\Log\LoggerInterface;
42:
43: final class EditObjectAction extends AbstractEditAction
44: {
45: public const REQUEST_KEY = 'edit_object';
46:
47: private LabelRepositoryInterface $labelRepository;
^
48:
49: private LoggerInterface $logger;
50:
51: public function __construct(
52: ConfigContainerInterface $configContainer,
53: LabelRepositoryInterface $labelRepository,
54: LoggerInterface $logger
55: ) {
56: parent::__construct($configContainer, $logger);
57: $this->labelRepository = $labelRepository;
ERROR: Unable to parse file: /code/src/Module/Api/Edit/ShowEditPlaylistAction.php
ERROR: Parse error at line 43 column 13:
33: use Psr\Http\Message\ResponseFactoryInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Psr\Http\Message\StreamFactoryInterface;
37: use Psr\Log\LoggerInterface;
38:
39: final class ShowEditPlaylistAction extends AbstractEditAction
40: {
41: public const REQUEST_KEY = 'show_edit_playlist';
42:
43: private ResponseFactoryInterface $responseFactory;
^
44:
45: private StreamFactoryInterface $streamFactory;
46:
47:
48: private TalFactoryInterface $talFactory;
49:
50: private GuiFactoryInterface $guiFactory;
51:
52:
53: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Api/Api4.php
ERROR: Parse error at line 130 column 19:
120: 'url_to_song' => Method\Api4\UrlToSong4Method::class,
121: 'user' => Method\Api4\User4Method::class,
122: 'users' => Method\Api4\Users4Method::class,
123: 'user_create' => Method\Api4\UserCreate4Method::class,
124: 'user_delete' => Method\Api4\UserDelete4Method::class,
125: 'user_update' => Method\Api4\UserUpdate4Method::class,
126: 'video' => Method\Api4\Video4Method::class,
127: 'videos' => Method\Api4\Videos4Method::class
128: ];
129:
130: public static string $auth_version = '350001';
^
131: public static string $version = '443000'; // AMPACHE_VERSION
132:
133: /**
134: * constructor
135: * This really isn't anything to do here, so it's private
136: */
137: private function __construct()
138: {
139: // Rien a faire
140: }
ERROR: Unable to parse file: /code/src/Module/Api/Xml_Data.php
ERROR: Parse error at line 71 column 20:
61:
62: /**
63: * Xml_Data Class
64: *
65: * This class takes care of all of the xml document stuff in Ampache these
66: * are all static calls
67: */
68: class Xml_Data
69: {
70: // This is added so that we don't pop any webservers
71: private static ?int $limit = 5000;
^
72: private static int $offset = 0;
73: private static string $type = '';
74:
75: /**
76: * set_offset
77: *
78: * This takes an int and changes the offset
79: *
80: * @param int $offset Change the starting position of your results. (e.g 5001 when selecting in groups of 5000)
81: */
ERROR: Unable to parse file: /code/src/Module/Api/DaapApiApplication.php
ERROR: Parse error at line 58 column 24:
48:
49: // Get the list of possible methods for the daap API
50: $methods = get_class_methods(Daap_Api::class);
51: // Define list of internal functions that should be skipped
52: $internal_functions = array('apiOutput', 'create_dictionary', 'createError', 'output_body', 'output_header', 'follow_stream');
53:
54: Daap_Api::create_dictionary();
55:
56: $params = array_filter(
57: explode('/', $action),
58: fn (string $value): bool => strlen($value) > 0
^
59: );
60: $p_count = count($params);
61: if ($p_count > 0) {
62: // Recurse through them and see if we're calling one of them
63: for ($i = $p_count; $i > 0; $i--) {
64: $act = strtolower(implode('_', array_slice($params, 0, $i)));
65: $act = str_replace("-", "_", $act);
66: foreach ($methods as $method) {
67: if (in_array($method, $internal_functions)) {
68: continue;
ERROR: Unable to parse file: /code/src/Module/Api/SubsonicApiApplication.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\AccessLevelEnum;
31: use Ampache\Module\Authorization\Check\NetworkCheckerInterface;
32: use Ampache\Module\System\LegacyLogger;
33: use Ampache\Module\System\Session;
34: use Ampache\Repository\Model\Preference;
35: use Ampache\Repository\Model\User;
36: use Psr\Log\LoggerInterface;
37:
38: final class SubsonicApiApplication implements ApiApplicationInterface
39: {
40: private AuthenticationManagerInterface $authenticationManager;
^
41:
42: private LoggerInterface $logger;
43:
44: private NetworkCheckerInterface $networkChecker;
45:
46: public function __construct(
47: AuthenticationManagerInterface $authenticationManager,
48: LoggerInterface $logger,
49: NetworkCheckerInterface $networkChecker
50: ) {
ERROR: Unable to parse file: /code/src/Module/Api/JsonApiApplication.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\Api;
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\Api\Output\ApiOutputFactoryInterface;
30: use Narrowspark\HttpEmitter\AbstractSapiEmitter;
31: use Nyholm\Psr7Server\ServerRequestCreatorInterface;
32: use Psr\Http\Message\ResponseFactoryInterface;
33:
34: final class JsonApiApplication implements ApiApplicationInterface
35: {
36: private ApiOutputFactoryInterface $apiOutputFactory;
^
37:
38: private ApiHandlerInterface $apiHandler;
39:
40: private ConfigContainerInterface $configContainer;
41:
42: private ResponseFactoryInterface $responseFactory;
43:
44: private AbstractSapiEmitter $sapiEmitter;
45:
46: private ServerRequestCreatorInterface $serverRequestCreator;
ERROR: Unable to parse file: /code/src/Module/Api/Authentication/Gatekeeper.php
ERROR: Parse error at line 42 column 13:
32: use Psr\Http\Message\ServerRequestInterface;
33: use Psr\Log\LoggerInterface;
34:
35: /**
36: * Provides methods to access authentication related data
37: *
38: * There is only XUL.
39: */
40: final class Gatekeeper implements GatekeeperInterface
41: {
42: private UserRepositoryInterface $userRepository;
^
43:
44: private ServerRequestInterface $request;
45:
46: private LoggerInterface $logger;
47:
48: private ?string $auth = null;
49:
50: public function __construct(
51: UserRepositoryInterface $userRepository,
52: ServerRequestInterface $request,
ERROR: Unable to parse file: /code/src/Module/Api/Daap_Api.php
ERROR: Parse error at line 51 column 19:
41: *
42: * This class wrap Ampache to DAAP API functions. See https://github.com/andytinycat/daapdocs/blob/master/daapdocs.txt
43: * These are all static calls.
44: */
45: class Daap_Api
46: {
47: public const AMPACHEID_SMARTPL = 400000000;
48: public const BASE_LIBRARY = 0;
49:
50: /** @var list<string> */
51: public static array $metas = [
^
52: 'dmap.itemid',
53: 'dmap.itemname',
54: 'dmap.itemkind',
55: 'dmap.persistentid',
56: 'daap.songalbum',
57: 'daap.songartist',
58: 'daap.songbitrate',
59: 'daap.songbeatsperminute',
60: 'daap.songcomment',
61: 'daap.songcompilation',
ERROR: Unable to parse file: /code/src/Module/Api/Api3.php
ERROR: Parse error at line 89 column 19:
79: 'tags' => Method\Api3\Tags3Method::class,
80: 'genres' => Method\Api3\Tags3Method::class,
81: 'timeline' => Method\Api3\Timeline3Method::class,
82: 'toggle_follow' => Method\Api3\ToggleFollow3Method::class,
83: 'url_to_song' => Method\Api3\UrlToSong3Method::class,
84: 'user' => Method\Api3\User3Method::class,
85: 'video' => Method\Api3\Video3Method::class,
86: 'videos' => Method\Api3\Videos3Method::class
87: ];
88:
89: public static string $auth_version = '350001';
^
90: public static string $version = '390001'; // AMPACHE_VERSION
91:
92: /**
93: * constructor
94: * This really isn't anything to do here, so it's private
95: */
96: private function __construct()
97: {
98: // Rien a faire
99: }
ERROR: Unable to parse file: /code/src/Module/Api/Xml4_Data.php
ERROR: Parse error at line 66 column 20:
56: /**
57: * Xml_Data Class
58: *
59: * This class takes care of all of the xml document stuff in Ampache these
60: * are all static calls
61: *
62: */
63: class Xml4_Data
64: {
65: // This is added so that we don't pop any webservers
66: private static ?int $limit = 5000;
^
67: private static int $offset = 0;
68: private static string $type = '';
69:
70: /**
71: * constructor
72: *
73: * We don't use this, as its really a static class
74: */
75: private function __construct()
76: {
ERROR: Unable to parse file: /code/src/Module/Api/Json5_Data.php
ERROR: Parse error at line 71 column 20:
61: /**
62: * Json5_Data Class
63: *
64: * This class takes care of all of the JSON document stuff in Ampache these
65: * are all static calls
66: *
67: */
68: class Json5_Data
69: {
70: // This is added so that we don't pop any webservers
71: private static ?int $limit = 5000;
^
72: private static int $offset = 0;
73:
74: /**
75: * set_offset
76: *
77: * This takes an int and changes the offset
78: *
79: * @param int $offset Change the starting position of your results. (e.g 5001 when selecting in groups of 5000)
80: */
81: public static function set_offset($offset): void
ERROR: Unable to parse file: /code/src/Module/Api/XmlApiApplication.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\Api;
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\Api\Output\ApiOutputFactoryInterface;
30: use Narrowspark\HttpEmitter\AbstractSapiEmitter;
31: use Nyholm\Psr7Server\ServerRequestCreatorInterface;
32: use Psr\Http\Message\ResponseFactoryInterface;
33:
34: final class XmlApiApplication implements ApiApplicationInterface
35: {
36: private ApiOutputFactoryInterface $apiOutputFactory;
^
37:
38: private ApiHandlerInterface $apiHandler;
39:
40: private ConfigContainerInterface $configContainer;
41:
42: private ResponseFactoryInterface $responseFactory;
43:
44: private AbstractSapiEmitter $sapiEmitter;
45:
46: private ServerRequestCreatorInterface $serverRequestCreator;
ERROR: Unable to parse file: /code/src/Module/Beets/Catalog.php
ERROR: Parse error at line 71 column 13:
61:
62: /**
63: * command which provides the list of all songs
64: * @var string $listCommand
65: */
66: protected $listCommand;
67:
68: /**
69: * Counter used for cleaning actions
70: */
71: private int $cleanCounter = 0;
^
72:
73: /**
74: * Constructor
75: *
76: * Catalog class constructor, pulls catalog information
77: * @param int $catalog_id
78: */
79: public function __construct($catalog_id = null)
80: {
81: // TODO: Basic constructor should be provided from parent
ERROR: Unable to parse file: /code/src/Module/Artist/Deletion/ArtistDeleter.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Artist\Deletion\Exception\ArtistDeletionException;
35: use Ampache\Module\System\LegacyLogger;
36: use Ampache\Repository\AlbumRepositoryInterface;
37: use Ampache\Repository\ArtistRepositoryInterface;
38: use Ampache\Repository\ShoutRepositoryInterface;
39: use Ampache\Repository\UserActivityRepositoryInterface;
40: use Psr\Log\LoggerInterface;
41:
42: final class ArtistDeleter implements ArtistDeleterInterface
43: {
44: private AlbumDeleterInterface $albumDeleter;
^
45:
46: private ArtistRepositoryInterface $artistRepository;
47:
48: private AlbumRepositoryInterface $albumRepository;
49:
50: private ModelFactoryInterface $modelFactory;
51:
52: private LoggerInterface $logger;
53:
54: private ShoutRepositoryInterface $shoutRepository;
ERROR: Unable to parse file: /code/src/Module/Artist/Tag/ArtistTagUpdater.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\Artist\Tag;
27:
28: use Ampache\Repository\Model\Artist;
29: use Ampache\Repository\Model\ModelFactoryInterface;
30: use Ampache\Repository\Model\Tag;
31: use Ampache\Module\Album\Tag\AlbumTagUpdaterInterface;
32: use Ampache\Repository\AlbumRepositoryInterface;
33:
34: final class ArtistTagUpdater implements ArtistTagUpdaterInterface
35: {
36: private AlbumRepositoryInterface $albumRepository;
^
37:
38: private AlbumTagUpdaterInterface $albumTagUpdater;
39:
40: private ModelFactoryInterface $modelFactory;
41:
42: public function __construct(
43: AlbumRepositoryInterface $albumRepository,
44: AlbumTagUpdaterInterface $albumTagUpdater,
45: ModelFactoryInterface $modelFactory
46: ) {
ERROR: Unable to parse file: /code/src/Module/WebDav/WebDavFile.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Repository\Model\Media;
30: use Ampache\Repository\Model\Catalog;
31: use Ampache\Module\Util\ObjectTypeToClassNameMapper;
32: use Sabre\DAV;
33:
34: /**
35: * This class wrap Ampache songs to WebDAV files.
36: */
37: class WebDavFile extends DAV\File
38: {
39: private Media $libitem;
^
40:
41: public function __construct(Media $libitem)
42: {
43: $this->libitem = $libitem;
44: }
45:
46: public function getName(): string
47: {
48: $nameinfo = pathinfo($this->libitem->file);
49:
ERROR: Unable to parse file: /code/src/Module/WebDav/WebDavAuth.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Module\Authentication\AuthenticationManagerInterface;
29: use Sabre\DAV;
30:
31: /**
32: * This class wrap Ampache albums and artist to WebDAV directories.
33: */
34: final class WebDavAuth extends DAV\Auth\Backend\AbstractBasic
35: {
36: protected $realm = 'Ampache';
37:
38: private AuthenticationManagerInterface $authenticationManager;
^
39:
40: public function __construct(
41: AuthenticationManagerInterface $authenticationManager
42: ) {
43: $this->authenticationManager = $authenticationManager;
44: }
45:
46: /**
47: * @param string $username
48: * @param string $password
ERROR: Unable to parse file: /code/src/Module/WebDav/WebDavDirectory.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Util\ObjectTypeToClassNameMapper;
31: use Sabre\DAV;
32: use Sabre\DAV\Exception\NotFound;
33: use Sabre\DAV\Node;
34:
35: /**
36: * This class wrap Ampache albums and artist to WebDAV directories.
37: */
38: class WebDavDirectory extends DAV\Collection
39: {
40: private library_item $libitem;
^
41:
42: public function __construct(library_item $libitem)
43: {
44: $this->libitem = $libitem;
45: }
46:
47: /**
48: * @return list<Node>
49: *
50: * @throws NotFound
ERROR: Unable to parse file: /code/src/Module/WebDav/WebDavCatalog.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Repository\Model\Catalog;
30: use Sabre\DAV;
31:
32: /**
33: * WebDAV Catalog Directory Class
34: *
35: * This class wrap Ampache catalogs to WebDAV directories.
36: */
37: class WebDavCatalog extends DAV\Collection
38: {
39: private int $catalog_id;
^
40:
41: public function __construct(int $catalog_id)
42: {
43: $this->catalog_id = $catalog_id;
44: }
45:
46: /**
47: * @return list<WebDavDirectory>
48: */
49: public function getChildren(): array
ERROR: Unable to parse file: /code/src/Module/WebDav/WebDavFactory.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Module\Authentication\AuthenticationManagerInterface;
29: use Sabre\DAV\Auth\Backend\BackendInterface;
30: use Sabre\DAV\Auth\Plugin;
31: use Sabre\DAV\Exception;
32: use Sabre\DAV\ICollection;
33: use Sabre\DAV\Server;
34:
35: final class WebDavFactory implements WebDavFactoryInterface
36: {
37: private AuthenticationManagerInterface $authenticationManager;
^
38:
39: public function __construct(
40: AuthenticationManagerInterface $authenticationManager
41: ) {
42: $this->authenticationManager = $authenticationManager;
43: }
44:
45: public function createWebDavAuth(): WebDavAuth
46: {
47: return new WebDavAuth(
ERROR: Unable to parse file: /code/src/Module/WebDav/WebDavApplication.php
ERROR: Parse error at line 32 column 13:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Module\WebDav;
27:
28: use Ampache\Config\ConfigContainerInterface;
29:
30: final class WebDavApplication
31: {
32: private ConfigContainerInterface $configContainer;
^
33:
34: private WebDavFactoryInterface $webDavFactory;
35:
36: public function __construct(
37: ConfigContainerInterface $configContainer,
38: WebDavFactoryInterface $webDavFactory
39: ) {
40: $this->configContainer = $configContainer;
41: $this->webDavFactory = $webDavFactory;
42: }
ERROR: Unable to parse file: /code/src/Module/Song/Deletion/SongDeleter.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Repository\Model\Rating;
29: use Ampache\Repository\Model\Song;
30: use Ampache\Repository\Model\Userflag;
31: use Ampache\Repository\ShoutRepositoryInterface;
32: use Ampache\Repository\SongRepositoryInterface;
33: use Ampache\Repository\UserActivityRepositoryInterface;
34: use Psr\Log\LoggerInterface;
35:
36: final class SongDeleter implements SongDeleterInterface
37: {
38: private LoggerInterface $logger;
^
39:
40: private ShoutRepositoryInterface $shoutRepository;
41:
42: private SongRepositoryInterface $songRepository;
43:
44: private UserActivityRepositoryInterface $useractivityRepository;
45:
46: private ArtCleanupInterface $artCleanup;
47:
48: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Song/Tag/SongTagWriter.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Repository\Model\Rating;
32: use Ampache\Repository\Model\Song;
33: use Ampache\Repository\Model\User;
34: use Ampache\Module\System\Core;
35: use Ampache\Module\System\LegacyLogger;
36: use Ampache\Module\Util\UtilityFactoryInterface;
37: use Psr\Log\LoggerInterface;
38:
39: final class SongTagWriter implements SongTagWriterInterface
40: {
41: private ConfigContainerInterface $configContainer;
^
42:
43: private UtilityFactoryInterface $utilityFactory;
44:
45: private LoggerInterface $logger;
46:
47: public function __construct(
48: ConfigContainerInterface $configContainer,
49: UtilityFactoryInterface $utilityFactory,
50: LoggerInterface $logger
51: ) {
ERROR: Unable to parse file: /code/src/Module/Song/SongSorter.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\System\LegacyLogger;
32: use Ampache\Repository\Model\Catalog;
33: use Ampache\Module\System\Core;
34: use Ampache\Module\System\Dba;
35: use Ampache\Repository\Model\Song;
36: use Psr\Log\LoggerInterface;
37: use RuntimeException;
38:
39: final class SongSorter implements SongSorterInterface
40: {
41: private ConfigContainerInterface $configContainer;
^
42:
43: private LoggerInterface $logger;
44:
45: public function __construct(
46: ConfigContainerInterface $configContainer,
47: LoggerInterface $logger
48: ) {
49: $this->configContainer = $configContainer;
50: $this->logger = $logger;
51: }
ERROR: Unable to parse file: /code/src/Module/Podcast/PodcastEpisodeDownloader.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Repository\Model\Catalog;
34: use Ampache\Repository\Model\Podcast_Episode;
35: use Ampache\Repository\PodcastRepositoryInterface;
36: use Psr\Log\LoggerInterface;
37:
38: /**
39: * Downloads podcast episode-files and update media information
40: */
41: final class PodcastEpisodeDownloader implements PodcastEpisodeDownloaderInterface
42: {
43: private PodcastFolderProviderInterface $podcastFolderProvider;
^
44:
45: private WebFetcherInterface $webFetcher;
46:
47: private PodcastRepositoryInterface $podcastRepository;
48:
49: private LoggerInterface $logger;
50:
51: public function __construct(
52: PodcastFolderProviderInterface $podcastFolderProvider,
53: WebFetcherInterface $webFetcher,
ERROR: Unable to parse file: /code/src/Module/Podcast/Exchange/PodcastOpmlImporter.php
ERROR: Parse error at line 44 column 13:
34:
35: /**
36: * Imports exported podcast items (from ampache or from an external service)
37: *
38: * Uses the OPML format to import podcasts from external sources
39: *
40: * @see http://opml.org/spec2.opml
41: */
42: final class PodcastOpmlImporter implements PodcastOpmlImporterInterface
43: {
44: private PodcastOpmlLoaderInterface $podcastOpmlLoader;
^
45:
46: private PodcastCreatorInterface $podcastCreator;
47:
48: private LoggerInterface $logger;
49:
50: public function __construct(
51: PodcastOpmlLoaderInterface $podcastOpmlLoader,
52: PodcastCreatorInterface $podcastCreator,
53: LoggerInterface $logger
54: ) {
ERROR: Unable to parse file: /code/src/Module/Podcast/Exchange/PodcastOpmlExporter.php
ERROR: Parse error at line 40 column 13:
30: use Generator;
31: use PhpTal\PHPTAL;
32:
33: /**
34: * Exports the podcasts in opml format
35: *
36: * @see http://opml.org/spec2.opml
37: */
38: final class PodcastOpmlExporter implements PodcastExporterInterface
39: {
40: private TalFactoryInterface $talFactory;
^
41:
42: private PodcastRepositoryInterface $podcastRepository;
43:
44: public function __construct(
45: TalFactoryInterface $talFactory,
46: PodcastRepositoryInterface $podcastRepository
47: ) {
48: $this->talFactory = $talFactory;
49: $this->podcastRepository = $podcastRepository;
50: }
ERROR: Unable to parse file: /code/src/Module/Podcast/Feed/FeedLoader.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Util\WebFetcher\WebFetcherInterface;
31: use DateTime;
32: use DateTimeInterface;
33: use SimpleXMLElement;
34:
35: /**
36: * Loads podcast feeds
37: */
38: final class FeedLoader implements FeedLoaderInterface
39: {
40: private WebFetcherInterface $webFetcher;
^
41:
42: public function __construct(
43: WebFetcherInterface $webFetcher
44: ) {
45: $this->webFetcher = $webFetcher;
46: }
47:
48: /**
49: * Load the podcast content by its feed-url
50: *
ERROR: Unable to parse file: /code/src/Module/Podcast/PodcastCreator.php
ERROR: Parse error at line 47 column 13:
37: use Ampache\Repository\Model\Catalog;
38: use Ampache\Repository\Model\Podcast;
39: use Ampache\Repository\PodcastRepositoryInterface;
40: use Psr\Log\LoggerInterface;
41:
42: /**
43: * Handles the creation of new podcasts
44: */
45: final class PodcastCreator implements PodcastCreatorInterface
46: {
47: private FeedLoaderInterface $feedLoader;
^
48:
49: private PodcastRepositoryInterface $podcastRepository;
50:
51: private LoggerInterface $logger;
52:
53: private PodcastSyncerInterface $podcastSyncer;
54:
55: private PodcastFolderProviderInterface $podcastFolderProvider;
56:
57: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Podcast/PodcastDeleter.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Repository\PodcastEpisodeRepositoryInterface;
37: use Ampache\Repository\PodcastRepositoryInterface;
38: use Generator;
39: use Psr\Log\LoggerInterface;
40:
41: /**
42: * Provides functionality to delete podcasts and -episodes
43: */
44: final class PodcastDeleter implements PodcastDeleterInterface
45: {
46: private PodcastRepositoryInterface $podcastRepository;
^
47:
48: private ModelFactoryInterface $modelFactory;
49:
50: private LoggerInterface $logger;
51:
52: private PodcastEpisodeRepositoryInterface $podcastEpisodeRepository;
53:
54: private ConfigContainerInterface $config;
55:
56: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Podcast/PodcastSyncer.php
ERROR: Parse error at line 47 column 13:
37: use Ampache\Repository\PodcastRepositoryInterface;
38: use DateTime;
39: use DateTimeInterface;
40: use SimpleXMLElement;
41:
42: /**
43: * Provides functions for podcast-syncing
44: */
45: final class PodcastSyncer implements PodcastSyncerInterface
46: {
47: private PodcastRepositoryInterface $podcastRepository;
^
48:
49: private ModelFactoryInterface $modelFactory;
50:
51: private PodcastEpisodeDownloaderInterface $podcastEpisodeDownloader;
52:
53: private PodcastDeleterInterface $podcastDeleter;
54:
55: private PodcastEpisodeRepositoryInterface $podcastEpisodeRepository;
56:
57: private ConfigContainerInterface $configContainer;
ERROR: Unable to parse file: /code/src/Module/Podcast/PodcastFolderProvider.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Module\Catalog\CatalogLoaderInterface;
29: use Ampache\Module\Catalog\Exception\CatalogLoadingException;
30: use Ampache\Module\Podcast\Exception\PodcastFolderException;
31: use Ampache\Repository\Model\Podcast;
32:
33: /**
34: * Provides functionality to build the podcasts root folder
35: */
36: final class PodcastFolderProvider implements PodcastFolderProviderInterface
37: {
38: private CatalogLoaderInterface $catalogLoader;
^
39:
40: public function __construct(
41: CatalogLoaderInterface $catalogLoader
42: ) {
43: $this->catalogLoader = $catalogLoader;
44: }
45:
46: /**
47: * Returns the podcasts base folder
48: *
ERROR: Unable to parse file: /code/src/Module/Authentication/Authenticator/OpenIdAuthenticator.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Repository\Model\User;
30: use Ampache\Module\Authentication\Openid;
31: use Ampache\Repository\UserRepositoryInterface;
32: use Auth_OpenID;
33: use Auth_OpenID_PAPE_Request;
34: use Auth_OpenID_SRegRequest;
35: use Auth_OpenID_SRegResponse;
36:
37: final class OpenIdAuthenticator implements AuthenticatorInterface
38: {
39: private UserRepositoryInterface $userRepository;
^
40:
41: public function __construct(
42: UserRepositoryInterface $userRepository
43: ) {
44: $this->userRepository = $userRepository;
45: }
46:
47: public function auth(string $username, string $password): array
48: {
49: unset($password);
ERROR: Unable to parse file: /code/src/Module/Authentication/AuthenticationManager.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\Authentication\Authenticator\AuthenticatorInterface;
30: use Ampache\Module\System\Dba;
31: use Ampache\Module\System\Session;
32:
33: final class AuthenticationManager implements AuthenticationManagerInterface
34: {
35: /**
36: * @var AuthenticatorInterface[] $authenticatorList
37: */
38: private array $authenticatorList;
^
39:
40: private ConfigContainerInterface $configContainer;
41:
42: public function __construct(
43: ConfigContainerInterface $configContainer,
44: array $authenticatorList
45: ) {
46: $this->configContainer = $configContainer;
47: $this->authenticatorList = $authenticatorList;
48: }
ERROR: Unable to parse file: /code/src/Module/Statistics/Stats.php
ERROR: Parse error at line 52 column 12:
42: * Stats Class
43: *
44: * this class handles the object_count
45: * stuff, before this was done in the user class
46: * but that's not good, all done through here.
47: *
48: */
49: class Stats
50: {
51: /* Base vars */
52: public int $id = 0;
^
53: public ?string $object_type;
54: public int $object_id;
55: public int $date;
56: public int $user;
57: public ?string $agent;
58:
59: /**
60: * clear
61: *
62: * This clears all stats for _everything.
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/UninstallPluginAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\System\LegacyLogger;
37: use Ampache\Module\Util\UiInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40: use Psr\Log\LoggerInterface;
41:
42: final class UninstallPluginAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'uninstall_plugin';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private UiInterface $ui;
49:
50: private ConfigContainerInterface $configContainer;
51:
52: private LoggerInterface $logger;
53:
54: public function __construct(
55: RequestParserInterface $requestParser,
56: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/ConfirmUninstallPluginAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ConfirmUninstallPluginAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'confirm_uninstall_plugin';
40:
41: private UiInterface $ui;
^
42:
43: private ConfigContainerInterface $configContainer;
44:
45: public function __construct(
46: UiInterface $ui,
47: ConfigContainerInterface $configContainer
48: ) {
49: $this->ui = $ui;
50: $this->configContainer = $configContainer;
51: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/InstallPluginAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\System\LegacyLogger;
37: use Ampache\Module\Util\UiInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40: use Psr\Log\LoggerInterface;
41:
42: final class InstallPluginAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'install_plugin';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private UiInterface $ui;
49:
50: private ConfigContainerInterface $configContainer;
51:
52: private LoggerInterface $logger;
53:
54: public function __construct(
55: RequestParserInterface $requestParser,
56: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/InstallLocalplayAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\System\AmpError;
36: use Ampache\Module\System\Core;
37: use Ampache\Module\Util\UiInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40:
41: final class InstallLocalplayAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'install_localplay';
44:
45: private UiInterface $ui;
^
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ConfigContainerInterface $configContainer
52: ) {
53: $this->ui = $ui;
54: $this->configContainer = $configContainer;
55: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/UninstallLocalplayAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Playback\Localplay\LocalPlay;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class UninstallLocalplayAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'uninstall_localplay';
41:
42: private UiInterface $ui;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: public function __construct(
47: UiInterface $ui,
48: ConfigContainerInterface $configContainer
49: ) {
50: $this->ui = $ui;
51: $this->configContainer = $configContainer;
52: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/InstallCatalogTypeAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\System\AmpError;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class InstallCatalogTypeAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'install_catalog_type';
42:
43: private UiInterface $ui;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: UiInterface $ui,
49: ConfigContainerInterface $configContainer
50: ) {
51: $this->ui = $ui;
52: $this->configContainer = $configContainer;
53: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/UpgradePluginAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\System\LegacyLogger;
37: use Ampache\Module\Util\UiInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40: use Psr\Log\LoggerInterface;
41:
42: final class UpgradePluginAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'upgrade_plugin';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private UiInterface $ui;
49:
50: private ConfigContainerInterface $configContainer;
51:
52: private LoggerInterface $logger;
53:
54: public function __construct(
55: RequestParserInterface $requestParser,
56: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/UninstallCatalogTypeAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\System\AmpError;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class UninstallCatalogTypeAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'uninstall_catalog_type';
42:
43: private UiInterface $ui;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: UiInterface $ui,
49: ConfigContainerInterface $configContainer
50: ) {
51: $this->ui = $ui;
52: $this->configContainer = $configContainer;
53: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/ShowPluginsAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\Ui;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowPluginsAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show_plugins';
41:
42: private UiInterface $ui;
^
43:
44: public function __construct(
45: UiInterface $ui
46: ) {
47: $this->ui = $ui;
48: }
49:
50: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
51: {
52: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_ADMIN) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/ConfirmUninstallLocalplayAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ConfirmUninstallLocalplayAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'confirm_uninstall_localplay';
40:
41: private UiInterface $ui;
^
42:
43: private ConfigContainerInterface $configContainer;
44:
45: public function __construct(
46: UiInterface $ui,
47: ConfigContainerInterface $configContainer
48: ) {
49: $this->ui = $ui;
50: $this->configContainer = $configContainer;
51: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/ShowLocalplayAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Playback\Localplay\LocalPlayTypeEnum;
33: use Ampache\Module\Util\Ui;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowLocalplayAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show_localplay';
41:
42: private UiInterface $ui;
^
43:
44: public function __construct(
45: UiInterface $ui
46: ) {
47: $this->ui = $ui;
48: }
49:
50: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
51: {
52: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_ADMIN) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/ConfirmUninstallCatalogType.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ConfirmUninstallCatalogType implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'confirm_uninstall_catalog_type';
40:
41: private UiInterface $ui;
^
42:
43: private ConfigContainerInterface $configContainer;
44:
45: public function __construct(
46: UiInterface $ui,
47: ConfigContainerInterface $configContainer
48: ) {
49: $this->ui = $ui;
50: $this->configContainer = $configContainer;
51: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/ShowCatalogTypesAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ShowCatalogTypesAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'show_catalog_types';
40:
41: private UiInterface $ui;
^
42:
43: public function __construct(
44: UiInterface $ui
45: ) {
46: $this->ui = $ui;
47: }
48:
49: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
50: {
51: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_ADMIN) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Modules/ShowAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\AccessLevelEnum;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class ShowAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'show';
39:
40: private UiInterface $ui;
^
41:
42: public function __construct(
43: UiInterface $ui
44: ) {
45: $this->ui = $ui;
46: }
47:
48: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
49: {
50: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_ADMIN) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Access/ShowAddAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\AccessLevelEnum;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class ShowAddAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'show_add';
39:
40: private UiInterface $ui;
^
41:
42: public function __construct(
43: UiInterface $ui
44: ) {
45: $this->ui = $ui;
46: }
47:
48: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
49: {
50: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_ADMIN) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Access/DeleteRecordAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Deletes an ACL item by its id
40: */
41: final class DeleteRecordAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'delete_record';
44:
45: private UiInterface $ui;
^
46:
47: private AccessRepositoryInterface $accessRepository;
48:
49: private RequestParserInterface $requestParser;
50:
51: public function __construct(
52: UiInterface $ui,
53: AccessRepositoryInterface $accessRepository,
54: RequestParserInterface $requestParser
55: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Access/ShowEditRecordAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ShowEditRecordAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'show_edit_record';
40:
41: private UiInterface $ui;
^
42:
43: private ModelFactoryInterface $modelFactory;
44:
45: public function __construct(
46: UiInterface $ui,
47: ModelFactoryInterface $modelFactory
48: ) {
49: $this->ui = $ui;
50: $this->modelFactory = $modelFactory;
51: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Access/ShowDeleteRecordAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\AccessLevelEnum;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ShowDeleteRecordAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'show_delete_record';
42:
43: private UiInterface $ui;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: private ModelFactoryInterface $modelFactory;
48:
49: public function __construct(
50: UiInterface $ui,
51: ConfigContainerInterface $configContainer,
52: ModelFactoryInterface $modelFactory
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Access/AddHostAction.php
ERROR: Parse error at line 51 column 13:
41: use Ampache\Module\Util\RequestParserInterface;
42: use Ampache\Module\Util\UiInterface;
43: use Psr\Http\Message\ResponseInterface;
44: use Psr\Http\Message\ServerRequestInterface;
45: use Psr\Log\LoggerInterface;
46:
47: final class AddHostAction implements ApplicationActionInterface
48: {
49: public const REQUEST_KEY = 'add_host';
50:
51: private UiInterface $ui;
^
52:
53: private ConfigContainerInterface $configContainer;
54:
55: private AccessListManagerInterface $accessListManager;
56:
57: private RequestParserInterface $requestParser;
58:
59: private LoggerInterface $logger;
60:
61: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Access/UpdateRecordAction.php
ERROR: Parse error at line 48 column 13:
38: use Ampache\Module\Authorization\GuiGatekeeperInterface;
39: use Ampache\Module\System\AmpError;
40: use Ampache\Module\Util\UiInterface;
41: use Psr\Http\Message\ResponseInterface;
42: use Psr\Http\Message\ServerRequestInterface;
43:
44: final class UpdateRecordAction implements ApplicationActionInterface
45: {
46: public const REQUEST_KEY = 'update_record';
47:
48: private UiInterface $ui;
^
49:
50: private ConfigContainerInterface $configContainer;
51:
52: private ModelFactoryInterface $modelFactory;
53:
54: private AccessListManagerInterface $accessListManager;
55:
56: private RequestParserInterface $requestParser;
57:
58: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Access/Lib/AccessListItem.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\Application\Admin\Access\Lib;
27:
28: use Ampache\Repository\Model\ModelFactoryInterface;
29: use Ampache\Module\Authorization\Access;
30:
31: final class AccessListItem implements AccessListItemInterface
32: {
33: private Access $access;
^
34:
35: private ModelFactoryInterface $modelFactory;
36:
37: public function __construct(
38: ModelFactoryInterface $modelFactory,
39: Access $access
40: ) {
41: $this->modelFactory = $modelFactory;
42: $this->access = $access;
43: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Access/ShowAddAdvancedAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\AccessLevelEnum;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class ShowAddAdvancedAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'show_add_advanced';
39:
40: private UiInterface $ui;
^
41:
42: public function __construct(
43: UiInterface $ui
44: ) {
45: $this->ui = $ui;
46: }
47:
48: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
49: {
50: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_ADMIN) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Access/ShowAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Ampache\Repository\AccessRepositoryInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show';
41:
42: private UiInterface $ui;
^
43:
44: private AccessRepositoryInterface $accessRepository;
45:
46: private ModelFactoryInterface $modelFactory;
47:
48: public function __construct(
49: UiInterface $ui,
50: AccessRepositoryInterface $accessRepository,
51: ModelFactoryInterface $modelFactory
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Export/ShowAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Renders the catalog export view
40: */
41: final class ShowAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'show';
44:
45: private UiInterface $ui;
^
46:
47: private CatalogLoaderInterface $catalogLoader;
48:
49: public function __construct(
50: UiInterface $ui,
51: CatalogLoaderInterface $catalogLoader
52: ) {
53: $this->ui = $ui;
54: $this->catalogLoader = $catalogLoader;
55: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Export/ExportAction.php
ERROR: Parse error at line 46 column 13:
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: /**
40: * Exports a catalog according to the submitted configuration
41: */
42: final class ExportAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'export';
45:
46: private CatalogExportFactoryInterface $catalogExportFactory;
^
47:
48: private CatalogLoaderInterface $catalogLoader;
49:
50: public function __construct(
51: CatalogExportFactoryInterface $catalogExportFactory,
52: CatalogLoaderInterface $catalogLoader
53: ) {
54: $this->catalogExportFactory = $catalogExportFactory;
55: $this->catalogLoader = $catalogLoader;
56: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/ClearNowPlayingAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Playback\Stream;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ClearNowPlayingAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'clear_now_playing';
42:
43: private UiInterface $ui;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: UiInterface $ui,
49: ConfigContainerInterface $configContainer
50: ) {
51: $this->ui = $ui;
52: $this->configContainer = $configContainer;
53: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/UpdateFileTagsAction.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\Util\UiInterface;
30: use Psr\Http\Message\ResponseInterface;
31: use Psr\Http\Message\ServerRequestInterface;
32:
33: final class UpdateFileTagsAction extends AbstractCatalogAction
34: {
35: public const REQUEST_KEY = 'update_file_tags';
36:
37: private ConfigContainerInterface $configContainer;
^
38:
39: private UiInterface $ui;
40:
41: public function __construct(
42: UiInterface $ui,
43: ConfigContainerInterface $configContainer
44: ) {
45: parent::__construct($ui);
46: $this->configContainer = $configContainer;
47: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/UpdateFromAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class UpdateFromAction extends AbstractCatalogAction
35: {
36: public const REQUEST_KEY = 'update_from';
37:
38: private ConfigContainerInterface $configContainer;
^
39:
40: private UiInterface $ui;
41:
42: public function __construct(
43: UiInterface $ui,
44: ConfigContainerInterface $configContainer
45: ) {
46: parent::__construct($ui);
47: $this->configContainer = $configContainer;
48: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/ShowDeleteCatalogAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ShowDeleteCatalogAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'show_delete_catalog';
40:
41: private UiInterface $ui;
^
42:
43: private ConfigContainerInterface $configContainer;
44:
45: public function __construct(
46: UiInterface $ui,
47: ConfigContainerInterface $configContainer
48: ) {
49: $this->ui = $ui;
50: $this->configContainer = $configContainer;
51: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/GatherMediaArtAction.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\Util\UiInterface;
30: use Psr\Http\Message\ResponseInterface;
31: use Psr\Http\Message\ServerRequestInterface;
32:
33: final class GatherMediaArtAction extends AbstractCatalogAction
34: {
35: public const REQUEST_KEY = 'gather_media_art';
36:
37: private ConfigContainerInterface $configContainer;
^
38:
39: private UiInterface $ui;
40:
41: public function __construct(
42: UiInterface $ui,
43: ConfigContainerInterface $configContainer
44: ) {
45: parent::__construct($ui);
46: $this->configContainer = $configContainer;
47: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/ShowCustomizeCatalogAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowCustomizeCatalogAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show_customize_catalog';
41:
42: private RequestParserInterface $requestParser;
^
43:
44: private UiInterface $ui;
45:
46: public function __construct(
47: RequestParserInterface $requestParser,
48: UiInterface $ui
49: ) {
50: $this->requestParser = $requestParser;
51: $this->ui = $ui;
52: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/AddToAllCatalogsAction.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\Util\UiInterface;
30: use Psr\Http\Message\ResponseInterface;
31: use Psr\Http\Message\ServerRequestInterface;
32:
33: final class AddToAllCatalogsAction extends AbstractCatalogAction
34: {
35: public const REQUEST_KEY = 'add_to_all_catalogs';
36:
37: private ConfigContainerInterface $configContainer;
^
38:
39: private UiInterface $ui;
40:
41: public function __construct(
42: UiInterface $ui,
43: ConfigContainerInterface $configContainer
44: ) {
45: parent::__construct($ui);
46: $this->configContainer = $configContainer;
47: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/AddToCatalogAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class AddToCatalogAction extends AbstractCatalogAction
35: {
36: public const REQUEST_KEY = 'add_to_catalog';
37:
38: private ConfigContainerInterface $configContainer;
^
39:
40: private UiInterface $ui;
41:
42: public function __construct(
43: UiInterface $ui,
44: ConfigContainerInterface $configContainer
45: ) {
46: parent::__construct($ui);
47: $this->configContainer = $configContainer;
48: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/ShowAddCatalogAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Module\Authorization\AccessLevelEnum;
29: use Ampache\Module\Authorization\GuiGatekeeperInterface;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class ShowAddCatalogAction implements ApplicationActionInterface
35: {
36: public const REQUEST_KEY = 'show_add_catalog';
37:
38: private UiInterface $ui;
^
39:
40: public function __construct(
41: UiInterface $ui
42: ) {
43: $this->ui = $ui;
44: }
45:
46: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
47: {
48: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_MANAGER) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/ShowDisabledAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\AccessLevelEnum;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ShowDisabledAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'show_disabled';
42:
43: private UiInterface $ui;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: UiInterface $ui,
49: ConfigContainerInterface $configContainer
50: ) {
51: $this->ui = $ui;
52: $this->configContainer = $configContainer;
53: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/ClearStatsAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Statistics\Stats;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ClearStatsAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'clear_stats';
42:
43: private UiInterface $ui;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: UiInterface $ui,
49: ConfigContainerInterface $configContainer
50: ) {
51: $this->ui = $ui;
52: $this->configContainer = $configContainer;
53: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/GarbageCollectAction.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\Util\UiInterface;
30: use Psr\Http\Message\ResponseInterface;
31: use Psr\Http\Message\ServerRequestInterface;
32:
33: final class GarbageCollectAction extends AbstractCatalogAction
34: {
35: public const REQUEST_KEY = 'garbage_collect';
36:
37: private ConfigContainerInterface $configContainer;
^
38:
39: private UiInterface $ui;
40:
41: public function __construct(
42: UiInterface $ui,
43: ConfigContainerInterface $configContainer
44: ) {
45: parent::__construct($ui);
46: $this->configContainer = $configContainer;
47: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/CleanAllCatalogsAction.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\Util\UiInterface;
30: use Psr\Http\Message\ResponseInterface;
31: use Psr\Http\Message\ServerRequestInterface;
32:
33: final class CleanAllCatalogsAction extends AbstractCatalogAction
34: {
35: public const REQUEST_KEY = 'clean_all_catalogs';
36:
37: private ConfigContainerInterface $configContainer;
^
38:
39: private UiInterface $ui;
40:
41: public function __construct(
42: UiInterface $ui,
43: ConfigContainerInterface $configContainer
44: ) {
45: parent::__construct($ui);
46: $this->configContainer = $configContainer;
47: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/FullServiceAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class FullServiceAction extends AbstractCatalogAction
35: {
36: public const REQUEST_KEY = 'full_service';
37:
38: private ConfigContainerInterface $configContainer;
^
39:
40: private UiInterface $ui;
41:
42: public function __construct(
43: UiInterface $ui,
44: ConfigContainerInterface $configContainer
45: ) {
46: parent::__construct($ui);
47: $this->configContainer = $configContainer;
48: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/UpdateAllCatalogsAction.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\Util\UiInterface;
30: use Psr\Http\Message\ResponseInterface;
31: use Psr\Http\Message\ServerRequestInterface;
32:
33: final class UpdateAllCatalogsAction extends AbstractCatalogAction
34: {
35: public const REQUEST_KEY = 'update_all_catalogs';
36:
37: private ConfigContainerInterface $configContainer;
^
38:
39: private UiInterface $ui;
40:
41: public function __construct(
42: UiInterface $ui,
43: ConfigContainerInterface $configContainer
44: ) {
45: parent::__construct($ui);
46: $this->configContainer = $configContainer;
47: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/UpdateCatalogAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class UpdateCatalogAction extends AbstractCatalogAction
35: {
36: public const REQUEST_KEY = 'update_catalog';
37:
38: private ConfigContainerInterface $configContainer;
^
39:
40: private UiInterface $ui;
41:
42: public function __construct(
43: UiInterface $ui,
44: ConfigContainerInterface $configContainer
45: ) {
46: parent::__construct($ui);
47: $this->configContainer = $configContainer;
48: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/UpdateAllFileTagsActions.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\Util\UiInterface;
30: use Psr\Http\Message\ResponseInterface;
31: use Psr\Http\Message\ServerRequestInterface;
32:
33: final class UpdateAllFileTagsActions extends AbstractCatalogAction
34: {
35: public const REQUEST_KEY = 'update_all_file_tags';
36:
37: private ConfigContainerInterface $configContainer;
^
38:
39: private UiInterface $ui;
40:
41: public function __construct(
42: UiInterface $ui,
43: ConfigContainerInterface $configContainer
44: ) {
45: parent::__construct($ui);
46: $this->configContainer = $configContainer;
47: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/AbstractCatalogAction.php
ERROR: Parse error at line 37 column 13:
27: use Ampache\Module\Application\ApplicationActionInterface;
28: use Ampache\Module\Application\Exception\AccessDeniedException;
29: use Ampache\Module\Authorization\AccessLevelEnum;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: abstract class AbstractCatalogAction implements ApplicationActionInterface
36: {
37: private UiInterface $ui;
^
38:
39: public function __construct(
40: UiInterface $ui
41: ) {
42: $this->ui = $ui;
43: }
44:
45: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
46: {
47: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_MANAGER) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/EnableDisabledAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Repository\Model\Song;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class EnableDisabledAction extends AbstractCatalogAction
36: {
37: public const REQUEST_KEY = 'enable_disabled';
38:
39: private ConfigContainerInterface $configContainer;
^
40:
41: private UiInterface $ui;
42:
43: public function __construct(
44: UiInterface $ui,
45: ConfigContainerInterface $configContainer
46: ) {
47: parent::__construct($ui);
48: $this->configContainer = $configContainer;
49: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/UpdateCatalogSettingsAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Repository\Model\Catalog;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class UpdateCatalogSettingsAction extends AbstractCatalogAction
36: {
37: public const REQUEST_KEY = 'update_catalog_settings';
38:
39: private ConfigContainerInterface $configContainer;
^
40:
41: private UiInterface $ui;
42:
43: public function __construct(
44: UiInterface $ui,
45: ConfigContainerInterface $configContainer
46: ) {
47: parent::__construct($ui);
48: $this->configContainer = $configContainer;
49: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/CleanCatalogAction.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\Util\UiInterface;
30: use Psr\Http\Message\ResponseInterface;
31: use Psr\Http\Message\ServerRequestInterface;
32:
33: final class CleanCatalogAction extends AbstractCatalogAction
34: {
35: public const REQUEST_KEY = 'clean_catalog';
36:
37: private ConfigContainerInterface $configContainer;
^
38:
39: private UiInterface $ui;
40:
41: public function __construct(
42: UiInterface $ui,
43: ConfigContainerInterface $configContainer
44: ) {
45: parent::__construct($ui);
46: $this->configContainer = $configContainer;
47: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/ShowCatalogsAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Util\UiInterface;
33: use Ampache\Repository\Model\Browse;
34: use Ampache\Repository\Model\Catalog;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowCatalogsAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show_catalogs';
41:
42: private UiInterface $ui;
^
43:
44: public function __construct(
45: UiInterface $ui
46: ) {
47: $this->ui = $ui;
48: }
49:
50: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
51: {
52: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_MANAGER) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/ImportToCatalogAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class ImportToCatalogAction extends AbstractCatalogAction
35: {
36: public const REQUEST_KEY = 'import_to_catalog';
37:
38: private ConfigContainerInterface $configContainer;
^
39:
40: private UiInterface $ui;
41:
42: public function __construct(
43: UiInterface $ui,
44: ConfigContainerInterface $configContainer
45: ) {
46: parent::__construct($ui);
47: $this->configContainer = $configContainer;
48: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/DeleteCatalogAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class DeleteCatalogAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'delete_catalog';
41:
42: private UiInterface $ui;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: private RequestParserInterface $requestParser;
47:
48: public function __construct(
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer,
51: RequestParserInterface $requestParser
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Catalog/AddCatalogAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Util\RequestParserInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Ampache\Repository\Model\Catalog;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class AddCatalogAction extends AbstractCatalogAction
39: {
40: public const REQUEST_KEY = 'add_catalog';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private UiInterface $ui;
45:
46: private RequestParserInterface $requestParser;
47:
48: public function __construct(
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer,
51: RequestParserInterface $requestParser
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Filter/AddFilterAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Util\RequestParserInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Ampache\Repository\Model\Catalog;
37:
38: final class AddFilterAction extends AbstractFilterAction
39: {
40: public const REQUEST_KEY = 'add_filter';
41:
42: private UiInterface $ui;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: private RequestParserInterface $requestParser;
47:
48: public function __construct(
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer,
51: RequestParserInterface $requestParser
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Filter/DeleteAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class DeleteAction extends AbstractFilterAction
35: {
36: public const REQUEST_KEY = 'delete';
37:
38: private UiInterface $ui;
^
39:
40: private ConfigContainerInterface $configContainer;
41:
42: public function __construct(
43: UiInterface $ui,
44: ConfigContainerInterface $configContainer
45: ) {
46: $this->ui = $ui;
47: $this->configContainer = $configContainer;
48: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Filter/UpdateFilterAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Util\RequestParserInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Ampache\Repository\Model\Catalog;
37:
38: final class UpdateFilterAction extends AbstractFilterAction
39: {
40: public const REQUEST_KEY = 'update_filter';
41:
42: private UiInterface $ui;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: private RequestParserInterface $requestParser;
47:
48: public function __construct(
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer,
51: RequestParserInterface $requestParser
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Filter/ShowAddFilterAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class ShowAddFilterAction extends AbstractFilterAction
35: {
36: public const REQUEST_KEY = 'show_add_filter';
37:
38: private UiInterface $ui;
^
39:
40: private ConfigContainerInterface $configContainer;
41:
42: public function __construct(
43: UiInterface $ui,
44: ConfigContainerInterface $configContainer
45: ) {
46: $this->ui = $ui;
47: $this->configContainer = $configContainer;
48: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Filter/ShowAction.php
ERROR: Parse error at line 43 column 13:
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: /**
37: * Renders the catalog-filters list
38: */
39: final class ShowAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'show';
42:
43: private UiInterface $ui;
^
44:
45: public function __construct(
46: UiInterface $ui
47: ) {
48: $this->ui = $ui;
49: }
50:
51: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
52: {
53: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_MANAGER) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Filter/ConfirmDeleteAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\Util\UiInterface;
31: use Ampache\Repository\Model\Catalog;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class ConfirmDeleteAction extends AbstractFilterAction
36: {
37: public const REQUEST_KEY = 'confirm_delete';
38:
39: private UiInterface $ui;
^
40:
41: private ConfigContainerInterface $configContainer;
42:
43: public function __construct(
44: UiInterface $ui,
45: ConfigContainerInterface $configContainer
46: ) {
47: $this->ui = $ui;
48: $this->configContainer = $configContainer;
49: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Filter/ShowEditAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class ShowEditAction extends AbstractFilterAction
35: {
36: public const REQUEST_KEY = 'show_edit';
37:
38: private UiInterface $ui;
^
39:
40: private ConfigContainerInterface $configContainer;
41:
42: public function __construct(
43: UiInterface $ui,
44: ConfigContainerInterface $configContainer
45: ) {
46: $this->ui = $ui;
47: $this->configContainer = $configContainer;
48: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/License/EditAction.php
ERROR: Parse error at line 46 column 13:
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: /**
40: * Actually updates or creates a license
41: */
42: final class EditAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'edit';
45:
46: private UiInterface $ui;
^
47:
48: private ConfigContainerInterface $configContainer;
49:
50: private LicenseRepositoryInterface $licenseRepository;
51:
52: public function __construct(
53: UiInterface $ui,
54: ConfigContainerInterface $configContainer,
55: LicenseRepositoryInterface $licenseRepository
56: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/License/DeleteAction.php
ERROR: Parse error at line 46 column 13:
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: /**
40: * Deletes a single license
41: */
42: final class DeleteAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'delete';
45:
46: private UiInterface $ui;
^
47:
48: private ConfigContainerInterface $configContainer;
49:
50: private LicenseRepositoryInterface $licenseRepository;
51:
52: public function __construct(
53: UiInterface $ui,
54: ConfigContainerInterface $configContainer,
55: LicenseRepositoryInterface $licenseRepository
56: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/License/ShowCreateAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Ampache\Repository\LicenseRepositoryInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowCreateAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show_create';
41:
42: private UiInterface $ui;
^
43:
44: private LicenseRepositoryInterface $licenseRepository;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: UiInterface $ui,
50: LicenseRepositoryInterface $licenseRepository,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/License/ShowAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show';
41:
42: private UiInterface $ui;
^
43:
44: private ModelFactoryInterface $modelFactory;
45: private LicenseRepositoryInterface $licenseRepository;
46:
47: public function __construct(
48: UiInterface $ui,
49: ModelFactoryInterface $modelFactory,
50: LicenseRepositoryInterface $licenseRepository
51: ) {
52: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Admin/License/ShowEditAction.php
ERROR: Parse error at line 46 column 13:
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: /**
40: * Shows the license edit-page
41: */
42: final class ShowEditAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'show_edit';
45:
46: private UiInterface $ui;
^
47:
48: private LicenseRepositoryInterface $licenseRepository;
49:
50: private ConfigContainerInterface $configContainer;
51:
52: public function __construct(
53: UiInterface $ui,
54: LicenseRepositoryInterface $licenseRepository,
55: ConfigContainerInterface $configContainer
56: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Mail/SendMailAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Util\Mailer;
36: use Ampache\Module\Util\RequestParserInterface;
37: use Ampache\Module\Util\UiInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40:
41: final class SendMailAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'send_mail';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private UiInterface $ui;
48:
49: private ConfigContainerInterface $configContainer;
50:
51: public function __construct(
52: RequestParserInterface $requestParser,
53: UiInterface $ui,
54: ConfigContainerInterface $configContainer
55: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Mail/ShowAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\AccessLevelEnum;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class ShowAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'show';
39:
40: private UiInterface $ui;
^
41:
42: public function __construct(
43: UiInterface $ui
44: ) {
45: $this->ui = $ui;
46: }
47:
48: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
49: {
50: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_MANAGER) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Index/ShowAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show';
41:
42: private UiInterface $ui;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: public function __construct(
47: UiInterface $ui,
48: ModelFactoryInterface $modelFactory
49: ) {
50: $this->ui = $ui;
51: $this->modelFactory = $modelFactory;
52: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Upload/ShowAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Repository\Model\Catalog;
31: use Ampache\Repository\Model\ModelFactoryInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class ShowAction extends AbstractUploadAction
37: {
38: public const REQUEST_KEY = 'show';
39:
40: private UiInterface $ui;
^
41:
42: private ModelFactoryInterface $modelFactory;
43:
44: private ConfigContainerInterface $configContainer;
45:
46: public function __construct(
47: UiInterface $ui,
48: ModelFactoryInterface $modelFactory,
49: ConfigContainerInterface $configContainer
50: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Shout/DeleteAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Ampache\Repository\ShoutRepositoryInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class DeleteAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'delete';
42:
43: private UiInterface $ui;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: private ShoutRepositoryInterface $shoutRepository;
48:
49: public function __construct(
50: UiInterface $ui,
51: ConfigContainerInterface $configContainer,
52: ShoutRepositoryInterface $shoutRepository
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Shout/EditShoutAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Edits a ShoutBox item
40: */
41: final class EditShoutAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'edit_shout';
44:
45: private UiInterface $ui;
^
46:
47: private ShoutRepositoryInterface $shoutRepository;
48:
49: public function __construct(
50: UiInterface $ui,
51: ShoutRepositoryInterface $shoutRepository
52: ) {
53: $this->ui = $ui;
54: $this->shoutRepository = $shoutRepository;
55: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Shout/ShowAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ShowAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'show';
40:
41: private UiInterface $ui;
^
42:
43: private ModelFactoryInterface $modelFactory;
44:
45: public function __construct(
46: UiInterface $ui,
47: ModelFactoryInterface $modelFactory
48: ) {
49: $this->ui = $ui;
50: $this->modelFactory = $modelFactory;
51: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/Shout/ShowEditAction.php
ERROR: Parse error at line 47 column 13:
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: /**
41: * Displays the shouts edit-view
42: */
43: final class ShowEditAction implements ApplicationActionInterface
44: {
45: public const REQUEST_KEY = 'show_edit';
46:
47: private UiInterface $ui;
^
48:
49: private ShoutRepositoryInterface $shoutRepository;
50:
51: private ModelFactoryInterface $modelFactory;
52:
53: private ShoutObjectLoaderInterface $shoutObjectLoader;
54:
55: public function __construct(
56: UiInterface $ui,
57: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/System/GenerateConfigAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Util\Horde_Browser;
36: use Psr\Http\Message\ResponseFactoryInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39: use Psr\Http\Message\StreamFactoryInterface;
40:
41: final class GenerateConfigAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'generate_config';
44:
45: private ConfigContainerInterface $configContainer;
^
46:
47: private Horde_Browser $browser;
48:
49: private InstallationHelperInterface $installationHelper;
50:
51: private ResponseFactoryInterface $responseFactory;
52:
53: private StreamFactoryInterface $streamFactory;
54:
55: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/System/ResetDbCharsetAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Database\DatabaseCharsetUpdaterInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ResetDbCharsetAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'reset_db_charset';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private UiInterface $ui;
45:
46: private DatabaseCharsetUpdaterInterface $databaseCharsetUpdater;
47:
48: public function __construct(
49: ConfigContainerInterface $configContainer,
50: UiInterface $ui,
51: DatabaseCharsetUpdaterInterface $databaseCharsetUpdater
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/System/WriteConfigAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\System\InstallationHelperInterface;
35: use Psr\Http\Message\ResponseFactoryInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38: use Teapot\StatusCode;
39:
40: final class WriteConfigAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'write_config';
43:
44: private ConfigContainerInterface $configContainer;
^
45:
46: private InstallationHelperInterface $installationHelper;
47:
48: private ResponseFactoryInterface $responseFactory;
49:
50: public function __construct(
51: ConfigContainerInterface $configContainer,
52: InstallationHelperInterface $installationHelper,
53: ResponseFactoryInterface $responseFactory
54: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/System/ShowDebugAction.php
ERROR: Parse error at line 47 column 13:
37: use Ampache\Module\Util\UiInterface;
38: use Ampache\Repository\Model\UpdateInfoEnum;
39: use Ampache\Repository\UpdateInfoRepositoryInterface;
40: use Psr\Http\Message\ResponseInterface;
41: use Psr\Http\Message\ServerRequestInterface;
42:
43: final class ShowDebugAction implements ApplicationActionInterface
44: {
45: public const REQUEST_KEY = 'show_debug';
46:
47: private RequestParserInterface $requestParser;
^
48:
49: private ConfigContainerInterface $configContainer;
50:
51: private UiInterface $ui;
52:
53: private UpdateInfoRepositoryInterface $updateInfoRepository;
54:
55: public function __construct(
56: RequestParserInterface $requestParser,
57: ConfigContainerInterface $configContainer,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/System/ClearCacheAction.php
ERROR: Parse error at line 51 column 13:
41:
42: /**
43: * @todo Check if those `clear cache` calls are really necessary
44: * Those caches exist just for the lifetime of a request (or a cli process).
45: * It makes no sense to explicitly clear them within a gui request
46: */
47: final class ClearCacheAction implements ApplicationActionInterface
48: {
49: public const REQUEST_KEY = 'clear_cache';
50:
51: private ConfigContainerInterface $configContainer;
^
52:
53: private UiInterface $ui;
54:
55: public function __construct(
56: ConfigContainerInterface $configContainer,
57: UiInterface $ui
58: ) {
59: $this->configContainer = $configContainer;
60: $this->ui = $ui;
61: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/DeleteAvatarAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Deletes a user avatar
40: */
41: final class DeleteAvatarAction extends AbstractUserAction
42: {
43: public const REQUEST_KEY = 'delete_avatar';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private UiInterface $ui;
48:
49: private ModelFactoryInterface $modelFactory;
50:
51: private ConfigContainerInterface $configContainer;
52:
53: public function __construct(
54: RequestParserInterface $requestParser,
55: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/UpdateUserAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\Util\Ui;
37: use Ampache\Module\Util\UiInterface;
38: use Ampache\Repository\UserRepositoryInterface;
39: use Psr\Http\Message\ResponseInterface;
40: use Psr\Http\Message\ServerRequestInterface;
41:
42: final class UpdateUserAction extends AbstractUserAction
43: {
44: public const REQUEST_KEY = 'update_user';
45:
46: private UiInterface $ui;
^
47:
48: private ModelFactoryInterface $modelFactory;
49:
50: private ConfigContainerInterface $configContainer;
51:
52: private UserRepositoryInterface $userRepository;
53: private RequestParserInterface $requestParser;
54:
55: public function __construct(
56: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowAddUserAction.php
ERROR: Parse error at line 41 column 13:
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: /**
35: * Shows the add-user form
36: */
37: final class ShowAddUserAction extends AbstractUserAction
38: {
39: public const REQUEST_KEY = 'show_add_user';
40:
41: private UiInterface $ui;
^
42:
43: private ConfigContainerInterface $configContainer;
44:
45: public function __construct(
46: UiInterface $ui,
47: ConfigContainerInterface $configContainer
48: ) {
49: $this->ui = $ui;
50: $this->configContainer = $configContainer;
51: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ConfirmEnableAction.php
ERROR: Parse error at line 46 column 13:
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: /**
40: * Activates a user
41: */
42: final class ConfirmEnableAction extends AbstractUserAction
43: {
44: public const REQUEST_KEY = 'confirm_enable';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private UiInterface $ui;
49:
50: private ModelFactoryInterface $modelFactory;
51:
52: private ConfigContainerInterface $configContainer;
53:
54: private UserStateTogglerInterface $userStateToggler;
55:
56: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/EnableAction.php
ERROR: Parse error at line 43 column 13:
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: /**
37: * Renders the user-enable confirmation
38: */
39: final class EnableAction extends AbstractUserAction
40: {
41: public const REQUEST_KEY = 'enable';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowGenerateStreamTokenAction.php
ERROR: Parse error at line 41 column 13:
31:
32: /**
33: * Renders the confirmation dialogue for stream-token deletion
34: */
35: final class ShowGenerateStreamTokenAction extends AbstractUserAction
36: {
37: use UserAdminApplicationTrait;
38:
39: public const REQUEST_KEY = 'show_generate_streamtoken';
40:
41: private UiInterface $ui;
^
42:
43: public function __construct(
44: UiInterface $ui
45: ) {
46: $this->ui = $ui;
47: }
48:
49: protected function handle(ServerRequestInterface $request): ?ResponseInterface
50: {
51: return $this->showGenericUserConfirmation(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowDeleteApiKeyAction.php
ERROR: Parse error at line 41 column 13:
31:
32: /**
33: * Renders the confirmation-dialogue for api-key deletion
34: */
35: final class ShowDeleteApiKeyAction extends AbstractUserAction
36: {
37: use UserAdminApplicationTrait;
38:
39: public const REQUEST_KEY = 'show_delete_apikey';
40:
41: private UiInterface $ui;
^
42:
43: public function __construct(
44: UiInterface $ui
45: ) {
46: $this->ui = $ui;
47: }
48:
49: protected function handle(ServerRequestInterface $request): ?ResponseInterface
50: {
51: return $this->showGenericUserConfirmation(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/DeleteStreamTokenAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Deletes the users stream-token
40: */
41: final class DeleteStreamTokenAction extends AbstractUserAction
42: {
43: public const REQUEST_KEY = 'delete_streamtoken';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private UiInterface $ui;
48:
49: private ModelFactoryInterface $modelFactory;
50:
51: private ConfigContainerInterface $configContainer;
52:
53: public function __construct(
54: RequestParserInterface $requestParser,
55: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowDeleteAction.php
ERROR: Parse error at line 43 column 13:
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: /**
37: * Renders the user-delete confirmation
38: */
39: final class ShowDeleteAction extends AbstractUserAction
40: {
41: public const REQUEST_KEY = 'delete';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowDeleteRssTokenAction.php
ERROR: Parse error at line 41 column 13:
31:
32: /**
33: * Renders the confirmation dialogue for rss-token deletion
34: */
35: final class ShowDeleteRssTokenAction extends AbstractUserAction
36: {
37: use UserAdminApplicationTrait;
38:
39: public const REQUEST_KEY = 'show_delete_rsstoken';
40:
41: private UiInterface $ui;
^
42:
43: public function __construct(
44: UiInterface $ui
45: ) {
46: $this->ui = $ui;
47: }
48:
49: protected function handle(ServerRequestInterface $request): ?ResponseInterface
50: {
51: return $this->showGenericUserConfirmation(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/DeleteRssTokenAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Deletes the users rss-token
40: */
41: final class DeleteRssTokenAction extends AbstractUserAction
42: {
43: public const REQUEST_KEY = 'delete_rsstoken';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private UiInterface $ui;
48:
49: private ModelFactoryInterface $modelFactory;
50:
51: private ConfigContainerInterface $configContainer;
52:
53: public function __construct(
54: RequestParserInterface $requestParser,
55: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/GenerateStreamTokenAction.php
ERROR: Parse error at line 46 column 13:
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: /**
40: * Generates a stream token for a user
41: */
42: final class GenerateStreamTokenAction extends AbstractUserAction
43: {
44: public const REQUEST_KEY = 'generate_streamtoken';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private UiInterface $ui;
49:
50: private ModelFactoryInterface $modelFactory;
51:
52: private ConfigContainerInterface $configContainer;
53:
54: private UserKeyGeneratorInterface $userKeyGenerator;
55:
56: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowDeleteStreamTokenAction.php
ERROR: Parse error at line 41 column 13:
31:
32: /**
33: * Renders the confirmation dialogue for stream-token deletion
34: */
35: final class ShowDeleteStreamTokenAction extends AbstractUserAction
36: {
37: use UserAdminApplicationTrait;
38:
39: public const REQUEST_KEY = 'show_delete_streamtoken';
40:
41: private UiInterface $ui;
^
42:
43: public function __construct(
44: UiInterface $ui
45: ) {
46: $this->ui = $ui;
47: }
48:
49: protected function handle(ServerRequestInterface $request): ?ResponseInterface
50: {
51: return $this->showGenericUserConfirmation(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowIpHistoryAction.php
ERROR: Parse error at line 44 column 13:
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: /**
37: * Renders a users ip history
38: */
39: final class ShowIpHistoryAction extends AbstractUserAction
40: {
41: /** @var string */
42: public const REQUEST_KEY = 'show_ip_history';
43:
44: private UiInterface $ui;
^
45:
46: private ModelFactoryInterface $modelFactory;
47:
48: private IpHistoryRepositoryInterface $ipHistoryRepository;
49:
50: private ConfigContainerInterface $configContainer;
51:
52: public function __construct(
53: UiInterface $ui,
54: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowDeleteAvatarAction.php
ERROR: Parse error at line 41 column 13:
31:
32: /**
33: * Renders the confirmation dialogue for avatar deletion
34: */
35: final class ShowDeleteAvatarAction extends AbstractUserAction
36: {
37: use UserAdminApplicationTrait;
38:
39: public const REQUEST_KEY = 'show_delete_avatar';
40:
41: private UiInterface $ui;
^
42:
43: public function __construct(
44: UiInterface $ui
45: ) {
46: $this->ui = $ui;
47: }
48:
49: protected function handle(ServerRequestInterface $request): ?ResponseInterface
50: {
51: return $this->showGenericUserConfirmation(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/GenerateRssTokenAction.php
ERROR: Parse error at line 46 column 13:
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: /**
40: * Generates a rss-token for a user
41: */
42: final class GenerateRssTokenAction extends AbstractUserAction
43: {
44: public const REQUEST_KEY = 'generate_rsstoken';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private UiInterface $ui;
49:
50: private ModelFactoryInterface $modelFactory;
51:
52: private ConfigContainerInterface $configContainer;
53:
54: private UserKeyGeneratorInterface $userKeyGenerator;
55:
56: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowGenerateApiKeyAction.php
ERROR: Parse error at line 41 column 13:
31:
32: /**
33: * Renders the confirmation dialogue for api-key generation
34: */
35: final class ShowGenerateApiKeyAction extends AbstractUserAction
36: {
37: use UserAdminApplicationTrait;
38:
39: public const REQUEST_KEY = 'show_generate_apikey';
40:
41: private UiInterface $ui;
^
42:
43: public function __construct(
44: UiInterface $ui
45: ) {
46: $this->ui = $ui;
47: }
48:
49: protected function handle(ServerRequestInterface $request): ?ResponseInterface
50: {
51: return $this->showGenericUserConfirmation(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowPreferencesAction.php
ERROR: Parse error at line 42 column 13:
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: /**
36: * Renders the users preferences
37: */
38: final class ShowPreferencesAction extends AbstractUserAction
39: {
40: public const REQUEST_KEY = 'show_preferences';
41:
42: private UiInterface $ui;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private PreferenceRepositoryInterface $preferenceRepository;
47:
48: public function __construct(
49: UiInterface $ui,
50: ModelFactoryInterface $modelFactory,
51: PreferenceRepositoryInterface $preferenceRepository
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/DisableAction.php
ERROR: Parse error at line 43 column 13:
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: /**
37: * Renders the user disable confirmation
38: */
39: final class DisableAction extends AbstractUserAction
40: {
41: public const REQUEST_KEY = 'disable';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowGenerateRssTokenAction.php
ERROR: Parse error at line 41 column 13:
31:
32: /**
33: * Renders the confirmation dialogue for rss-token generation
34: */
35: final class ShowGenerateRssTokenAction extends AbstractUserAction
36: {
37: use UserAdminApplicationTrait;
38:
39: public const REQUEST_KEY = 'show_generate_rsstoken';
40:
41: private UiInterface $ui;
^
42:
43: public function __construct(
44: UiInterface $ui
45: ) {
46: $this->ui = $ui;
47: }
48:
49: protected function handle(ServerRequestInterface $request): ?ResponseInterface
50: {
51: return $this->showGenericUserConfirmation(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ConfirmDisableAction.php
ERROR: Parse error at line 46 column 13:
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: /**
40: * Disables a user
41: */
42: final class ConfirmDisableAction extends AbstractUserAction
43: {
44: public const REQUEST_KEY = 'confirm_disable';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private UiInterface $ui;
49:
50: private ModelFactoryInterface $modelFactory;
51:
52: private ConfigContainerInterface $configContainer;
53:
54: private UserStateTogglerInterface $userStateToggler;
55:
56: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/AddUserAction.php
ERROR: Parse error at line 47 column 13:
37: use Ampache\Module\Util\Ui;
38: use Ampache\Module\Util\UiInterface;
39: use Ampache\Repository\UserRepositoryInterface;
40: use Psr\Http\Message\ResponseInterface;
41: use Psr\Http\Message\ServerRequestInterface;
42:
43: final class AddUserAction extends AbstractUserAction
44: {
45: public const REQUEST_KEY = 'add_user';
46:
47: private UiInterface $ui;
^
48:
49: private ModelFactoryInterface $modelFactory;
50:
51: private ConfigContainerInterface $configContainer;
52:
53: private UserRepositoryInterface $userRepository;
54:
55: private RequestParserInterface $requestParser;
56:
57: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowAction.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Repository\Model\ModelFactoryInterface;
29: use Ampache\Module\Util\UiInterface;
30: use Psr\Http\Message\ResponseInterface;
31: use Psr\Http\Message\ServerRequestInterface;
32:
33: final class ShowAction extends AbstractUserAction
34: {
35: public const REQUEST_KEY = 'show';
36:
37: private UiInterface $ui;
^
38:
39: private ModelFactoryInterface $modelFactory;
40:
41: public function __construct(
42: UiInterface $ui,
43: ModelFactoryInterface $modelFactory
44: ) {
45: $this->ui = $ui;
46: $this->modelFactory = $modelFactory;
47: }
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ConfirmDeleteAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Deletes a user
40: */
41: final class ConfirmDeleteAction extends AbstractUserAction
42: {
43: public const REQUEST_KEY = 'confirm_delete';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private UiInterface $ui;
48:
49: private ModelFactoryInterface $modelFactory;
50:
51: private ConfigContainerInterface $configContainer;
52:
53: public function __construct(
54: RequestParserInterface $requestParser,
55: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/GenerateApiKeyAction.php
ERROR: Parse error at line 46 column 13:
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: /**
40: * Generates an api-key for a user
41: */
42: final class GenerateApiKeyAction extends AbstractUserAction
43: {
44: public const REQUEST_KEY = 'generate_apikey';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private UiInterface $ui;
49:
50: private ModelFactoryInterface $modelFactory;
51:
52: private ConfigContainerInterface $configContainer;
53:
54: private UserKeyGeneratorInterface $userKeyGenerator;
55:
56: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/DeleteApiKeyAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Deletes an api-key from a user
40: */
41: final class DeleteApiKeyAction extends AbstractUserAction
42: {
43: public const REQUEST_KEY = 'delete_apikey';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private UiInterface $ui;
48:
49: private ModelFactoryInterface $modelFactory;
50:
51: private ConfigContainerInterface $configContainer;
52:
53: public function __construct(
54: RequestParserInterface $requestParser,
55: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Admin/User/ShowEditAction.php
ERROR: Parse error at line 43 column 13:
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: /**
37: * Renders the users edit view
38: */
39: final class ShowEditAction extends AbstractUserAction
40: {
41: public const REQUEST_KEY = 'show_edit';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Register/ShowAddUserAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\User\Registration\RegistrationAgreementRendererInterface;
34: use Ampache\Module\Util\Mailer;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ShowAddUserAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'show_add_user';
42:
43: private ConfigContainerInterface $configContainer;
^
44:
45: private RegistrationAgreementRendererInterface $registrationAgreementRenderer;
46:
47: private UiInterface $ui;
48:
49: public function __construct(
50: ConfigContainerInterface $configContainer,
51: RegistrationAgreementRendererInterface $registrationAgreementRenderer,
52: UiInterface $ui
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Register/ValidateAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\System\Core;
34: use Ampache\Module\Util\UiInterface;
35: use Ampache\Repository\UserRepositoryInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ValidateAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'validate';
42:
43: private ConfigContainerInterface $configContainer;
^
44:
45: private UiInterface $ui;
46:
47: private UserRepositoryInterface $userRepository;
48:
49: public function __construct(
50: ConfigContainerInterface $configContainer,
51: UiInterface $ui,
52: UserRepositoryInterface $userRepository
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Register/AddUserAction.php
ERROR: Parse error at line 50 column 13:
40: use Ampache\Module\Util\Mailer;
41: use Ampache\Module\Util\Ui;
42: use Ampache\Repository\UserRepositoryInterface;
43: use Psr\Http\Message\ResponseInterface;
44: use Psr\Http\Message\ServerRequestInterface;
45:
46: final class AddUserAction implements ApplicationActionInterface
47: {
48: public const REQUEST_KEY = 'add_user';
49:
50: private ConfigContainerInterface $configContainer;
^
51:
52: private ModelFactoryInterface $modelFactory;
53:
54: private UserRepositoryInterface $userRepository;
55:
56: private Registration\RegistrationAgreementRendererInterface $registrationAgreementRenderer;
57:
58: private UiInterface $ui;
59:
60: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Random/GetAdvancedAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\System\Core;
33: use Ampache\Repository\Model\User;
34: use Ampache\Repository\VideoRepositoryInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class GetAdvancedAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'get_advanced';
41:
42: private UiInterface $ui;
^
43:
44: private VideoRepositoryInterface $videoRepository;
45:
46: public function __construct(
47: UiInterface $ui,
48: VideoRepositoryInterface $videoRepository
49: ) {
50: $this->ui = $ui;
51: $this->videoRepository = $videoRepository;
52: }
ERROR: Unable to parse file: /code/src/Module/Application/Random/AdvancedAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Authorization\GuiGatekeeperInterface;
30: use Ampache\Module\Util\UiInterface;
31: use Ampache\Repository\VideoRepositoryInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class AdvancedAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'advanced';
38:
39: private UiInterface $ui;
^
40:
41: private VideoRepositoryInterface $videoRepository;
42:
43: public function __construct(
44: UiInterface $ui,
45: VideoRepositoryInterface $videoRepository
46: ) {
47: $this->ui = $ui;
48: $this->videoRepository = $videoRepository;
49: }
ERROR: Unable to parse file: /code/src/Module/Application/Label/AddLabelAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Authorization\AccessLevelEnum;
35: use Ampache\Module\Authorization\GuiGatekeeperInterface;
36: use Ampache\Module\Util\UiInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: final class AddLabelAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'add_label';
43:
44: private UiInterface $ui;
^
45:
46: private ConfigContainerInterface $configContainer;
47:
48: private RequestParserInterface $requestParser;
49:
50: public function __construct(
51: UiInterface $ui,
52: ConfigContainerInterface $configContainer,
53: RequestParserInterface $requestParser
54: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Label/DeleteAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Application\ApplicationActionInterface;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class DeleteAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'delete';
39:
40: private ConfigContainerInterface $configContainer;
^
41:
42: private UiInterface $ui;
43:
44: public function __construct(
45: ConfigContainerInterface $configContainer,
46: UiInterface $ui
47: ) {
48: $this->configContainer = $configContainer;
49: $this->ui = $ui;
50: }
ERROR: Unable to parse file: /code/src/Module/Application/Label/ShowAddLabelAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ShowAddLabelAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'show_add_label';
40:
41: private ConfigContainerInterface $configContainer;
^
42:
43: private UiInterface $ui;
44:
45: public function __construct(
46: ConfigContainerInterface $configContainer,
47: UiInterface $ui
48: ) {
49: $this->configContainer = $configContainer;
50: $this->ui = $ui;
51: }
ERROR: Unable to parse file: /code/src/Module/Application/Label/ShowAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\Util\UiInterface;
37: use Ampache\Repository\LabelRepositoryInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40: use Psr\Log\LoggerInterface;
41:
42: final class ShowAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'show';
45:
46: private ConfigContainerInterface $configContainer;
^
47:
48: private UiInterface $ui;
49:
50: private LoggerInterface $logger;
51:
52: private PrivilegeCheckerInterface $privilegeChecker;
53:
54: private LabelRepositoryInterface $labelRepository;
55:
56: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Label/ConfirmDeleteAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Label\Deletion\LabelDeleterInterface;
36: use Ampache\Module\Util\UiInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: final class ConfirmDeleteAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'confirm_delete';
43:
44: private ConfigContainerInterface $configContainer;
^
45:
46: private UiInterface $ui;
47:
48: private LabelDeleterInterface $labelDeleter;
49:
50: private LabelRepositoryInterface $labelRepository;
51:
52: public function __construct(
53: ConfigContainerInterface $configContainer,
54: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Login/DefaultAction.php
ERROR: Parse error at line 55 column 13:
45: use Psr\Http\Message\ResponseFactoryInterface;
46: use Psr\Http\Message\ResponseInterface;
47: use Psr\Http\Message\ServerRequestInterface;
48: use Psr\Log\LoggerInterface;
49: use Teapot\StatusCode;
50:
51: final class DefaultAction implements ApplicationActionInterface
52: {
53: public const REQUEST_KEY = 'default';
54:
55: private RequestParserInterface $requestParser;
^
56:
57: private ConfigContainerInterface $configContainer;
58:
59: private AuthenticationManagerInterface $authenticationManager;
60:
61: private ResponseFactoryInterface $responseFactory;
62:
63: private LoggerInterface $logger;
64:
65: private NetworkCheckerInterface $networkChecker;
ERROR: Unable to parse file: /code/src/Module/Application/Image/ShowAction.php
ERROR: Parse error at line 57 column 13:
47: use Psr\Http\Message\ResponseFactoryInterface;
48: use Psr\Http\Message\ResponseInterface;
49: use Psr\Http\Message\ServerRequestInterface;
50: use Psr\Http\Message\StreamFactoryInterface;
51: use Psr\Log\LoggerInterface;
52:
53: final class ShowAction implements ApplicationActionInterface
54: {
55: public const REQUEST_ACTION = 'show';
56:
57: private RequestParserInterface $requestParser;
^
58:
59: private AuthenticationManagerInterface $authenticationManager;
60:
61: private ConfigContainerInterface $configContainer;
62:
63: private Horde_Browser $horde_browser;
64:
65: private ResponseFactoryInterface $responseFactory;
66:
67: private StreamFactoryInterface $streamFactory;
ERROR: Unable to parse file: /code/src/Module/Application/Browse/SmartPlaylistAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\ApplicationActionInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class SmartPlaylistAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'smartplaylist';
38:
39: private ModelFactoryInterface $modelFactory;
^
40:
41: private UiInterface $ui;
42:
43: public function __construct(
44: ModelFactoryInterface $modelFactory,
45: UiInterface $ui
46: ) {
47: $this->modelFactory = $modelFactory;
48: $this->ui = $ui;
49: }
ERROR: Unable to parse file: /code/src/Module/Application/Browse/PlaylistAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\ApplicationActionInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class PlaylistAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'playlist';
38:
39: private ModelFactoryInterface $modelFactory;
^
40:
41: private UiInterface $ui;
42:
43: public function __construct(
44: ModelFactoryInterface $modelFactory,
45: UiInterface $ui
46: ) {
47: $this->modelFactory = $modelFactory;
48: $this->ui = $ui;
49: }
ERROR: Unable to parse file: /code/src/Module/Application/Browse/FileAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\ApplicationActionInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class FileAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'file';
38:
39: private ModelFactoryInterface $modelFactory;
^
40:
41: private UiInterface $ui;
42:
43: public function __construct(
44: ModelFactoryInterface $modelFactory,
45: UiInterface $ui
46: ) {
47: $this->modelFactory = $modelFactory;
48: $this->ui = $ui;
49: }
ERROR: Unable to parse file: /code/src/Module/Application/Browse/AlbumDiskAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class AlbumDiskAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'album_disk';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/PodcastAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class PodcastAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'podcast';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/TagAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\Ui;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class TagAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'tag';
41:
42: private RequestParserInterface $requestParser;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private UiInterface $ui;
47:
48: public function __construct(
49: RequestParserInterface $requestParser,
50: ModelFactoryInterface $modelFactory,
51: UiInterface $ui
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/VideoAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class VideoAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'video';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/LabelAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class LabelAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'label';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/ArtistAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ArtistAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'artist';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/AlbumArtistAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class AlbumArtistAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'album_artist';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/CatalogAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\ApplicationActionInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class CatalogAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'catalog';
38:
39: private ModelFactoryInterface $modelFactory;
^
40:
41: private UiInterface $ui;
42:
43: public function __construct(
44: ModelFactoryInterface $modelFactory,
45: UiInterface $ui
46: ) {
47: $this->modelFactory = $modelFactory;
48: $this->ui = $ui;
49: }
ERROR: Unable to parse file: /code/src/Module/Application/Browse/BroadcastAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\ApplicationActionInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class BroadcastAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'broadcast';
38:
39: private ModelFactoryInterface $modelFactory;
^
40:
41: private UiInterface $ui;
42:
43: public function __construct(
44: ModelFactoryInterface $modelFactory,
45: UiInterface $ui
46: ) {
47: $this->modelFactory = $modelFactory;
48: $this->ui = $ui;
49: }
ERROR: Unable to parse file: /code/src/Module/Application/Browse/LiveStreamAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class LiveStreamAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'live_stream';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/PersonalVideoAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class PersonalVideoAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'personal_video';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/TvShowEpisodeAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class TvShowEpisodeAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'tvshow_episode';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/PodcastEpisodeAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class PodcastEpisodeAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'podcast_episode';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/ClipAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ClipAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'clip';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/MovieAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class MovieAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'movie';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/TvShowSeasonAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class TvShowSeasonAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'tvshow_season';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/PrivateMessageAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\System\Core;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class PrivateMessageAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'pvmsg';
39:
40: private ModelFactoryInterface $modelFactory;
^
41:
42: private UiInterface $ui;
43:
44: public function __construct(
45: ModelFactoryInterface $modelFactory,
46: UiInterface $ui
47: ) {
48: $this->modelFactory = $modelFactory;
49: $this->ui = $ui;
50: }
ERROR: Unable to parse file: /code/src/Module/Application/Browse/TvShowAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class TvShowAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'tvshow';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/SongAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class SongAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'song';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Browse/AlbumAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class AlbumAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'album';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private UiInterface $ui;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Installation/DefaultAction.php
ERROR: Parse error at line 47 column 13:
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: /**
41: * @todo This action has to be split up. Too complicated atm
42: */
43: final class DefaultAction implements ApplicationActionInterface
44: {
45: public const REQUEST_KEY = 'default';
46:
47: private InstallationHelperInterface $installationHelper;
^
48:
49: private EnvironmentInterface $environment;
50:
51: public function __construct(
52: InstallationHelperInterface $installationHelper,
53: EnvironmentInterface $environment
54: ) {
55: $this->installationHelper = $installationHelper;
56: $this->environment = $environment;
57: }
ERROR: Unable to parse file: /code/src/Module/Application/Playlist/DeletePlaylistAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Psr\Http\Message\ResponseFactoryInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Teapot\StatusCode;
37:
38: final class DeletePlaylistAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'delete_playlist';
41:
42: private ModelFactoryInterface $modelFactory;
^
43:
44: private ResponseFactoryInterface $responseFactory;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: ModelFactoryInterface $modelFactory,
50: ResponseFactoryInterface $responseFactory,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Playlist/ShowImportPlaylistAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Module\Application\ApplicationActionInterface;
29: use Ampache\Module\Authorization\GuiGatekeeperInterface;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class ShowImportPlaylistAction implements ApplicationActionInterface
35: {
36: public const REQUEST_KEY = 'show_import_playlist';
37:
38: private UiInterface $ui;
^
39:
40: public function __construct(
41: UiInterface $ui
42: ) {
43: $this->ui = $ui;
44: }
45:
46: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
47: {
48: $this->ui->showHeader();
ERROR: Unable to parse file: /code/src/Module/Application/Playlist/ImportPlaylistAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\ApplicationActionInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ImportPlaylistAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'import_playlist';
40:
41: private UiInterface $ui;
^
42:
43: private ConfigContainerInterface $configContainer;
44:
45: public function __construct(
46: UiInterface $ui,
47: ConfigContainerInterface $configContainer
48: ) {
49: $this->ui = $ui;
50: $this->configContainer = $configContainer;
51: }
ERROR: Unable to parse file: /code/src/Module/Application/Playlist/SetTrackNumbersAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\Exception\AccessDeniedException;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class SetTrackNumbersAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'set_track_numbers';
40:
41: private RequestParserInterface $requestParser;
^
42:
43: private ModelFactoryInterface $modelFactory;
44:
45: private UiInterface $ui;
46:
47: public function __construct(
48: RequestParserInterface $requestParser,
49: ModelFactoryInterface $modelFactory,
50: UiInterface $ui
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Playlist/RefreshPlaylistAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Psr\Http\Message\ResponseFactoryInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35: use Teapot\StatusCode;
36:
37: final class RefreshPlaylistAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'refresh_playlist';
40:
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private ResponseFactoryInterface $responseFactory;
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ModelFactoryInterface $modelFactory,
49: ResponseFactoryInterface $responseFactory,
50: ConfigContainerInterface $configContainer
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Playlist/RemoveDuplicatesAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\Exception\AccessDeniedException;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class RemoveDuplicatesAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'remove_duplicates';
40:
41: private RequestParserInterface $requestParser;
^
42:
43: private UiInterface $ui;
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: public function __construct(
48: RequestParserInterface $requestParser,
49: UiInterface $ui,
50: ModelFactoryInterface $modelFactory
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Playlist/SortTrackAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\Exception\AccessDeniedException;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class SortTrackAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'sort_tracks';
40:
41: private RequestParserInterface $requestParser;
^
42:
43: private ModelFactoryInterface $modelFactory;
44:
45: private UiInterface $ui;
46:
47: public function __construct(
48: RequestParserInterface $requestParser,
49: ModelFactoryInterface $modelFactory,
50: UiInterface $ui
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Playlist/CreatePlaylistAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class CreatePlaylistAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'create_playlist';
41:
42: private UiInterface $ui;
^
43:
44: public function __construct(
45: UiInterface $ui
46: ) {
47: $this->ui = $ui;
48: }
49:
50: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
51: {
52: /* Check rights */
ERROR: Unable to parse file: /code/src/Module/Application/Playlist/ShowAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Util\UiInterface;
32: use Ampache\Repository\Model\ModelFactoryInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35: use Psr\Log\LoggerInterface;
36:
37: final class ShowAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'show';
40:
41: private UiInterface $ui;
^
42:
43: private LoggerInterface $logger;
44:
45: private ModelFactoryInterface $modelFactory;
46: public function __construct(
47: UiInterface $ui,
48: LoggerInterface $logger,
49: ModelFactoryInterface $modelFactory
50: ) {
51: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/Playlist/AddSongAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Application\Exception\AccessDeniedException;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class AddSongAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'add_song';
40:
41: private RequestParserInterface $requestParser;
^
42:
43: private UiInterface $ui;
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: public function __construct(
48: RequestParserInterface $requestParser,
49: UiInterface $ui,
50: ModelFactoryInterface $modelFactory
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Logout/LogoutAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\System\LegacyLogger;
31: use Ampache\Module\System\Session;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34: use Psr\Log\LoggerInterface;
35:
36: final class LogoutAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'logout';
39:
40: private ConfigContainerInterface $configContainer;
^
41:
42: private AuthenticationManagerInterface $authenticationManager;
43:
44: private LoggerInterface $logger;
45:
46: public function __construct(
47: ConfigContainerInterface $configContainer,
48: AuthenticationManagerInterface $authenticationManager,
49: LoggerInterface $logger
50: ) {
ERROR: Unable to parse file: /code/src/Module/Application/StatisticGraph/ShowAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Util\InterfaceImplementationChecker;
36: use Ampache\Module\Util\RequestParserInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39: use Psr\Log\LoggerInterface;
40:
41: final class ShowAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'show';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private ConfigContainerInterface $configContainer;
48:
49: private LoggerInterface $logger;
50:
51: public function __construct(
52: RequestParserInterface $requestParser,
53: ConfigContainerInterface $configContainer,
54: LoggerInterface $logger
55: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Mashup/WrappedAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\RequestParserInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class WrappedAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'wrapped';
42:
43: private ConfigContainerInterface $configContainer;
^
44:
45: private RequestParserInterface $requestParser;
46:
47: private UiInterface $ui;
48:
49: public function __construct(
50: ConfigContainerInterface $configContainer,
51: RequestParserInterface $requestParser,
52: UiInterface $ui
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Mashup/ShowAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Util\InterfaceImplementationChecker;
32: use Ampache\Module\Util\RequestParserInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class ShowAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'show';
40:
41: private RequestParserInterface $requestParser;
^
42:
43: private UiInterface $ui;
44:
45: public function __construct(
46: RequestParserInterface $requestParser,
47: UiInterface $ui
48: ) {
49: $this->requestParser = $requestParser;
50: $this->ui = $ui;
51: }
ERROR: Unable to parse file: /code/src/Module/Application/Preferences/AdminUpdatePreferencesAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Util\RequestParserInterface;
36: use Psr\Http\Message\ResponseFactoryInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39: use Teapot\StatusCode;
40:
41: final class AdminUpdatePreferencesAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'admin_update_preferences';
44:
45: private PreferencesFromRequestUpdaterInterface $preferencesFromRequestUpdater;
^
46:
47: private ResponseFactoryInterface $responseFactory;
48:
49: private ConfigContainerInterface $configContainer;
50:
51: private RequestParserInterface $requestParser;
52:
53: public function __construct(
54: PreferencesFromRequestUpdaterInterface $preferencesFromRequestUpdater,
55: ResponseFactoryInterface $responseFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Preferences/GrantAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\AccessLevelEnum;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class GrantAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'grant';
42:
43: private RequestParserInterface $requestParser;
^
44:
45: private UiInterface $ui;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: RequestParserInterface $requestParser,
51: UiInterface $ui,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Preferences/UpdatePreferencesAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\System\Core;
35: use Ampache\Module\System\PreferencesFromRequestUpdaterInterface;
36: use Ampache\Module\Util\UiInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: final class UpdatePreferencesAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'update_preferences';
43:
44: private PreferencesFromRequestUpdaterInterface $preferencesFromRequestUpdater;
^
45:
46: private UiInterface $ui;
47:
48: private RequestParserInterface $requestParser;
49:
50: public function __construct(
51: PreferencesFromRequestUpdaterInterface $preferencesFromRequestUpdater,
52: UiInterface $ui,
53: RequestParserInterface $requestParser
54: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Preferences/UpdateUserAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\System\Core;
37: use Ampache\Module\Util\RequestParserInterface;
38: use Ampache\Module\Util\UiInterface;
39: use Psr\Http\Message\ResponseInterface;
40: use Psr\Http\Message\ServerRequestInterface;
41:
42: final class UpdateUserAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'update_user';
45:
46: private UiInterface $ui;
^
47:
48: private ConfigContainerInterface $configContainer;
49:
50: private RequestParserInterface $requestParser;
51:
52: public function __construct(
53: UiInterface $ui,
54: ConfigContainerInterface $configContainer,
55: RequestParserInterface $requestParser
56: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Preferences/UserAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\AccessLevelEnum;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class UserAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'user';
39:
40: private UiInterface $ui;
^
41:
42: public function __construct(
43: UiInterface $ui
44: ) {
45: $this->ui = $ui;
46: }
47:
48: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
49: {
50: if ($gatekeeper->mayAccess(AccessLevelEnum::TYPE_INTERFACE, AccessLevelEnum::LEVEL_ADMIN) === false) {
ERROR: Unable to parse file: /code/src/Module/Application/Preferences/AdminAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\AccessLevelEnum;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class AdminAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'admin';
39:
40: private UiInterface $ui;
^
41:
42: public function __construct(
43: UiInterface $ui
44: ) {
45: $this->ui = $ui;
46: }
47:
48: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
49: {
50: // Make sure only admins here
ERROR: Unable to parse file: /code/src/Module/Application/Preferences/ShowAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Module\Application\ApplicationActionInterface;
29: use Ampache\Module\Authorization\GuiGatekeeperInterface;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class ShowAction implements ApplicationActionInterface
35: {
36: public const REQUEST_KEY = 'show';
37:
38: private UiInterface $ui;
^
39:
40: public function __construct(
41: UiInterface $ui
42: ) {
43: $this->ui = $ui;
44: }
45:
46: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
47: {
48: $user = $gatekeeper->getUser();
ERROR: Unable to parse file: /code/src/Module/Application/Stream/TmpPlaylistAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Repository\Model\ModelFactoryInterface;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34: use Psr\Log\LoggerInterface;
35:
36: final class TmpPlaylistAction extends AbstractStreamAction
37: {
38: public const REQUEST_KEY = 'tmp_playlist';
39:
40: private ModelFactoryInterface $modelFactory;
^
41:
42: private ConfigContainerInterface $configContainer;
43:
44: public function __construct(
45: ModelFactoryInterface $modelFactory,
46: LoggerInterface $logger,
47: ConfigContainerInterface $configContainer
48: ) {
49: parent::__construct($logger, $configContainer);
50: $this->modelFactory = $modelFactory;
ERROR: Unable to parse file: /code/src/Module/Application/Stream/RandomAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Repository\Model\Random;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34: use Psr\Log\LoggerInterface;
35:
36: final class RandomAction extends AbstractStreamAction
37: {
38: public const REQUEST_KEY = 'random';
39:
40: private ConfigContainerInterface $configContainer;
^
41:
42: public function __construct(
43: LoggerInterface $logger,
44: ConfigContainerInterface $configContainer
45: ) {
46: $this->configContainer = $configContainer;
47:
48: parent::__construct($logger, $configContainer);
49: }
50:
ERROR: Unable to parse file: /code/src/Module/Application/Stream/ArtistRandomAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Repository\SongRepositoryInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Psr\Log\LoggerInterface;
37:
38: final class ArtistRandomAction extends AbstractStreamAction
39: {
40: public const REQUEST_KEY = 'artist_random';
41:
42: private RequestParserInterface $requestParser;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: private SongRepositoryInterface $songRepository;
49:
50: public function __construct(
51: RequestParserInterface $requestParser,
52: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Stream/PlaylistRandomAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Repository\Model\ModelFactoryInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33: use Psr\Log\LoggerInterface;
34:
35: final class PlaylistRandomAction extends AbstractStreamAction
36: {
37: public const REQUEST_KEY = 'playlist_random';
38:
39: private RequestParserInterface $requestParser;
^
40:
41: private ModelFactoryInterface $modelFactory;
42:
43: private ConfigContainerInterface $configContainer;
44:
45: public function __construct(
46: RequestParserInterface $requestParser,
47: ModelFactoryInterface $modelFactory,
48: LoggerInterface $logger,
49: ConfigContainerInterface $configContainer
ERROR: Unable to parse file: /code/src/Module/Application/Stream/AbstractStreamAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\Playback\Stream;
37: use Ampache\Module\Playback\Stream_Playlist;
38: use Ampache\Module\System\Core;
39: use Ampache\Module\System\LegacyLogger;
40: use Ampache\Module\System\Session;
41: use Psr\Http\Message\ResponseInterface;
42: use Psr\Log\LoggerInterface;
43:
44: abstract class AbstractStreamAction implements ApplicationActionInterface
45: {
46: private LoggerInterface $logger;
^
47:
48: private ConfigContainerInterface $configContainer;
49:
50: protected function __construct(
51: LoggerInterface $logger,
52: ConfigContainerInterface $configContainer
53: ) {
54: $this->logger = $logger;
55: $this->configContainer = $configContainer;
56: }
ERROR: Unable to parse file: /code/src/Module/Application/Stream/AlbumRandomAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Repository\AlbumRepositoryInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34: use Psr\Log\LoggerInterface;
35:
36: final class AlbumRandomAction extends AbstractStreamAction
37: {
38: public const REQUEST_KEY = 'album_random';
39:
40: private ConfigContainerInterface $configContainer;
^
41:
42: private AlbumRepositoryInterface $albumRepository;
43:
44: public function __construct(
45: LoggerInterface $logger,
46: ConfigContainerInterface $configContainer,
47: AlbumRepositoryInterface $albumRepository
48: ) {
49: parent::__construct($logger, $configContainer);
50: $this->configContainer = $configContainer;
ERROR: Unable to parse file: /code/src/Module/Application/Stream/SearchRandomAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Repository\Model\ModelFactoryInterface;
29: use Ampache\Module\Authorization\GuiGatekeeperInterface;
30: use Psr\Http\Message\ResponseInterface;
31: use Psr\Http\Message\ServerRequestInterface;
32: use Psr\Log\LoggerInterface;
33:
34: final class SearchRandomAction extends AbstractStreamAction
35: {
36: public const REQUEST_KEY = 'search_random';
37:
38: private ModelFactoryInterface $modelFactory;
^
39:
40: private ConfigContainerInterface $configContainer;
41:
42: public function __construct(
43: ModelFactoryInterface $modelFactory,
44: LoggerInterface $logger,
45: ConfigContainerInterface $configContainer
46: ) {
47: parent::__construct($logger, $configContainer);
48: $this->modelFactory = $modelFactory;
ERROR: Unable to parse file: /code/src/Module/Application/Stream/DemocraticAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Repository\Model\ModelFactoryInterface;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35: use Psr\Log\LoggerInterface;
36:
37: final class DemocraticAction extends AbstractStreamAction
38: {
39: public const REQUEST_KEY = 'democratic';
40:
41: private RequestParserInterface $requestParser;
^
42:
43: private ConfigContainerInterface $configContainer;
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: public function __construct(
48: RequestParserInterface $requestParser,
49: LoggerInterface $logger,
50: ConfigContainerInterface $configContainer,
51: ModelFactoryInterface $modelFactory
ERROR: Unable to parse file: /code/src/Module/Application/Stream/BasketAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\System\Core;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34: use Psr\Log\LoggerInterface;
35:
36: final class BasketAction extends AbstractStreamAction
37: {
38: public const REQUEST_KEY = 'basket';
39:
40: private ConfigContainerInterface $configContainer;
^
41:
42: public function __construct(
43: LoggerInterface $logger,
44: ConfigContainerInterface $configContainer
45: ) {
46: parent::__construct($logger, $configContainer);
47: $this->configContainer = $configContainer;
48: }
49:
50: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
ERROR: Unable to parse file: /code/src/Module/Application/Stream/PlayFavoriteAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Repository\Model\User;
33: use Ampache\Repository\SongRepositoryInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Psr\Log\LoggerInterface;
37:
38: final class PlayFavoriteAction extends AbstractStreamAction
39: {
40: public const REQUEST_KEY = 'play_favorite';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private SongRepositoryInterface $songRepository;
45:
46: public function __construct(
47: LoggerInterface $logger,
48: ConfigContainerInterface $configContainer,
49: SongRepositoryInterface $songRepository
50: ) {
51: parent::__construct($logger, $configContainer);
52: $this->configContainer = $configContainer;
ERROR: Unable to parse file: /code/src/Module/Application/Stream/PlayItemAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Util\InterfaceImplementationChecker;
34: use Ampache\Module\Util\ObjectTypeToClassNameMapper;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37: use Psr\Log\LoggerInterface;
38:
39: final class PlayItemAction extends AbstractStreamAction
40: {
41: public const REQUEST_KEY = 'play_item';
42:
43: private ConfigContainerInterface $configContainer;
^
44:
45: public function __construct(
46: LoggerInterface $logger,
47: ConfigContainerInterface $configContainer
48: ) {
49: parent::__construct($logger, $configContainer);
50: $this->configContainer = $configContainer;
51: }
52:
53: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
ERROR: Unable to parse file: /code/src/Module/Application/Waveform/ShowAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Repository\Model\Song;
36: use Psr\Http\Message\ResponseFactoryInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39: use Psr\Http\Message\StreamFactoryInterface;
40:
41: final class ShowAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'show';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private ResponseFactoryInterface $responseFactory;
48:
49: private ConfigContainerInterface $configContainer;
50:
51: private StreamFactoryInterface $streamFactory;
52:
53: public function __construct(
54: RequestParserInterface $requestParser,
55: ResponseFactoryInterface $responseFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Share/ConsumeAction.php
ERROR: Parse error at line 50 column 13:
40: use Ampache\Repository\ShareRepositoryInterface;
41: use DateTime;
42: use Psr\Container\ContainerInterface;
43: use Psr\Http\Message\ResponseInterface;
44: use Psr\Http\Message\ServerRequestInterface;
45:
46: final class ConsumeAction implements ApplicationActionInterface
47: {
48: public const REQUEST_KEY = 'consume';
49:
50: private RequestParserInterface $requestParser;
^
51:
52: private ConfigContainerInterface $configContainer;
53:
54: private NetworkCheckerInterface $networkChecker;
55:
56: private ContainerInterface $dic;
57:
58: private UiInterface $ui;
59:
60: private ShareRepositoryInterface $shareRepository;
ERROR: Unable to parse file: /code/src/Module/Application/Share/DeleteAction.php
ERROR: Parse error at line 46 column 13:
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: /**
40: * Deletes a share-item
41: */
42: final class DeleteAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'delete';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private ConfigContainerInterface $configContainer;
49:
50: private UiInterface $ui;
51:
52: private ShareRepositoryInterface $shareRepository;
53:
54: public function __construct(
55: RequestParserInterface $requestParser,
56: ConfigContainerInterface $configContainer,
ERROR: Unable to parse file: /code/src/Module/Application/Share/ShowDeleteAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\RequestParserInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowDeleteAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show_delete';
41:
42: private RequestParserInterface $requestParser;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: private UiInterface $ui;
47:
48:
49: public function __construct(
50: RequestParserInterface $requestParser,
51: ConfigContainerInterface $configContainer,
52: UiInterface $ui
ERROR: Unable to parse file: /code/src/Module/Application/Share/CleanAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Cleans up expired share items
40: */
41: final class CleanAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'clean';
44:
45: private ConfigContainerInterface $configContainer;
^
46:
47: private UiInterface $ui;
48:
49: private ShareRepositoryInterface $shareRepository;
50:
51: public function __construct(
52: ConfigContainerInterface $configContainer,
53: UiInterface $ui,
54: ShareRepositoryInterface $shareRepository
55: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Share/ExternalShareAction.php
ERROR: Parse error at line 51 column 13:
41: use Ampache\Module\User\PasswordGeneratorInterface;
42: use Psr\Http\Message\ResponseFactoryInterface;
43: use Psr\Http\Message\ResponseInterface;
44: use Psr\Http\Message\ServerRequestInterface;
45: use Teapot\StatusCode;
46:
47: final class ExternalShareAction implements ApplicationActionInterface
48: {
49: public const REQUEST_KEY = 'external_share';
50:
51: private RequestParserInterface $requestParser;
^
52:
53: private ConfigContainerInterface $configContainer;
54:
55: private PasswordGeneratorInterface $passwordGenerator;
56:
57: private ResponseFactoryInterface $responseFactory;
58:
59: private FunctionCheckerInterface $functionChecker;
60:
61: private ShareCreatorInterface $shareCreator;
ERROR: Unable to parse file: /code/src/Module/Application/Share/CreateAction.php
ERROR: Parse error at line 55 column 13:
45: use Ampache\Repository\Model\Song;
46: use Ampache\Repository\Model\Video;
47: use Psr\Http\Message\ResponseInterface;
48: use Psr\Http\Message\ServerRequestInterface;
49: use Psr\Log\LoggerInterface;
50:
51: final class CreateAction implements ApplicationActionInterface
52: {
53: public const REQUEST_KEY = 'create';
54:
55: private ConfigContainerInterface $configContainer;
^
56:
57: private UiInterface $ui;
58:
59: private LoggerInterface $logger;
60:
61: private PasswordGeneratorInterface $passwordGenerator;
62:
63: private ZipHandlerInterface $zipHandler;
64:
65: private RequestParserInterface $requestParser;
ERROR: Unable to parse file: /code/src/Module/Application/Share/ShowCreateAction.php
ERROR: Parse error at line 51 column 13:
41: use Ampache\Module\Util\UiInterface;
42: use Ampache\Repository\Model\Song;
43: use Ampache\Repository\Model\Video;
44: use Psr\Http\Message\ResponseInterface;
45: use Psr\Http\Message\ServerRequestInterface;
46:
47: final class ShowCreateAction implements ApplicationActionInterface
48: {
49: public const REQUEST_KEY = 'show_create';
50:
51: private RequestParserInterface $requestParser;
^
52:
53: private ConfigContainerInterface $configContainer;
54:
55: private UiInterface $ui;
56:
57: private PasswordGeneratorInterface $passwordGenerator;
58:
59: private ZipHandlerInterface $zipHandler;
60:
61: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Test/ConfigAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Exception;
34: use Psr\Http\Message\ResponseFactoryInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ConfigAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'config';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private ResponseFactoryInterface $responseFactory;
45:
46: public function __construct(
47: ConfigContainerInterface $configContainer,
48: ResponseFactoryInterface $responseFactory
49: ) {
50: $this->configContainer = $configContainer;
51: $this->responseFactory = $responseFactory;
52: }
ERROR: Unable to parse file: /code/src/Module/Application/Test/ShowAction.php
ERROR: Parse error at line 43 column 13:
33: use Exception;
34: use Psr\Http\Message\ResponseFactoryInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37: use Teapot\StatusCode;
38:
39: final class ShowAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'show';
42:
43: private ConfigContainerInterface $configContainer;
^
44:
45: private ResponseFactoryInterface $responseFactory;
46:
47: public function __construct(
48: ConfigContainerInterface $configContainer,
49: ResponseFactoryInterface $responseFactory
50: ) {
51: $this->configContainer = $configContainer;
52: $this->responseFactory = $responseFactory;
53: }
ERROR: Unable to parse file: /code/src/Module/Application/TvShow/DeleteAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Application\ApplicationActionInterface;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class DeleteAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'delete';
39:
40: private ConfigContainerInterface $configContainer;
^
41:
42: private UiInterface $ui;
43:
44: public function __construct(
45: ConfigContainerInterface $configContainer,
46: UiInterface $ui
47: ) {
48: $this->configContainer = $configContainer;
49: $this->ui = $ui;
50: }
ERROR: Unable to parse file: /code/src/Module/Application/TvShow/ShowAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Application\ApplicationActionInterface;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class ShowAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'show';
39:
40: private RequestParserInterface $requestParser;
^
41:
42: private UiInterface $ui;
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: public function __construct(
47: RequestParserInterface $requestParser,
48: UiInterface $ui,
49: ModelFactoryInterface $modelFactory
50: ) {
ERROR: Unable to parse file: /code/src/Module/Application/TvShow/ConfirmDeleteAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Application\Exception\AccessDeniedException;
35: use Ampache\Module\Authorization\GuiGatekeeperInterface;
36: use Ampache\Module\Util\UiInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: final class ConfirmDeleteAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'confirm_delete';
43:
44: private RequestParserInterface $requestParser;
^
45:
46: private ConfigContainerInterface $configContainer;
47:
48: private UiInterface $ui;
49:
50: private ModelFactoryInterface $modelFactory;
51:
52: public function __construct(
53: RequestParserInterface $requestParser,
54: ConfigContainerInterface $configContainer,
ERROR: Unable to parse file: /code/src/Module/Application/Stats/RecentPodcastEpisodeAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class RecentPodcastEpisodeAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'recent_podcast_episode';
41:
42: private UiInterface $ui;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: UiInterface $ui,
50: ModelFactoryInterface $modelFactory,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/UploadAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\System\Core;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class UploadAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'upload';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/RecentAlbumArtistAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class RecentAlbumArtistAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'recent_album_artist';
41:
42: private UiInterface $ui;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: UiInterface $ui,
50: ModelFactoryInterface $modelFactory,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/HighestAlbumArtistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class HighestAlbumArtistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'highest_album_artist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/NewestAlbumAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Statistics\Stats;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class NewestAlbumAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'newest_album';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/RecentVideoAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Statistics\Stats;
35: use Ampache\Module\Util\UiInterface;
36: use Ampache\Repository\VideoRepositoryInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: final class RecentVideoAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'recent_video';
43:
44: private UiInterface $ui;
^
45:
46: private ModelFactoryInterface $modelFactory;
47:
48: private ConfigContainerInterface $configContainer;
49:
50: private VideoRepositoryInterface $videoRepository;
51:
52: public function __construct(
53: UiInterface $ui,
54: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Stats/UserflagArtistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class UserflagArtistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'userflag_artist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/PopularSongAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\System\Core;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class PopularSongAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'popular_song';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/UserflagVideoAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Authorization\GuiGatekeeperInterface;
36: use Ampache\Module\Util\UiInterface;
37: use Ampache\Repository\VideoRepositoryInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40:
41: final class UserflagVideoAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'userflag_video';
44:
45: private UiInterface $ui;
^
46:
47: private ModelFactoryInterface $modelFactory;
48:
49: private ConfigContainerInterface $configContainer;
50:
51: private VideoRepositoryInterface $videoRepository;
52:
53: public function __construct(
54: UiInterface $ui,
55: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Stats/NewestAlbumDiskAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Statistics\Stats;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class NewestAlbumDiskAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'newest_album_disk';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/PopularAlbumArtistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\System\Core;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class PopularAlbumArtistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'popular_album_artist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/UserflagSongAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class UserflagSongAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'userflag_song';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49:
50: public function __construct(
51: UiInterface $ui,
52: ModelFactoryInterface $modelFactory,
53: ConfigContainerInterface $configContainer
ERROR: Unable to parse file: /code/src/Module/Application/Stats/HighestArtistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class HighestArtistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'highest_artist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/HighestVideoAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Authorization\GuiGatekeeperInterface;
36: use Ampache\Module\Util\UiInterface;
37: use Ampache\Repository\VideoRepositoryInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40:
41: final class HighestVideoAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'highest_video';
44:
45: private UiInterface $ui;
^
46:
47: private ModelFactoryInterface $modelFactory;
48:
49: private ConfigContainerInterface $configContainer;
50:
51: private VideoRepositoryInterface $videoRepository;
52:
53: public function __construct(
54: UiInterface $ui,
55: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Stats/GraphAction.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Module\Authorization\GuiGatekeeperInterface;
29: use Ampache\Module\Util\UiInterface;
30: use Psr\Http\Message\ResponseInterface;
31: use Psr\Http\Message\ServerRequestInterface;
32:
33: final class GraphAction extends AbstractGraphRendererAction
34: {
35: public const REQUEST_KEY = 'graph';
36:
37: private UiInterface $ui;
^
38:
39: public function __construct(
40: UiInterface $ui
41: ) {
42: $this->ui = $ui;
43: }
44:
45: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
46: {
47: $this->ui->showHeader();
ERROR: Unable to parse file: /code/src/Module/Application/Stats/UserflagPodcastEpisodeAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class UserflagPodcastEpisodeAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'userflag_podcast_episode';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49:
50: public function __construct(
51: UiInterface $ui,
52: ModelFactoryInterface $modelFactory,
53: ConfigContainerInterface $configContainer
ERROR: Unable to parse file: /code/src/Module/Application/Stats/RecentAlbumDiskAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class RecentAlbumDiskAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'recent_album_disk';
41:
42: private UiInterface $ui;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: UiInterface $ui,
50: ModelFactoryInterface $modelFactory,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/HighestPodcastEpisodeAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class HighestPodcastEpisodeAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'highest_podcast_episode';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/RecentPlaylistAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class RecentPlaylistAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'recent_playlist';
41:
42: private UiInterface $ui;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: UiInterface $ui,
50: ModelFactoryInterface $modelFactory,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/UserflagAlbumArtistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class UserflagAlbumArtistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'userflag_album_artist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/ShareAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Util\Ui;
34: use Ampache\Module\Util\UiInterface;
35: use Ampache\Repository\ShareRepositoryInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ShareAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'share';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: private ShareRepositoryInterface $shareRepository;
50:
51: public function __construct(
52: UiInterface $ui,
53: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Stats/NewestArtistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Statistics\Stats;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class NewestArtistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'newest_artist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/PopularAlbumAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\System\Core;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class PopularAlbumAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'popular_album';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/HighestSongAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class HighestSongAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'highest_song';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/WantedAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Ampache\Repository\WantedRepositoryInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: final class WantedAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'wanted';
40:
41: private UiInterface $ui;
^
42:
43: private ModelFactoryInterface $modelFactory;
44:
45: private WantedRepositoryInterface $wantedRepository;
46:
47: public function __construct(
48: UiInterface $ui,
49: ModelFactoryInterface $modelFactory,
50: WantedRepositoryInterface $wantedRepository
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/NewestPlaylistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Statistics\Stats;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class NewestPlaylistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'newest_playlist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/UserflagAlbumAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class UserflagAlbumAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'userflag_album';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/RecentAlbumAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class RecentAlbumAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'recent_album';
41:
42: private UiInterface $ui;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: UiInterface $ui,
50: ModelFactoryInterface $modelFactory,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/RecentSongAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class RecentSongAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'recent_song';
41:
42: private UiInterface $ui;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: UiInterface $ui,
50: ModelFactoryInterface $modelFactory,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/NewestSongAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Statistics\Stats;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class NewestSongAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'newest_song';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/ShowUserAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Repository\UserActivityRepositoryInterface;
36: use Ampache\Repository\UserFollowerRepositoryInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39: use Psr\Log\LoggerInterface;
40:
41: final class ShowUserAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'show_user';
44:
45: private UiInterface $ui;
^
46:
47: private LoggerInterface $logger;
48:
49: private ModelFactoryInterface $modelFactory;
50:
51: private UserActivityRepositoryInterface $useractivityRepository;
52:
53: private UserActivityRendererInterface $userActivityRenderer;
54:
55: private UserFollowerRepositoryInterface $userFollowerRepository;
ERROR: Unable to parse file: /code/src/Module/Application/Stats/HighestPlaylistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class HighestPlaylistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'highest_playlist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/HighestAlbumAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class HighestAlbumAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'highest_album';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/NewestPodcastEpisodeAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Statistics\Stats;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class NewestPodcastEpisodeAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'newest_podcast_episode';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/PopularArtistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\System\Core;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class PopularArtistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'popular_artist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/PopularAlbumDiskAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\System\Core;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class PopularAlbumDiskAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'popular_album_disk';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/NewestVideoAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Util\UiInterface;
36: use Ampache\Repository\Model\Video;
37: use Ampache\Repository\VideoRepositoryInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40:
41: final class NewestVideoAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'newest_video';
44:
45: private UiInterface $ui;
^
46:
47: private ModelFactoryInterface $modelFactory;
48:
49: private ConfigContainerInterface $configContainer;
50:
51: private VideoRepositoryInterface $videoRepository;
52:
53: public function __construct(
54: UiInterface $ui,
55: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Stats/UserflagPlaylistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class UserflagPlaylistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'userflag_playlist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/PopularVideoAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\System\Core;
36: use Ampache\Module\Util\UiInterface;
37: use Ampache\Repository\VideoRepositoryInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40:
41: final class PopularVideoAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'popular_video';
44:
45: private UiInterface $ui;
^
46:
47: private ModelFactoryInterface $modelFactory;
48:
49: private ConfigContainerInterface $configContainer;
50:
51: private VideoRepositoryInterface $videoRepository;
52:
53: public function __construct(
54: UiInterface $ui,
55: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Stats/PopularPodcastEpisodeAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\System\Core;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class PopularPodcastEpisodeAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'popular_podcast_episode';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/PopularPlaylistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\System\Core;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class PopularPlaylistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'popular_playlist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/RecentArtistAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Statistics\Stats;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class RecentArtistAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'recent_artist';
41:
42: private UiInterface $ui;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: UiInterface $ui,
50: ModelFactoryInterface $modelFactory,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/HighestAlbumDiskAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class HighestAlbumDiskAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'highest_album_disk';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/ShowAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowAction extends AbstractGraphRendererAction
39: {
40: public const REQUEST_KEY = 'show';
41:
42: private UiInterface $ui;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: private GuiFactoryInterface $guiFactory;
47:
48: private TalFactoryInterface $talFactory;
49:
50: public function __construct(
51: UiInterface $ui,
52: ConfigContainerInterface $configContainer,
ERROR: Unable to parse file: /code/src/Module/Application/Stats/NewestAlbumArtistAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Statistics\Stats;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class NewestAlbumArtistAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'newest_album_artist';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Stats/UserflagAlbumDiskAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\ApplicationActionInterface;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class UserflagAlbumDiskAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'userflag_album_disk';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: UiInterface $ui,
51: ModelFactoryInterface $modelFactory,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/ApplicationRunner.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Util\UiInterface;
33: use Narrowspark\HttpEmitter\SapiEmitter;
34: use Psr\Container\ContainerExceptionInterface;
35: use Psr\Container\ContainerInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37: use Psr\Log\LoggerInterface;
38: use Throwable;
39:
40: final class ApplicationRunner
41: {
42: private ContainerInterface $dic;
^
43:
44: private LoggerInterface $logger;
45:
46: private GatekeeperFactoryInterface $gatekeeperFactory;
47:
48: private UiInterface $ui;
49:
50: public function __construct(
51: ContainerInterface $dic,
52: LoggerInterface $logger,
ERROR: Unable to parse file: /code/src/Module/Application/DemocraticPlayback/DeleteAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\AccessLevelEnum;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class DeleteAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'delete';
42:
43: private UiInterface $ui;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: UiInterface $ui,
49: ConfigContainerInterface $configContainer
50: ) {
51: $this->ui = $ui;
52: $this->configContainer = $configContainer;
53: }
ERROR: Unable to parse file: /code/src/Module/Application/DemocraticPlayback/ManagePlaylistsAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\Ui;
36: use Ampache\Module\Util\UiInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: final class ManagePlaylistsAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'manage_playlists';
43:
44: private UiInterface $ui;
^
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
52: $this->ui = $ui;
53: $this->configContainer = $configContainer;
54: }
ERROR: Unable to parse file: /code/src/Module/Application/DemocraticPlayback/ManageAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\Ui;
36: use Ampache\Module\Util\UiInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: final class ManageAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'manage';
43:
44: private UiInterface $ui;
^
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer
51: ) {
52: $this->ui = $ui;
53: $this->configContainer = $configContainer;
54: }
ERROR: Unable to parse file: /code/src/Module/Application/DemocraticPlayback/ShowPlaylistAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\Authorization\GuiGatekeeperInterface;
37: use Ampache\Module\Util\Ui;
38: use Ampache\Module\Util\UiInterface;
39: use Psr\Http\Message\ResponseInterface;
40: use Psr\Http\Message\ServerRequestInterface;
41:
42: final class ShowPlaylistAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'show_playlist';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private UiInterface $ui;
49:
50: private ConfigContainerInterface $configContainer;
51:
52: private ModelFactoryInterface $modelFactory;
53:
54: public function __construct(
55: RequestParserInterface $requestParser,
56: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/DemocraticPlayback/CreateAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Authorization\GuiGatekeeperInterface;
36: use Psr\Http\Message\ResponseFactoryInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39: use Teapot\StatusCode;
40:
41: final class CreateAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'create';
44:
45: private ConfigContainerInterface $configContainer;
^
46:
47: private ResponseFactoryInterface $responseFactory;
48:
49: private RequestParserInterface $requestParser;
50:
51: public function __construct(
52: ConfigContainerInterface $configContainer,
53: ResponseFactoryInterface $responseFactory,
54: RequestParserInterface $requestParser
55: ) {
ERROR: Unable to parse file: /code/src/Module/Application/DemocraticPlayback/ShowCreateAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\Ui;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ShowCreateAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'show_create';
42:
43: private UiInterface $ui;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: UiInterface $ui,
49: ConfigContainerInterface $configContainer
50: ) {
51: $this->ui = $ui;
52: $this->configContainer = $configContainer;
53: }
ERROR: Unable to parse file: /code/src/Module/Application/PrivateMessage/DeleteAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class DeleteAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'delete';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private UiInterface $ui;
45:
46: public function __construct(
47: ConfigContainerInterface $configContainer,
48: UiInterface $ui
49: ) {
50: $this->configContainer = $configContainer;
51: $this->ui = $ui;
52: }
ERROR: Unable to parse file: /code/src/Module/Application/PrivateMessage/AddMessageAction.php
ERROR: Parse error at line 48 column 13:
38: use Ampache\Module\User\PrivateMessage\PrivateMessageCreatorInterface;
39: use Ampache\Module\Util\UiInterface;
40: use PHPMailer\PHPMailer\Exception;
41: use Psr\Http\Message\ResponseInterface;
42: use Psr\Http\Message\ServerRequestInterface;
43:
44: final class AddMessageAction implements ApplicationActionInterface
45: {
46: public const REQUEST_KEY = 'add_message';
47:
48: private ConfigContainerInterface $configContainer;
^
49:
50: private UiInterface $ui;
51:
52: private PrivateMessageCreatorInterface $privateMessageCreator;
53:
54: private ModelFactoryInterface $modelFactory;
55:
56: public function __construct(
57: ConfigContainerInterface $configContainer,
58: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/PrivateMessage/ShowAddMessageAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Ampache\Repository\PrivateMessageRepositoryInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: final class ShowAddMessageAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'show_add_message';
43:
44: private ConfigContainerInterface $configContainer;
^
45:
46: private UiInterface $ui;
47:
48: private ModelFactoryInterface $modelFactory;
49:
50: private PrivateMessageRepositoryInterface $privateMessageRepository;
51:
52: public function __construct(
53: ConfigContainerInterface $configContainer,
54: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/PrivateMessage/SetIsReadAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Ampache\Repository\PrivateMessageRepositoryInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class SetIsReadAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'set_is_read';
42:
43: private ConfigContainerInterface $configContainer;
^
44:
45: private UiInterface $ui;
46:
47: private PrivateMessageRepositoryInterface $privateMessageRepository;
48:
49: public function __construct(
50: ConfigContainerInterface $configContainer,
51: UiInterface $ui,
52: PrivateMessageRepositoryInterface $privateMessageRepository
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/PrivateMessage/ShowAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Ampache\Repository\PrivateMessageRepositoryInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ShowAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'show';
42:
43: private UiInterface $ui;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: private PrivateMessageRepositoryInterface $privateMessageRepository;
48:
49: public function __construct(
50: UiInterface $ui,
51: ConfigContainerInterface $configContainer,
52: PrivateMessageRepositoryInterface $privateMessageRepository
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/PrivateMessage/ConfirmDeleteAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Ampache\Repository\PrivateMessageRepositoryInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ConfirmDeleteAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'confirm_delete';
42:
43: private ConfigContainerInterface $configContainer;
^
44:
45: private UiInterface $ui;
46:
47: private PrivateMessageRepositoryInterface $privateMessageRepository;
48:
49: public function __construct(
50: ConfigContainerInterface $configContainer,
51: UiInterface $ui,
52: PrivateMessageRepositoryInterface $privateMessageRepository
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/LostPassword/SendAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\User\NewPasswordSenderInterface;
35: use Ampache\Module\Util\Mailer;
36: use Ampache\Module\Util\UiInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: final class SendAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'send';
43:
44: private ConfigContainerInterface $configContainer;
^
45:
46: private NewPasswordSenderInterface $newPasswordSender;
47:
48: private UiInterface $ui;
49:
50: public function __construct(
51: ConfigContainerInterface $configContainer,
52: NewPasswordSenderInterface $newPasswordSender,
53: UiInterface $ui
54: ) {
ERROR: Unable to parse file: /code/src/Module/Application/LostPassword/ShowAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\Mailer;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private UiInterface $ui;
45:
46: public function __construct(
47: ConfigContainerInterface $configContainer,
48: UiInterface $ui
49: ) {
50: $this->configContainer = $configContainer;
51: $this->ui = $ui;
52: }
ERROR: Unable to parse file: /code/src/Module/Application/Update/UpdateAction.php
ERROR: Parse error at line 49 column 13:
39: use Psr\Http\Message\ResponseFactoryInterface;
40: use Psr\Http\Message\ResponseInterface;
41: use Psr\Http\Message\ServerRequestInterface;
42: use Psr\Http\Message\StreamFactoryInterface;
43: use Teapot\StatusCode;
44:
45: final class UpdateAction implements ApplicationActionInterface
46: {
47: public const REQUEST_KEY = 'update';
48:
49: private TalFactoryInterface $talFactory;
^
50:
51: private GuiFactoryInterface $guiFactory;
52:
53: private ResponseFactoryInterface $responseFactory;
54:
55: private ConfigContainerInterface $configContainer;
56:
57: private StreamFactoryInterface $streamFactory;
58:
59: private Update\UpdaterInterface $updater;
ERROR: Unable to parse file: /code/src/Module/Application/Update/UpdatePluginsAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Repository\Model\Plugin;
34: use Psr\Http\Message\ResponseFactoryInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37: use Teapot\StatusCode;
38:
39: final class UpdatePluginsAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'update_plugins';
42:
43: private ResponseFactoryInterface $responseFactory;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: ResponseFactoryInterface $responseFactory,
49: ConfigContainerInterface $configContainer
50: ) {
51: $this->responseFactory = $responseFactory;
52: $this->configContainer = $configContainer;
53: }
ERROR: Unable to parse file: /code/src/Module/Application/Update/ShowAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Psr\Http\Message\ResponseFactoryInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35: use Psr\Http\Message\StreamFactoryInterface;
36:
37: final class ShowAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'show';
40:
41: private TalFactoryInterface $talFactory;
^
42:
43: private GuiFactoryInterface $guiFactory;
44:
45: private ResponseFactoryInterface $responseFactory;
46:
47: private StreamFactoryInterface $streamFactory;
48:
49: public function __construct(
50: TalFactoryInterface $talFactory,
51: GuiFactoryInterface $guiFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Artist/DeleteAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Application\ApplicationActionInterface;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class DeleteAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'delete';
39:
40: private ConfigContainerInterface $configContainer;
^
41:
42: private UiInterface $ui;
43:
44: public function __construct(
45: ConfigContainerInterface $configContainer,
46: UiInterface $ui
47: ) {
48: $this->configContainer = $configContainer;
49: $this->ui = $ui;
50: }
ERROR: Unable to parse file: /code/src/Module/Application/Artist/ShowAllSongsAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Ampache\Repository\SongRepositoryInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class ShowAllSongsAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'show_all_songs';
39:
40: private ModelFactoryInterface $modelFactory;
^
41:
42: private UiInterface $ui;
43:
44: private SongRepositoryInterface $songRepository;
45:
46: public function __construct(
47: ModelFactoryInterface $modelFactory,
48: UiInterface $ui,
49: SongRepositoryInterface $songRepository
50: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Artist/ShowSongsAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Ampache\Repository\SongRepositoryInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class ShowSongsAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'show_songs';
39:
40: private ModelFactoryInterface $modelFactory;
^
41:
42: private UiInterface $ui;
43:
44: private SongRepositoryInterface $songRepository;
45:
46: public function __construct(
47: ModelFactoryInterface $modelFactory,
48: UiInterface $ui,
49: SongRepositoryInterface $songRepository
50: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Artist/ShowMissingAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Application\ApplicationActionInterface;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class ShowMissingAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'show_missing';
39:
40: private UiInterface $ui;
^
41:
42: private MissingArtistRetrieverInterface $missingArtistRetriever;
43:
44: public function __construct(
45: UiInterface $ui,
46: MissingArtistRetrieverInterface $missingArtistRetriever
47: ) {
48: $this->ui = $ui;
49: $this->missingArtistRetriever = $missingArtistRetriever;
50: }
ERROR: Unable to parse file: /code/src/Module/Application/Artist/UpdateFromTagsAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\ApplicationActionInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class UpdateFromTagsAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'update_from_tags';
38:
39: private ConfigContainerInterface $configContainer;
^
40:
41: private UiInterface $ui;
42:
43: public function __construct(
44: ConfigContainerInterface $configContainer,
45: UiInterface $ui
46: ) {
47: $this->configContainer = $configContainer;
48: $this->ui = $ui;
49: }
ERROR: Unable to parse file: /code/src/Module/Application/Artist/UpdateFromMusicBrainzAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Util\UiInterface;
35: use Ampache\Repository\Model\Plugin;
36: use Ampache\Repository\Model\User;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39:
40: final class UpdateFromMusicBrainzAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'update_from_musicbrainz';
43:
44: private ConfigContainerInterface $configContainer;
^
45:
46: private UiInterface $ui;
47:
48: public function __construct(
49: ConfigContainerInterface $configContainer,
50: UiInterface $ui
51: ) {
52: $this->configContainer = $configContainer;
53: $this->ui = $ui;
54: }
ERROR: Unable to parse file: /code/src/Module/Application/Artist/ShowAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Util\UiInterface;
35: use Ampache\Repository\AlbumRepositoryInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38: use Psr\Log\LoggerInterface;
39:
40: final class ShowAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'show';
43:
44: private ModelFactoryInterface $modelFactory;
^
45:
46: private ConfigContainerInterface $configContainer;
47:
48: private UiInterface $ui;
49:
50: private LoggerInterface $logger;
51:
52: private AlbumRepositoryInterface $albumRepository;
53:
54: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Artist/ConfirmDeleteAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\Artist\Deletion\Exception\ArtistDeletionException;
37: use Ampache\Module\Authorization\GuiGatekeeperInterface;
38: use Ampache\Module\Util\UiInterface;
39: use Psr\Http\Message\ResponseInterface;
40: use Psr\Http\Message\ServerRequestInterface;
41:
42: final class ConfirmDeleteAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'confirm_delete';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private ConfigContainerInterface $configContainer;
49:
50: private UiInterface $ui;
51:
52: private ModelFactoryInterface $modelFactory;
53:
54: private ArtistDeleterInterface $artistDeleter;
55:
56: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Song/DeleteAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Application\ApplicationActionInterface;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class DeleteAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'delete';
39:
40: private ConfigContainerInterface $configContainer;
^
41:
42: private UiInterface $ui;
43:
44: public function __construct(
45: ConfigContainerInterface $configContainer,
46: UiInterface $ui
47: ) {
48: $this->configContainer = $configContainer;
49: $this->ui = $ui;
50: }
ERROR: Unable to parse file: /code/src/Module/Application/Song/ShowSongAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\System\LegacyLogger;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37: use Psr\Log\LoggerInterface;
38:
39: final class ShowSongAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'show_song';
42:
43: private UiInterface $ui;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private GuiFactoryInterface $guiFactory;
48:
49: private TalFactoryInterface $talFactory;
50:
51: private LoggerInterface $logger;
52:
53: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Song/ShowLyricsAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Application\ApplicationActionInterface;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class ShowLyricsAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'show_lyrics';
39:
40: private RequestParserInterface $requestParser;
^
41:
42: private UiInterface $ui;
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: public function __construct(
47: RequestParserInterface $requestParser,
48: UiInterface $ui,
49: ModelFactoryInterface $modelFactory
50: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Song/UpdateFromTagsAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class UpdateFromTagsAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'update_from_tags';
41:
42: private ModelFactoryInterface $modelFactory;
^
43:
44: private UiInterface $ui;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: ModelFactoryInterface $modelFactory,
50: UiInterface $ui,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Song/ConfirmDeleteAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Authorization\GuiGatekeeperInterface;
36: use Ampache\Module\Song\Deletion\SongDeleterInterface;
37: use Ampache\Module\Util\UiInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40:
41: final class ConfirmDeleteAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'confirm_delete';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private ConfigContainerInterface $configContainer;
48:
49: private UiInterface $ui;
50:
51: private ModelFactoryInterface $modelFactory;
52:
53: private SongDeleterInterface $songDeleter;
54:
55: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/LocalPlay/UpdateInstanceAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Playback\Localplay\LocalPlay;
34: use Psr\Http\Message\ResponseFactoryInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37: use Teapot\StatusCode;
38:
39: final class UpdateInstanceAction extends AbstractLocalPlayAction
40: {
41: public const REQUEST_KEY = 'update_instance';
42:
43: private ConfigContainerInterface $configContainer;
^
44:
45: private ResponseFactoryInterface $responseFactory;
46:
47: public function __construct(
48: ConfigContainerInterface $configContainer,
49: ResponseFactoryInterface $responseFactory
50: ) {
51: parent::__construct($configContainer);
52: $this->configContainer = $configContainer;
53: $this->responseFactory = $responseFactory;
ERROR: Unable to parse file: /code/src/Module/Application/LocalPlay/AddInstanceAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Playback\Localplay\LocalPlay;
34: use Psr\Http\Message\ResponseFactoryInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37: use Teapot\StatusCode;
38:
39: final class AddInstanceAction extends AbstractLocalPlayAction
40: {
41: public const REQUEST_KEY = 'add_instance';
42:
43: private ConfigContainerInterface $configContainer;
^
44:
45: private ResponseFactoryInterface $responseFactory;
46:
47: public function __construct(
48: ConfigContainerInterface $configContainer,
49: ResponseFactoryInterface $responseFactory
50: ) {
51: parent::__construct($configContainer);
52: $this->configContainer = $configContainer;
53: $this->responseFactory = $responseFactory;
ERROR: Unable to parse file: /code/src/Module/Application/LocalPlay/ShowAddInstanceAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Playback\Localplay\LocalPlay;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowAddInstanceAction extends AbstractLocalPlayAction
39: {
40: public const REQUEST_KEY = 'show_add_instance';
41:
42: private UiInterface $ui;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: public function __construct(
47: ConfigContainerInterface $configContainer,
48: UiInterface $ui
49: ) {
50: parent::__construct($configContainer);
51: $this->ui = $ui;
52: $this->configContainer = $configContainer;
ERROR: Unable to parse file: /code/src/Module/Application/LocalPlay/ShowPlaylistAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Playback\Localplay\LocalPlay;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowPlaylistAction extends AbstractLocalPlayAction
39: {
40: public const REQUEST_KEY = 'show_playlist';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private UiInterface $ui;
45:
46: public function __construct(
47: ConfigContainerInterface $configContainer,
48: UiInterface $ui
49: ) {
50: parent::__construct($configContainer);
51: $this->configContainer = $configContainer;
52: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/LocalPlay/EditInstanceAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Playback\Localplay\LocalPlay;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class EditInstanceAction extends AbstractLocalPlayAction
39: {
40: public const REQUEST_KEY = 'edit_instance';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private UiInterface $ui;
45:
46: public function __construct(
47: ConfigContainerInterface $configContainer,
48: UiInterface $ui
49: ) {
50: parent::__construct($configContainer);
51: $this->configContainer = $configContainer;
52: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/LocalPlay/AbstractLocalPlayAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\Exception\AccessDeniedException;
30: use Ampache\Module\Application\Exception\ApplicationException;
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\Ui;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: abstract class AbstractLocalPlayAction implements ApplicationActionInterface
38: {
39: private ConfigContainerInterface $configContainer;
^
40:
41: protected function __construct(
42: ConfigContainerInterface $configContainer
43: ) {
44: $this->configContainer = $configContainer;
45: }
46:
47: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
48: {
49: if (
ERROR: Unable to parse file: /code/src/Module/Application/LocalPlay/ShowInstancesAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Playback\Localplay\LocalPlay;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowInstancesAction extends AbstractLocalPlayAction
39: {
40: public const REQUEST_KEY = 'show_instances';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private UiInterface $ui;
45:
46: public function __construct(
47: ConfigContainerInterface $configContainer,
48: UiInterface $ui
49: ) {
50: parent::__construct($configContainer);
51: $this->configContainer = $configContainer;
52: $this->ui = $ui;
ERROR: Unable to parse file: /code/src/Module/Application/SmartPlaylist/DeletePlaylistAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Psr\Http\Message\ResponseFactoryInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Teapot\StatusCode;
37:
38: final class DeletePlaylistAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'delete_playlist';
41:
42: private ResponseFactoryInterface $responseFactory;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: private ModelFactoryInterface $modelFactory;
47:
48: public function __construct(
49: ResponseFactoryInterface $responseFactory,
50: ConfigContainerInterface $configContainer,
51: ModelFactoryInterface $modelFactory
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/SmartPlaylist/RefreshPlaylistAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Authorization\GuiGatekeeperInterface;
30: use Ampache\Module\Util\UiInterface;
31: use Ampache\Repository\Model\ModelFactoryInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class RefreshPlaylistAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'refresh_playlist';
38:
39: private UiInterface $ui;
^
40:
41: private ModelFactoryInterface $modelFactory;
42:
43: public function __construct(
44: UiInterface $ui,
45: ModelFactoryInterface $modelFactory
46: ) {
47: $this->ui = $ui;
48: $this->modelFactory = $modelFactory;
49: }
ERROR: Unable to parse file: /code/src/Module/Application/SmartPlaylist/CreatePlaylistAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\System\Dba;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class CreatePlaylistAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'create_playlist';
41:
42: private UiInterface $ui;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: public function __construct(
47: UiInterface $ui,
48: ModelFactoryInterface $modelFactory
49: ) {
50: $this->ui = $ui;
51: $this->modelFactory = $modelFactory;
52: }
ERROR: Unable to parse file: /code/src/Module/Application/SmartPlaylist/ShowAction.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35: use Psr\Log\LoggerInterface;
36:
37: final class ShowAction implements ApplicationActionInterface
38: {
39: public const REQUEST_KEY = 'show';
40:
41: private UiInterface $ui;
^
42:
43: private LoggerInterface $logger;
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: public function __construct(
48: UiInterface $ui,
49: LoggerInterface $logger,
50: ModelFactoryInterface $modelFactory
51: ) {
ERROR: Unable to parse file: /code/src/Module/Application/SmartPlaylist/UpdatePlaylistAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Ampache\Repository\Model\ModelFactoryInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class UpdatePlaylistAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'update_playlist';
39:
40: private UiInterface $ui;
^
41:
42: private ModelFactoryInterface $modelFactory;
43:
44: public function __construct(
45: UiInterface $ui,
46: ModelFactoryInterface $modelFactory
47: ) {
48: $this->ui = $ui;
49: $this->modelFactory = $modelFactory;
50: }
ERROR: Unable to parse file: /code/src/Module/Application/Index/ShowAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Util\RequestParserInterface;
34: use Ampache\Module\Util\Ui;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ShowAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'show';
42:
43: private RequestParserInterface $requestParser;
^
44:
45: private UiInterface $ui;
46:
47: private ConfigContainerInterface $configContainer;
48:
49: public function __construct(
50: RequestParserInterface $requestParser,
51: UiInterface $ui,
52: ConfigContainerInterface $configContainer
53: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Podcast/ImportPodcastsAction.php
ERROR: Parse error at line 59 column 13:
49: final class ImportPodcastsAction implements ApplicationActionInterface
50: {
51: /** @var list<string> */
52: private const EXPECTED_MIME_TYPES = [
53: 'text/x-opml+xml',
54: 'text/xml'
55: ];
56:
57: public const REQUEST_KEY = 'import_podcasts';
58:
59: private ConfigContainerInterface $configContainer;
^
60:
61: private UiInterface $ui;
62:
63: private RequestParserInterface $requestParser;
64:
65: private CatalogLoaderInterface $catalogLoader;
66:
67: private PodcastOpmlImporterInterface $podcastOpmlImporter;
68:
69: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Podcast/ShowImportPodcastsAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Renders the podcast import dialogue
40: */
41: final class ShowImportPodcastsAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'show_import_podcasts';
44:
45: private ConfigContainerInterface $configContainer;
^
46:
47: private UiInterface $ui;
48:
49: public function __construct(
50: ConfigContainerInterface $configContainer,
51: UiInterface $ui
52: ) {
53: $this->configContainer = $configContainer;
54: $this->ui = $ui;
55: }
ERROR: Unable to parse file: /code/src/Module/Application/Podcast/DeleteAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Renders confirmation-dialogue for podcast-deletion
40: */
41: final class DeleteAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'delete';
44:
45: private ConfigContainerInterface $configContainer;
^
46:
47: private UiInterface $ui;
48:
49: public function __construct(
50: ConfigContainerInterface $configContainer,
51: UiInterface $ui
52: ) {
53: $this->configContainer = $configContainer;
54: $this->ui = $ui;
55: }
ERROR: Unable to parse file: /code/src/Module/Application/Podcast/ExportPodcastsAction.php
ERROR: Parse error at line 44 column 13:
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36:
37: /**
38: * Exports all podcast subscriptions
39: */
40: final class ExportPodcastsAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'export_podcasts';
43:
44: private ConfigContainerInterface $configContainer;
^
45:
46: private PodcastExporterInterface $podcastExporter;
47:
48: private ResponseFactoryInterface $responseFactory;
49:
50: public function __construct(
51: ConfigContainerInterface $configContainer,
52: PodcastExporterInterface $podcastExporter,
53: ResponseFactoryInterface $responseFactory
54: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Podcast/CreateAction.php
ERROR: Parse error at line 49 column 13:
39: use Ampache\Module\Util\RequestParserInterface;
40: use Ampache\Module\Util\UiInterface;
41: use Ampache\Repository\Model\Catalog;
42: use Psr\Http\Message\ResponseInterface;
43: use Psr\Http\Message\ServerRequestInterface;
44:
45: final class CreateAction implements ApplicationActionInterface
46: {
47: public const REQUEST_KEY = 'create';
48:
49: private ConfigContainerInterface $configContainer;
^
50:
51: private UiInterface $ui;
52:
53: private PodcastCreatorInterface $podcastCreator;
54:
55: private RequestParserInterface $requestParser;
56:
57: public function __construct(
58: ConfigContainerInterface $configContainer,
59: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Podcast/ShowCreateAction.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: /**
39: * Renders the podcast creation dialogue
40: */
41: final class ShowCreateAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'show_create';
44:
45: private ConfigContainerInterface $configContainer;
^
46:
47: private UiInterface $ui;
48:
49: public function __construct(
50: ConfigContainerInterface $configContainer,
51: UiInterface $ui
52: ) {
53: $this->configContainer = $configContainer;
54: $this->ui = $ui;
55: }
ERROR: Unable to parse file: /code/src/Module/Application/Podcast/ShowAction.php
ERROR: Parse error at line 46 column 13:
36: use Psr\Http\Message\ServerRequestInterface;
37: use Psr\Log\LoggerInterface;
38:
39: /**
40: * Renders the podcast overview
41: */
42: final class ShowAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'show';
45:
46: private ConfigContainerInterface $configContainer;
^
47:
48: private UiInterface $ui;
49:
50: private LoggerInterface $logger;
51:
52: private PodcastRepositoryInterface $podcastRepository;
53:
54: public function __construct(
55: ConfigContainerInterface $configContainer,
56: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Podcast/ConfirmDeleteAction.php
ERROR: Parse error at line 48 column 13:
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40:
41: /**
42: * Actually deletes a podcast object
43: */
44: final class ConfirmDeleteAction implements ApplicationActionInterface
45: {
46: public const REQUEST_KEY = 'confirm_delete';
47:
48: private ConfigContainerInterface $configContainer;
^
49:
50: private UiInterface $ui;
51:
52: private PodcastRepositoryInterface $podcastRepository;
53:
54: private PodcastDeleterInterface $podcastDeleter;
55:
56: public function __construct(
57: ConfigContainerInterface $configContainer,
58: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Rss/ShowAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Util\Rss\AmpacheRssInterface;
34: use Psr\Http\Message\ResponseFactoryInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37: use Psr\Http\Message\StreamFactoryInterface;
38:
39: final class ShowAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'show';
42:
43: private RequestParserInterface $requestParser;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: private ResponseFactoryInterface $responseFactory;
48:
49: private StreamFactoryInterface $streamFactory;
50: private AmpacheRssInterface $ampacheRss;
51:
52: public function __construct(
53: RequestParserInterface $requestParser,
ERROR: Unable to parse file: /code/src/Module/Application/ShowGet/ShowAction.php
ERROR: Parse error at line 44 column 13:
34: use Psr\Http\Message\StreamFactoryInterface;
35:
36: /**
37: * Looks like some kind of debugging tool?
38: * @deprecated maybe obsolete
39: */
40: final class ShowAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'show';
43:
44: private RequestParserInterface $requestParser;
^
45:
46: private ResponseFactoryInterface $responseFactory;
47:
48: private StreamFactoryInterface $streamFactory;
49:
50: public function __construct(
51: RequestParserInterface $requestParser,
52: ResponseFactoryInterface $responseFactory,
53: StreamFactoryInterface $streamFactory
54: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Search/SaveAsPlaylistAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Authorization\GuiGatekeeperInterface;
36: use Ampache\Module\System\Core;
37: use Ampache\Module\Util\UiInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40:
41: final class SaveAsPlaylistAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'save_as_playlist';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private UiInterface $ui;
48:
49: private ConfigContainerInterface $configContainer;
50:
51: private ModelFactoryInterface $modelFactory;
52:
53: public function __construct(
54: RequestParserInterface $requestParser,
55: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Search/SaveAsSmartPlaylistAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class SaveAsSmartPlaylistAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'save_as_smartplaylist';
41:
42: private UiInterface $ui;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: private ModelFactoryInterface $modelFactory;
47:
48: public function __construct(
49: UiInterface $ui,
50: ConfigContainerInterface $configContainer,
51: ModelFactoryInterface $modelFactory
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Search/ShowAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Module\Application\ApplicationActionInterface;
29: use Ampache\Module\Authorization\GuiGatekeeperInterface;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class ShowAction implements ApplicationActionInterface
35: {
36: public const REQUEST_KEY = 'show';
37:
38: private UiInterface $ui;
^
39:
40: public function __construct(
41: UiInterface $ui
42: ) {
43: $this->ui = $ui;
44: }
45:
46: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
47: {
48: $this->ui->showHeader();
ERROR: Unable to parse file: /code/src/Module/Application/Search/SearchAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Util\Ui;
34: use Ampache\Module\Util\UiInterface;
35: use Ampache\Module\Wanted\MissingArtistFinderInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class SearchAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'search';
42:
43: private RequestParserInterface $requestParser;
^
44:
45: private UiInterface $ui;
46:
47: private ModelFactoryInterface $modelFactory;
48:
49: private MissingArtistFinderInterface $missingArtistFinder;
50:
51: public function __construct(
52: RequestParserInterface $requestParser,
53: UiInterface $ui,
ERROR: Unable to parse file: /code/src/Module/Application/Batch/DefaultAction.php
ERROR: Parse error at line 51 column 13:
41: use Ampache\Module\Util\ZipHandlerInterface;
42: use Ampache\Repository\SongRepositoryInterface;
43: use Psr\Http\Message\ResponseInterface;
44: use Psr\Http\Message\ServerRequestInterface;
45: use Psr\Log\LoggerInterface;
46:
47: final class DefaultAction implements ApplicationActionInterface
48: {
49: public const REQUEST_KEY = 'default';
50:
51: private RequestParserInterface $requestParser;
^
52:
53: private ModelFactoryInterface $modelFactory;
54:
55: private LoggerInterface $logger;
56:
57: private ZipHandlerInterface $zipHandler;
58:
59: private FunctionCheckerInterface $functionChecker;
60:
61: private SongRepositoryInterface $songRepository;
ERROR: Unable to parse file: /code/src/Module/Application/Art/ShowArtDlgAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Authorization\GuiGatekeeperInterface;
30: use Ampache\Module\System\Core;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class ShowArtDlgAction extends AbstractArtAction
36: {
37: public const REQUEST_KEY = 'show_art_dlg';
38:
39: private UiInterface $ui;
^
40:
41: public function __construct(
42: UiInterface $ui
43: ) {
44: $this->ui = $ui;
45: }
46:
47: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
48: {
49: $object_type = filter_input(INPUT_GET, 'object_type', FILTER_SANITIZE_SPECIAL_CHARS);
ERROR: Unable to parse file: /code/src/Module/Application/Art/FindArtAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\System\Core;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class FindArtAction extends AbstractArtAction
39: {
40: public const REQUEST_KEY = 'find_art';
41:
42: private ArtCollectorInterface $artCollector;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private UiInterface $ui;
47:
48: public function __construct(
49: ArtCollectorInterface $artCollector,
50: ModelFactoryInterface $modelFactory,
51: UiInterface $ui
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Art/UploadArtAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Authorization\GuiGatekeeperInterface;
30: use Ampache\Module\System\Core;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class UploadArtAction extends AbstractArtAction
36: {
37: public const REQUEST_KEY = 'upload_art';
38:
39: private ModelFactoryInterface $modelFactory;
^
40:
41: private UiInterface $ui;
42:
43: public function __construct(
44: ModelFactoryInterface $modelFactory,
45: UiInterface $ui
46: ) {
47: $this->modelFactory = $modelFactory;
48: $this->ui = $ui;
49: }
ERROR: Unable to parse file: /code/src/Module/Application/Art/ClearArtAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\System\Core;
31: use Ampache\Module\Util\UiInterface;
32: use Ampache\Repository\Model\ModelFactoryInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class ClearArtAction extends AbstractArtAction
37: {
38: public const REQUEST_KEY = 'clear_art';
39:
40: private ModelFactoryInterface $modelFactory;
^
41:
42: private UiInterface $ui;
43:
44: public function __construct(
45: ModelFactoryInterface $modelFactory,
46: UiInterface $ui
47: ) {
48: $this->modelFactory = $modelFactory;
49: $this->ui = $ui;
50: }
ERROR: Unable to parse file: /code/src/Module/Application/Art/SelectArtAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseFactoryInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Teapot\StatusCode;
37:
38: final class SelectArtAction extends AbstractArtAction
39: {
40: public const REQUEST_KEY = 'select_art';
41:
42: private ModelFactoryInterface $modelFactory;
^
43:
44: private ResponseFactoryInterface $responseFactory;
45:
46: private UiInterface $ui;
47:
48: public function __construct(
49: ModelFactoryInterface $modelFactory,
50: ResponseFactoryInterface $responseFactory,
51: UiInterface $ui
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Upload/DefaultAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Util\AjaxUriRetrieverInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Ampache\Module\Util\Upload;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class DefaultAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'show';
42:
43: private ConfigContainerInterface $configContainer;
^
44:
45: private UiInterface $ui;
46:
47: private AjaxUriRetrieverInterface $ajaxUriRetriever;
48:
49:
50: public function __construct(
51: ConfigContainerInterface $configContainer,
52: UiInterface $ui,
53: AjaxUriRetrieverInterface $ajaxUriRetriever
ERROR: Unable to parse file: /code/src/Module/Application/Broadcast/DeleteAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\Exception\AccessDeniedException;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class DeleteAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'delete';
42:
43: private RequestParserInterface $requestParser;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: private UiInterface $ui;
48:
49: private ModelFactoryInterface $modelFactory;
50:
51: public function __construct(
52: RequestParserInterface $requestParser,
53: ConfigContainerInterface $configContainer,
ERROR: Unable to parse file: /code/src/Module/Application/Broadcast/ShowDeleteAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\GuiGatekeeperInterface;
33: use Ampache\Module\Util\RequestParserInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowDeleteAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show_delete';
41:
42: private RequestParserInterface $requestParser;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: private UiInterface $ui;
47:
48: public function __construct(
49: RequestParserInterface $requestParser,
50: ConfigContainerInterface $configContainer,
51: UiInterface $ui
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/TvShowSeason/DeleteAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\System\LegacyLogger;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34: use Psr\Log\LoggerInterface;
35:
36: final class DeleteAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'delete';
39:
40: private ConfigContainerInterface $configContainer;
^
41:
42: private UiInterface $ui;
43:
44: private LoggerInterface $logger;
45:
46: public function __construct(
47: ConfigContainerInterface $configContainer,
48: UiInterface $ui,
49: LoggerInterface $logger
50: ) {
ERROR: Unable to parse file: /code/src/Module/Application/TvShowSeason/ShowAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\ApplicationActionInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class ShowAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'show';
38:
39: private UiInterface $ui;
^
40:
41: public function __construct(
42: UiInterface $ui
43: ) {
44: $this->ui = $ui;
45: }
46:
47: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
48: {
49: $this->ui->showHeader();
ERROR: Unable to parse file: /code/src/Module/Application/TvShowSeason/ConfirmDeleteAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37: use Symfony\Component\Finder\Exception\AccessDeniedException;
38:
39: final class ConfirmDeleteAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'confirm_delete';
42:
43: private UiInterface $ui;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: UiInterface $ui,
49: ConfigContainerInterface $configContainer
50: ) {
51: $this->ui = $ui;
52: $this->configContainer = $configContainer;
53: }
ERROR: Unable to parse file: /code/src/Module/Application/Shout/AddShoutAction.php
ERROR: Parse error at line 49 column 13:
39: use Psr\Http\Message\ServerRequestInterface;
40: use Teapot\StatusCode;
41:
42: /**
43: * Creates a new shout for an item
44: */
45: final class AddShoutAction implements ApplicationActionInterface
46: {
47: public const REQUEST_KEY = 'add_shout';
48:
49: private ResponseFactoryInterface $responseFactory;
^
50:
51: private ConfigContainerInterface $configContainer;
52:
53: private ShoutCreatorInterface $shoutCreator;
54:
55: private RequestParserInterface $requestParser;
56: private ShoutObjectLoaderInterface $shoutObjectLoader;
57:
58: public function __construct(
59: ResponseFactoryInterface $responseFactory,
ERROR: Unable to parse file: /code/src/Module/Application/Shout/ShowAddShoutAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Util\ObjectTypeToClassNameMapper;
36: use Ampache\Module\Util\UiInterface;
37: use Ampache\Repository\ShoutRepositoryInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40:
41: final class ShowAddShoutAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'show_add_shout';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private UiInterface $ui;
48:
49: private ShoutRepositoryInterface $shoutRepository;
50:
51: private ShoutRendererInterface $shoutRenderer;
52: private ShoutObjectLoaderInterface $shoutObjectLoader;
53:
54: public function __construct(
55: RequestParserInterface $requestParser,
ERROR: Unable to parse file: /code/src/Module/Application/Shout/ShowAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\ApplicationActionInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Psr\Http\Message\ResponseFactoryInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class ShowAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'show';
38:
39: private ResponseFactoryInterface $responseFactory;
^
40:
41: private ConfigContainerInterface $configContainer;
42:
43: public function __construct(
44: ResponseFactoryInterface $responseFactory,
45: ConfigContainerInterface $configContainer
46: ) {
47: $this->responseFactory = $responseFactory;
48: $this->configContainer = $configContainer;
49: }
ERROR: Unable to parse file: /code/src/Module/Application/SearchData/ShowAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Util\Ui;
33: use Psr\Http\Message\ResponseFactoryInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Psr\Http\Message\StreamFactoryInterface;
37:
38: final class ShowAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show';
41:
42: private RequestParserInterface $requestParser;
^
43:
44: private ResponseFactoryInterface $responseFactory;
45:
46: private StreamFactoryInterface $streamFactory;
47:
48: private ModelFactoryInterface $modelFactory;
49:
50: public function __construct(
51: RequestParserInterface $requestParser,
52: ResponseFactoryInterface $responseFactory,
ERROR: Unable to parse file: /code/src/Module/Application/CookieDisclaimer/ShowAction.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Module\Application\ApplicationActionInterface;
29: use Ampache\Module\Authorization\GuiGatekeeperInterface;
30: use Ampache\Module\Util\UiInterface;
31: use Psr\Http\Message\ResponseInterface;
32: use Psr\Http\Message\ServerRequestInterface;
33:
34: final class ShowAction implements ApplicationActionInterface
35: {
36: public const REQUEST_KEY = 'show';
37:
38: private UiInterface $ui;
^
39:
40: public function __construct(
41: UiInterface $ui
42: ) {
43: $this->ui = $ui;
44: }
45:
46: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
47: {
48: $this->ui->showHeader();
ERROR: Unable to parse file: /code/src/Module/Application/NowPlaying/ShowAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Util\RequestParserInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38: use Psr\Log\LoggerInterface;
39:
40: final class ShowAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'show';
43:
44: private RequestParserInterface $requestParser;
^
45:
46: private ConfigContainerInterface $configContainer;
47:
48: private LoggerInterface $logger;
49:
50: private UiInterface $ui;
51:
52: public function __construct(
53: RequestParserInterface $requestParser,
54: ConfigContainerInterface $configContainer,
ERROR: Unable to parse file: /code/src/Module/Application/Playback/PlayAction.php
ERROR: Parse error at line 65 column 13:
55: use Ampache\Repository\Model\Video;
56: use Ampache\Repository\UserRepositoryInterface;
57: use Psr\Http\Message\ResponseInterface;
58: use Psr\Http\Message\ServerRequestInterface;
59: use Psr\Log\LoggerInterface;
60:
61: final class PlayAction implements ApplicationActionInterface
62: {
63: public const REQUEST_KEY = 'play';
64:
65: private RequestParserInterface $requestParser;
^
66:
67: private Horde_Browser $browser;
68:
69: private AuthenticationManagerInterface $authenticationManager;
70:
71: private NetworkCheckerInterface $networkChecker;
72:
73: private UserRepositoryInterface $userRepository;
74:
75: private LoggerInterface $logger;
ERROR: Unable to parse file: /code/src/Module/Application/Playback/Play2Action.php
ERROR: Parse error at line 65 column 13:
55: use Ampache\Repository\Model\Video;
56: use Ampache\Repository\UserRepositoryInterface;
57: use Psr\Http\Message\ResponseInterface;
58: use Psr\Http\Message\ServerRequestInterface;
59: use Psr\Log\LoggerInterface;
60:
61: final class Play2Action implements ApplicationActionInterface
62: {
63: public const REQUEST_KEY = 'play2';
64:
65: private RequestParserInterface $requestParser;
^
66:
67: private Horde_Browser $browser;
68:
69: private AuthenticationManagerInterface $authenticationManager;
70:
71: private NetworkCheckerInterface $networkChecker;
72:
73: private UserRepositoryInterface $userRepository;
74:
75: private LoggerInterface $logger;
ERROR: Unable to parse file: /code/src/Module/Application/Utility/ShowAction.php
ERROR: Parse error at line 44 column 13:
34:
35: /**
36: * This is a little bit of a special file, it takes the
37: * content of $_SESSION['iframe']['target'] and does a header
38: * redirect to that spot!
39: */
40: final class ShowAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'show';
43:
44: private ResponseFactoryInterface $responseFactory;
^
45:
46: public function __construct(
47: ResponseFactoryInterface $responseFactory
48: ) {
49: $this->responseFactory = $responseFactory;
50: }
51:
52: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
53: {
54: $response = $this->responseFactory
ERROR: Unable to parse file: /code/src/Module/Application/Album/UpdateDiskFromTagsAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class UpdateDiskFromTagsAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'update_disk_from_tags';
41:
42: private ModelFactoryInterface $modelFactory;
^
43:
44: private UiInterface $ui;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: ModelFactoryInterface $modelFactory,
50: UiInterface $ui,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Album/DeleteAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\System\LegacyLogger;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Psr\Log\LoggerInterface;
37:
38: final class DeleteAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'delete';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private UiInterface $ui;
45:
46: private LoggerInterface $logger;
47:
48: public function __construct(
49: ConfigContainerInterface $configContainer,
50: UiInterface $ui,
51: LoggerInterface $logger
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Album/ShowDiskAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\System\LegacyLogger;
37: use Ampache\Module\Util\UiInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40: use Psr\Log\LoggerInterface;
41:
42: final class ShowDiskAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'show_disk';
45:
46: private ModelFactoryInterface $modelFactory;
^
47:
48: private UiInterface $ui;
49:
50: private LoggerInterface $logger;
51:
52: private PrivilegeCheckerInterface $privilegeChecker;
53:
54: private ConfigContainerInterface $configContainer;
55:
56: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Album/SetTrackNumbersAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\System\LegacyLogger;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38: use Psr\Log\LoggerInterface;
39:
40: final class SetTrackNumbersAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'set_track_numbers';
43:
44: private UiInterface $ui;
^
45:
46: private LoggerInterface $logger;
47:
48: public function __construct(
49: UiInterface $ui,
50: LoggerInterface $logger
51: ) {
52: $this->ui = $ui;
53: $this->logger = $logger;
54: }
ERROR: Unable to parse file: /code/src/Module/Application/Album/ShowMissingAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Art\Collector\ArtCollectorInterface;
33: use Ampache\Module\Util\UiInterface;
34: use Ampache\Repository\WantedRepositoryInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowMissingAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show_missing';
41:
42: private RequestParserInterface $requestParser;
^
43:
44: private ModelFactoryInterface $modelFactory;
45:
46: private UiInterface $ui;
47:
48: private ArtCollectorInterface $artCollector;
49:
50: private WantedRepositoryInterface $wantedRepository;
51:
52: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Album/UpdateFromTagsAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class UpdateFromTagsAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'update_from_tags';
41:
42: private ModelFactoryInterface $modelFactory;
^
43:
44: private UiInterface $ui;
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: ModelFactoryInterface $modelFactory,
50: UiInterface $ui,
51: ConfigContainerInterface $configContainer
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Album/ShowAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\System\LegacyLogger;
37: use Ampache\Module\Util\UiInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40: use Psr\Log\LoggerInterface;
41:
42: final class ShowAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'show';
45:
46: private ModelFactoryInterface $modelFactory;
^
47:
48: private UiInterface $ui;
49:
50: private LoggerInterface $logger;
51:
52: private PrivilegeCheckerInterface $privilegeChecker;
53:
54: private ConfigContainerInterface $configContainer;
55:
56: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/Album/ConfirmDeleteAction.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\Application\Exception\AccessDeniedException;
37: use Ampache\Module\Authorization\GuiGatekeeperInterface;
38: use Ampache\Module\Util\UiInterface;
39: use Psr\Http\Message\ResponseInterface;
40: use Psr\Http\Message\ServerRequestInterface;
41:
42: final class ConfirmDeleteAction implements ApplicationActionInterface
43: {
44: public const REQUEST_KEY = 'confirm_delete';
45:
46: private RequestParserInterface $requestParser;
^
47:
48: private ConfigContainerInterface $configContainer;
49:
50: private ModelFactoryInterface $modelFactory;
51:
52: private UiInterface $ui;
53:
54: private AlbumDeleterInterface $albumDeleter;
55:
56: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/PodcastEpisode/DeleteAction.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Application\ApplicationActionInterface;
31: use Ampache\Module\Authorization\GuiGatekeeperInterface;
32: use Ampache\Module\Util\UiInterface;
33: use Psr\Http\Message\ResponseInterface;
34: use Psr\Http\Message\ServerRequestInterface;
35:
36: final class DeleteAction implements ApplicationActionInterface
37: {
38: public const REQUEST_KEY = 'delete';
39:
40: private ConfigContainerInterface $configContainer;
^
41:
42: private UiInterface $ui;
43:
44: public function __construct(
45: ConfigContainerInterface $configContainer,
46: UiInterface $ui
47: ) {
48: $this->configContainer = $configContainer;
49: $this->ui = $ui;
50: }
ERROR: Unable to parse file: /code/src/Module/Application/PodcastEpisode/ShowAction.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38: use Psr\Log\LoggerInterface;
39:
40: final class ShowAction implements ApplicationActionInterface
41: {
42: public const REQUEST_KEY = 'show';
43:
44: private RequestParserInterface $requestParser;
^
45:
46: private ConfigContainerInterface $configContainer;
47:
48: private UiInterface $ui;
49:
50: private LoggerInterface $logger;
51:
52: private ModelFactoryInterface $modelFactory;
53:
54: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Application/PodcastEpisode/ConfirmDeleteAction.php
ERROR: Parse error at line 47 column 13:
37: use Ampache\Module\System\LegacyLogger;
38: use Ampache\Module\Util\UiInterface;
39: use Psr\Http\Message\ResponseInterface;
40: use Psr\Http\Message\ServerRequestInterface;
41: use Psr\Log\LoggerInterface;
42:
43: final class ConfirmDeleteAction implements ApplicationActionInterface
44: {
45: public const REQUEST_KEY = 'confirm_delete';
46:
47: private RequestParserInterface $requestParser;
^
48:
49: private ConfigContainerInterface $configContainer;
50:
51: private UiInterface $ui;
52:
53: private ModelFactoryInterface $modelFactory;
54:
55: private PodcastDeleterInterface $podcastDeleter;
56:
57: private LoggerInterface $logger;
ERROR: Unable to parse file: /code/src/Module/Application/Video/DeleteAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\System\LegacyLogger;
33: use Ampache\Module\Util\UiInterface;
34: use Psr\Http\Message\ResponseInterface;
35: use Psr\Http\Message\ServerRequestInterface;
36: use Psr\Log\LoggerInterface;
37:
38: final class DeleteAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'delete';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private UiInterface $ui;
45:
46: private LoggerInterface $logger;
47:
48: public function __construct(
49: ConfigContainerInterface $configContainer,
50: UiInterface $ui,
51: LoggerInterface $logger
52: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Video/ShowVideoAction.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Application\ApplicationActionInterface;
30: use Ampache\Module\Authorization\GuiGatekeeperInterface;
31: use Ampache\Module\Util\UiInterface;
32: use Psr\Http\Message\ResponseInterface;
33: use Psr\Http\Message\ServerRequestInterface;
34:
35: final class ShowVideoAction implements ApplicationActionInterface
36: {
37: public const REQUEST_KEY = 'show_video';
38:
39: private UiInterface $ui;
^
40:
41: public function __construct(
42: UiInterface $ui
43: ) {
44: $this->ui = $ui;
45: }
46:
47: public function run(ServerRequestInterface $request, GuiGatekeeperInterface $gatekeeper): ?ResponseInterface
48: {
49: $this->ui->showHeader();
ERROR: Unable to parse file: /code/src/Module/Application/Video/ConfirmDeleteAction.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Module\Application\Exception\AccessDeniedException;
34: use Ampache\Module\Authorization\GuiGatekeeperInterface;
35: use Ampache\Module\Util\UiInterface;
36: use Psr\Http\Message\ResponseInterface;
37: use Psr\Http\Message\ServerRequestInterface;
38:
39: final class ConfirmDeleteAction implements ApplicationActionInterface
40: {
41: public const REQUEST_KEY = 'confirm_delete';
42:
43: private ConfigContainerInterface $configContainer;
^
44:
45: private UiInterface $ui;
46:
47: public function __construct(
48: ConfigContainerInterface $configContainer,
49: UiInterface $ui
50: ) {
51: $this->configContainer = $configContainer;
52: $this->ui = $ui;
53: }
ERROR: Unable to parse file: /code/src/Module/Application/Radio/CreateAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Authorization\AccessLevelEnum;
36: use Ampache\Module\Authorization\GuiGatekeeperInterface;
37: use Ampache\Module\Util\UiInterface;
38: use Psr\Http\Message\ResponseInterface;
39: use Psr\Http\Message\ServerRequestInterface;
40:
41: final class CreateAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'create';
44:
45: private ConfigContainerInterface $configContainer;
^
46:
47: private UiInterface $ui;
48:
49: private RequestParserInterface $requestParser;
50:
51: public function __construct(
52: ConfigContainerInterface $configContainer,
53: UiInterface $ui,
54: RequestParserInterface $requestParser
55: ) {
ERROR: Unable to parse file: /code/src/Module/Application/Radio/ShowCreateAction.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Authorization\AccessLevelEnum;
33: use Ampache\Module\Authorization\GuiGatekeeperInterface;
34: use Ampache\Module\Util\UiInterface;
35: use Psr\Http\Message\ResponseInterface;
36: use Psr\Http\Message\ServerRequestInterface;
37:
38: final class ShowCreateAction implements ApplicationActionInterface
39: {
40: public const REQUEST_KEY = 'show_create';
41:
42: private ConfigContainerInterface $configContainer;
^
43:
44: private UiInterface $ui;
45:
46: public function __construct(
47: ConfigContainerInterface $configContainer,
48: UiInterface $ui
49: ) {
50: $this->configContainer = $configContainer;
51: $this->ui = $ui;
52: }
ERROR: Unable to parse file: /code/src/Module/Application/Radio/ShowAction.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Authorization\GuiGatekeeperInterface;
36: use Ampache\Module\Util\UiInterface;
37: use Psr\Http\Message\ResponseInterface;
38: use Psr\Http\Message\ServerRequestInterface;
39: use Psr\Log\LoggerInterface;
40:
41: final class ShowAction implements ApplicationActionInterface
42: {
43: public const REQUEST_KEY = 'show';
44:
45: private RequestParserInterface $requestParser;
^
46:
47: private ConfigContainerInterface $configContainer;
48:
49: private UiInterface $ui;
50:
51: private LoggerInterface $logger;
52:
53: private ModelFactoryInterface $modelFactory;
54:
55: public function __construct(
ERROR: Unable to parse file: /code/src/Module/Art/ArtCleanup.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\System\Dba;
31: use Ampache\Repository\Model\Art;
32:
33: /**
34: * Provides methods for the cleanup/deletion of art-items
35: */
36: final class ArtCleanup implements ArtCleanupInterface
37: {
38: private ConfigContainerInterface $configContainer;
^
39:
40: public function __construct(
41: ConfigContainerInterface $configContainer
42: ) {
43: $this->configContainer = $configContainer;
44: }
45:
46: /**
47: * look for art in the image table that doesn't fit min or max dimensions and delete it
48: */
ERROR: Unable to parse file: /code/src/Module/Art/Export/ArtExporter.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Art\Export;
33: use Ampache\Module\System\LegacyLogger;
34: use Psr\Log\LoggerInterface;
35:
36: /**
37: * This runs through all of the images and tries to
38: * export all database art to local_metadata_dir
39: */
40: final class ArtExporter implements ArtExporterInterface
41: {
42: private LoggerInterface $logger;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: private ImageRepositoryInterface $imageRepository;
47:
48: public function __construct(
49: LoggerInterface $logger,
50: ConfigContainerInterface $configContainer,
51: ImageRepositoryInterface $imageRepository
52: ) {
ERROR: Unable to parse file: /code/src/Module/Art/Collector/GoogleCollectorModule.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Repository\Model\Art;
29: use Ampache\Module\System\Core;
30: use Ampache\Module\System\LegacyLogger;
31: use Exception;
32: use Psr\Log\LoggerInterface;
33: use WpOrg\Requests\Requests;
34:
35: final class GoogleCollectorModule implements CollectorModuleInterface
36: {
37: private LoggerInterface $logger;
^
38:
39: public function __construct(
40: LoggerInterface $logger
41: ) {
42: $this->logger = $logger;
43: }
44:
45: /**
46: * Raw google search to retrieve the art, not very reliable
47: *
ERROR: Unable to parse file: /code/src/Module/Art/Collector/MetaTagCollectorModule.php
ERROR: Parse error at line 56 column 13:
46: private const TAG_ARTIST_ART_PRIORITY = array(
47: 'ID3 Artist',
48: 'ID3 Lead Artist',
49: 'ID3 Band',
50: 'ID3 Conductor',
51: 'ID3 Composer',
52: 'ID3 Lyricist',
53: 'ID3 Other'
54: );
55:
56: private LoggerInterface $logger;
^
57:
58: private getID3 $getID3;
59:
60: private SongRepositoryInterface $songRepository;
61:
62: public function __construct(
63: LoggerInterface $logger,
64: getID3 $getID3,
65: SongRepositoryInterface $songRepository
66: ) {
ERROR: Unable to parse file: /code/src/Module/Art/Collector/FolderCollectorModule.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Repository\Model\Song;
33: use Ampache\Repository\Model\Video;
34: use Ampache\Module\System\AmpError;
35: use Ampache\Module\System\Core;
36: use Ampache\Module\System\LegacyLogger;
37: use Ampache\Repository\SongRepositoryInterface;
38: use Psr\Log\LoggerInterface;
39:
40: final class FolderCollectorModule implements CollectorModuleInterface
41: {
42: private ConfigContainerInterface $configContainer;
^
43:
44: private LoggerInterface $logger;
45:
46: private SongRepositoryInterface $songRepository;
47:
48: public function __construct(
49: ConfigContainerInterface $configContainer,
50: LoggerInterface $logger,
51: SongRepositoryInterface $songRepository
52: ) {
ERROR: Unable to parse file: /code/src/Module/Art/Collector/ArtCollector.php
ERROR: Parse error at line 45 column 13:
35: use Psr\Container\ContainerInterface;
36: use Psr\Log\LoggerInterface;
37:
38: final class ArtCollector implements ArtCollectorInterface
39: {
40: /**
41: * @const ART_SEARCH_LIMIT
42: */
43: public const ART_SEARCH_LIMIT = 15;
44:
45: private ContainerInterface $dic;
^
46:
47: private LoggerInterface $logger;
48:
49: private ConfigContainerInterface $configContainer;
50:
51: public function __construct(
52: ContainerInterface $dic,
53: LoggerInterface $logger,
54: ConfigContainerInterface $configContainer
55: ) {
ERROR: Unable to parse file: /code/src/Module/Art/Collector/MusicbrainzCollectorModule.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Repository\Model\Art;
29: use Ampache\Module\System\Core;
30: use Ampache\Module\System\LegacyLogger;
31: use Exception;
32: use MusicBrainz\MusicBrainz;
33: use Psr\Log\LoggerInterface;
34: use WpOrg\Requests\Requests;
35:
36: final class MusicbrainzCollectorModule implements CollectorModuleInterface
37: {
38: private MusicBrainz $musicBrainz;
^
39:
40: private LoggerInterface $logger;
41:
42: public function __construct(
43: MusicBrainz $musicBrainz,
44: LoggerInterface $logger
45: ) {
46: $this->musicBrainz = $musicBrainz;
47: $this->logger = $logger;
48: }
ERROR: Unable to parse file: /code/src/Module/Art/Collector/SpotifyCollectorModule.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Repository\Model\Art;
30: use Ampache\Module\System\LegacyLogger;
31: use Psr\Log\LoggerInterface;
32: use SpotifyWebAPI\Session as SpotifySession;
33: use SpotifyWebAPI\SpotifyWebAPI;
34: use SpotifyWebAPI\SpotifyWebAPIException;
35:
36: final class SpotifyCollectorModule implements CollectorModuleInterface
37: {
38: private ConfigContainerInterface $configContainer;
^
39:
40: private SpotifyWebAPI $spotifyWebAPI;
41:
42: private LoggerInterface $logger;
43:
44: public function __construct(
45: ConfigContainerInterface $configContainer,
46: SpotifyWebAPI $spotifyWebAPI,
47: LoggerInterface $logger
48: ) {
ERROR: Unable to parse file: /code/src/Module/Art/Collector/LastFmCollectorModule.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Repository\Model\Art;
31: use Ampache\Module\LastFm\LastFmQueryInterface;
32: use Ampache\Module\System\LegacyLogger;
33: use Exception;
34: use Psr\Log\LoggerInterface;
35:
36: final class LastFmCollectorModule implements CollectorModuleInterface
37: {
38: private const API_URL = 'http://ws.audioscrobbler.com/2.0/';
39:
40: private ConfigContainerInterface $configContainer;
^
41:
42: private LastFmQueryInterface $lastFmQuery;
43:
44: private LoggerInterface $logger;
45:
46: public function __construct(
47: ConfigContainerInterface $configContainer,
48: LastFmQueryInterface $lastFmQuery,
49: LoggerInterface $logger
50: ) {
ERROR: Unable to parse file: /code/src/Module/Shout/ShoutRenderer.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\Util\Ui;
33: use Ampache\Repository\Model\Art;
34: use Ampache\Repository\Model\ModelFactoryInterface;
35: use Ampache\Repository\Model\Shoutbox;
36:
37: /**
38: * Renders a shout within the ui
39: */
40: final class ShoutRenderer implements ShoutRendererInterface
41: {
42: private PrivilegeCheckerInterface $privilegeChecker;
^
43:
44: private ConfigContainerInterface $configContainer;
45:
46: private ModelFactoryInterface $modelFactory;
47: private ShoutObjectLoaderInterface $shoutObjectLoader;
48:
49: public function __construct(
50: PrivilegeCheckerInterface $privilegeChecker,
51: ConfigContainerInterface $configContainer,
52: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Module/Shout/ShoutCreator.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Repository\Model\User;
36: use Ampache\Repository\ShoutRepositoryInterface;
37: use DateTime;
38: use PHPMailer\PHPMailer\Exception;
39:
40: /**
41: * Creates a new shout item
42: */
43: final class ShoutCreator implements ShoutCreatorInterface
44: {
45: private UserActivityPosterInterface $userActivityPoster;
^
46:
47: private ConfigContainerInterface $configContainer;
48:
49: private ShoutRepositoryInterface $shoutRepository;
50: private UtilityFactoryInterface $utilityFactory;
51: private ModelFactoryInterface $modelFactory;
52:
53: public function __construct(
54: UserActivityPosterInterface $userActivityPoster,
55: ConfigContainerInterface $configContainer,
ERROR: Unable to parse file: /code/src/Module/System/Dba.php
ERROR: Parse error at line 46 column 20:
36: * with a few exceptions, the row and assoc will always
37: * return an array, simplifying checking on the far end
38: * it will also auto-connect as needed, and has a default
39: * database simplifying queries in most cases.
40: */
41: class Dba
42: {
43: public static $stats = array('query' => 0);
44:
45: private static $_sql;
46: private static string $_error;
^
47:
48: /**
49: * query
50: * @param string $sql
51: * @param array $params
52: * @return PDOStatement|false
53: */
54: public static function query($sql, $params = array())
55: {
56: // json_encode throws errors about UTF-8 cleanliness, which we don't care about here.
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/AbstractMigration.php
ERROR: Parse error at line 35 column 13:
25: namespace Ampache\Module\System\Update\Migration;
26:
27: use Ahc\Cli\IO\Interactor;
28: use Ampache\Module\Database\DatabaseConnectionInterface;
29: use Ampache\Repository\Model\Preference;
30: use ArrayIterator;
31: use Traversable;
32:
33: abstract class AbstractMigration implements MigrationInterface
34: {
35: private DatabaseConnectionInterface $connection;
^
36:
37: private ?Interactor $interactor = null;
38:
39: /** @var list<non-empty-string> */
40: protected array $changelog = [];
41:
42: /**
43: * If the migration should trigger a warning, set to `true`
44: */
45: protected bool $warning = false;
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400002.php
ERROR: Parse error at line 37 column 15:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Update disk to allow 1 instead of making it 0 by default
32: * Add barcode catalog_number and original_year
33: * Drop catalog_number from song_data
34: */
35: final class Migration400002 extends AbstractMigration
36: {
37: protected array $changelog = [
^
38: 'IMPORTANT UPDATE NOTES: This is part of a major update to how Ampache handles Albums, Artists and data migration during tag updates',
39: 'Update album disk support to allow 1 instead of 0 by default',
40: 'Add barcode catalog_number and original_year to albums',
41: 'Drop catalog_number from song_data and use album instead'
42: ];
43:
44: public function migrate(): void
45: {
46: Dba::write("UPDATE `album` SET `album`.`disk` = 1 WHERE `album`.`disk` = 0;");
47:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400016.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend album and make artist even bigger. This should cover everyone.
31: */
32: final class Migration400016 extends AbstractMigration
33: {
34: protected array $changelog = ['Extend album and make artist even bigger. This should cover everyone'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `album` MODIFY COLUMN `time` bigint(20) unsigned DEFAULT NULL NULL;");
39:
40: $this->updateDatabase("ALTER TABLE `artist` MODIFY COLUMN `time` int(11) unsigned DEFAULT NULL NULL;");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400021.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add r128 gain columns to song_data
32: */
33: final class Migration400021 extends AbstractMigration
34: {
35: protected array $changelog = ['Add r128 gain columns to song_data'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `song_data` DROP COLUMN `r128_track_gain`;");
40: $this->updateDatabase("ALTER TABLE `song_data` ADD COLUMN `r128_track_gain` smallint(5) DEFAULT NULL;");
41: Dba::write("ALTER TABLE `song_data` DROP COLUMN `r128_album_gain`;");
42: $this->updateDatabase("ALTER TABLE `song_data` ADD COLUMN `r128_album_gain` smallint(5) DEFAULT NULL;");
43: }
44: }
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400004.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * delete upload_user_artist database settings
31: */
32: final class Migration400004 extends AbstractMigration
33: {
34: protected array $changelog = ['Delete upload_user_artist database settings'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("DELETE FROM `user_preference` WHERE `user_preference`.`preference` IN (SELECT `preference`.`id` FROM `preference` WHERE `preference`.`name` = 'upload_user_artist');");
39:
40: $this->updateDatabase("DELETE FROM `preference` WHERE `preference`.`name` = 'upload_user_artist';");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400015.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend artist time. smallint was too small
31: */
32: final class Migration400015 extends AbstractMigration
33: {
34: protected array $changelog = ['Extend artist time. smallint was too small'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `artist` MODIFY COLUMN `time` int(11) unsigned DEFAULT NULL NULL;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400020.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Customizable login background image
31: */
32: final class Migration400020 extends AbstractMigration
33: {
34: protected array $changelog = ['Customizable login page background'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('custom_login_background', 'Custom URL - Login page background', '', 75, 'string', 'interface', 'custom');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400013.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend Democratic cooldown beyond 255.
31: */
32: final class Migration400013 extends AbstractMigration
33: {
34: protected array $changelog = ['Extend Democratic cooldown beyond 255'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `democratic` MODIFY COLUMN `cooldown` int(11) unsigned DEFAULT NULL NULL;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400007.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option for skip_count display
31: * Add ui option for displaying dates in a custom format
32: */
33: final class Migration400007 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'Add ui option for skip_count display',
37: 'Add ui option for displaying dates in a custom format'
38: ];
39:
40: public function migrate(): void
41: {
42: $this->updatePreferences('show_skipped_times', 'Show # skipped', '0', 25, 'boolean', 'interface', 'library');
43: $this->updatePreferences('custom_datetime', 'Custom datetime', '', 25, 'string', 'interface', 'custom');
44: }
45: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400010.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add a last_duration to searches to speed up access requests
32: */
33: final class Migration400010 extends AbstractMigration
34: {
35: protected array $changelog = ['Add a last_duration to search table to speed up access requests'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `search` DROP COLUMN `last_duration`;");
40: $this->updateDatabase("ALTER TABLE `search` ADD COLUMN `last_duration` INT(11) NULL;");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400012.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add a rss token to use an RSS unauthenticated feed.
32: */
33: final class Migration400012 extends AbstractMigration
34: {
35: protected array $changelog = ['Add a rss token to allow the use of RSS unauthenticated feeds'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `user` DROP COLUMN `rsstoken`;");
40: $this->updateDatabase("ALTER TABLE `user` ADD COLUMN `rsstoken` varchar(255) NULL;");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400009.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option for forcing unique items to playlists
31: */
32: final class Migration400009 extends AbstractMigration
33: {
34: protected array $changelog = ['Add ui option for forcing unique items to playlists'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('unique_playlist', 'Only add unique items to playlists', '0', 25, 'boolean', 'playlist');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400005.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add a last_count to searches to speed up access requests
32: */
33: final class Migration400005 extends AbstractMigration
34: {
35: protected array $changelog = ['Add a last_count to search table to speed up access requests'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `search` DROP COLUMN `last_count`;");
40: $this->updateDatabase("ALTER TABLE `search` ADD COLUMN `last_count` INT(11) NULL;");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400006.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * drop shoutcast_active preferences and localplay_shoutcast table
31: */
32: final class Migration400006 extends AbstractMigration
33: {
34: protected array $changelog = [
^
35: 'Drop shoutcast_active preferences. (Feature has not existed for years)',
36: 'Drop localplay_shoutcast table if present'
37: ];
38:
39: public function migrate(): void
40: {
41: $this->updateDatabase("DELETE FROM `user_preference` WHERE `user_preference`.`preference` IN (SELECT `preference`.`id` FROM `preference` WHERE `preference`.`name` = 'shoutcast_active');");
42:
43: $this->updateDatabase("DELETE FROM `preference` WHERE `preference`.`name` = 'shoutcast_active';");
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400024.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add song_count, album_count and album_group_count to artist
32: */
33: final class Migration400024 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'IMPORTANT UPDATE NOTES: These columns will fill dynamically in the web UI but you should do a catalog \'add\' as soon as possible to fill them. It will take a while for large libraries but will help API and SubSonic clients',
37: 'Add \'song_count\', \'album_count\' and \'album_group_count\' to artist.'
38: ];
39:
40: protected bool $warning = true;
41:
42: public function migrate(): void
43: {
44: Dba::write("ALTER TABLE `artist` DROP COLUMN `song_count`;");
45: $this->updateDatabase("ALTER TABLE `artist` ADD COLUMN `song_count` smallint(5) unsigned DEFAULT 0 NULL;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400000.php
ERROR: Parse error at line 49 column 15:
39: * plex_uniqid
40: * plex_servername
41: * plex_public_address
42: * plex_public_port
43: * plex_local_auth
44: * plex_match_email
45: * Add preference for master/develop branch selection
46: */
47: final class Migration400000 extends AbstractMigration
48: {
49: protected array $changelog = [
^
50: 'Enable better podcast defaults',
51: 'Increase copyright column size to fix issue #1861',
52: 'Add name_track, name_artist, name_album to user_activity',
53: 'Add mbid_track, mbid_artist, mbid_album to user_activity',
54: 'Insert some decent SmartLists for a better default experience',
55: 'Delete plex preferences from the server'
56: ];
57:
58: public function migrate(): void
59: {
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400014.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add last_duration to playlist
32: * Add time to artist and album
33: */
34: final class Migration400014 extends AbstractMigration
35: {
36: protected array $changelog = [
^
37: 'Add last_duration to playlist',
38: 'Add time to artist and album'
39: ];
40:
41: public function migrate(): void
42: {
43: Dba::write("ALTER TABLE `playlist` DROP COLUMN `last_duration`;");
44: $this->updateDatabase("ALTER TABLE `playlist` ADD COLUMN `last_duration` int(11) unsigned NOT NULL DEFAULT '0'");
45:
46: Dba::write("ALTER TABLE `album` DROP COLUMN `time`;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400011.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Allow negative track numbers for albums
31: * Truncate database tracks to 0 when greater than 32767
32: */
33: final class Migration400011 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'IMPORTANT UPDATE NOTES: To allow negatives the maximum value of `song`.`track` has been reduced. This shouldn\'t affect anyone due to the large size allowed',
37: 'Allow negative track numbers for albums. (-32,767 -> 32,767)',
38: 'Truncate database tracks to 0 when greater than 32,767'
39: ];
40:
41: public function migrate(): void
42: {
43: $this->updateDatabase("UPDATE `song` SET `track` = 0 WHERE `track` > 32767;");
44:
45: $this->updateDatabase("ALTER TABLE `song` MODIFY COLUMN `track` SMALLINT DEFAULT NULL NULL;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400022.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend allowed time for podcast_episodes
31: */
32: final class Migration400022 extends AbstractMigration
33: {
34: protected array $changelog = ['Extend allowed time for podcast_episodes.'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `podcast_episode` MODIFY COLUMN `time` int(11) unsigned DEFAULT 0 NOT NULL; ");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400023.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * delete concerts_limit_past and concerts_limit_future database settings
31: */
32: final class Migration400023 extends AbstractMigration
33: {
34: protected array $changelog = ['Delete \'concerts_limit_past\' and \'concerts_limit_future\' database settings.'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("DELETE FROM `user_preference` WHERE `user_preference`.`preference` IN (SELECT `preference`.`id` FROM `preference` WHERE `preference`.`name` IN ('concerts_limit_past', 'concerts_limit_future'));");
39:
40: $this->updateDatabase("DELETE FROM `preference` WHERE `preference`.`name` IN ('concerts_limit_past', 'concerts_limit_future');");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400019.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Put of_the_moment into a per user preference
31: */
32: final class Migration400019 extends AbstractMigration
33: {
34: protected array $changelog = ['Put \'of_the_moment\' into a per user preference'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('of_the_moment', 'Set the amount of items Album/Video of the Moment will display', '6', 25, 'integer', 'interface', 'home');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400008.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add system option for cron based cache and create related tables
33: */
34: final class Migration400008 extends AbstractMigration
35: {
36: protected array $changelog = ['Add system option for cron based cache and create related tables'];
^
37:
38: public function migrate(): void
39: {
40: $this->updatePreferences('cron_cache', 'Cache computed SQL data (eg. media hits stats) using a cron', '0', 100, 'boolean', 'system', 'catalog');
41:
42: $tables = ['cache_object_count', 'cache_object_count_run'];
43: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
44: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
45: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
46: foreach ($tables as $table) {
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400001.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Make sure people on older databases have the same preference categories
31: */
32: final class Migration400001 extends AbstractMigration
33: {
34: protected array $changelog = [
^
35: 'Update preferences for older users to match current subcategory items',
36: '(~3.6 introduced subcategories but didn\'t include updates for existing users',
37: 'This is a cosmetic update and does not affect any operation)'
38: ];
39:
40: public function migrate(): void
41: {
42: $sql_array = array(
43: "UPDATE `preference` SET `preference`.`subcatagory` = 'library' WHERE `preference`.`name` in ('album_sort', 'show_played_times', 'album_group', 'album_release_type', 'album_release_type_sort', 'libitem_contextmenu', 'browse_filter', 'libitem_browse_alpha') AND `preference`.`subcatagory` IS NULL;",
44: "UPDATE `preference` SET `preference`.`subcatagory` = 'backend' WHERE `preference`.`name` in ('subsonic_backend', 'daap_backend', 'daap_pass', 'upnp_backend', 'webdav_backend') AND `preference`.`subcatagory` IS NULL;",
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400003.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Make sure preference names are updated to current strings
31: */
32: final class Migration400003 extends AbstractMigration
33: {
34: protected array $changelog = ['Make sure preference names are updated to current strings'];
^
35:
36: public function migrate(): void
37: {
38: $sql_array = array(
39: "UPDATE `preference` SET `preference`.`description` = 'Force HTTP playback regardless of port' WHERE `preference`.`name` = 'force_http_play';",
40: "UPDATE `preference` SET `preference`.`description` = 'Playback Type' WHERE `preference`.`name` = 'play_type';",
41: "UPDATE `preference` SET `preference`.`description` = 'httpQ Active Instance' WHERE `preference`.`name` = 'httpq_active';",
42: "UPDATE `preference` SET `preference`.`description` = 'Now Playing filtered per user' WHERE `preference`.`name` = 'now_playing_per_user';",
43: "UPDATE `preference` SET `preference`.`description` = 'Use Subsonic backend' WHERE `preference`.`name` = 'subsonic_backend';",
44: "UPDATE `preference` SET `preference`.`description` = 'Share Now Playing information' WHERE `preference`.`name` = 'allow_personal_info_now';",
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V4/Migration400018.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V4;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend video bitrate to unsigned. There's no reason for a negative bitrate.
31: */
32: final class Migration400018 extends AbstractMigration
33: {
34: protected array $changelog = ['Extend video bitrate to unsigned. There\'s no reason for a negative bitrate'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("UPDATE `video` SET `video_bitrate` = 0 WHERE `video_bitrate` < 0;");
39:
40: $this->updateDatabase("ALTER TABLE `video` MODIFY COLUMN `video_bitrate` int(11) unsigned DEFAULT NULL NULL;");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600002.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Drop channel table
31: */
32: final class Migration600002 extends AbstractMigration
33: {
34: protected array $changelog = ['Drop channel table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("DROP TABLE IF EXISTS `channel`");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600062.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend `time` column for the stream_playlist table
31: */
32: final class Migration600062 extends AbstractMigration
33: {
34: protected array $changelog = ['Allow signed `user` column for the player_control table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `player_control` MODIFY COLUMN `user` int(11) NOT NULL");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600038.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Update `access_list` in case you have a bad `user` column
31: */
32: final class Migration600038 extends AbstractMigration
33: {
34: protected array $changelog = ['Update `access_list` in case you have a bad `user` column'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('UPDATE `access_list` SET `user` = -1 WHERE `user` = 0');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600043.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Set correct preference type for `use_play2`
31: * Add user preference `jp_volume`, Default webplayer volume
32: */
33: final class Migration600043 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'Set correct preference type for `use_play2`',
37: 'Add user preference `jp_volume`, Default webplayer volume'
38: ];
39:
40: public function migrate(): void
41: {
42: $this->updateDatabase('UPDATE `preference` SET `type` = \'boolean\' WHERE `name` = \'use_play2\'');
43:
44: $this->updatePreferences('jp_volume', 'Default webplayer volume', 0.80, 25, 'special', 'streaming', 'player');
45: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600045.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add column `last_update` and `date`to search table
32: */
33: final class Migration600045 extends AbstractMigration
34: {
35: protected array $changelog = ['Add column `last_update` and `date`to search table'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write('ALTER TABLE `search` DROP COLUMN `last_update`');
40: $this->updateDatabase('ALTER TABLE `search` ADD COLUMN `last_update` int(11) unsigned NOT NULL DEFAULT 0 AFTER `type`');
41: Dba::write('ALTER TABLE `search` DROP COLUMN `date`');
42: $this->updateDatabase('ALTER TABLE `search` ADD COLUMN `date` int(11) UNSIGNED NOT NULL DEFAULT 0 AFTER `type`');
43: }
44: }
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600063.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend `time` column for the stream_playlist table
31: */
32: final class Migration600063 extends AbstractMigration
33: {
34: protected array $changelog = ['Allow signed `user` column for the session_stream table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `session_stream` MODIFY COLUMN `user` int(11) NOT NULL");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600024.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option ('show_subtitle') Show Album subtitle on links (if available)
31: * Add ui option ('show_original_year') Show Album original year on links (if available)
32: */
33: final class Migration600024 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'Add ui option (\'show_subtitle\') Show Album subtitle on links (if available)',
37: 'Add ui option (\'show_original_year\') Show Album original year on links (if available)'
38: ];
39:
40: public function migrate(): void
41: {
42: $this->updatePreferences('show_subtitle', 'Show Album subtitle on links (if available)', '1', 25, 'boolean', 'interface', 'browse');
43: $this->updatePreferences('show_original_year', 'Show Album original year on links (if available)', '1', 25, 'boolean', 'interface', 'browse');
44: }
45: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600021.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend `time` column for the song table
31: */
32: final class Migration600021 extends AbstractMigration
33: {
34: protected array $changelog = ['Extend `time` column for the song table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('ALTER TABLE `song` MODIFY COLUMN `time` int(11) unsigned NOT NULL DEFAULT 0');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600068.php
ERROR: Parse error at line 32 column 15:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: */
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: final class Migration600068 extends AbstractMigration
31: {
32: protected array $changelog = ['Drop unique constraint `playlist_track_UN` on `playlist_data` table'];
^
33:
34: public function migrate(): void
35: {
36: Dba::write("ALTER TABLE `playlist_data` DROP KEY `playlist_track_UN`;");
37: }
38: }
39:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600028.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `bitrate`, `rate`, `mode` and `channels` to the `podcast_episode` table
32: */
33: final class Migration600028 extends AbstractMigration
34: {
35: protected array $changelog = ['Add `bitrate`, `rate`, `mode` and `channels` to the `podcast_episode` table'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `podcast_episode` DROP COLUMN `channels`;");
40: $this->updateDatabase('ALTER TABLE `podcast_episode` ADD COLUMN `channels` mediumint(9) DEFAULT NULL AFTER `catalog`');
41: Dba::write("ALTER TABLE `podcast_episode` DROP COLUMN `mode`;");
42: $this->updateDatabase('ALTER TABLE `podcast_episode` ADD COLUMN `mode` enum(\'abr\',\'vbr\',\'cbr\') CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL AFTER `catalog`');
43: Dba::write("ALTER TABLE `podcast_episode` DROP COLUMN `rate`;");
44: $this->updateDatabase('ALTER TABLE `podcast_episode` ADD COLUMN `rate` mediumint(8) UNSIGNED NOT NULL DEFAULT 0 AFTER `catalog`');
45: Dba::write("ALTER TABLE `podcast_episode` DROP COLUMN `bitrate`;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600052.php
ERROR: Parse error at line 33 column 15:
23: */
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Ampache\Repository\Model\Playlist;
30:
31: final class Migration600052 extends AbstractMigration
32: {
33: protected array $changelog = ['Add unique constraint `playlist_track_UN` on `playlist_data` table'];
^
34:
35: public function migrate(): void
36: {
37: // fix up duplicate playlist track numbers
38: $sql = 'SELECT DISTINCT `playlist` from `playlist_data` GROUP BY `playlist`, `track` having COUNT(`playlist`) > 1;';
39: $db_results = Dba::read($sql);
40: // get the base album you will migrate into
41: while ($row = Dba::fetch_assoc($db_results)) {
42: $playlist = new Playlist($row['playlist']);
43: if ($playlist->isNew()) {
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600047.php
ERROR: Parse error at line 31 column 15:
21: * You should have received a copy of the GNU Affero General Public License
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: */
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: final class Migration600047 extends AbstractMigration
30: {
31: protected array $changelog = ['Add user preference `show_wrapped`, Enable access to your personal "Spotify Wrapped" from your user page'];
^
32:
33: /**
34: * Add user preference `show_wrapped`, Enable access to your personal "Spotify Wrapped" from your user page
35: */
36: public function migrate(): void
37: {
38: $this->updatePreferences('show_wrapped', 'Enable access to your personal "Spotify Wrapped" from your user page', '0', 25, 'bool', 'interface', 'privacy');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600048.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `date` column to rating table
32: */
33: final class Migration600048 extends AbstractMigration
34: {
35: protected array $changelog = ['Add `date` column to rating table'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write('ALTER TABLE `rating` DROP COLUMN `date`');
40: $this->updateDatabase('ALTER TABLE `rating` ADD COLUMN `date` int(11) UNSIGNED NOT NULL DEFAULT 0 AFTER `rating`');
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600053.php
ERROR: Parse error at line 32 column 15:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: */
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28: use Ampache\Repository\Model\Preference;
29:
30: final class Migration600053 extends AbstractMigration
31: {
32: protected array $changelog = [
^
33: 'Remove Flattr plugin (Service has been discontinued)'
34: ];
35:
36: public function migrate(): void
37: {
38: Preference::delete('flattr_user_id');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600044.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add system preference `perpetual_api_session`, API sessions do not expire
31: */
32: final class Migration600044 extends AbstractMigration
33: {
34: protected array $changelog = ['Add system preference `perpetual_api_session`, API sessions do not expire'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('perpetual_api_session', 'API sessions do not expire', '0', 100, 'boolean', 'system', 'backend');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600022.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend `time` column for the stream_playlist table
31: */
32: final class Migration600022 extends AbstractMigration
33: {
34: protected array $changelog = ['Extend `time` column for the stream_playlist table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `stream_playlist` MODIFY COLUMN `time` int(11) NULL");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600011.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add `album_disk` to enum types for `object_count`, `rating` and `cache_object_count` tables
31: */
32: final class Migration600011 extends AbstractMigration
33: {
34: protected array $changelog = ['Add `album_disk` to enum types for `object_count`, `rating` and `cache_object_count` tables'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `object_count` MODIFY COLUMN `object_type` enum('album','album_disk','artist','catalog','genre','live_stream','playlist','podcast','podcast_episode','song','stream','tvshow','tvshow_season','video') CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL");
39:
40: $this->updateDatabase("ALTER TABLE `rating` MODIFY COLUMN `object_type` enum('album','album_disk','artist','catalog','genre','live_stream','playlist','podcast','podcast_episode','song','stream','tvshow','tvshow_season','video') CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600041.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Index `label` column on the `label_asso` table
32: */
33: final class Migration600041 extends AbstractMigration
34: {
35: protected array $changelog = ['Index `label` column on the `label_asso` table'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write('ALTER TABLE `label_asso` DROP KEY `label_asso_label_IDX`');
40: $this->updateDatabase('CREATE INDEX `label_asso_label_IDX` USING BTREE ON `label_asso` (`label`)');
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600055.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Convert `object_type` to an enum on `image` table
31: */
32: final class Migration600055 extends AbstractMigration
33: {
34: protected array $changelog = ['Convert `object_type` to an enum on `rating` table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('DELETE FROM `rating` WHERE `object_type` IS NULL OR `object_type` NOT IN (\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\')');
39: $this->updateDatabase('ALTER TABLE `rating` MODIFY COLUMN `object_type` enum(\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600065.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend `time` column for the stream_playlist table
31: */
32: final class Migration600065 extends AbstractMigration
33: {
34: protected array $changelog = ['Allow signed `user` column for the user_activity table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `user_activity` MODIFY COLUMN `user` int(11) NOT NULL");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600006.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `disk_count` to album table
32: */
33: final class Migration600006 extends AbstractMigration
34: {
35: protected array $changelog = ['Add `disk_count` to album table'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `album` DROP COLUMN `disk_count`;");
40: $this->updateDatabase("ALTER TABLE `album` ADD COLUMN `disk_count` int(11) UNSIGNED NOT NULL DEFAULT '0' AFTER `disk`");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600046.php
ERROR: Parse error at line 31 column 15:
21: * You should have received a copy of the GNU Affero General Public License
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: */
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: final class Migration600046 extends AbstractMigration
30: {
31: protected array $changelog = ['Add user preference `home_recently_played_all`, Show all media types in Recently Played'];
^
32:
33: /**
34: * Add user preference `home_recently_played_all`, Show all media types in Recently Played
35: */
36: public function migrate(): void
37: {
38: $this->updatePreferences('home_recently_played_all', 'Show all media types in Recently Played', '0', 25, 'bool', 'interface', 'home');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600069.php
ERROR: Parse error at line 31 column 15:
21: * You should have received a copy of the GNU Affero General Public License
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: */
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: final class Migration600069 extends AbstractMigration
30: {
31: protected array $changelog = ['Extend `generator column` on `podcast` table to 128 characters'];
^
32:
33: public function migrate(): void
34: {
35: $this->updateDatabase("ALTER TABLE `podcast` MODIFY COLUMN `generator` varchar(128);");
36: }
37: }
38:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600035.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `enabled` to `podcast_episode` table
32: */
33: final class Migration600035 extends AbstractMigration
34: {
35: protected array $changelog = ['Add `enabled` to `podcast_episode` table'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write('ALTER TABLE `podcast_episode` DROP COLUMN `enabled`');
40: $this->updateDatabase('ALTER TABLE `podcast_episode` ADD COLUMN `enabled` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 AFTER `played`');
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600008.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Rename `artist`.`album_group_count` => `album_disk_count`
31: */
32: final class Migration600008 extends AbstractMigration
33: {
34: protected array $changelog = ['Rename `artist`.`album_group_count` => `album_disk_count`'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `artist` CHANGE COLUMN `album_group_count` `album_disk_count` smallint(5) unsigned DEFAULT 0 NULL");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600018.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Drop `user_playlist` table and recreate it
33: */
34: final class Migration600018 extends AbstractMigration
35: {
36: protected array $changelog = ['Drop `user_playlist` table and recreate it'];
^
37:
38: public function migrate(): void
39: {
40: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
41: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
42: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
43:
44: $this->updateDatabase('DROP TABLE IF EXISTS `user_playlist`');
45:
46: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `user_playlist` (`playqueue_time` int(11) UNSIGNED NOT NULL, `playqueue_client` varchar(255) CHARACTER SET $charset COLLATE $collation, user int(11) DEFAULT 0, `object_type` enum('song','live_stream','video','podcast_episode') CHARACTER SET utf8 COLLATE utf8_unicode_ci, `object_id` int(11) UNSIGNED NOT NULL DEFAULT 0, `track` smallint(6) UNSIGNED NOT NULL DEFAULT 0, `current_track` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, `current_time` smallint(5) UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY (`playqueue_time`, `playqueue_client`, `user`, `track`), KEY `user` (`user`), KEY `object_type` (`object_type`), KEY `object_id` (`object_id`)) ENGINE=$engine DEFAULT CHARSET=$charset COLLATE=$collation");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600001.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add user preference `webplayer_removeplayed`, Remove tracks before the current playlist item in the webplayer when played
31: */
32: final class Migration600001 extends AbstractMigration
33: {
34: protected array $changelog = ['Add user preference `webplayer_removeplayed`, Remove tracks before the current playlist item in the webplayer when played'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('webplayer_removeplayed', 'Remove tracks before the current playlist item in the webplayer when played', '0', 25, 'special', 'streaming', 'player');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600012.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28: use Ampache\Repository\Model\Catalog;
29:
30: /**
31: * Add `song_artist` and `album_artist` maps to catalog_map
32: * This is a duplicate of `update_550004` But may have been skipped depending on your site's version history
33: */
34: final class Migration600012 extends AbstractMigration
35: {
36: protected array $changelog = [
^
37: 'Add `song_artist` and `album_artist` maps to catalog_map',
38: 'This is a duplicate of `update_550004` But may have been skipped depending on your site\'s version history'
39: ];
40:
41: public function migrate(): void
42: {
43: // delete bad maps if they exist
44: $tables = ['song', 'album', 'video', 'podcast', 'podcast_episode', 'live_stream'];
45: foreach ($tables as $type) {
46: $this->updateDatabase("DELETE FROM `catalog_map` USING `catalog_map` LEFT JOIN (SELECT DISTINCT `$type`.`catalog` AS `catalog_id`, '$type' AS `map_type`, `$type`.`id` AS `object_id` FROM `$type` GROUP BY `$type`.`catalog`, `map_type`, `$type`.`id`) AS `valid_maps` ON `valid_maps`.`catalog_id` = `catalog_map`.`catalog_id` AND `valid_maps`.`object_id` = `catalog_map`.`object_id` AND `valid_maps`.`map_type` = `catalog_map`.`object_type` WHERE `catalog_map`.`object_type` = '$type' AND `valid_maps`.`object_id` IS NULL;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600020.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Set system preferences to 100.
31: * These options are only available to Admin users anyway
32: */
33: final class Migration600020 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'Set system preferences to Admin (100)',
37: 'These options are only available to Admin users anyway'
38: ];
39:
40: public function migrate(): void
41: {
42: $this->updateDatabase('UPDATE `preference` SET `level` = 100 WHERE `catagory` = \'system\'');
43: }
44: }
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600066.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend `time` column for the stream_playlist table
31: */
32: final class Migration600066 extends AbstractMigration
33: {
34: protected array $changelog = ['Allow signed `user` column for the user_follower table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `user_follower` MODIFY COLUMN `user` int(11) NOT NULL");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600034.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Convert `object_type` to an enum on `image` table
31: */
32: final class Migration600034 extends AbstractMigration
33: {
34: protected array $changelog = ['Convert `object_type` to an enum on `image` table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('DELETE FROM `image` WHERE `object_type` IS NULL OR `object_type` NOT IN (\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\')');
39: $this->updateDatabase('ALTER TABLE `image` MODIFY COLUMN `object_type` enum(\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600023.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add upload_access_level to restrict uploads to certain users
31: */
32: final class Migration600023 extends AbstractMigration
33: {
34: protected array $changelog = ['Add upload_access_level to restrict uploads to certain user groups'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('upload_access_level', 'Upload Access Level', '25', 100, 'special', 'system', 'upload');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600016.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `object_type_IDX` to artist_map table
32: * Add `object_type_IDX` to catalog_map table
33: */
34: final class Migration600016 extends AbstractMigration
35: {
36: protected array $changelog = [
^
37: 'Add `object_type_IDX` to artist_map table',
38: 'Add `object_type_IDX` to catalog_map table'
39: ];
40:
41: public function migrate(): void
42: {
43: Dba::write('ALTER TABLE `album_map` DROP KEY `object_type_IDX`');
44: $this->updateDatabase('CREATE INDEX `object_type_IDX` USING BTREE ON `album_map` (`object_type`)');
45: Dba::write('ALTER TABLE `catalog_map` DROP KEY `object_type_IDX`');
46: $this->updateDatabase('CREATE INDEX `object_type_IDX` USING BTREE ON `catalog_map` (`object_type`)');
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600060.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Convert `object_type` to an enum on `image` table
31: */
32: final class Migration600060 extends AbstractMigration
33: {
34: protected array $changelog = ['Convert `object_type` to an enum on `share` table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('DELETE FROM `share` WHERE `object_type` IS NULL OR `object_type` NOT IN (\'album\', \'album_disk\', \'artist\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'video\')');
39: $this->updateDatabase('ALTER TABLE `share` MODIFY COLUMN `object_type` enum(\'album\', \'album_disk\', \'artist\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'video\') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600059.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Convert `object_type` to an enum on `image` table
31: */
32: final class Migration600059 extends AbstractMigration
33: {
34: protected array $changelog = ['Convert `object_type` to an enum on `cache_object_count` and `cache_object_count_run` tables'];
^
35:
36: public function migrate(): void
37: {
38: // cache_object_count
39: $this->updateDatabase('DELETE FROM `cache_object_count` WHERE `object_type` IS NULL OR `object_type` NOT IN (\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\')');
40: $this->updateDatabase('ALTER TABLE `cache_object_count` MODIFY COLUMN `object_type` enum(\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;');
41: // cache_object_count_run
42: $this->updateDatabase('DELETE FROM `cache_object_count_run` WHERE `object_type` IS NULL OR `object_type` NOT IN (\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\')');
43: $this->updateDatabase('ALTER TABLE `cache_object_count_run` MODIFY COLUMN `object_type` enum(\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;');
44: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600037.php
ERROR: Parse error at line 38 column 15:
28: use Ampache\Module\System\Dba;
29: use Ampache\Module\System\Update\Migration\AbstractMigration;
30: use Ampache\Repository\Model\Catalog;
31: use Ampache\Repository\Model\User;
32:
33: /**
34: * Update user server and user counts now that the scaling has changed
35: */
36: final class Migration600037 extends AbstractMigration
37: {
38: protected array $changelog = ['Update user server and user counts now that the scaling has changed'];
^
39:
40: public function migrate(): void
41: {
42: // update server total counts
43: $catalog_disable = AmpConfig::get('catalog_disable');
44: // tables with media items to count, song-related tables and the rest
45: $media_tables = array('song', 'video', 'podcast_episode');
46: $items = 0;
47: $time = 0;
48: $size = 0;
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600033.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Convert `object_type` to an enum on `user_flag` table
31: */
32: final class Migration600033 extends AbstractMigration
33: {
34: protected array $changelog = ['Convert `object_type` to an enum on `user_flag` table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('DELETE FROM `user_flag` WHERE `object_type` IS NULL OR `object_type` NOT IN (\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\')');
39:
40: $this->updateDatabase('ALTER TABLE `user_flag` MODIFY COLUMN `object_type` enum(\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL');
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600061.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend `time` column for the stream_playlist table
31: */
32: final class Migration600061 extends AbstractMigration
33: {
34: protected array $changelog = ['Allow signed `user` column for the broadcast table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `broadcast` MODIFY COLUMN `user` int(11) NOT NULL");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600007.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28: use Ampache\Repository\Model\Album;
29: use Ampache\Repository\Model\Artist;
30:
31: /**
32: * Fill album_disk table update count tables
33: */
34: final class Migration600007 extends AbstractMigration
35: {
36: protected array $changelog = ['Fill album_disk table update count tables'];
^
37:
38: public function migrate(): void
39: {
40: $this->updateDatabase("UPDATE `album`, (SELECT COUNT(DISTINCT `album_disk`.`disk`) AS `disk_count`, `album_id` FROM `album_disk` GROUP BY `album_disk`.`album_id`) AS `album_disk` SET `album`.`disk_count` = `album_disk`.`disk_count` WHERE `album`.`disk_count` != `album_disk`.`disk_count` AND `album`.`id` = `album_disk`.`album_id`");
41: $this->updateDatabase("UPDATE `album_disk`, (SELECT COUNT(DISTINCT `album_disk`.`disk`) AS `disk_count`, `album_id` FROM `album_disk` GROUP BY `album_disk`.`album_id`) AS `disk_count` SET `album_disk`.`disk_count` = `disk_count`.`disk_count` WHERE `album_disk`.`disk_count` != `disk_count`.`disk_count` AND `album_disk`.`album_id` = `disk_count`.`album_id`");
42: $this->updateDatabase("UPDATE `album_disk`, (SELECT SUM(`time`) AS `time`, `album`, `disk` FROM `song` GROUP BY `album`, `disk`) AS `song` SET `album_disk`.`time` = `song`.`time` WHERE (`album_disk`.`time` != `song`.`time` OR `album_disk`.`time` IS NULL) AND `album_disk`.`album_id` = `song`.`album` AND `album_disk`.`disk` = `song`.`disk`");
43: $this->updateDatabase("UPDATE `album_disk`, (SELECT COUNT(DISTINCT `id`) AS `song_count`, `album`, `disk` FROM `song` GROUP BY `album`, `disk`) AS `song` SET `album_disk`.`song_count` = `song`.`song_count` WHERE `album_disk`.`song_count` != `song`.`song_count` AND `album_disk`.`album_id` = `song`.`album` AND `album_disk`.`disk` = `song`.`disk`");
44: $this->updateDatabase("UPDATE `album_disk`, (SELECT SUM(`song`.`total_count`) AS `total_count`, `album_disk`.`id` AS `object_id` FROM `song` LEFT JOIN `album_disk` ON `album_disk`.`album_id` = `song`.`album` AND `album_disk`.`disk` = `song`.`disk` GROUP BY `album_disk`.`id`) AS `object_count` SET `album_disk`.`total_count` = `object_count`.`total_count` WHERE `album_disk`.`total_count` != `object_count`.`total_count` AND `album_disk`.`id` = `object_count`.`object_id`");
45:
46: // now that the data is in it can update counts
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600015.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `streamtoken` to user table allowing permalink music stream access
32: */
33: final class Migration600015 extends AbstractMigration
34: {
35: protected array $changelog = ['Add `streamtoken` to user table allowing permalink music stream access'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `user` DROP COLUMN `streamtoken`;");
40: $this->updateDatabase('ALTER TABLE `user` ADD COLUMN `streamtoken` varchar(255) NULL AFTER `rsstoken`');
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600004.php
ERROR: Parse error at line 41 column 15:
31: use Ampache\Repository\Model\Artist;
32: use Ampache\Repository\Model\Song;
33: use Generator;
34:
35: /**
36: * Add `disk` to song table
37: * Create album_disk table and migrate user ratings & flags
38: */
39: final class Migration600004 extends AbstractMigration
40: {
41: protected array $changelog = [
^
42: 'Add `disk` to song table',
43: 'Create album_disk table and migrate user ratings & flags'
44: ];
45:
46: public function migrate(): void
47: {
48: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
49: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
50: $engine = 'MyISAM';
51: // add disk to song table
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600003.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `total_skip` to podcast table
32: */
33: final class Migration600003 extends AbstractMigration
34: {
35: protected array $changelog = ['Add `total_skip` to podcast table'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `podcast` DROP COLUMN `total_skip`;");
40: $this->updateDatabase("ALTER TABLE `podcast` ADD COLUMN `total_skip` int(11) UNSIGNED NOT NULL DEFAULT '0' AFTER `total_count`;");
41: $this->updateDatabase("UPDATE `podcast`, (SELECT SUM(`podcast_episode`.`total_skip`) AS `total_skip`, `podcast` FROM `podcast_episode` GROUP BY `podcast_episode`.`podcast`) AS `object_count` SET `podcast`.`total_skip` = `object_count`.`total_skip` WHERE `podcast`.`total_skip` != `object_count`.`total_skip` AND `podcast`.`id` = `object_count`.`podcast`;");
42: }
43: }
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600027.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Rename `subtitle` to `version` in the `album` table
32: */
33: final class Migration600027 extends AbstractMigration
34: {
35: protected array $changelog = ['Rename `subtitle` to `version` in the `album` table'];
^
36:
37: public function migrate(): void
38: {
39: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
40:
41: $this->updateDatabase(
42: sprintf('ALTER TABLE `album` CHANGE COLUMN `subtitle` `version` varchar(64) COLLATE %s DEFAULT NULL', $collation)
43: );
44: }
45: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600039.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add user preference `custom_timezone`, Custom timezone (Override PHP date.timezone)
31: */
32: final class Migration600039 extends AbstractMigration
33: {
34: protected array $changelog = ['Add user preference `custom_timezone`, Display dates using a different timezone to the server timezone'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('custom_timezone', 'Custom timezone (Override PHP date.timezone)', '', 25, 'string', 'interface', 'custom');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600049.php
ERROR: Parse error at line 31 column 15:
21: * You should have received a copy of the GNU Affero General Public License
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: */
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: final class Migration600049 extends AbstractMigration
30: {
31: protected array $changelog = ['Update link for `FMPL` license'];
^
32:
33: public function migrate(): void
34: {
35: $sql = 'UPDATE `license` SET `external_link` = \'http://www.ram.org/ramblings/philosophy/fmp/fmpl/fmpl.html\' WHERE `name` = \'FMPL\'';
36:
37: $this->updateDatabase($sql);
38: }
39: }
40:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600014.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `subtitle` to the album table
32: */
33: final class Migration600014 extends AbstractMigration
34: {
35: protected array $changelog = ['Add `subtitle` to the album table'];
^
36:
37: public function migrate(): void
38: {
39: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
40:
41: $this->updateDatabase("ALTER TABLE `album` ADD COLUMN `subtitle` varchar(64) COLLATE $collation DEFAULT NULL AFTER `catalog_number`");
42: }
43: }
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600042.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add user preference `bookmark_latest`, Only keep the latest media bookmark
31: */
32: final class Migration600042 extends AbstractMigration
33: {
34: protected array $changelog = ['Add user preference `bookmark_latest`, Only keep the latest media bookmark'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('bookmark_latest', 'Only keep the latest media bookmark', '0', 25, 'boolean', 'options');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600056.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Convert `object_type` to an enum on `image` table
31: */
32: final class Migration600056 extends AbstractMigration
33: {
34: protected array $changelog = ['Convert `object_type` to an enum on `user_flag` table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('DELETE FROM `user_flag` WHERE `object_type` IS NULL OR `object_type` NOT IN (\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\')');
39: $this->updateDatabase('ALTER TABLE `user_flag` MODIFY COLUMN `object_type` enum(\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600032.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend `object_type` enum list on `rating` table
31: */
32: final class Migration600032 extends AbstractMigration
33: {
34: protected array $changelog = ['Extend `object_type` enum list on `rating` table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('DELETE FROM `rating` WHERE `object_type` IS NULL OR `object_type` NOT IN (\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\')');
39:
40: $this->updateDatabase('ALTER TABLE `rating` MODIFY COLUMN `object_type` enum(\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL');
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600050.php
ERROR: Parse error at line 32 column 15:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: */
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: final class Migration600050 extends AbstractMigration
31: {
32: protected array $changelog = ['Update Last.FM plugin preferences that could be incorrect'];
^
33:
34: public function migrate(): void
35: {
36: $sql = 'UPDATE `preference` SET `catagory` = \'plugins\' WHERE `name` = \'lastfm_grant_link\'';
37: Dba::write($sql);
38: $sql = 'UPDATE `preference` SET `catagory` = \'internal\' WHERE `name` = \'lastfm_challenge\'';
39: Dba::write($sql);
40: $sql = 'UPDATE `preference` SET `subcatagory` = \'last.fm\' WHERE `name` IN (\'lastfm_challenge\', \'lastfm_grant_link\')';
41: Dba::write($sql);
42: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600067.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend `time` column for the stream_playlist table
31: */
32: final class Migration600067 extends AbstractMigration
33: {
34: protected array $changelog = ['Allow signed `user` column for the user_vote table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `user_vote` MODIFY COLUMN `user` int(11) NOT NULL");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600057.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Convert `object_type` to an enum on `image` table
31: */
32: final class Migration600057 extends AbstractMigration
33: {
34: protected array $changelog = ['Convert `object_type` to an enum on `user_activity` table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('DELETE FROM `user_activity` WHERE `object_type` IS NULL OR `object_type` NOT IN (\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\')');
39: $this->updateDatabase('ALTER TABLE `user_activity` MODIFY COLUMN `object_type` enum(\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600013.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option 'api_enable_6' to enable/disable API6
31: */
32: final class Migration600013 extends AbstractMigration
33: {
34: protected array $changelog = ['Add ui option \'api_enable_6\' to enable/disable API6'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('api_enable_6', 'Enable API6 responses', '1', 25, 'boolean', 'options');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600051.php
ERROR: Parse error at line 32 column 15:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: */
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: final class Migration600051 extends AbstractMigration
31: {
32: protected array $changelog = ['Update `preference` table to spell category and subcategory correctly'];
^
33:
34: public function migrate(): void
35: {
36: if (!Dba::read('SELECT `category` FROM `preference` LIMIT 1;')) {
37: $sql = 'ALTER TABLE `preference` CHANGE COLUMN `catagory` `category` varchar(128) DEFAULT NULL;';
38: $this->updateDatabase($sql);
39: }
40: if (!Dba::read('SELECT `subcategory` FROM `preference` LIMIT 1;')) {
41: $sql = 'ALTER TABLE `preference` CHANGE COLUMN `subcatagory` `subcategory` varchar(128) DEFAULT NULL;';
42: $this->updateDatabase($sql);
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600058.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Convert `object_type` to an enum on `image` table
31: */
32: final class Migration600058 extends AbstractMigration
33: {
34: protected array $changelog = ['Convert `object_type` to an enum on `object_count` table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('DELETE FROM `object_count` WHERE `object_type` IS NULL OR `object_type` NOT IN (\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\')');
39: $this->updateDatabase('ALTER TABLE `object_count` MODIFY COLUMN `object_type` enum(\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600026.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add user preference `use_play2`, Use an alternative playback action for streaming if you have issues with playing music
31: */
32: final class Migration600026 extends AbstractMigration
33: {
34: protected array $changelog = ['Add user preference `use_play2`, Use an alternative playback action for streaming if you have issues with playing music'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('use_play2', 'Use an alternative playback action for streaming if you have issues with playing music', '0', 25, 'special', 'streaming', 'player');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600054.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Convert `object_type` to an enum on `image` table
31: */
32: final class Migration600054 extends AbstractMigration
33: {
34: protected array $changelog = ['Convert `object_type` to an enum on `image` table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('DELETE FROM `image` WHERE `object_type` IS NULL OR `object_type` NOT IN (\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\')');
39: $this->updateDatabase('ALTER TABLE `image` MODIFY COLUMN `object_type` enum(\'album\', \'album_disk\', \'artist\', \'catalog\', \'tag\', \'label\', \'live_stream\', \'playlist\', \'podcast\', \'podcast_episode\', \'search\', \'song\', \'tvshow\', \'tvshow_season\', \'user\', \'video\') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600009.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Drop `disk` from the `album` table
31: */
32: final class Migration600009 extends AbstractMigration
33: {
34: protected array $changelog = ['Drop `disk` from the `album` table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `album` DROP COLUMN `disk`");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600040.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `disksubtitle` to `song_data` and `album_disk` table
32: */
33: final class Migration600040 extends AbstractMigration
34: {
35: protected array $changelog = ['Add `disksubtitle` to `song_data` and `album_disk` table'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write('ALTER TABLE `song_data` DROP COLUMN `disksubtitle`');
40: $this->updateDatabase('ALTER TABLE `song_data` ADD COLUMN `disksubtitle` varchar(255) NULL DEFAULT NULL');
41: Dba::write('ALTER TABLE `album_disk` DROP COLUMN `disksubtitle`');
42: $this->updateDatabase('ALTER TABLE `album_disk` ADD COLUMN `disksubtitle` varchar(255) NULL DEFAULT NULL');
43: }
44: }
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600010.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Rename `user_data` album keys
31: */
32: final class Migration600010 extends AbstractMigration
33: {
34: protected array $changelog = ['Rename `user_data` album keys'];
^
35:
36: public function migrate(): void
37: {
38: // album was the ungrouped disks so rename those first
39: $this->updateDatabase("UPDATE IGNORE `user_data` SET `key` = 'album_disk' WHERE `key` = 'album'");
40:
41: // album_group is now the default state
42: $this->updateDatabase("UPDATE IGNORE `user_data` SET `key` = 'album' WHERE `key` = 'album_group'");
43:
44: $this->updateDatabase("DELETE FROM `user_data` WHERE `key` = 'album_group'");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600019.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * During migration some album_disk data may be missing it's object type
31: */
32: final class Migration600019 extends AbstractMigration
33: {
34: protected array $changelog = ['During migration some album_disk data may be missing it\'s object type'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase('UPDATE IGNORE `rating` SET `object_type` = \'album_disk\' WHERE `object_type` = \'\'');
39: $this->updateDatabase('DELETE FROM `rating` WHERE `object_type` = \'\';');
40: $this->updateDatabase('UPDATE IGNORE `object_count` SET `object_type` = \'album_disk\' WHERE `object_type` = \'\'');
41: $this->updateDatabase('DELETE FROM `object_count` WHERE `object_type` = \'\'');
42:
43: // rating (id, `user`, object_type, object_id, rating)
44: $this->updateDatabase('INSERT IGNORE INTO `rating` (`object_type`, `object_id`, `user`, `rating`) SELECT DISTINCT \'album_disk\', `album_disk`.`id`, `rating`.`user`, `rating`.`rating` FROM `rating` LEFT JOIN `album` ON `rating`.`object_type` = \'album\' AND `rating`.`object_id` = `album`.`id` LEFT JOIN `album_disk` ON `album`.`id` = `album_disk`.`album_id` LEFT JOIN `rating` AS `album_rating` ON `album_rating`.`object_type` = \'album\' AND `rating`.`rating` = `album_rating`.`rating` AND `rating`.`user` = `album_rating`.`user` WHERE `rating`.`object_type` = \'album\' AND `album_disk`.`id` IS NOT NULL');
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600005.php
ERROR: Parse error at line 42 column 15:
32: use Ampache\Repository\Model\Artist;
33: use Ampache\Repository\Model\Catalog;
34: use Ampache\Repository\Model\Song;
35: use Psr\Log\LoggerInterface;
36:
37: /**
38: * Migrate multi-disk albums to single album id's
39: */
40: final class Migration600005 extends AbstractMigration
41: {
42: protected array $changelog = ['Migrate multi-disk albums to single album id\'s'];
^
43:
44: protected bool $warning = true;
45:
46: private LoggerInterface $logger;
47:
48: public function __construct(
49: LoggerInterface $logger,
50: DatabaseConnectionInterface $connection
51: ) {
52: parent::__construct(
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600064.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Extend `time` column for the stream_playlist table
31: */
32: final class Migration600064 extends AbstractMigration
33: {
34: protected array $changelog = ['Allow signed `user` column for the share table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `share` MODIFY COLUMN `user` int(11) NOT NULL");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600025.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V6;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option ('show_header_login') Show the login / registration links in the site header
31: */
32: final class Migration600025 extends AbstractMigration
33: {
34: protected array $changelog = ['Add ui option (\'show_header_login\') Show the login / registration links in the site header'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('show_header_login', 'Show the login / registration links in the site header', '1', 100, 'boolean', 'system', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V6/Migration600036.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Ampache\Repository\Model\User;
30:
31: /**
32: * Update user `play_size` and catalog `size` fields to megabytes (Stop large catalogs overflowing 32bit ints)
33: */
34: final class Migration600036 extends AbstractMigration
35: {
36: protected array $changelog = ['Update user `play_size` and catalog `size` fields to megabytes (Stop large catalogs overflowing 32bit ints)'];
^
37:
38: public function migrate(): void
39: {
40: $sql = "SELECT `id` FROM `user`";
41: $db_users = Dba::read($sql);
42: $user_list = array();
43: while ($results = Dba::fetch_assoc($db_users)) {
44: $user_list[] = (int)$results['id'];
45: }
46:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500009.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option ('use_original_year') Browse by Original Year for albums (falls back to Year)
31: */
32: final class Migration500009 extends AbstractMigration
33: {
34: protected array $changelog = ['Add ui option (\'use_original_year\') Browse by Original Year for albums (falls back to Year)'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('use_original_year', 'Browse by Original Year for albums (falls back to Year)', '0', 25, 'boolean', 'interface', 'browse');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500000.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Delete duplicate files in the song table
31: */
32: final class Migration500000 extends AbstractMigration
33: {
34: protected array $changelog = ['Delete duplicate files in the song table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("DELETE `dupe` FROM `song` AS `dupe`, `song` AS `orig` WHERE `dupe`.`id` > `orig`.`id` AND `dupe`.`file` <=> `orig`.`file`;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530015.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add `show_album_artist` and `show_artist` preferences to show/hide Sidebar Browse menu links. (Fallback to Album Artist if both disabled)
31: */
32: final class Migration530015 extends AbstractMigration
33: {
34: protected array $changelog = [
^
35: 'Add `show_album_artist` and `show_artist` preferences to show/hide Sidebar Browse menu links',
36: 'Fallback to Album Artist if both disabled'
37: ];
38:
39: public function migrate(): void
40: {
41: $this->updatePreferences('show_album_artist', 'Show \'Album Artists\' link in the main sidebar', '1', 25, 'boolean', 'interface', 'theme');
42: $this->updatePreferences('show_artist', 'Show \'Artists\' link in the main sidebar', '0', 25, 'boolean', 'interface', 'theme');
43: }
44: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration520000.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui options ('api_enable_3', 'api_enable_4', 'api_enable_5') to enable/disable specific API versions
31: * Add ui option ('api_force_version') to force a specific API response (even if that version is disabled)
32: */
33: final class Migration520000 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'Add ui options (\'api_enable_3\', \'api_enable_4\', \'api_enable_5\') to enable/disable specific API versions',
37: 'Add ui option (\'api_force_version\') to force a specific API response (even if that version is disabled)'
38: ];
39:
40: public function migrate(): void
41: {
42: $this->updatePreferences('api_enable_3', 'Enable API3 responses', '1', 25, 'boolean', 'options');
43: $this->updatePreferences('api_enable_4', 'Enable API4 responses', '1', 25, 'boolean', 'options');
44: $this->updatePreferences('api_enable_5', 'Enable API5 responses', '1', 25, 'boolean', 'options');
45: $this->updatePreferences('api_force_version', 'Force a specific API response (even if that version is disabled)', '0', 25, 'special', 'options');
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration510001.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add podcast to the cache_object_count tables
31: */
32: final class Migration510001 extends AbstractMigration
33: {
34: protected array $changelog = ['Add podcast to the cache_object_count tables'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `cache_object_count_run` MODIFY COLUMN `object_type` enum('album','artist','song','playlist','genre','catalog','live_stream','video','podcast','podcast_episode');");
39: $this->updateDatabase("ALTER TABLE `cache_object_count` MODIFY COLUMN `object_type` enum('album','artist','song','playlist','genre','catalog','live_stream','video','podcast','podcast_episode');");
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration510005.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option ('subsonic_always_download') Force Subsonic streams to download. (Enable scrobble in your client to record stats)
31: */
32: final class Migration510005 extends AbstractMigration
33: {
34: protected array $changelog = ['Add ui option (\'subsonic_always_download\') Force Subsonic streams to download. (Enable scrobble in your client to record stats)'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('subsonic_always_download', 'Force Subsonic streams to download. (Enable scrobble in your client to record stats)', '0', 25, 'boolean', 'options', 'subsonic');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500012.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Move user bandwidth calculations out of the user format function into the user_data table
32: */
33: final class Migration500012 extends AbstractMigration
34: {
35: protected array $changelog = ['Move user bandwidth calculations out of the user format function into the user_data table'];
^
36:
37: public function migrate(): void
38: {
39: $sql = "SELECT `id` FROM `user`";
40: $db_users = Dba::read($sql);
41: $user_list = array();
42: while ($results = Dba::fetch_assoc($db_users)) {
43: $user_list[] = (int)$results['id'];
44: }
45: // Calculate their total Bandwidth Usage
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530006.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Make sure the object_count table has all the correct primary artist/album rows
31: */
32: final class Migration530006 extends AbstractMigration
33: {
34: protected array $changelog = ['Make sure `object_count` table has all the correct primary artist/album rows'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("INSERT INTO `object_count` (object_type, object_id, `date`, `user`, agent, geo_latitude, geo_longitude, geo_name, count_type) SELECT 'album', `song`.`album`, `object_count`.`date`, `object_count`.`user`, `object_count`.`agent`, `object_count`.`geo_latitude`, `object_count`.`geo_longitude`, `object_count`.`geo_name`, `object_count`.`count_type` FROM `object_count` LEFT JOIN `song` ON `object_count`.`object_type` = 'song' AND `object_count`.`count_type` = 'stream' AND `object_count`.`object_id` = `song`.`id` LEFT JOIN `object_count` AS `album_count` ON `album_count`.`object_type` = 'album' AND `object_count`.`date` = `album_count`.`date` AND `object_count`.`user` = `album_count`.`user` AND `object_count`.`agent` = `album_count`.`agent` AND `object_count`.`count_type` = `album_count`.`count_type` WHERE `object_count`.`object_type` = 'song' AND `object_count`.`count_type` = 'stream' AND `album_count`.`id` IS NULL AND `song`.`album` IS NOT NULL;");
39: $this->updateDatabase("INSERT INTO `object_count` (object_type, object_id, `date`, `user`, agent, geo_latitude, geo_longitude, geo_name, count_type) SELECT 'artist', `song`.`artist`, `object_count`.`date`, `object_count`.`user`, `object_count`.`agent`, `object_count`.`geo_latitude`, `object_count`.`geo_longitude`, `object_count`.`geo_name`, `object_count`.`count_type` FROM `object_count` LEFT JOIN `song` ON `object_count`.`object_type` = 'song' AND `object_count`.`count_type` = 'stream' AND `object_count`.`object_id` = `song`.`id` LEFT JOIN `object_count` AS `artist_count` ON `artist_count`.`object_type` = 'artist' AND `object_count`.`date` = `artist_count`.`date` AND `object_count`.`user` = `artist_count`.`user` AND `object_count`.`agent` = `artist_count`.`agent` AND `object_count`.`count_type` = `artist_count`.`count_type` WHERE `object_count`.`object_type` = 'song' AND `object_count`.`count_type` = 'stream' AND `artist_count`.`id` IS NULL AND `song`.`artist` IS NOT NULL;");
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530007.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Convert basic text columns into utf8/utf8_unicode_ci
31: */
32: final class Migration530007 extends AbstractMigration
33: {
34: protected array $changelog = ['Convert basic text columns into utf8 to reduce index sizes'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("UPDATE `album` SET `mbid` = NULL WHERE CHAR_LENGTH(`mbid`) > 36;");
39: $this->updateDatabase("UPDATE `album` SET `mbid_group` = NULL WHERE CHAR_LENGTH(`mbid`) > 36;");
40:
41: $this->updateDatabase("ALTER TABLE `album` MODIFY COLUMN `mbid` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL;");
42: $this->updateDatabase("ALTER TABLE `album` MODIFY COLUMN `mbid_group` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL;");
43: $this->updateDatabase("ALTER TABLE `object_count` MODIFY COLUMN `object_type` enum('album','artist','song','playlist','genre','catalog','live_stream','video','podcast','podcast_episode') CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL;");
44: $this->updateDatabase("ALTER TABLE `rating` MODIFY COLUMN `object_type` enum('album','artist','song','stream','video','playlist','tvshow','tvshow_season','podcast','podcast_episode') CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration550002.php
ERROR: Parse error at line 38 column 15:
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Migrate catalog `filter_user` settings to catalog_filter groups
32: * Assign all public catalogs to the DEFAULT group
33: * Drop table `user_catalog`
34: * Remove `filter_user` from the `catalog` table
35: */
36: final class Migration550002 extends AbstractMigration
37: {
38: protected array $changelog = [
^
39: '**IMPORTANT UPDATE NOTES** Any user that has a private catalog will have their own filter group created which includes all public catalogs',
40: 'Migrate catalog `filter_user` settings to the `catalog_filter_group` table',
41: 'Assign all public catalogs to the DEFAULT group',
42: 'Drop table `user_catalog`',
43: 'Remove `filter_user` from the `catalog` table',
44: ];
45:
46: public function migrate(): void
47: {
48: // Copy existing filters into individual groups for each user. (if a user only has access to public catalogs they are given the default list)
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530013.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Compact `cache_object_count`, `cache_object_count_run` columns
31: */
32: final class Migration530013 extends AbstractMigration
33: {
34: protected array $changelog = ['Compact `cache_object_count`, `cache_object_count_run` columns'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `cache_object_count` MODIFY COLUMN `count_type` enum('download','stream','skip') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;");
39:
40: $this->updateDatabase("ALTER TABLE `cache_object_count_run` MODIFY COLUMN `count_type` enum('download','stream','skip') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration540000.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Index `title` with `enabled` on `song` table to speed up searching
32: */
33: final class Migration540000 extends AbstractMigration
34: {
35: protected array $changelog = ['Index `title` with `enabled` on `song` table to speed up searching'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `song` DROP KEY `title_enabled_IDX`;");
40: $this->updateDatabase("CREATE INDEX `title_enabled_IDX` USING BTREE ON `song` (`title`, `enabled`);");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500004.php
ERROR: Parse error at line 38 column 15:
28: use Ampache\Module\System\Dba;
29: use Ampache\Module\System\Update\Migration\AbstractMigration;
30: use Ampache\Repository\Model\Catalog;
31: use Generator;
32:
33: /**
34: * Create catalog_map table and fill it with data
35: */
36: final class Migration500004 extends AbstractMigration
37: {
38: protected array $changelog = ['Create catalog_map table and fill it with data'];
^
39:
40: protected bool $warning = true;
41:
42: public function migrate(): void
43: {
44: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
45: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
46: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
47: $tables = ['song', 'album', 'video', 'podcast_episode'];
48: $catalogs = Catalog::get_catalogs();
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration510004.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add waveform column to podcast_episode table
32: */
33: final class Migration510004 extends AbstractMigration
34: {
35: protected array $changelog = ['Add waveform column to podcast_episode table'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `podcast_episode` DROP COLUMN `waveform`;");
40: $this->updateDatabase("ALTER TABLE `podcast_episode` ADD COLUMN `waveform` mediumblob DEFAULT NULL;");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration550003.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add system preference `demo_use_search`, Use smartlists for base playlist in Democratic play
31: */
32: final class Migration550003 extends AbstractMigration
33: {
34: protected array $changelog = ['Add system preference `demo_use_search`, Use smartlists for base playlist in Democratic play'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('demo_use_search', 'Democratic - Use smartlists for base playlist', '0', 25, 'boolean', 'playlist');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530010.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Compact mbid columns back to 36 characters
31: */
32: final class Migration530010 extends AbstractMigration
33: {
34: protected array $changelog = ['Compact mbid columns back to 36 characters'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("UPDATE `artist` SET `mbid` = NULL WHERE CHAR_LENGTH(`mbid`) > 36;");
39: $this->updateDatabase("UPDATE `recommendation_item` SET `mbid` = NULL WHERE CHAR_LENGTH(`mbid`) > 36;");
40: $this->updateDatabase("ALTER TABLE `artist` MODIFY COLUMN `mbid` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL NULL;");
41:
42: $this->updateDatabase("ALTER TABLE `recommendation_item` MODIFY COLUMN `mbid` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL NULL;");
43:
44: $this->updateDatabase("ALTER TABLE `song_preview` MODIFY COLUMN `artist_mbid` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL NULL;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500003.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * add `catalog` to podcast_episode table
32: */
33: final class Migration500003 extends AbstractMigration
34: {
35: protected array $changelog = ['Add `catalog` to podcast_episode table'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `podcast_episode` DROP COLUMN `catalog`;");
40: $this->updateDatabase("ALTER TABLE `podcast_episode` ADD COLUMN `catalog` int(11) UNSIGNED NOT NULL DEFAULT '0';");
41:
42: $this->updateDatabase("UPDATE `podcast_episode`, (SELECT min(`podcast`.`catalog`) AS `catalog`, `podcast`.`id` FROM `podcast` GROUP BY `podcast`.`id`) AS `podcast` SET `podcast_episode`.`catalog` = `podcast`.`catalog` WHERE `podcast_episode`.`catalog` != `podcast`.`catalog` AND `podcast_episode`.`podcast` = `podcast`.`id`;");
43: }
44: }
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration520001.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Make sure preference names are always unique
32: */
33: final class Migration520001 extends AbstractMigration
34: {
35: protected array $changelog = ['Make sure preference names are always unique'];
^
36:
37: public function migrate(): void
38: {
39: $sql = "SELECT `id` FROM `preference` WHERE `name` IN (SELECT `name` FROM `preference` GROUP BY `name` HAVING count(`name`) >1) AND `id` NOT IN (SELECT MIN(`id`) FROM `preference` GROUP by `name`);";
40: $dupe_prefs = Dba::read($sql);
41: $pref_list = array();
42: while ($results = Dba::fetch_assoc($dupe_prefs)) {
43: $pref_list[] = (int)$results['id'];
44: }
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530003.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Drop id column from catalog_map
32: * Alter `catalog_map` object_type charset and collation
33: */
34: final class Migration530003 extends AbstractMigration
35: {
36: protected array $changelog = [
^
37: 'Drop id column from catalog_map table',
38: 'Alter `catalog_map` object_type charset and collation'
39: ];
40:
41: public function migrate(): void
42: {
43: Dba::write("ALTER TABLE `catalog_map` DROP COLUMN `id`;");
44: $this->updateDatabase("ALTER TABLE `catalog_map` MODIFY COLUMN object_type varchar(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL NULL;");
45: }
46: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530004.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Alter `album_map` charset and engine to MyISAM if engine set
31: */
32: final class Migration530004 extends AbstractMigration
33: {
34: protected array $changelog = ['Alter `album_map` table charset and engine to MyISAM if engine set'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `album_map` ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;");
39: $this->updateDatabase("ALTER TABLE `album_map` MODIFY COLUMN `object_type` varchar(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL NULL;");
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530000.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Create artist_map table and fill it with data
33: */
34: final class Migration530000 extends AbstractMigration
35: {
36: protected array $changelog = ['Create artist_map table and fill it with data'];
^
37:
38: protected bool $warning = true;
39:
40: public function migrate(): void
41: {
42: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
43: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
44: $engine = 'MyISAM';
45:
46: // create the table
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500011.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `total_count` to podcast table and fill counts into the column
32: */
33: final class Migration500011 extends AbstractMigration
34: {
35: protected array $changelog = ['Add `total_count` to podcast table and fill counts into the column'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `podcast` DROP COLUMN `total_count`;");
40: $this->updateDatabase("ALTER TABLE `podcast` ADD COLUMN `total_count` int(11) UNSIGNED NOT NULL DEFAULT '0';");
41: $this->updateDatabase("UPDATE `podcast`, (SELECT SUM(`podcast_episode`.`total_count`) AS `total_count`, `podcast` FROM `podcast_episode` GROUP BY `podcast_episode`.`podcast`) AS `object_count` SET `podcast`.`total_count` = `object_count`.`total_count` WHERE `podcast`.`total_count` != `object_count`.`total_count` AND `podcast`.`id` = `object_count`.`podcast`;");
42: }
43: }
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500006.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add user_playlist table
33: */
34: final class Migration500006 extends AbstractMigration
35: {
36: protected array $changelog = ['Add user_playlist and user_data table'];
^
37:
38: public function migrate(): void
39: {
40: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
41: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
42: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
43:
44: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `user_playlist` (`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `user` int(11) DEFAULT NULL, `object_type` enum('song','live_stream','video','podcast_episode') CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, `object_id` int(11) UNSIGNED NOT NULL DEFAULT '0', `track` smallint(6) DEFAULT NULL, `current_track` tinyint(1) UNSIGNED NOT NULL DEFAULT 0, `current_time` smallint(5) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`id`),KEY `user` (`user`)) ENGINE=$engine DEFAULT CHARSET=$charset COLLATE=$collation;");
45: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `user_data` (`user` int(11) DEFAULT NULL, `key` varchar(128) CHARACTER SET $charset COLLATE $collation DEFAULT NULL, `value` varchar(255) CHARACTER SET $charset COLLATE $collation DEFAULT NULL, KEY `user` (`user`), KEY `key` (`key`)) ENGINE=$engine DEFAULT CHARSET=$charset COLLATE=$collation;");
46: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530005.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Alter `artist_map` charset and engine to MyISAM if engine set
31: */
32: final class Migration530005 extends AbstractMigration
33: {
34: protected array $changelog = ['Alter `artist_map` table charset and engine to MyISAM if engine set'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `artist_map` ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;");
39: $this->updateDatabase("ALTER TABLE `artist_map` MODIFY COLUMN `object_type` varchar(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL NULL;");
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500002.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Create `total_count` and `total_skip` to album, artist, song, video and podcast_episode tables
32: * Fill counts into the columns
33: */
34: final class Migration500002 extends AbstractMigration
35: {
36: protected array $changelog = [
^
37: 'Create `total_count` and `total_skip` to album, artist, song, video and podcast_episode tables',
38: 'Fill counts into the columns'
39: ];
40:
41: public function migrate(): void
42: {
43: // tables which usually calculate a count
44: $tables = ['album', 'artist', 'song', 'video', 'podcast_episode'];
45: foreach ($tables as $type) {
46: Dba::write("ALTER TABLE `$type` DROP COLUMN `total_count`;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration520002.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option ('show_playlist_username') Show playlist owner username in titles
31: */
32: final class Migration520002 extends AbstractMigration
33: {
34: protected array $changelog = ['Add ui option (\'show_playlist_username\') Show playlist owner username in titles'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('show_playlist_username', 'Show playlist owner username in titles', '1', 25, 'boolean', 'interface', 'browse');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500008.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add filter_user to catalog table, set unique on user_data
32: */
33: final class Migration500008 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'Add filter_user to catalog table',
37: 'Set a unique key on user_data'
38: ];
39:
40: public function migrate(): void
41: {
42: Dba::write("ALTER TABLE `catalog` DROP COLUMN `filter_user`;");
43: $this->updateDatabase("ALTER TABLE `catalog` ADD COLUMN `filter_user` int(11) unsigned DEFAULT 0 NOT NULL;");
44:
45: $tables = ['podcast', 'live_stream'];
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500015.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option ('hide_genres') Hide the Genre column in browse table rows
31: */
32: final class Migration500015 extends AbstractMigration
33: {
34: protected array $changelog = ['Add ui option (\'hide_genres\') Hide the Genre column in browse table rows'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('hide_genres', 'Hide the Genre column in browse table rows', '0', 25, 'boolean', 'interface', 'browse');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530009.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Compact `object_count` columns
31: */
32: final class Migration530009 extends AbstractMigration
33: {
34: protected array $changelog = ['Compact `object_count` columns'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `object_count` MODIFY COLUMN `count_type` enum('download','stream','skip') CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL NULL;");
39: $this->updateDatabase("ALTER TABLE `object_count` MODIFY COLUMN `agent` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL NULL;");
40: $this->updateDatabase("ALTER TABLE `object_count` MODIFY COLUMN `geo_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL NULL;");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530011.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Dba;
29: use Ampache\Module\System\Update\Migration\AbstractMigration;
30:
31: /**
32: * Compact `user` columns and enum `object_count`.`count_type`
33: */
34: final class Migration530011 extends AbstractMigration
35: {
36: protected array $changelog = [
^
37: 'Compact some `user` columns',
38: 'enum `object_count`.`count_type`'
39: ];
40:
41: public function migrate(): void
42: {
43: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
44: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
45: $rsstoken = false;
46: $sql = "DESCRIBE `user`";
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500007.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add a 'Browse' category to interface preferences
31: * Add ui option ('show_license') for hiding license column in song rows
32: */
33: final class Migration500007 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'Add a \'Browse\' category to interface preferences',
37: 'Add option (\'show_license\') for hiding license column in song rows'
38: ];
39:
40: public function migrate(): void
41: {
42: $this->updateDatabase("UPDATE `preference` SET `preference`.`subcatagory` = 'browse' WHERE `preference`.`name` IN ('show_played_times', 'browse_filter', 'libitem_browse_alpha', 'show_skipped_times')");
43:
44: $this->updatePreferences('show_license', 'Show License', '1', 25, 'boolean', 'interface', 'browse');
45: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500001.php
ERROR: Parse error at line 38 column 15:
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `release_status`, `addition_time`, `catalog` to album table
32: * Add `mbid`, `country`, `active` to label table
33: * Fill the album `catalog` and `time` values using the song table
34: * Fill the artist `album_count`, `album_group_count` and `song_count` values
35: */
36: final class Migration500001 extends AbstractMigration
37: {
38: protected array $changelog = [
^
39: 'Add `release_status`, `addition_time`, `catalog` to album table',
40: 'Add `mbid`, `country` and `active` to label table',
41: 'Fill the album `catalog` value using the song table',
42: 'Fill the artist `album_count`, `album_group_count` and `song_count` values'
43: ];
44:
45: public function migrate(): void
46: {
47: Dba::write("ALTER TABLE `album` DROP COLUMN `release_status`;");
48: $this->updateDatabase("ALTER TABLE `album` ADD COLUMN `release_status` varchar(32) DEFAULT NULL;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530001.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Create album_map table and fill it with data
33: */
34: final class Migration530001 extends AbstractMigration
35: {
36: protected array $changelog = ['Create album_map table and fill it with data'];
^
37:
38: public function migrate(): void
39: {
40: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
41: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
42: $engine = 'MyISAM';
43:
44: // create the table
45: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `album_map` (`album_id` int(11) UNSIGNED NOT NULL, `object_id` int(11) UNSIGNED NOT NULL, `object_type` varchar(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, UNIQUE KEY `unique_album_map` (`object_id`, `object_type`, `album_id`), INDEX `object_id_index` (`object_id`), INDEX `album_id_type_index` (`album_id`, `object_type`), INDEX `object_id_type_index` (`object_id`, `object_type`)) ENGINE=$engine DEFAULT CHARSET=$charset COLLATE=$collation;");
46:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530014.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Use a smaller unique index on `object_count`
32: */
33: final class Migration530014 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'Delete `object_count` duplicates',
37: 'Use a smaller unique index on `object_count`'
38: ];
39:
40: public function migrate(): void
41: {
42: Dba::write("ALTER TABLE `object_count` DROP KEY `object_count_UNIQUE_IDX`;");
43:
44: // delete duplicates and make sure they're gone
45: $this->updateDatabase("DELETE FROM `object_count` WHERE `id` IN (SELECT `id` FROM (SELECT `id` FROM `object_count` WHERE `object_id` IN (SELECT `object_id` FROM `object_count` GROUP BY `object_type`, `object_id`, `date`, `user`, `agent`, `count_type` HAVING COUNT(`object_id`) > 1) AND `id` NOT IN (SELECT MIN(`id`) FROM `object_count` GROUP BY `object_type`, `object_id`, `date`, `user`, `agent`, `count_type`)) AS `count`);");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration540002.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Index `object_type` with `date` in `object_count` table
32: */
33: final class Migration540002 extends AbstractMigration
34: {
35: protected array $changelog = ['Index `object_type` with `date` in `object_count` table'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `object_count` DROP KEY `object_type_date_IDX`;");
40: $this->updateDatabase("CREATE INDEX `object_type_date_IDX` USING BTREE ON `object_count` (`object_type`, `date`);");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500005.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add song_count, artist_count to album
32: */
33: final class Migration500005 extends AbstractMigration
34: {
35: protected array $changelog = ['Add song_count, artist_count to album'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `album` DROP COLUMN `song_count`;");
40: $this->updateDatabase("ALTER TABLE `album` ADD COLUMN `song_count` smallint(5) unsigned DEFAULT 0 NULL;");
41: Dba::write("ALTER TABLE `album` DROP COLUMN `artist_count`;");
42: $this->updateDatabase("ALTER TABLE `album` ADD COLUMN `artist_count` smallint(5) unsigned DEFAULT 0 NULL;");
43: $this->updateDatabase("REPLACE INTO `update_info` SET `key`= 'album_group', `value`= (SELECT COUNT(DISTINCT(`album`.`id`)) AS `count` FROM `album` WHERE `id` in (SELECT MIN(`id`) FROM `album` GROUP BY `album`.`prefix`, `album`.`name`, `album`.`album_artist`, `album`.`release_type`, `album`.`release_status`, `album`.`mbid`, `album`.`year`, `album`.`original_year`, `album`.`mbid_group`));");
44: $this->updateDatabase("UPDATE `album`, (SELECT COUNT(`song`.`id`) AS `song_count`, `album` FROM `song` LEFT JOIN `catalog` ON `catalog`.`id` = `song`.`catalog` WHERE `catalog`.`enabled` = '1' GROUP BY `album`) AS `song` SET `album`.`song_count` = `song`.`song_count` WHERE `album`.`song_count` != `song`.`song_count` AND `album`.`id` = `song`.`album`;");
45: $this->updateDatabase("UPDATE `album`, (SELECT COUNT(DISTINCT(`song`.`artist`)) AS `artist_count`, `album` FROM `song` LEFT JOIN `catalog` ON `catalog`.`id` = `song`.`catalog` WHERE `catalog`.`enabled` = '1' GROUP BY `album`) AS `song` SET `album`.`artist_count` = `song`.`artist_count` WHERE `album`.`artist_count` != `song`.`artist_count` AND `album`.`id` = `song`.`album`;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration520005.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option ('api_hide_dupe_searches') Hide smartlists that match playlist names in Subsonic and API clients
31: */
32: final class Migration520005 extends AbstractMigration
33: {
34: protected array $changelog = ['Add ui option (\'api_hide_dupe_searches\') Hide smartlists that match playlist names in Subsonic and API clients'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('api_hide_dupe_searches', 'Hide smartlists that match playlist names in Subsonic and API clients', '0', 25, 'boolean', 'options');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500010.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option ('hide_single_artist') Hide the Song Artist column for Albums with one Artist
31: */
32: final class Migration500010 extends AbstractMigration
33: {
34: protected array $changelog = ['Add ui option (\'hide_single_artist\') Hide the Song Artist column for Albums with one Artist'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('hide_single_artist', 'Hide the Song Artist column for Albums with one Artist', '0', 25, 'boolean', 'interface', 'browse');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration540001.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Index album tables. `catalog`, `album_artist`, `original_year`, `release_type`, `release_status`, `mbid`, `mbid_group`
32: */
33: final class Migration540001 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'Index `album` table columns',
37: '`catalog`, `album_artist`, `original_year`, `release_type`, `release_status`, `mbid`, `mbid_group`'
38: ];
39:
40: public function migrate(): void
41: {
42: Dba::write("ALTER TABLE `album` DROP KEY `catalog_IDX`;");
43: $this->updateDatabase("CREATE INDEX `catalog_IDX` USING BTREE ON `album` (`catalog`);");
44:
45: Dba::write("ALTER TABLE `album` DROP KEY `album_artist_IDX`;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration550001.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Dba;
29: use Ampache\Module\System\Update\Migration\AbstractMigration;
30: use Generator;
31:
32: final class Migration550001 extends AbstractMigration
33: {
34: protected array $changelog = [
^
35: 'Add tables `catalog_filter_group` and `catalog_filter_group_map` for catalog filtering by groups',
36: 'Add column `catalog_filter_group` to `user` table to assign a filter group'
37: ];
38:
39: /**
40: * Add tables `catalog_filter_group` and `catalog_filter_group_map` for catalog filtering by groups
41: * Add column `catalog_filter_group` to `user` table to assign a filter group
42: * Create a DEFAULT group
43: */
44: public function migrate(): void
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500014.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add `episodes` to podcast table to track episode count
32: */
33: final class Migration500014 extends AbstractMigration
34: {
35: protected array $changelog = ['Add `episodes` to podcast table to track episode count'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `podcast` DROP COLUMN `episodes`;");
40: $this->updateDatabase("ALTER TABLE `podcast` ADD COLUMN `episodes` int(11) UNSIGNED NOT NULL DEFAULT '0';");
41:
42: $this->updateDatabase("UPDATE `podcast`, (SELECT COUNT(`podcast_episode`.`id`) AS `episodes`, `podcast` FROM `podcast_episode` GROUP BY `podcast_episode`.`podcast`) AS `episode_count` SET `podcast`.`episodes` = `episode_count`.`episodes` WHERE `podcast`.`episodes` != `episode_count`.`episodes` AND `podcast`.`id` = `episode_count`.`podcast`;");
43: }
44: }
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530002.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Use song_count & artist_count with album_map
32: */
33: final class Migration530002 extends AbstractMigration
34: {
35: protected array $changelog = ['Use song_count & artist_count with album_map'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `album` DROP COLUMN `song_artist_count`;");
40: $this->updateDatabase("ALTER TABLE `album` ADD COLUMN `song_artist_count` smallint(5) unsigned DEFAULT 0 NULL;");
41: $this->updateDatabase("UPDATE `album`, (SELECT COUNT(`song`.`id`) AS `song_count`, `album` FROM `song` LEFT JOIN `catalog` ON `catalog`.`id` = `song`.`catalog` WHERE `catalog`.`enabled` = '1' GROUP BY `album`) AS `song` SET `album`.`song_count` = `song`.`song_count` WHERE `album`.`song_count` != `song`.`song_count` AND `album`.`id` = `song`.`album`;");
42: $this->updateDatabase("UPDATE `album`, (SELECT COUNT(DISTINCT(`album_map`.`object_id`)) AS `artist_count`, `album_id` FROM `album_map` LEFT JOIN `album` ON `album`.`id` = `album_map`.`album_id` LEFT JOIN `catalog` ON `catalog`.`id` = `album`.`catalog` WHERE `album_map`.`object_type` = 'song' AND `catalog`.`enabled` = '1' GROUP BY `album_id`) AS `album_map` SET `album`.`song_artist_count` = `album_map`.`artist_count` WHERE `album`.`id` = `album_map`.`album_id`;");
43: }
44: }
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration520003.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add ui option ('api_hidden_playlists') Hide playlists in Subsonic and API clients that start with this string
31: */
32: final class Migration520003 extends AbstractMigration
33: {
34: protected array $changelog = ['Add ui option (\'api_hidden_playlists\') Hide playlists in Subsonic and API clients that start with this string'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('api_hidden_playlists', 'Hide playlists in Subsonic and API clients that start with this string', '', 25, 'string', 'options');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration550004.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Make `demo_use_search`a system preference correctly
31: */
32: final class Migration550004 extends AbstractMigration
33: {
34: protected array $changelog = ['Make `demo_use_search`a system preference correctly'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("UPDATE `preference` SET `catagory`='system' WHERE `name`='demo_use_search'");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration520004.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Set 'plugins' category to lastfm_challenge preference
31: */
32: final class Migration520004 extends AbstractMigration
33: {
34: protected array $changelog = ['Set \'plugins\' category to lastfm_challenge preference'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("UPDATE `preference` SET `preference`.`catagory` = 'plugins' WHERE `preference`.`name` = 'lastfm_challenge'");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration550005.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add `song_artist` and `album_artist` maps to catalog_map
31: */
32: final class Migration550005 extends AbstractMigration
33: {
34: protected array $changelog = ['Add `song_artist` and `album_artist` maps to catalog_map'];
^
35:
36: public function migrate(): void
37: {
38: // delete bad maps if they exist
39: $tables = ['song', 'album', 'album_disk', 'video', 'podcast', 'podcast_episode', 'live_stream'];
40: foreach ($tables as $type) {
41: $this->updateDatabase("DELETE FROM `catalog_map` USING `catalog_map` LEFT JOIN (SELECT DISTINCT `$type`.`catalog` AS `catalog_id`, '$type' AS `map_type`, `$type`.`id` AS `object_id` FROM `$type` GROUP BY `$type`.`catalog`, `map_type`, `$type`.`id`) AS `valid_maps` ON `valid_maps`.`catalog_id` = `catalog_map`.`catalog_id` AND `valid_maps`.`object_id` = `catalog_map`.`object_id` AND `valid_maps`.`map_type` = `catalog_map`.`object_type` WHERE `catalog_map`.`object_type` = '$type' AND `valid_maps`.`object_id` IS NULL;");
42: }
43:
44: // delete catalog_map artists
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration510003.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add live_stream to the rating table
31: */
32: final class Migration510003 extends AbstractMigration
33: {
34: protected array $changelog = ['Add live_stream to the rating table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `rating` MODIFY COLUMN `object_type` enum('album','artist','song','stream','live_stream','video','playlist','tvshow','tvshow_season','podcast','podcast_episode');");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530012.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Index data on object_count
32: */
33: final class Migration530012 extends AbstractMigration
34: {
35: protected array $changelog = ['Index data on object_count'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `object_count` DROP KEY `object_count_full_index`;");
40: $this->updateDatabase("CREATE INDEX `object_count_full_index` USING BTREE ON `object_count` (`object_type`, `object_id`, `date`, `user`, `agent`, `count_type`);");
41:
42: Dba::write("ALTER TABLE `object_count` DROP KEY `object_count_type_IDX`;");
43: $this->updateDatabase("CREATE INDEX `object_count_type_IDX` USING BTREE ON `object_count` (`object_type`, `object_id`);");
44:
45: Dba::write("ALTER TABLE `object_count` DROP KEY `object_count_date_IDX`;");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530008.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Remove `user_activity` columns that are useless
31: */
32: final class Migration530008 extends AbstractMigration
33: {
34: protected array $changelog = ['Remove `user_activity` columns that are useless'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `user_activity` DROP COLUMN `name_track`;");
39: $this->updateDatabase("ALTER TABLE `user_activity` DROP COLUMN `name_artist`;");
40: $this->updateDatabase("ALTER TABLE `user_activity` DROP COLUMN `name_album`;");
41: $this->updateDatabase("ALTER TABLE `user_activity` DROP COLUMN `mbid_track`;");
42: $this->updateDatabase("ALTER TABLE `user_activity` DROP COLUMN `mbid_artist`;");
43: $this->updateDatabase("ALTER TABLE `user_activity` DROP COLUMN `mbid_album`;");
44: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration510000.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add podcast to the object_count table
31: */
32: final class Migration510000 extends AbstractMigration
33: {
34: protected array $changelog = ['Add podcast to the object_count table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `object_count` MODIFY COLUMN `object_type` enum('album','artist','song','playlist','genre','catalog','live_stream','video','podcast','podcast_episode') CHARACTER SET utf8 COLLATE utf8_unicode_ci;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration500013.php
ERROR: Parse error at line 38 column 15:
28: use Ampache\Module\System\Dba;
29: use Ampache\Module\System\Update\Migration\AbstractMigration;
30: use Generator;
31:
32: /**
33: * Add tables for tracking deleted files. (deleted_song, deleted_video, deleted_podcast_episode)
34: * Add username to the playlist table to stop pulling user all the time
35: */
36: final class Migration500013 extends AbstractMigration
37: {
38: protected array $changelog = [
^
39: 'Add tables for tracking deleted files. (deleted_song, deleted_video, deleted_podcast_episode)',
40: 'Add username to the playlist table to stop pulling user all the time'
41: ];
42:
43: public function migrate(): void
44: {
45: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
46: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
47: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
48: // deleted_song (id, addition_time, delete_time, title, file, catalog, total_count, total_skip, album, artist)
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V5/Migration530016.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V5;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Missing type compared to previous version
31: */
32: final class Migration530016 extends AbstractMigration
33: {
34: protected array $changelog = ['Add missing rating item back in the type enum'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `rating` MODIFY COLUMN `object_type` enum('album','artist','song','stream','live_stream','video','playlist','tvshow','tvshow_season','podcast','podcast_episode') CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370017.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add home display settings
31: */
32: final class Migration370017 extends AbstractMigration
33: {
34: protected array $changelog = ['Add home display settings'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('home_moment_albums', 'Show Albums of the moment at home page', '1', 25, 'integer', 'interface');
39: $this->updatePreferences('home_moment_videos', 'Show Videos of the moment at home page', '1', 25, 'integer', 'interface');
40: $this->updatePreferences('home_now_playing', 'Show Now Playing at home page', '1', 25, 'integer', 'interface');
41: $this->updatePreferences('custom_logo', 'Custom logo url', '', 25, 'string', 'interface');
42: }
43: }
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370033.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add Label tables.
33: */
34: final class Migration370033 extends AbstractMigration
35: {
36: protected array $changelog = ['Add Label tables'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `label` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(80) NOT NULL, `category` varchar(40) NULL, `summary` TEXT CHARACTER SET $charset NULL, `address` varchar(256) NULL, `email` varchar(128) NULL, `website` varchar(256) NULL, `user` int(11) unsigned NULL, `creation_date` int(11) unsigned NULL, PRIMARY KEY (`id`)) ENGINE=$engine");
44: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `label_asso` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `label` int(11) unsigned NOT NULL, `artist` int(11) unsigned NOT NULL, `creation_date` int(11) unsigned NULL, PRIMARY KEY (`id`)) ENGINE=$engine");
45: }
46:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370010.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add MusicBrainz Album Release Group identifier
32: */
33: final class Migration370010 extends AbstractMigration
34: {
35: protected array $changelog = ['Add MusicBrainz Album Release Group identifier'];
^
36:
37: public function migrate(): void
38: {
39: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
40:
41: $this->updateDatabase("ALTER TABLE `album` ADD COLUMN `mbid_group` varchar(36) CHARACTER SET $charset NULL;");
42: }
43: }
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370032.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add WebDAV backend preference.
31: */
32: final class Migration370032 extends AbstractMigration
33: {
34: protected array $changelog = ['Add WebDAV backend preference'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('webdav_backend', 'Use WebDAV backend', '0', 100, 'boolean', 'system');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360003.php
ERROR: Parse error at line 37 column 15:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Dba;
29: use Ampache\Module\System\Update\Migration\AbstractMigration;
30: use Generator;
31:
32: /**
33: * This update moves the image data to its own table.
34: */
35: final class Migration360003 extends AbstractMigration
36: {
37: protected array $changelog = [
^
38: 'Add image table to store images',
39: 'Drop album_data and artist_data'
40: ];
41:
42: public function migrate(): void
43: {
44: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
45: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
46: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
47:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360005.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28: use Generator;
29:
30: /**
31: * This changes the tmp_browse table around.
32: */
33: final class Migration360005 extends AbstractMigration
34: {
35: protected array $changelog = ['Modify tmp_browse to allow caching of multiple browses per session'];
^
36:
37: public function migrate(): void
38: {
39: $this->updateDatabase("DROP TABLE IF EXISTS `tmp_browse`");
40: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `tmp_browse` (`id` int(13) NOT NULL auto_increment, `sid` varchar(128) CHARACTER SET utf8 NOT NULL, `data` longtext NOT NULL, `object_data` longtext, PRIMARY KEY (`sid`, `id`)) ENGINE=MYISAM DEFAULT CHARSET=utf8;");
41: }
42:
43: public function getTableMigrations(
44: string $collation,
45: string $charset,
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360025.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add options to enable HTML5 / Flash on web players
31: */
32: final class Migration360025 extends AbstractMigration
33: {
34: protected array $changelog = ['Add options to enable HTML5 / Flash on web players'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('webplayer_flash', 'Authorize Flash Web Player(s)', '1', 25, 'boolean', 'streaming');
39: $this->updatePreferences('webplayer_html5', 'Authorize HTML5 Web Player(s)', '1', 25, 'boolean', 'streaming');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370039.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Renamed false named sample_rate option name in preference table
31: */
32: final class Migration370039 extends AbstractMigration
33: {
34: protected array $changelog = ['Renamed false named sample_rate option name in preference table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("UPDATE `preference` SET `name` = 'transcode_bitrate' WHERE `preference`.`name` = 'sample_rate';");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380010.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add custom blank album/video default image and alphabet browsing options
31: */
32: final class Migration380010 extends AbstractMigration
33: {
34: protected array $changelog = ['Add custom blank album/video default image and alphabet browsing options'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('custom_blankalbum', 'Custom blank album default image', '', 75, 'string', 'interface', 'custom');
39: $this->updatePreferences('custom_blankmovie', 'Custom blank video default image', '', 75, 'string', 'interface', 'custom');
40: $this->updatePreferences('libitem_browse_alpha', 'Alphabet browsing by default for following library items (album,artist,...)', '', 75, 'string', 'interface', 'library');
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360035.php
ERROR: Parse error at line 39 column 15:
29: /**
30: * Add beautiful stream url setting
31: * Reverted https://github.com/ampache/ampache/commit/0c26c336269624d75985e46d324e2bc8108576ee
32: * with adding update_380012.
33: * Because it was changed after many systems have already performed this update.
34: * Fix for this is update_380012 that actually reads the preference string.
35: * So all users have a consistent database.
36: */
37: final class Migration360035 extends AbstractMigration
38: {
39: protected array $changelog = ['Add beautiful stream url setting'];
^
40:
41: public function migrate(): void
42: {
43: $this->updatePreferences('stream_beautiful_url', 'Use beautiful stream url', '0', 100, 'boolean', 'streaming');
44: }
45: }
46:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370022.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add users geolocation
31: */
32: final class Migration370022 extends AbstractMigration
33: {
34: protected array $changelog = ['Add users geolocation'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `session` ADD COLUMN `geo_latitude` DECIMAL(10,6) NULL, ADD COLUMN `geo_longitude` DECIMAL(10,6) NULL, ADD COLUMN `geo_name` varchar(255) NULL");
39: $this->updateDatabase("ALTER TABLE `object_count` ADD COLUMN `geo_latitude` DECIMAL(10,6) NULL, ADD COLUMN `geo_longitude` DECIMAL(10,6) NULL, ADD COLUMN `geo_name` varchar(255) NULL");
40:
41: $this->updatePreferences('geolocation', 'Allow geolocation', '0', 25, 'integer', 'options');
42: }
43: }
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370005.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add new column album_artist into table album
31: */
32: final class Migration370005 extends AbstractMigration
33: {
34: protected array $changelog = ['Add new column album_artist into table song'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `song` ADD COLUMN `album_artist` int(11) unsigned DEFAULT NULL AFTER `artist`;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360026.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add agent field in `object_count` table
31: */
32: final class Migration360026 extends AbstractMigration
33: {
34: protected array $changelog = ['Added agent to `object_count` table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `object_count` ADD COLUMN `agent` varchar(255) NULL AFTER `user`;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370012.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add metadata information to albums / songs / videos
32: */
33: final class Migration370012 extends AbstractMigration
34: {
35: protected array $changelog = ['Add metadata information to albums / songs / videos'];
^
36:
37: public function migrate(): void
38: {
39: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
40:
41: $this->updateDatabase("ALTER TABLE `album` ADD COLUMN `release_type` varchar(32) CHARACTER SET $charset NULL");
42:
43: $this->updateDatabase("ALTER TABLE `song` ADD COLUMN `composer` varchar(256) CHARACTER SET $charset NULL, ADD COLUMN `channels` MEDIUMINT NULL");
44:
45: $this->updateDatabase("ALTER TABLE `video` ADD COLUMN `channels` MEDIUMINT NULL, ADD COLUMN `bitrate` MEDIUMINT(8) NULL, ADD COLUMN `video_bitrate` MEDIUMINT(8) NULL, ADD COLUMN `display_x` MEDIUMINT(8) NULL, ADD COLUMN `display_y` MEDIUMINT(8) NULL, ADD COLUMN `frame_rate` FLOAT NULL, ADD COLUMN `mode` enum('abr','vbr','cbr') NULL DEFAULT 'cbr'");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370020.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add webplayer browser notification settings
31: */
32: final class Migration370020 extends AbstractMigration
33: {
34: protected array $changelog = ['Add webplayer browser notification settings'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('browser_notify', 'WebPlayer browser notifications', '1', 25, 'integer', 'interface');
39: $this->updatePreferences('browser_notify_timeout', 'WebPlayer browser notifications timeout (seconds)', '10', 25, 'integer', 'interface');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370002.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add tag persistent merge reference
31: */
32: final class Migration370002 extends AbstractMigration
33: {
34: protected array $changelog = ['Add tag persistent merge reference'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `tag` ADD COLUMN `merged_to` int(11) NULL AFTER `name`;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360001.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * This adds the MB UUIDs to the different tables as well as some additional cleanup.
32: */
33: final class Migration360001 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'Add MBID (MusicBrainz ID) fields',
37: 'Remove useless preferences',
38: ];
39:
40: public function migrate(): void
41: {
42: $this->updateDatabase("ALTER TABLE `album` ADD COLUMN `mbid` CHAR (36) AFTER `prefix`");
43: $this->updateDatabase("ALTER TABLE `artist` ADD COLUMN `mbid` CHAR (36) AFTER `prefix`");
44: $this->updateDatabase("ALTER TABLE `song` ADD COLUMN `mbid` CHAR (36) AFTER `track`");
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370001.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Drop unused dynamic_playlist tables and add session id to votes
32: */
33: final class Migration370001 extends AbstractMigration
34: {
35: protected array $changelog = ['Drop unused dynamic_playlist tables and add session id to votes'];
^
36:
37: public function migrate(): void
38: {
39: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
40:
41: $this->updateDatabase("DROP TABLE IF EXISTS `dynamic_playlist`");
42: $this->updateDatabase("DROP TABLE IF EXISTS `dynamic_playlist_data`");
43: $this->updateDatabase("ALTER TABLE `user_vote` ADD COLUMN `sid` varchar(256) CHARACTER SET $charset NULL AFTER `date`");
44:
45: $this->updatePreferences('demo_clear_sessions', 'Clear democratic votes of expired user sessions', '0', 25, 'boolean', 'playlist');
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380002.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add bookmarks
33: */
34: final class Migration380002 extends AbstractMigration
35: {
36: protected array $changelog = ['Add bookmarks'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `bookmark` (`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `user` int(11) UNSIGNED NOT NULL, `position` int(11) UNSIGNED DEFAULT '0' NOT NULL, `comment` varchar(255) CHARACTER SET $charset NOT NULL, `object_type` varchar(64) NOT NULL, `object_id` int(11) UNSIGNED NOT NULL, `creation_date` int(11) UNSIGNED DEFAULT '0' NOT NULL, `update_date` int(11) UNSIGNED DEFAULT '0' NOT NULL) ENGINE=$engine;");
44: }
45:
46: public function getTableMigrations(
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380011.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Fix username max size to be the same one across all tables.
31: */
32: final class Migration380011 extends AbstractMigration
33: {
34: protected array $changelog = ['Fix username max size to be the same one across all tables'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE session MODIFY username varchar(255)");
39:
40: $this->updateDatabase("ALTER TABLE session_remember MODIFY username varchar(255)");
41:
42: $this->updateDatabase("ALTER TABLE user MODIFY username varchar(255)");
43:
44: $this->updateDatabase("ALTER TABLE user MODIFY fullname varchar(255)");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370030.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add an option to allow users to remove uploaded songs.
31: */
32: final class Migration370030 extends AbstractMigration
33: {
34: protected array $changelog = ['Add an option to allow users to remove uploaded songs'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('upload_allow_remove', 'Upload: allow users to remove uploaded songs', '1', 100, 'boolean', 'system');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360012.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Drop the enum on session.type
31: */
32: final class Migration360012 extends AbstractMigration
33: {
34: protected array $changelog = ['Drop enum for the type field in session'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `session` CHANGE COLUMN `type` `type` varchar(16) DEFAULT NULL;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370014.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Modified release_date of table video to signed int(11)
31: */
32: final class Migration370014 extends AbstractMigration
33: {
34: protected array $changelog = ['Modified release_date in video table to signed int'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `video` CHANGE COLUMN `release_date` `release_date` INT NULL DEFAULT NULL;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370004.php
ERROR: Parse error at line 37 column 15:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add system upload preferences
33: * Add license information and user's artist association
34: */
35: final class Migration370004 extends AbstractMigration
36: {
37: protected array $changelog = ['Add license information and user\'s artist association'];
^
38:
39: public function migrate(): void
40: {
41: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
42: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
43:
44: $this->updatePreferences('upload_catalog', 'Uploads catalog destination', '-1', 100, 'integer', 'system');
45: $this->updatePreferences('allow_upload', 'Allow users to upload media', '0', 75, 'boolean', 'options');
46: $this->updatePreferences('upload_subdir', 'Upload: create a subdirectory per user (recommended)', '1', 100, 'boolean', 'system');
47: $this->updatePreferences('upload_user_artist', 'Upload: consider the user sender as the track\'s artist', '0', 100, 'boolean', 'system');
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360024.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Drop unused flagged table
31: */
32: final class Migration360024 extends AbstractMigration
33: {
34: protected array $changelog = ['Drop flagged table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("DROP TABLE IF EXISTS `flagged`;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370024.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add count_type column to object_count table
31: */
32: final class Migration370024 extends AbstractMigration
33: {
34: protected array $changelog = ['Add count_type column to object_count table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `object_count` ADD COLUMN `count_type` varchar(16) NOT NULL DEFAULT 'stream';");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360036.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Remove some unused parameters
31: */
32: final class Migration360036 extends AbstractMigration
33: {
34: protected array $changelog = ['Remove unused parameters'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("DELETE FROM `preference` WHERE `name` LIKE 'ellipse_threshold_%'");
39: $this->updateDatabase("DELETE FROM `preference` WHERE `name` = 'min_object_count'");
40: $this->updateDatabase("DELETE FROM `preference` WHERE `name` = 'bandwidth'");
41: $this->updateDatabase("DELETE FROM `preference` WHERE `name` = 'features'");
42: $this->updateDatabase("DELETE FROM `preference` WHERE `name` = 'tags_userlist'");
43: }
44: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370006.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add random and limit options to smart playlists
31: */
32: final class Migration370006 extends AbstractMigration
33: {
34: protected array $changelog = ['Add random and limit options to smart playlists'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `search` ADD COLUMN `random` tinyint(1) unsigned NOT NULL DEFAULT '0' AFTER `logic_operator`, ADD COLUMN `limit` int(11) unsigned NOT NULL DEFAULT '0' AFTER `random`;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360029.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * New table to store wanted releases
33: */
34: final class Migration360029 extends AbstractMigration
35: {
36: protected array $changelog = ['Add new table to store wanted releases'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `wanted` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user` int(11) NOT NULL, `artist` int(11) NOT NULL, `mbid` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL, `name` varchar(255) CHARACTER SET $charset NOT NULL, `year` int(4) NULL, `date` int(11) unsigned NOT NULL DEFAULT '0', `accepted` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `unique_wanted` (`user`, `artist`, `mbid`)) ENGINE=$engine;");
44: }
45:
46: public function getTableMigrations(
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360006.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * This adds the table for newsearch/dynamic playlists
33: */
34: final class Migration360006 extends AbstractMigration
35: {
36: protected array $changelog = ['Add table for dynamic playlists'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `search` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user` int(11) NOT NULL, `type` enum('private','public') CHARACTER SET utf8 DEFAULT NULL, `rules` mediumtext NOT NULL, `name` varchar(255) CHARACTER SET $charset DEFAULT NULL, `logic_operator` varchar(3) CHARACTER SET $charset DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=$engine AUTO_INCREMENT=4 DEFAULT CHARSET=$charset;");
44: }
45:
46: public function getTableMigrations(
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360016.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add Now Playing filtered per user preference option
31: */
32: final class Migration360016 extends AbstractMigration
33: {
34: protected array $changelog = ['Optionally filter Now Playing to return only the last song per user'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('now_playing_per_user', 'Now playing filtered per user', '1', 50, 'boolean', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370027.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Move column album_artist from table song to table album
31: */
32: final class Migration370027 extends AbstractMigration
33: {
34: protected array $changelog = ['Move column album_artist from table song to table album'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `album` ADD COLUMN `album_artist` int(11) unsigned DEFAULT NULL AFTER `release_type`");
39: $this->updateDatabase("UPDATE `album` INNER JOIN `song` ON `album`.`id` = `song`.`album` SET `album`.`album_artist` = `song`.`album_artist`");
40: $this->updateDatabase("ALTER TABLE `song` DROP COLUMN `album_artist`");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360023.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Enable/Disable SubSonic and Plex backend
31: */
32: final class Migration360023 extends AbstractMigration
33: {
34: protected array $changelog = ['Enable/Disable SubSonic and Plex backend'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('subsonic_backend', 'Use SubSonic backend', '1', 100, 'boolean', 'system');
39: $this->updatePreferences('plex_backend', 'Use Plex backend', '0', 100, 'boolean', 'system');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380005.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add manual update flag on artist
31: */
32: final class Migration380005 extends AbstractMigration
33: {
34: protected array $changelog = ['Add manual update flag on artist'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `artist` ADD COLUMN `manual_update` SMALLINT(1) DEFAULT '0';");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380003.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add unique constraint on tag_map table
31: */
32: final class Migration380003 extends AbstractMigration
33: {
34: protected array $changelog = ['Add unique constraint on tag_map table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER IGNORE TABLE `tag_map` ADD UNIQUE INDEX `UNIQUE_TAG_MAP` (`object_id`, `object_type`, `user`, `tag_id`);");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380012.php
ERROR: Parse error at line 38 column 15:
28:
29: /**
30: * Fix change in https://github.com/ampache/ampache/commit/0c26c336269624d75985e46d324e2bc8108576ee
31: * That left the user base with an inconsistent database.
32: * For more information, please look at 360035.
33: *
34: * @see Migration360035
35: */
36: final class Migration380012 extends AbstractMigration
37: {
38: protected array $changelog = ['Fix change in https://github.com/ampache/ampache/commit/0c26c336269624d75985e46d324e2bc8108576ee that left the userbase with an inconsistent database, if users updated or installed Ampache before 28 Apr 2015'];
^
39:
40: public function migrate(): void
41: {
42: $this->updateDatabase("UPDATE `preference` SET `description`='Enable url rewriting' WHERE `preference`.`name`='stream_beautiful_url'");
43: }
44: }
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360050.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add top menu setting
31: */
32: final class Migration360050 extends AbstractMigration
33: {
34: protected array $changelog = ['Add top menu setting'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('topmenu', 'Top menu', '0', 25, 'boolean', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360047.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add apikey field on users
32: */
33: final class Migration360047 extends AbstractMigration
34: {
35: protected array $changelog = ['Add apikey field on users'];
^
36:
37: public function migrate(): void
38: {
39: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
40:
41: $this->updateDatabase("ALTER TABLE `user` ADD COLUMN `apikey` varchar(255) CHARACTER SET $charset NULL AFTER `website`;");
42: }
43: }
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370040.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add user_activity table
33: */
34: final class Migration370040 extends AbstractMigration
35: {
36: protected array $changelog = ['Add user_activity table'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `user_activity` (`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `user` INT(11) NOT NULL, `action` varchar(20) NOT NULL, `object_id` INT(11) UNSIGNED NOT NULL, `object_type` varchar(32) NOT NULL, `activity_date` INT(11) UNSIGNED NOT NULL) ENGINE=$engine;");
44: }
45:
46: public function getTableMigrations(
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360038.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add missing albums browse on missing artists
31: */
32: final class Migration360038 extends AbstractMigration
33: {
34: protected array $changelog = ['Add missing albums browse on missing artists'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `wanted` ADD COLUMN `artist_mbid` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL AFTER `artist`");
39: $this->updateDatabase("ALTER TABLE `wanted` MODIFY `artist` int(11) NULL");
40: $this->updateDatabase("ALTER TABLE `song_preview` ADD COLUMN `artist_mbid` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL AFTER `artist`");
41: $this->updateDatabase("ALTER TABLE `song_preview` MODIFY `artist` int(11) NULL");
42: }
43: }
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380008.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add browse filter and light sidebar options
31: */
32: final class Migration380008 extends AbstractMigration
33: {
34: protected array $changelog = ['Add browse filter and light sidebar options'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('browse_filter', 'Show filter box on browse', '0', 25, 'boolean', 'interface', 'library');
39: $this->updatePreferences('sidebar_light', 'Light sidebar by default', '0', 25, 'boolean', 'interface', 'theme');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370035.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add option on user fullname to show/hide it publicly
31: */
32: final class Migration370035 extends AbstractMigration
33: {
34: protected array $changelog = ['Add option on user fullname to show/hide it publicly'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `user` ADD COLUMN `fullname_public` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0';");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360017.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * New table to store user flags.
33: */
34: final class Migration360017 extends AbstractMigration
35: {
36: protected array $changelog = ['Add user flags on objects'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `user_flag` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user` int(11) NOT NULL, `object_id` int(11) unsigned NOT NULL, `object_type` varchar(32) CHARACTER SET $charset DEFAULT NULL, `date` int(11) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `unique_userflag` (`user`, `object_type`, `object_id`), KEY `object_id` (`object_id`)) ENGINE=$engine;");
44: }
45:
46: public function getTableMigrations(
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360010.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * MBz NGS means collaborations have more than one MBID
31: * (the ones belonging to the underlying artists). We need a bigger column.
32: */
33: final class Migration360010 extends AbstractMigration
34: {
35: protected array $changelog = ['Allow compound MBIDs in the artist table'];
^
36:
37: public function migrate(): void
38: {
39: $this->updateDatabase("ALTER TABLE `artist` CHANGE COLUMN `mbid` `mbid` varchar(36);");
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370025.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add state and city fields to user table
31: */
32: final class Migration370025 extends AbstractMigration
33: {
34: protected array $changelog = ['Add state and city fields to user table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `user` ADD COLUMN `state` varchar(64) NULL, ADD COLUMN `city` varchar(64) NULL;");
39: }
40: }
41:
INFO: 1527/1915 files analyzed, current file: /code/src/Module/System/Update/Migration/V3/Migration370038.php
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380004.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add preference subcategory
32: */
33: final class Migration380004 extends AbstractMigration
34: {
35: protected array $changelog = ['Add preference subcategory'];
^
36:
37: public function migrate(): void
38: {
39: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
40:
41: $this->updateDatabase("ALTER TABLE `preference` ADD COLUMN `subcatagory` varchar(128) CHARACTER SET $charset DEFAULT NULL AFTER `catagory`;");
42: }
43: }
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370038.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add theme color option
31: */
32: final class Migration370038 extends AbstractMigration
33: {
34: protected array $changelog = ['Add theme color option'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('theme_color', 'Theme color', 'dark', 0, 'special', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370015.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add session_remember table to store remember tokens
33: */
34: final class Migration370015 extends AbstractMigration
35: {
36: protected array $changelog = ['Add session_remember table to store remember tokens'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `session_remember` (`username` varchar(16) NOT NULL, `token` varchar(32) NOT NULL, `expire` int(11) NULL, PRIMARY KEY (`username`, `token`)) ENGINE=$engine;");
44: }
45:
46: public function getTableMigrations(
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360021.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add insertion date on Now Playing and option to show the current song in page title for Web player
31: */
32: final class Migration360021 extends AbstractMigration
33: {
34: protected array $changelog = ['Add insertion date on Now Playing and option to show the current song in page title for Web player'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `now_playing` ADD COLUMN `insertion` INT (11) AFTER `expire`");
39:
40: $this->updatePreferences('song_page_title', 'Show current song in Web player page title', '1', 25, 'boolean', 'interface');
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360020.php
ERROR: Parse error at line 37 column 15:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Dba;
29: use Ampache\Module\System\Update\Migration\AbstractMigration;
30: use Generator;
31:
32: /**
33: * Catalog types are plugins now
34: */
35: final class Migration360020 extends AbstractMigration
36: {
37: protected array $changelog = ['Catalog types are plugins now'];
^
38:
39: public function migrate(): void
40: {
41: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
42: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
43: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
44:
45: $sql = "CREATE TABLE IF NOT EXISTS `catalog_local` (`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `path` varchar(255) COLLATE $collation NOT NULL, `catalog_id` INT(11) NOT NULL) ENGINE=$engine DEFAULT CHARSET=$charset COLLATE=$collation;";
46: Dba::write($sql);
47: $sql = "CREATE TABLE IF NOT EXISTS `catalog_remote` (`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `uri` varchar(255) COLLATE $collation NOT NULL, `username` varchar(255) COLLATE $collation NOT NULL, `password` varchar(255) COLLATE $collation NOT NULL, `catalog_id` INT(11) NOT NULL) ENGINE=$engine DEFAULT CHARSET=$charset COLLATE=$collation;";
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370007.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add DAAP backend preference
33: */
34: final class Migration370007 extends AbstractMigration
35: {
36: protected array $changelog = ['Add DAAP backend preference'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updatePreferences('daap_backend', 'Use DAAP backend', '0', 100, 'boolean', 'system');
44: $this->updatePreferences('daap_pass', 'DAAP backend password', '', 100, 'string', 'system');
45:
46: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `daap_session` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `creationdate` int(11) unsigned NOT NULL, PRIMARY KEY (`id`)) ENGINE=$engine");
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370041.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add Metadata tables and preferences
33: */
34: final class Migration370041 extends AbstractMigration
35: {
36: protected array $changelog = ['Add basic metadata tables'];
^
37:
38: public function migrate(): void
39: {
40: $collation = (AmpConfig::get('database_collation', 'utf8mb4_unicode_ci'));
41: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
42: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
43:
44: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `metadata_field` (`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` varchar(255) NOT NULL, `public` tinyint(1) NOT NULL, UNIQUE KEY `name` (`name`) ) ENGINE=$engine");
45: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `metadata` (`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `object_id` INT(11) UNSIGNED NOT NULL, `field` INT(11) UNSIGNED NOT NULL, `data` text COLLATE $collation NOT NULL, `type` varchar(50) CHARACTER SET $charset DEFAULT NULL, KEY `field` (`field`), KEY `object_id` (`object_id`), KEY `type` (`type`), KEY `objecttype` (`object_id`, `type`), KEY `objectfield` (`object_id`, `field`, `type`) ) ENGINE=$engine");
46:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370021.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add rating to playlists, tvshows and tvshows seasons
31: */
32: final class Migration370021 extends AbstractMigration
33: {
34: protected array $changelog = ['Add rating to playlists, tvshows and tvshows seasons'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `rating` CHANGE COLUMN `object_type` `object_type` enum('artist','album','song','stream','video','playlist','tvshow','tvshow_season') NULL;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360042.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add broadcasts and player control
33: */
34: final class Migration360042 extends AbstractMigration
35: {
36: protected array $changelog = ['Add broadcasts and player control'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `broadcast` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user` int(11) unsigned NOT NULL, `name` varchar(64) CHARACTER SET $charset NULL, `description` varchar(256) CHARACTER SET $charset NULL, `is_private` tinyint(1) unsigned NOT NULL DEFAULT '0', `song` int(11) unsigned NOT NULL DEFAULT '0', `started` tinyint(1) unsigned NOT NULL DEFAULT '0', `listeners` int(11) unsigned NOT NULL DEFAULT '0', `key` varchar(32) CHARACTER SET $charset NULL, PRIMARY KEY (`id`)) ENGINE=$engine");
44:
45: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `player_control` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user` int(11) unsigned NOT NULL, `cmd` varchar(32) CHARACTER SET $charset NOT NULL, `value` varchar(256) CHARACTER SET $charset NULL, `object_type` varchar(32) NOT NULL, `object_id` int(11) unsigned NOT NULL, `send_date` int(11) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`)) ENGINE=$engine");
46: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370019.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add album group order setting
31: */
32: final class Migration370019 extends AbstractMigration
33: {
34: protected array $changelog = ['Add album group order setting'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('album_release_type_sort', 'Album - Group per release type Sort', 'album,ep,live,single', 25, 'string', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360045.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Set user field on playlists as optional
31: */
32: final class Migration360045 extends AbstractMigration
33: {
34: protected array $changelog = ['Set user field on playlists as optional'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `playlist` MODIFY `user` int(11) NULL;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360009.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * The main session table was already updated to use varchar(64) for the ID,
31: * tmp_playlist needs the same change
32: */
33: final class Migration360009 extends AbstractMigration
34: {
35: protected array $changelog = ['Allow long sessionids in tmp_playlist table'];
^
36:
37: public function migrate(): void
38: {
39: $this->updateDatabase("ALTER TABLE `tmp_playlist` CHANGE COLUMN `session` `session` varchar(64);");
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360014.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * PHP session IDs are an ever-growing beast.
31: */
32: final class Migration360014 extends AbstractMigration
33: {
34: protected array $changelog = ['Increase the length of sessionids again'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `stream_playlist` CHANGE COLUMN `sid` `sid` varchar(256);");
39: $this->updateDatabase("ALTER TABLE `tmp_playlist` CHANGE COLUMN `session` `session` varchar(256);");
40: $this->updateDatabase("ALTER TABLE `session` CHANGE COLUMN `id` `id` varchar(256) NOT NULL;");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380007.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add upload rename pattern and ignore duplicate options
31: */
32: final class Migration380007 extends AbstractMigration
33: {
34: protected array $changelog = ['Add upload rename pattern and ignore duplicate options'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('upload_catalog_pattern', 'Rename uploaded file according to catalog pattern', '0', 100, 'boolean', 'system', 'upload');
39: $this->updatePreferences('catalog_check_duplicate', 'Check library item at import time and disable duplicates', '0', 100, 'boolean', 'system', 'catalog');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360034.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add settings for confirmation when closing window and auto-pause between tabs
31: */
32: final class Migration360034 extends AbstractMigration
33: {
34: protected array $changelog = ['Add settings for confirmation when closing window and auto-pause between tabs'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('webplayer_confirmclose', 'Confirmation when closing current playing window', '0', 25, 'boolean', 'interface');
39:
40: $this->updatePreferences('webplayer_pausetabs', 'Auto-pause betweens tabs', '1', 25, 'boolean', 'interface');
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360049.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add album group multiple disks setting
31: */
32: final class Migration360049 extends AbstractMigration
33: {
34: protected array $changelog = ['Add album group multiple disks setting'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('album_group', 'Album - Group multiple disks', '0', 25, 'boolean', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360041.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add channels
32: */
33: final class Migration360041 extends AbstractMigration
34: {
35: protected array $changelog = ['Add channels'];
^
36:
37: public function migrate(): void
38: {
39: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
40: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
41:
42: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `channel` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(64) CHARACTER SET $charset NULL, `description` varchar(256) CHARACTER SET $charset NULL, `url` varchar(256) CHARACTER SET $charset NULL, `interface` varchar(64) CHARACTER SET $charset NULL, `port` int(11) unsigned NOT NULL DEFAULT '0', `fixed_endpoint` tinyint(1) unsigned NOT NULL DEFAULT '0', `object_type` varchar(32) NOT NULL, `object_id` int(11) unsigned NOT NULL, `is_private` tinyint(1) unsigned NOT NULL DEFAULT '0', `random` tinyint(1) unsigned NOT NULL DEFAULT '0', `loop` tinyint(1) unsigned NOT NULL DEFAULT '0', `admin_password` varchar(20) CHARACTER SET $charset NULL, `start_date` int(11) unsigned NOT NULL DEFAULT '0', `max_listeners` int(11) unsigned NOT NULL DEFAULT '0', `peak_listeners` int(11) unsigned NOT NULL DEFAULT '0', `listeners` int(11) unsigned NOT NULL DEFAULT '0', `connections` int(11) unsigned NOT NULL DEFAULT '0', `stream_type` varchar(8) CHARACTER SET $charset NOT NULL DEFAULT 'mp3', `bitrate` int(11) unsigned NOT NULL DEFAULT '128', `pid` int(11) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`)) ENGINE=$engine;");
43: }
44: }
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360033.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add song waveform as song data
31: */
32: final class Migration360033 extends AbstractMigration
33: {
34: protected array $changelog = ['Add song waveform as song data'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `song_data` ADD COLUMN `waveform` MEDIUMBLOB NULL AFTER `language`");
39:
40: $this->updateDatabase("ALTER TABLE `user_shout` ADD COLUMN `data` varchar(256) NULL AFTER `object_type`");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360019.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add Show number of times a song was played preference
31: */
32: final class Migration360019 extends AbstractMigration
33: {
34: protected array $changelog = ['Add option to show number of times a song was played'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('show_played_times', 'Show # played', '0', 25, 'string', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360031.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add option to fix header/sidebars position on compatible themes
31: */
32: final class Migration360031 extends AbstractMigration
33: {
34: protected array $changelog = ['Add option to fix header position on compatible themes'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('ui_fixed', 'Fix header position on compatible themes', '0', 25, 'boolean', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360039.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add website field on users
32: */
33: final class Migration360039 extends AbstractMigration
34: {
35: protected array $changelog = ['Add website field on users'];
^
36:
37: public function migrate(): void
38: {
39: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
40:
41: $this->updateDatabase("ALTER TABLE `user` ADD COLUMN `website` varchar(255) CHARACTER SET $charset NULL AFTER `email`;");
42: }
43: }
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360046.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add broadcast web player by default preference
31: */
32: final class Migration360046 extends AbstractMigration
33: {
34: protected array $changelog = ['Add broadcast web player by default preference'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('broadcast_by_default', 'Broadcast web player by default', '0', 25, 'boolean', 'streaming');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360018.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add Album default sort preference...
31: */
32: final class Migration360018 extends AbstractMigration
33: {
34: protected array $changelog = ['Add album default sort value to preferences'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('album_sort', 'Album Default Sort', '0', 25, 'string', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370011.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add Prefix to TVShows and Movies
32: */
33: final class Migration370011 extends AbstractMigration
34: {
35: protected array $changelog = ['Add Prefix to TVShows and Movies'];
^
36:
37: public function migrate(): void
38: {
39: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
40:
41: $this->updateDatabase("ALTER TABLE `tvshow` ADD COLUMN `prefix` varchar(32) CHARACTER SET $charset NULL");
42:
43: $this->updateDatabase("ALTER TABLE `movie` ADD COLUMN `prefix` varchar(32) CHARACTER SET $charset NULL");
44: }
45: }
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370029.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Set image column from image table as nullable.
31: */
32: final class Migration370029 extends AbstractMigration
33: {
34: protected array $changelog = ['Set image column from image table as nullable'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `image` CHANGE COLUMN `image` `image` MEDIUMBLOB NULL DEFAULT NULL;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370034.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add User messages and user follow tables.
33: */
34: final class Migration370034 extends AbstractMigration
35: {
36: protected array $changelog = ['Add User messages and user follow tables'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `user_pvmsg` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `subject` varchar(80) NOT NULL, `message` TEXT CHARACTER SET $charset NULL, `from_user` int(11) unsigned NOT NULL, `to_user` int(11) unsigned NOT NULL, `is_read` tinyint(1) unsigned NOT NULL DEFAULT '0', `creation_date` int(11) unsigned NULL, PRIMARY KEY (`id`)) ENGINE=$engine");
44: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `user_follower` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user` int(11) unsigned NOT NULL, `follow_user` int(11) unsigned NOT NULL, `follow_date` int(11) unsigned NULL, PRIMARY KEY (`id`)) ENGINE=$engine");
45:
46: $this->updatePreferences('notify_email', 'Receive notifications by email (shouts, private messages, ...)', '0', 25, 'boolean', 'options');
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370013.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Replace iframe with ajax page load
31: */
32: final class Migration370013 extends AbstractMigration
33: {
34: protected array $changelog = ['Replace iframe with ajax page load'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("DELETE FROM `preference` WHERE `name` = 'iframes'");
39:
40: $this->updatePreferences('ajax_load', 'Ajax page load', '1', 25, 'boolean', 'interface');
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360043.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add slideshow on currently played artist preference
31: */
32: final class Migration360043 extends AbstractMigration
33: {
34: protected array $changelog = ['Add slideshow on currently played artist preference'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('slideshow_time', 'Artist slideshow inactivity time', '0', 25, 'integer', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370016.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add limit of media count for direct play preference
31: */
32: final class Migration370016 extends AbstractMigration
33: {
34: protected array $changelog = ['Add limit of media count for direct play preference'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('direct_play_limit', 'Limit direct play to maximum media count', '0', 25, 'integer', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370026.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add replay gain fields to song_data table
31: */
32: final class Migration370026 extends AbstractMigration
33: {
34: protected array $changelog = ['Add replay gain fields to song_data table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `song_data` ADD COLUMN `replaygain_track_gain` DECIMAL(10,6) NULL, ADD COLUMN `replaygain_track_peak` DECIMAL(10,6) NULL, ADD COLUMN `replaygain_album_gain` DECIMAL(10,6) NULL, ADD COLUMN `replaygain_album_peak` DECIMAL(10,6) NULL;");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370031.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add an option to customize login art, favicon and text footer.
31: */
32: final class Migration370031 extends AbstractMigration
33: {
34: protected array $changelog = ['Add an option to customize login art, favicon and text footer'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('custom_login_logo', 'Custom login page logo url', '', 75, 'string', 'interface');
39: $this->updatePreferences('custom_favicon', 'Custom favicon url', '', 75, 'string', 'interface');
40: $this->updatePreferences('custom_text_footer', 'Custom text footer', '', 75, 'string', 'interface');
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360002.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * This update makes changes to the cataloging to accomodate the new method
31: * for syncing between Ampache instances.
32: */
33: final class Migration360002 extends AbstractMigration
34: {
35: protected array $changelog = [
^
36: 'Add Bandwidth and Feature preferences to simplify how interface is presented',
37: 'Change Tables to FULLTEXT() for improved searching',
38: 'Increase Filename lengths to 4096',
39: 'Remove useless KEY reference from ACL and Catalog tables',
40: 'Add new Remote User / Remote Password fields to Catalog'
41: ];
42:
43: public function migrate(): void
44: {
45: // Drop the key from catalog and ACL
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380009.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add update date to playlist
32: */
33: final class Migration380009 extends AbstractMigration
34: {
35: protected array $changelog = ['Add update date to playlist'];
^
36:
37: public function migrate(): void
38: {
39: Dba::write("ALTER TABLE `playlist` DROP COLUMN `last_update`;");
40: $this->updateDatabase("ALTER TABLE `playlist` ADD COLUMN `last_update` int(11) unsigned NOT NULL DEFAULT '0';");
41: }
42: }
43:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380001.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add podcasts
33: */
34: final class Migration380001 extends AbstractMigration
35: {
36: protected array $changelog = ['Add podcasts'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `podcast` (`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `feed` varchar(4096) NOT NULL, `catalog` int(11) NOT NULL, `title` varchar(255) CHARACTER SET $charset NOT NULL, `website` varchar(255) NULL, `description` varchar(4096) CHARACTER SET $charset NULL, `language` varchar(5) NULL, `copyright` varchar(64) NULL, `generator` varchar(64) NULL, `lastbuilddate` int(11) UNSIGNED DEFAULT '0' NOT NULL, `lastsync` int(11) UNSIGNED DEFAULT '0' NOT NULL) ENGINE=$engine");
44: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `podcast_episode` (`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `title` varchar(255) CHARACTER SET $charset NOT NULL, `guid` varchar(255) NOT NULL, `podcast` int(11) NOT NULL, `state` varchar(32) NOT NULL, `file` varchar(4096) CHARACTER SET $charset NULL, `source` varchar(4096) NULL, `size` bigint(20) UNSIGNED DEFAULT '0' NOT NULL, `time` smallint(5) UNSIGNED DEFAULT '0' NOT NULL, `website` varchar(255) NULL, `description` varchar(4096) CHARACTER SET $charset NULL, `author` varchar(64) NULL, `category` varchar(64) NULL, `played` tinyint(1) UNSIGNED DEFAULT '0' NOT NULL, `pubdate` int(11) UNSIGNED NOT NULL, `addition_time` int(11) UNSIGNED NOT NULL) ENGINE=$engine");
45:
46: $this->updatePreferences('podcast_keep', 'Podcast: # latest episodes to keep', '10', 100, 'integer', 'system');
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360022.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Remove unused live_stream fields and add codec field
31: */
32: final class Migration360022 extends AbstractMigration
33: {
34: protected array $changelog = ['Remove unused live_stream fields and add codec field'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `live_stream` ADD COLUMN `codec` varchar(32) NULL AFTER `catalog`, DROP `frequency`, DROP `call_sign`");
39: $this->updateDatabase("ALTER TABLE `stream_playlist` ADD COLUMN `codec` varchar(32) NULL AFTER `time`");
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360015.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * This inserts the Iframes preference...
31: */
32: final class Migration360015 extends AbstractMigration
33: {
34: protected array $changelog = ['Add iframes parameter to preferences'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('iframes', 'Iframes', '1', 25, 'boolean', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360032.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add check update automatically option
31: */
32: final class Migration360032 extends AbstractMigration
33: {
34: protected array $changelog = ['Add check update automatically option'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('autoupdate', 'Check for Ampache updates automatically', '1', 100, 'boolean', 'system');
39: $this->updatePreferences('autoupdate_lastcheck', 'AutoUpdate last check time', '', 25, 'string', 'internal');
40: $this->updatePreferences('autoupdate_lastversion', 'AutoUpdate last version from last check', '', 25, 'string', 'internal');
41: $this->updatePreferences('autoupdate_lastversion_new', 'AutoUpdate last version from last check is newer', '', 25, 'boolean', 'internal');
42: }
43: }
44:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360013.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * MyISAM works better out of the box for the stream_playlist table
32: */
33: final class Migration360013 extends AbstractMigration
34: {
35: protected array $changelog = ['Update stream_playlist table to address performance issues'];
^
36:
37: public function migrate(): void
38: {
39: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
40: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
41:
42: $this->updateDatabase("ALTER TABLE `stream_playlist` ENGINE=$engine;");
43: }
44: }
45:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360008.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Fix bug that caused the remote_username/password fields to not be created.
32: * FIXME: Huh?
33: */
34: final class Migration360008 extends AbstractMigration
35: {
36: protected array $changelog = ['Verify remote_username and remote_password were added correctly to catalog table'];
^
37:
38: public function migrate(): void
39: {
40: $remote_username = false;
41: $remote_password = false;
42:
43: $sql = "DESCRIBE `catalog`";
44: $db_results = Dba::read($sql);
45: while ($row = Dba::fetch_assoc($db_results)) {
46: if ($row['Field'] == 'remote_username') {
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370028.php
ERROR: Parse error at line 35 column 15:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29:
30: /**
31: * Add width and height in table image
32: */
33: final class Migration370028 extends AbstractMigration
34: {
35: protected array $changelog = ['Add width and height in table image'];
^
36:
37: public function migrate(): void
38: {
39: $sql = "SELECT `width` FROM `image`";
40: $db_results = Dba::read($sql);
41: if (!$db_results) {
42: $this->updateDatabase("ALTER TABLE `image` ADD COLUMN `width` int(4) unsigned DEFAULT 0 AFTER `image`");
43: }
44: $sql = "SELECT `height` FROM `image`";
45: $db_results = Dba::read($sql);
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360004.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * This update creates an index on the rating table.
31: */
32: final class Migration360004 extends AbstractMigration
33: {
34: protected array $changelog = ['Add uniqueness constraint to ratings'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("CREATE UNIQUE INDEX `unique_rating` ON `rating` (`user`, `object_type`, `object_id`);");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360027.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Personal information: allow/disallow to show my personal information into now playing and recently played lists.
31: */
32: final class Migration360027 extends AbstractMigration
33: {
34: protected array $changelog = ['Add option to allow/disallow to show personnal information to other users (now playing and recently played)'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('allow_personal_info', 'Allow to show my personal info to other users (now playing, recently played)', '1', 25, 'boolean', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360011.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28: use Generator;
29:
30: /**
31: * We need a place to store actual playlist data for downloadable
32: * playlist files.
33: */
34: final class Migration360011 extends AbstractMigration
35: {
36: protected array $changelog = ['Add table to store stream session playlist'];
^
37:
38: public function migrate(): void
39: {
40: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `stream_playlist` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `sid` varchar(64) NOT NULL, `url` text NOT NULL, `info_url` text DEFAULT NULL, `image_url` text DEFAULT NULL, `title` varchar(255) DEFAULT NULL, `author` varchar(255) DEFAULT NULL, `album` varchar(255) DEFAULT NULL, `type` varchar(255) DEFAULT NULL, `time` smallint(5) DEFAULT NULL, PRIMARY KEY (`id`), KEY `sid` (`sid`));");
41: }
42: public function getTableMigrations(
43: string $collation,
44: string $charset,
45: string $engine
46: ): Generator {
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360037.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add sharing features
33: */
34: final class Migration360037 extends AbstractMigration
35: {
36: protected array $changelog = ['Add sharing features'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `share` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user` int(11) unsigned NOT NULL, `object_type` varchar(32) NOT NULL, `object_id` int(11) unsigned NOT NULL, `allow_stream` tinyint(1) unsigned NOT NULL DEFAULT '0', `allow_download` tinyint(1) unsigned NOT NULL DEFAULT '0', `expire_days` int(4) unsigned NOT NULL DEFAULT '0', `max_counter` int(4) unsigned NOT NULL DEFAULT '0', `secret` varchar(20) CHARACTER SET $charset NULL, `counter` int(4) unsigned NOT NULL DEFAULT '0', `creation_date` int(11) unsigned NOT NULL DEFAULT '0', `lastvisit_date` int(11) unsigned NOT NULL DEFAULT '0', `public_url` varchar(255) CHARACTER SET $charset NULL, `description` varchar(255) CHARACTER SET $charset NULL, PRIMARY KEY (`id`)) ENGINE=$engine");
44:
45: $this->updatePreferences('share', 'Allow Share', '0', 100, 'boolean', 'options');
46: $this->updatePreferences('share_expire', 'Share links default expiration days (0=never)', '7', 100, 'integer', 'system');
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360048.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add concerts options
31: */
32: final class Migration360048 extends AbstractMigration
33: {
34: protected array $changelog = ['Add concerts options'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('concerts_limit_future', 'Limit number of future events', '0', 25, 'integer', 'interface');
39: $this->updatePreferences('concerts_limit_past', 'Limit number of past events', '0', 25, 'integer', 'interface');
40: }
41: }
42:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370008.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add UPnP backend preference
31: */
32: final class Migration370008 extends AbstractMigration
33: {
34: protected array $changelog = ['Add UPnP backend preference'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('upnp_backend', 'Use UPnP backend', '0', 100, 'boolean', 'system');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360030.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * New table to store song previews
33: */
34: final class Migration360030 extends AbstractMigration
35: {
36: protected array $changelog = ['New table to store song previews'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `song_preview` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `session` varchar(256) CHARACTER SET $charset NOT NULL, `artist` int(11) NOT NULL, `title` varchar(255) CHARACTER SET $charset NOT NULL, `album_mbid` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL, `mbid` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL, `disk` int(11) NULL, `track` int(11) NULL, `file` varchar(255) CHARACTER SET $charset NULL, PRIMARY KEY (`id`)) ENGINE=$engine;");
44: }
45:
46: public function getTableMigrations(
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370018.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Module\System\Dba;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Enhance tag persistent merge reference.
33: */
34: final class Migration370018 extends AbstractMigration
35: {
36: protected array $changelog = ['Enhance tag persistent merge reference'];
^
37:
38: public function migrate(): void
39: {
40: $this->updateDatabase("DROP TABLE IF EXISTS `tag_merge`;");
41: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `tag_merge` (`tag_id` int(11) NOT NULL, `merged_to` int(11) NOT NULL, PRIMARY KEY (`tag_id`,`merged_to`), KEY `merged_to` (`merged_to`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;");
42:
43: $sql = "DESCRIBE `tag`";
44: $db_results = Dba::read($sql);
45: $is_hidden = false;
46: while ($row = Dba::fetch_assoc($db_results)) {
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370037.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Delete http_port preference (use ampache.cfg.php configuration instead)
31: */
32: final class Migration370037 extends AbstractMigration
33: {
34: protected array $changelog = ['Delete http_port preference (use ampache.cfg.php configuration instead)'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("DELETE FROM `preference` WHERE `name` = 'http_port';");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370036.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add field for track number when generating streaming playlists
31: */
32: final class Migration370036 extends AbstractMigration
33: {
34: protected array $changelog = ['Add track number field to stream_playlist table'];
^
35:
36: public function migrate(): void
37: {
38: $this->updateDatabase("ALTER TABLE `stream_playlist` ADD COLUMN `track_num` SMALLINT(5) DEFAULT '0';");
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370009.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Enhance video support with TVShows and Movies
33: */
34: final class Migration370009 extends AbstractMigration
35: {
36: protected array $changelog = ['Enhance video support with TVShows and Movies'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $sql_array = array(
44: "ALTER TABLE `video` ADD COLUMN `release_date` date NULL AFTER `enabled`, ADD COLUMN `played` tinyint(1) unsigned DEFAULT '0' NOT NULL AFTER `enabled`",
45: "CREATE TABLE IF NOT EXISTS `tvshow` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(80) NOT NULL, `summary` varchar(256) NULL, `year` int(11) unsigned NULL, PRIMARY KEY (`id`)) ENGINE=$engine",
46: "CREATE TABLE IF NOT EXISTS `tvshow_season` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `season_number` int(11) unsigned NOT NULL, `tvshow` int(11) unsigned NOT NULL, PRIMARY KEY (`id`)) ENGINE=$engine",
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370003.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add show/hide donate button preference
31: */
32: final class Migration370003 extends AbstractMigration
33: {
34: protected array $changelog = ['Add show/hide donate button preference'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('show_donate', 'Show donate button in footer', '1', 25, 'boolean', 'interface');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration380006.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add library item context menu option
31: */
32: final class Migration380006 extends AbstractMigration
33: {
34: protected array $changelog = ['Add library item context menu option'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('libitem_contextmenu', 'Library item context menu', '1', 0, 'boolean', 'interface', 'library');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration370023.php
ERROR: Parse error at line 34 column 15:
24:
25: namespace Ampache\Module\System\Update\Migration\V3;
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Add Aurora.js webplayer option
31: */
32: final class Migration370023 extends AbstractMigration
33: {
34: protected array $changelog = ['Add Aurora.js webplayer option'];
^
35:
36: public function migrate(): void
37: {
38: $this->updatePreferences('webplayer_aurora', 'Authorize JavaScript decoder (Aurora.js) in Web Player(s)', '1', 25, 'boolean', 'streaming');
39: }
40: }
41:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360028.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Module\System\Update\Migration\AbstractMigration;
28:
29: /**
30: * Personal information: allow/disallow to show in now playing.
31: * Personal information: allow/disallow to show in recently played.
32: * Personal information: allow/disallow to show time and/or agent in recently played.
33: */
34: final class Migration360028 extends AbstractMigration
35: {
36: protected array $changelog = [
^
37: 'Personal information: allow/disallow to show in now playing',
38: 'Personal information: allow/disallow to show in recently played',
39: 'Personal information: allow/disallow to show time and/or agent in recently played'
40: ];
41:
42: public function migrate(): void
43: {
44: // Update previous update preference
45: $this->updateDatabase("UPDATE `preference` SET `name`='allow_personal_info_now', `description`='Personal information visibility - Now playing' WHERE `name`='allow_personal_info'");
46:
ERROR: Unable to parse file: /code/src/Module/System/Update/Migration/V3/Migration360044.php
ERROR: Parse error at line 36 column 15:
26:
27: use Ampache\Config\AmpConfig;
28: use Ampache\Module\System\Update\Migration\AbstractMigration;
29: use Generator;
30:
31: /**
32: * Add artist description/recommendation external service data cache
33: */
34: final class Migration360044 extends AbstractMigration
35: {
36: protected array $changelog = ['Add artist description/recommendation external service data cache'];
^
37:
38: public function migrate(): void
39: {
40: $charset = (AmpConfig::get('database_charset', 'utf8mb4'));
41: $engine = ($charset == 'utf8mb4') ? 'InnoDB' : 'MYISAM';
42:
43: $this->updateDatabase("ALTER TABLE `artist` ADD COLUMN `summary` TEXT CHARACTER SET $charset NULL, ADD COLUMN `placeformed` varchar(64) NULL, ADD COLUMN `yearformed` int(4) NULL, ADD COLUMN `last_update` int(11) unsigned NOT NULL DEFAULT '0'");
44:
45: $this->updateDatabase("CREATE TABLE IF NOT EXISTS `recommendation` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT, `object_type` varchar(32) NOT NULL, `object_id` int(11) unsigned NOT NULL, `last_update` int(11) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`)) ENGINE=$engine");
46:
ERROR: Unable to parse file: /code/src/Module/System/Update/UpdateRunner.php
ERROR: Parse error at line 48 column 13:
38: use Generator;
39: use Psr\Log\LoggerInterface;
40: use Throwable;
41: use Traversable;
42:
43: /**
44: * Performs the actual update process
45: */
46: final class UpdateRunner implements UpdateRunnerInterface
47: {
48: private DatabaseConnectionInterface $connection;
^
49:
50: private LoggerInterface $logger;
51:
52: private UpdateInfoRepositoryInterface $updateInfoRepository;
53:
54: private ConfigContainerInterface $configContainer;
55:
56: public function __construct(
57: DatabaseConnectionInterface $connection,
58: LoggerInterface $logger,
ERROR: Unable to parse file: /code/src/Module/System/Update/Updater.php
ERROR: Parse error at line 44 column 13:
34: use Generator;
35: use Psr\Container\ContainerInterface;
36:
37: /**
38: * Provides several utility methods to perform updates
39: */
40: final class Updater implements UpdaterInterface
41: {
42: private const MINIMUM_UPDATABLE_VERSION = 350008;
43:
44: private UpdateHelperInterface $updateHelper;
^
45:
46: private UpdateInfoRepositoryInterface $updateInfoRepository;
47:
48: private ContainerInterface $dic;
49:
50: private UpdateRunnerInterface $updateRunner;
51:
52: public function __construct(
53: UpdateHelperInterface $updateHelper,
54: UpdateInfoRepositoryInterface $updateInfoRepository,
ERROR: Unable to parse file: /code/src/Module/System/Update/Versions.php
ERROR: Parse error at line 36 column 20:
26:
27: use Ampache\Module\System\Update\Migration\MigrationInterface;
28: use Generator;
29:
30: /**
31: * Defines all available versions
32: */
33: final class Versions
34: {
35: /** @var array<int, class-string<MigrationInterface>> List of available migrations */
36: private static array $versions = [
^
37: 360001 => Migration\V3\Migration360001::class,
38: 360002 => Migration\V3\Migration360002::class,
39: 360003 => Migration\V3\Migration360003::class,
40: 360004 => Migration\V3\Migration360004::class,
41: 360005 => Migration\V3\Migration360005::class,
42: 360006 => Migration\V3\Migration360006::class,
43: 360008 => Migration\V3\Migration360008::class,
44: 360009 => Migration\V3\Migration360009::class,
45: 360010 => Migration\V3\Migration360010::class,
46: 360011 => Migration\V3\Migration360011::class,
ERROR: Unable to parse file: /code/src/Module/System/Session.php
ERROR: Parse error at line 47 column 13:
37: use Ampache\Repository\UserRepositoryInterface;
38: use PDOStatement;
39: use Ampache\Repository\Model\Song_Preview;
40: use Ampache\Repository\Model\Tmp_Playlist;
41:
42: /**
43: * This class handles all of the session related stuff in Ampache
44: */
45: final class Session implements SessionInterface
46: {
47: private ConfigContainerInterface $configContainer;
^
48:
49: private AuthenticationManagerInterface $authenticationManager;
50:
51: private UserRepositoryInterface $userRepository;
52:
53: public function __construct(
54: ConfigContainerInterface $configContainer,
55: AuthenticationManagerInterface $authenticationManager,
56: UserRepositoryInterface $userRepository
57: ) {
ERROR: Unable to parse file: /code/src/Module/System/LegacyLogger.php
ERROR: Parse error at line 50 column 13:
40: public const LOG_LEVEL_ERROR = 2;
41: public const LOG_LEVEL_WARNING = 3;
42: public const LOG_LEVEL_NOTICE = 4;
43: public const LOG_LEVEL_DEBUG = 5;
44:
45: public const CONTEXT_TYPE = 'event_type';
46:
47: private const FALLBACK_USERNAME = 'ampache';
48: private const LOG_NAME = 'ampache';
49:
50: private ConfigContainerInterface $configContainer;
^
51:
52: public function __construct(
53: ConfigContainerInterface $configContainer
54: ) {
55: $this->configContainer = $configContainer;
56: }
57:
58: /**
59: * @see LegacyLogger::critical (Required function to implement LoggerInterface)
60: */
ERROR: Unable to parse file: /code/src/Module/System/Cache/ArrayCacheDriver.php
ERROR: Parse error at line 38 column 13:
28: use Psr\SimpleCache\CacheInterface;
29:
30: /**
31: * Simple array-cache implementation
32: *
33: * @see CacheInterface
34: */
35: final class ArrayCacheDriver implements CacheInterface
36: {
37: /** @var array<string, scalar> */
38: private array $cache = [];
^
39:
40: public function get($key, $default = null): mixed
41: {
42: return $this->cache[$key] ?? $default;
43: }
44:
45: public function set($key, $value, $ttl = null): bool
46: {
47: $this->cache[$key] = $value;
48:
ERROR: Unable to parse file: /code/src/Module/System/PreferencesFromRequestUpdater.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\System;
27:
28: use Ampache\Repository\Model\Preference;
29: use Ampache\Module\Authorization\AccessLevelEnum;
30: use Ampache\Module\Authorization\Check\PrivilegeCheckerInterface;
31: use Ampache\Module\Playback\Stream;
32: use DateTimeZone;
33:
34: final class PreferencesFromRequestUpdater implements PreferencesFromRequestUpdaterInterface
35: {
36: private PrivilegeCheckerInterface $privilegeChecker;
^
37:
38: public function __construct(
39: PrivilegeCheckerInterface $privilegeChecker
40: ) {
41: $this->privilegeChecker = $privilegeChecker;
42: }
43:
44: /**
45: * grabs the current keys that should be added and then runs
46: * through $_REQUEST looking for those values and updates them for this user
ERROR: Unable to parse file: /code/src/Module/Playback/Stream_Playlist.php
ERROR: Parse error at line 59 column 12:
49: *
50: * This class is used to generate the Playlists and pass them on
51: * For Localplay this actually just sends the commands to the Localplay
52: * module in question.
53: */
54: class Stream_Playlist
55: {
56: public $id;
57:
58: /** @var list<Stream_Url> */
59: public array $urls = [];
^
60: public int $user;
61: private ?string $streamtoken;
62: public $title;
63:
64: /**
65: * Stream_Playlist constructor
66: * If an ID is passed, it should be a stream session ID.
67: * @param int|string $session_id
68: */
69: public function __construct($session_id = null)
ERROR: Unable to parse file: /code/src/Module/Album/Export/AlbumArtExporter.php
ERROR: Parse error at line 43 column 13:
33: use Ampache\Repository\Model\ModelFactoryInterface;
34: use Ampache\Module\Album\Export;
35: use Ampache\Repository\SongRepositoryInterface;
36:
37: /**
38: * This runs through all of the albums and tries to dump the
39: * art for them into the 'folder.jpg' file in the appropriate dir.
40: */
41: final class AlbumArtExporter implements AlbumArtExporterInterface
42: {
43: private ConfigContainerInterface $configContainer;
^
44:
45: private ModelFactoryInterface $modelFactory;
46:
47: private SongRepositoryInterface $songRepository;
48:
49: public function __construct(
50: ConfigContainerInterface $configContainer,
51: ModelFactoryInterface $modelFactory,
52: SongRepositoryInterface $songRepository
53: ) {
ERROR: Unable to parse file: /code/src/Module/Album/Deletion/AlbumDeleter.php
ERROR: Parse error at line 47 column 13:
37: use Ampache\Repository\ShoutRepositoryInterface;
38: use Ampache\Repository\SongRepositoryInterface;
39: use Ampache\Repository\UserActivityRepositoryInterface;
40: use Psr\Log\LoggerInterface;
41:
42: /**
43: * Deletes an album including all songs
44: */
45: final class AlbumDeleter implements AlbumDeleterInterface
46: {
47: private AlbumRepositoryInterface $albumRepository;
^
48:
49: private ModelFactoryInterface $modelFactory;
50:
51: private LoggerInterface $logger;
52:
53: private SongRepositoryInterface $songRepository;
54:
55: private ShoutRepositoryInterface $shoutRepository;
56:
57: private SongDeleterInterface $songDeleter;
ERROR: Unable to parse file: /code/src/Module/Album/Tag/AlbumTagUpdater.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Module\Album\Tag;
27:
28: use Ampache\Repository\Model\Album;
29: use Ampache\Repository\Model\Tag;
30: use Ampache\Repository\SongRepositoryInterface;
31:
32: final class AlbumTagUpdater implements AlbumTagUpdaterInterface
33: {
34: private SongRepositoryInterface $songRepository;
^
35:
36: public function __construct(
37: SongRepositoryInterface $songRepository
38: ) {
39: $this->songRepository = $songRepository;
40: }
41:
42: /**
43: * Update tags of albums and/or songs
44: */
ERROR: Unable to parse file: /code/src/Module/Authorization/GuiGatekeeper.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Module\Authorization\Check\PrivilegeCheckerInterface;
29: use Ampache\Module\System\Core;
30: use Ampache\Repository\Model\User;
31:
32: /**
33: * Routes access checks and other authorization related calls to its static versions
34: */
35: final class GuiGatekeeper implements GuiGatekeeperInterface
36: {
37: private PrivilegeCheckerInterface $privilegeChecker;
^
38:
39: public function __construct(
40: PrivilegeCheckerInterface $privilegeChecker
41: ) {
42: $this->privilegeChecker = $privilegeChecker;
43: }
44:
45: public function mayAccess(
46: string $access_type,
47: int $access_level
ERROR: Unable to parse file: /code/src/Module/Authorization/GatekeeperFactory.php
ERROR: Parse error at line 32 column 13:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Module\Authorization;
27:
28: use Ampache\Module\Authorization\Check\PrivilegeCheckerInterface;
29:
30: final class GatekeeperFactory implements GatekeeperFactoryInterface
31: {
32: private PrivilegeCheckerInterface $privilegeChecker;
^
33:
34: public function __construct(
35: PrivilegeCheckerInterface $privilegeChecker
36: ) {
37: $this->privilegeChecker = $privilegeChecker;
38: }
39:
40: public function createGuiGatekeeper(): GuiGatekeeperInterface
41: {
42: return new GuiGatekeeper(
ERROR: Unable to parse file: /code/src/Module/Authorization/Check/NetworkChecker.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\Authorization\Check;
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\Authorization\AccessLevelEnum;
31: use Ampache\Module\System\Core;
32: use Ampache\Repository\AccessRepositoryInterface;
33:
34: final class NetworkChecker implements NetworkCheckerInterface
35: {
36: private ConfigContainerInterface $configContainer;
^
37:
38: private AccessRepositoryInterface $accessRepository;
39:
40: public function __construct(
41: ConfigContainerInterface $configContainer,
42: AccessRepositoryInterface $accessRepository
43: ) {
44: $this->configContainer = $configContainer;
45: $this->accessRepository = $accessRepository;
46: }
ERROR: Unable to parse file: /code/src/Module/Authorization/Check/PrivilegeChecker.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Repository\Model\ModelFactoryInterface;
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\System\Core;
33: use Ampache\Repository\Model\User;
34:
35: final class PrivilegeChecker implements PrivilegeCheckerInterface
36: {
37: private ConfigContainerInterface $configContainer;
^
38:
39: private ModelFactoryInterface $modelFactory;
40:
41: public function __construct(
42: ConfigContainerInterface $configContainer,
43: ModelFactoryInterface $modelFactory
44: ) {
45: $this->configContainer = $configContainer;
46: $this->modelFactory = $modelFactory;
47: }
ERROR: Unable to parse file: /code/src/Module/Authorization/Check/FunctionChecker.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Repository\Model\User;
31: use Ampache\Module\Authorization\AccessLevelEnum;
32: use Ampache\Module\System\Core;
33: use Ampache\Module\System\LegacyLogger;
34: use Psr\Log\LoggerInterface;
35:
36: final class FunctionChecker implements FunctionCheckerInterface
37: {
38: private ConfigContainerInterface $configContainer;
^
39:
40: private LoggerInterface $logger;
41:
42: public function __construct(
43: ConfigContainerInterface $configContainer,
44: LoggerInterface $logger
45: ) {
46: $this->configContainer = $configContainer;
47: $this->logger = $logger;
48: }
ERROR: Unable to parse file: /code/src/Module/Authorization/AccessListManager.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Authorization\Exception\InvalidEndIpException;
30: use Ampache\Module\Authorization\Exception\InvalidIpRangeException;
31: use Ampache\Module\Authorization\Exception\InvalidStartIpException;
32: use Ampache\Repository\AccessRepositoryInterface;
33:
34: /**
35: * Manages the creation and update of acl items
36: */
37: final class AccessListManager implements AccessListManagerInterface
38: {
39: private AccessRepositoryInterface $accessRepository;
^
40:
41: public function __construct(
42: AccessRepositoryInterface $accessRepository
43: ) {
44: $this->accessRepository = $accessRepository;
45: }
46:
47: /**
48: * Updates an existing acl item
49: *
ERROR: Unable to parse file: /code/src/Module/User/NewPasswordSender.php
ERROR: Parse error at line 35 column 13:
25:
26: namespace Ampache\Module\User;
27:
28: use Ampache\Module\Util\Mailer;
29: use Ampache\Repository\Model\User;
30: use Ampache\Repository\UserRepositoryInterface;
31: use PHPMailer\PHPMailer\Exception;
32:
33: final class NewPasswordSender implements NewPasswordSenderInterface
34: {
35: private PasswordGeneratorInterface $passwordGenerator;
^
36:
37: private UserRepositoryInterface $userRepository;
38:
39: public function __construct(
40: PasswordGeneratorInterface $passwordGenerator,
41: UserRepositoryInterface $userRepository
42: ) {
43: $this->passwordGenerator = $passwordGenerator;
44: $this->userRepository = $userRepository;
45: }
ERROR: Unable to parse file: /code/src/Module/User/Activity/TypeHandler/AlbumActivityTypeHandler.php
ERROR: Parse error at line 32 column 13:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Module\User\Activity\TypeHandler;
27:
28: use Ampache\Repository\UserActivityRepositoryInterface;
29:
30: final class AlbumActivityTypeHandler extends GenericActivityTypeHandler
31: {
32: private UserActivityRepositoryInterface $userActivityRepository;
^
33:
34: public function __construct(
35: UserActivityRepositoryInterface $userActivityRepository
36: ) {
37: parent::__construct($userActivityRepository);
38:
39: $this->userActivityRepository = $userActivityRepository;
40: }
41:
42: public function registerActivity(
ERROR: Unable to parse file: /code/src/Module/User/Activity/TypeHandler/ArtistActivityTypeHandler.php
ERROR: Parse error at line 32 column 13:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Module\User\Activity\TypeHandler;
27:
28: use Ampache\Repository\UserActivityRepositoryInterface;
29:
30: final class ArtistActivityTypeHandler extends GenericActivityTypeHandler
31: {
32: private UserActivityRepositoryInterface $userActivityRepository;
^
33:
34: public function __construct(
35: UserActivityRepositoryInterface $userActivityRepository
36: ) {
37: parent::__construct($userActivityRepository);
38:
39: $this->userActivityRepository = $userActivityRepository;
40: }
41:
42: public function registerActivity(
ERROR: Unable to parse file: /code/src/Module/User/Activity/TypeHandler/ActivityTypeHandlerMapper.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Repository\UserActivityRepositoryInterface;
29:
30: final class ActivityTypeHandlerMapper implements ActivityTypeHandlerMapperInterface
31: {
32: private const MAP = [
33: ActivityTypeEnum::TYPE_SONG => SongActivityTypeHandler::class,
34: ActivityTypeEnum::TYPE_ALBUM => AlbumActivityTypeHandler::class,
35: ActivityTypeEnum::TYPE_ARTIST => ArtistActivityTypeHandler::class,
36: ];
37:
38: private UserActivityRepositoryInterface $userActivityRepository;
^
39:
40: public function __construct(
41: UserActivityRepositoryInterface $userActivityRepository
42: ) {
43: $this->userActivityRepository = $userActivityRepository;
44: }
45:
46: /**
47: * Maps a certain object type to a type handler class. Returns a generic handler if
48: * no specific one is available for the type
ERROR: Unable to parse file: /code/src/Module/User/Activity/TypeHandler/SongActivityTypeHandler.php
ERROR: Parse error at line 32 column 13:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Module\User\Activity\TypeHandler;
27:
28: use Ampache\Repository\UserActivityRepositoryInterface;
29:
30: final class SongActivityTypeHandler extends GenericActivityTypeHandler
31: {
32: private UserActivityRepositoryInterface $userActivityRepository;
^
33:
34: public function __construct(
35: UserActivityRepositoryInterface $userActivityRepository
36: ) {
37: parent::__construct($userActivityRepository);
38:
39: $this->userActivityRepository = $userActivityRepository;
40: }
41:
42: public function registerActivity(
ERROR: Unable to parse file: /code/src/Module/User/Activity/TypeHandler/GenericActivityTypeHandler.php
ERROR: Parse error at line 32 column 13:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Module\User\Activity\TypeHandler;
27:
28: use Ampache\Repository\UserActivityRepositoryInterface;
29:
30: class GenericActivityTypeHandler implements ActivityTypeHandlerInterface
31: {
32: private UserActivityRepositoryInterface $userActivityRepository;
^
33:
34: public function __construct(
35: UserActivityRepositoryInterface $userActivityRepository
36: ) {
37: $this->userActivityRepository = $userActivityRepository;
38: }
39:
40: public function registerActivity(
41: int $objectId,
42: string $objectType,
ERROR: Unable to parse file: /code/src/Module/User/Activity/UserActivityPoster.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Module\User\Activity;
27:
28: use Ampache\Module\System\LegacyLogger;
29: use Ampache\Module\User\Activity\TypeHandler\ActivityTypeHandlerMapperInterface;
30: use Psr\Log\LoggerInterface;
31:
32: final class UserActivityPoster implements UserActivityPosterInterface
33: {
34: private ActivityTypeHandlerMapperInterface $activityTypeHandlerMapper;
^
35:
36: private LoggerInterface $logger;
37:
38: public function __construct(
39: ActivityTypeHandlerMapperInterface $activityTypeHandlerMapper,
40: LoggerInterface $logger
41: ) {
42: $this->activityTypeHandlerMapper = $activityTypeHandlerMapper;
43: $this->logger = $logger;
44: }
ERROR: Unable to parse file: /code/src/Module/User/Activity/UserActivityRenderer.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Module\User\Activity;
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Repository\Model\library_item;
30: use Ampache\Repository\Model\ModelFactoryInterface;
31: use Ampache\Repository\Model\Useractivity;
32: use Ampache\Module\Util\ObjectTypeToClassNameMapper;
33:
34: final class UserActivityRenderer implements UserActivityRendererInterface
35: {
36: private ConfigContainerInterface $configContainer;
^
37:
38: private ModelFactoryInterface $modelFactory;
39:
40: public function __construct(
41: ConfigContainerInterface $configContainer,
42: ModelFactoryInterface $modelFactory
43: ) {
44: $this->configContainer = $configContainer;
45: $this->modelFactory = $modelFactory;
46: }
ERROR: Unable to parse file: /code/src/Module/User/Following/UserFollowStateRenderer.php
ERROR: Parse error at line 31 column 13:
21: *
22: */
23:
24: namespace Ampache\Module\User\Following;
25:
26: use Ampache\Module\Api\Ajax;
27: use Ampache\Repository\UserFollowerRepositoryInterface;
28:
29: final class UserFollowStateRenderer implements UserFollowStateRendererInterface
30: {
31: private UserFollowerRepositoryInterface $userFollowerRepository;
^
32:
33: public function __construct(
34: UserFollowerRepositoryInterface $userFollowerRepository
35: ) {
36: $this->userFollowerRepository = $userFollowerRepository;
37: }
38:
39: /**
40: * Get html code to display the follow/unfollow link
41: *
ERROR: Unable to parse file: /code/src/Module/User/Following/UserFollowToggler.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Module\User\Following;
27:
28: use Ampache\Module\User\Activity\UserActivityPosterInterface;
29: use Ampache\Repository\UserFollowerRepositoryInterface;
30:
31: final class UserFollowToggler implements UserFollowTogglerInterface
32: {
33: private UserFollowerRepositoryInterface $userFollowerRepository;
^
34:
35: private UserActivityPosterInterface $userActivityPoster;
36:
37: public function __construct(
38: UserFollowerRepositoryInterface $userFollowerRepository,
39: UserActivityPosterInterface $userActivityPoster
40: ) {
41: $this->userFollowerRepository = $userFollowerRepository;
42: $this->userActivityPoster = $userActivityPoster;
43: }
ERROR: Unable to parse file: /code/src/Module/User/UserStateToggler.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Repository\Model\User;
31: use Ampache\Module\Util\UtilityFactoryInterface;
32: use Ampache\Repository\UserRepositoryInterface;
33:
34: /**
35: * Disables/Enables users
36: */
37: final class UserStateToggler implements UserStateTogglerInterface
38: {
39: private ConfigContainerInterface $configContainer;
^
40:
41: private UtilityFactoryInterface $utilityFactory;
42:
43: private UserRepositoryInterface $userRepository;
44:
45: public function __construct(
46: ConfigContainerInterface $configContainer,
47: UtilityFactoryInterface $utilityFactory,
48: UserRepositoryInterface $userRepository
49: ) {
ERROR: Unable to parse file: /code/src/Module/User/PrivateMessage/PrivateMessageCreator.php
ERROR: Parse error at line 36 column 20:
26: namespace Ampache\Module\User\PrivateMessage;
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Repository\Model\Preference;
30: use Ampache\Repository\Model\User;
31: use Ampache\Module\Util\UtilityFactoryInterface;
32: use Ampache\Repository\PrivateMessageRepositoryInterface;
33:
34: final class PrivateMessageCreator implements PrivateMessageCreatorInterface
35: {
36: private PrivateMessageRepositoryInterface $privateMessageRepository;
^
37:
38: private UtilityFactoryInterface $utilityFactory;
39:
40: private ConfigContainerInterface $configContainer;
41:
42: public function __construct(
43: PrivateMessageRepositoryInterface $privateMessageRepository,
44: UtilityFactoryInterface $utilityFactory,
45: ConfigContainerInterface $configContainer
46: ) {
ERROR: Unable to parse file: /code/src/Module/User/Tracking/UserTracker.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Module\System\Core;
31: use Ampache\Module\System\LegacyLogger;
32: use Ampache\Repository\IpHistoryRepositoryInterface;
33: use Ampache\Repository\Model\User;
34: use DateTimeImmutable;
35: use Psr\Log\LoggerInterface;
36:
37: final class UserTracker implements UserTrackerInterface
38: {
39: private IpHistoryRepositoryInterface $ipHistoryRepository;
^
40:
41: private LoggerInterface $logger;
42:
43: private ConfigContainerInterface $configContainer;
44:
45: public function __construct(
46: ConfigContainerInterface $configContainer,
47: IpHistoryRepositoryInterface $ipHistoryRepository,
48: LoggerInterface $logger
49: ) {
ERROR: Unable to parse file: /code/src/Module/User/Registration/RegistrationAgreementRenderer.php
ERROR: Parse error at line 32 column 13:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: */
24:
25: namespace Ampache\Module\User\Registration;
26:
27: /**
28: * Default registration agreement renderer (renders static file))
29: */
30: final class RegistrationAgreementRenderer implements RegistrationAgreementRendererInterface
31: {
32: private string $filePath;
^
33:
34: public function __construct(
35: string $filePath = __DIR__ . '/../../../../config/registration_agreement.php'
36: ) {
37: $this->filePath = $filePath;
38: }
39: /**
40: * Renders the registration agreement (if available))
41: */
42: public function render(): string
ERROR: Unable to parse file: /code/src/Module/User/Authorization/UserKeyGenerator.php
ERROR: Parse error at line 34 column 13:
24: namespace Ampache\Module\User\Authorization;
25:
26: use Ampache\Repository\Model\User;
27: use Ampache\Module\System\LegacyLogger;
28: use Ampache\Repository\UserRepositoryInterface;
29: use Exception;
30: use Psr\Log\LoggerInterface;
31:
32: final class UserKeyGenerator implements UserKeyGeneratorInterface
33: {
34: private UserRepositoryInterface $userRepository;
^
35:
36: private LoggerInterface $logger;
37:
38: public function __construct(
39: UserRepositoryInterface $userRepository,
40: LoggerInterface $logger
41: ) {
42: $this->userRepository = $userRepository;
43: $this->logger = $logger;
44: }
ERROR: Unable to parse file: /code/src/Gui/GuiFactory.php
ERROR: Parse error at line 68 column 13:
58: use Ampache\Module\Authorization\GuiGatekeeperInterface;
59: use Ampache\Module\Authorization\Check\FunctionCheckerInterface;
60: use Ampache\Module\Playlist\PlaylistLoaderInterface;
61: use Ampache\Module\Util\AjaxUriRetrieverInterface;
62: use Ampache\Module\Util\ZipHandlerInterface;
63: use Ampache\Repository\UpdateInfoRepositoryInterface;
64: use Ampache\Repository\VideoRepositoryInterface;
65:
66: final class GuiFactory implements GuiFactoryInterface
67: {
68: private ConfigContainerInterface $configContainer;
^
69:
70: private ModelFactoryInterface $modelFactory;
71:
72: private ZipHandlerInterface $zipHandler;
73:
74: private FunctionCheckerInterface $functionChecker;
75:
76: private AjaxUriRetrieverInterface $ajaxUriRetriever;
77:
78: private PlaylistLoaderInterface $playlistLoader;
ERROR: Unable to parse file: /code/src/Gui/Playlist/PlaylistViewAdapter.php
ERROR: Parse error at line 45 column 13:
35: use Ampache\Module\Api\Ajax;
36: use Ampache\Module\Authorization\AccessLevelEnum;
37: use Ampache\Module\Authorization\GuiGatekeeperInterface;
38: use Ampache\Module\Authorization\Check\FunctionCheckerInterface;
39: use Ampache\Module\Playback\Stream_Playlist;
40: use Ampache\Module\Util\Ui;
41: use Ampache\Module\Util\ZipHandlerInterface;
42:
43: final class PlaylistViewAdapter implements PlaylistViewAdapterInterface
44: {
45: private ConfigContainerInterface $configContainer;
^
46:
47: private ModelFactoryInterface $modelFactory;
48:
49: private ZipHandlerInterface $zipHandler;
50:
51: private FunctionCheckerInterface $functionChecker;
52:
53: private GuiGatekeeperInterface $gatekeeper;
54:
55: private Playlist $playlist;
ERROR: Unable to parse file: /code/src/Gui/Playlist/NewPlaylistDialogAdapter.php
ERROR: Parse error at line 35 column 13:
25:
26: namespace Ampache\Gui\Playlist;
27:
28: use Ampache\Repository\Model\Playlist;
29: use Ampache\Module\Authorization\GuiGatekeeperInterface;
30: use Ampache\Module\Playlist\PlaylistLoaderInterface;
31: use Ampache\Module\Util\AjaxUriRetrieverInterface;
32:
33: final class NewPlaylistDialogAdapter implements NewPlaylistDialogAdapterInterface
34: {
35: private PlaylistLoaderInterface $playlistLoader;
^
36:
37: private AjaxUriRetrieverInterface $ajaxUriRetriever;
38:
39: private GuiGatekeeperInterface $gatekeeper;
40:
41: private string $object_type;
42:
43: private string $object_ids;
44:
45: public function __construct(
ERROR: Unable to parse file: /code/src/Gui/Catalog/CatalogDetails.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Gui\Catalog;
27:
28: use Ampache\Gui\GuiFactoryInterface;
29: use Ampache\Gui\Stats\CatalogStatsInterface;
30: use Ampache\Repository\Model\Catalog;
31:
32: final class CatalogDetails implements CatalogDetailsInterface
33: {
34: private GuiFactoryInterface $guiFactory;
^
35:
36: private Catalog $catalog;
37:
38: public function __construct(
39: GuiFactoryInterface $guiFactory,
40: Catalog $catalog
41: ) {
42: $this->guiFactory = $guiFactory;
43: $this->catalog = $catalog;
44: }
ERROR: Unable to parse file: /code/src/Gui/Stats/StatsViewAdapter.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Config\ConfigurationKeyEnum;
30: use Ampache\Gui\Catalog\CatalogDetailsInterface;
31: use Ampache\Gui\GuiFactoryInterface;
32: use Ampache\Repository\Model\Catalog;
33: use Ampache\Repository\Model\Video;
34: use Ampache\Repository\VideoRepositoryInterface;
35:
36: final class StatsViewAdapter implements StatsViewAdapterInterface
37: {
38: private ConfigContainerInterface $configContainer;
^
39:
40: private GuiFactoryInterface $guiFactory;
41:
42: private VideoRepositoryInterface $videoRepository;
43:
44: public function __construct(
45: ConfigContainerInterface $configContainer,
46: GuiFactoryInterface $guiFactory,
47: VideoRepositoryInterface $videoRepository
48: ) {
ERROR: Unable to parse file: /code/src/Gui/Stats/CatalogStats.php
ERROR: Parse error at line 47 column 13:
37: * album_disk?: int,
38: * artist?: int,
39: * song?: int,
40: * podcast?: int,
41: * podcast_episode?: int,
42: * items?: int,
43: * video?: int,
44: * user?: int
45: * } $stats
46: */
47: private array $stats;
^
48:
49: /**
50: * @param array{
51: * tags: int,
52: * formatted_size: string,
53: * time_text: string,
54: * users: int,
55: * connected: int,
56: * album?: int,
57: * album_disk?: int,
ERROR: Unable to parse file: /code/src/Gui/TalView.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use PhpTal\PHPTAL;
30: use PhpTal\PhpTalInterface;
31:
32: /**
33: * Renders templates using the phptal rendering engine
34: */
35: final class TalView implements TalViewInterface
36: {
37: private TalFactoryInterface $talFactory;
^
38:
39: private ConfigContainerInterface $configContainer;
40:
41: private GuiFactoryInterface $guiFactory;
42:
43: private ?PhpTalInterface $engine = null;
44:
45: public function __construct(
46: TalFactoryInterface $talFactory,
47: ConfigContainerInterface $configContainer,
ERROR: Unable to parse file: /code/src/Gui/Song/SongViewAdapter.php
ERROR: Parse error at line 46 column 13:
36: use Ampache\Module\Api\Ajax;
37: use Ampache\Module\Application\Song\DeleteAction;
38: use Ampache\Module\Authorization\AccessLevelEnum;
39: use Ampache\Module\Authorization\GuiGatekeeperInterface;
40: use Ampache\Module\Playback\Stream_Playlist;
41: use Ampache\Module\System\Core;
42: use Ampache\Module\Util\Ui;
43:
44: final class SongViewAdapter implements SongViewAdapterInterface
45: {
46: private ConfigContainerInterface $configContainer;
^
47:
48: private ModelFactoryInterface $modelFactory;
49:
50: private GuiGatekeeperInterface $gatekeeper;
51:
52: private Song $song;
53:
54: public function __construct(
55: ConfigContainerInterface $configContainer,
56: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Gui/TalFactory.php
ERROR: Parse error at line 35 column 13:
25:
26: namespace Ampache\Gui;
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use PhpTal\PHPTAL;
30: use PhpTal\PhpTalInterface;
31: use PhpTal\TranslationServiceInterface;
32:
33: final class TalFactory implements TalFactoryInterface
34: {
35: private ConfigContainerInterface $configContainer;
^
36:
37: private GuiFactoryInterface $guiFactory;
38:
39: public function __construct(
40: ConfigContainerInterface $configContainer,
41: GuiFactoryInterface $guiFactory
42: ) {
43: $this->configContainer = $configContainer;
44: $this->guiFactory = $guiFactory;
45: }
ERROR: Unable to parse file: /code/src/Gui/AlbumDisk/AlbumDiskViewAdapter.php
ERROR: Parse error at line 49 column 13:
39: use Ampache\Module\Application\Album\DeleteAction;
40: use Ampache\Module\Authorization\AccessLevelEnum;
41: use Ampache\Module\Authorization\GuiGatekeeperInterface;
42: use Ampache\Module\Authorization\Check\FunctionCheckerInterface;
43: use Ampache\Module\Playback\Stream_Playlist;
44: use Ampache\Module\Util\Ui;
45: use Ampache\Module\Util\ZipHandlerInterface;
46:
47: final class AlbumDiskViewAdapter implements AlbumDiskViewAdapterInterface
48: {
49: private ConfigContainerInterface $configContainer;
^
50:
51: private ModelFactoryInterface $modelFactory;
52:
53: private ZipHandlerInterface $zipHandler;
54:
55: private FunctionCheckerInterface $functionChecker;
56:
57: private GuiGatekeeperInterface $gatekeeper;
58:
59: private Browse $browse;
ERROR: Unable to parse file: /code/src/Gui/System/ConfigViewAdapter.php
ERROR: Parse error at line 31 column 13:
21: *
22: */
23:
24: namespace Ampache\Gui\System;
25:
26: use Ampache\Config\ConfigContainerInterface;
27: use Ampache\Config\ConfigurationKeyEnum;
28:
29: final class ConfigViewAdapter implements ConfigViewAdapterInterface
30: {
31: private ConfigContainerInterface $configContainer;
^
32:
33: public function __construct(
34: ConfigContainerInterface $configContainer
35: ) {
36: $this->configContainer = $configContainer;
37: }
38:
39: public function isWaveformEnabled(): bool
40: {
41: return $this->configContainer->isFeatureEnabled(ConfigurationKeyEnum::WAVEFORM);
ERROR: Unable to parse file: /code/src/Gui/System/UpdateViewAdapter.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Application\Update\UpdateAction;
31: use Ampache\Module\System\AmpError;
32: use Ampache\Module\System\Update;
33: use Ampache\Module\Util\Ui;
34: use Ampache\Repository\Model\UpdateInfoEnum;
35: use Ampache\Repository\UpdateInfoRepositoryInterface;
36: use Generator;
37:
38: final class UpdateViewAdapter implements UpdateViewAdapterInterface
39: {
40: private ConfigContainerInterface $configContainer;
^
41:
42: private UpdateInfoRepositoryInterface $updateInfoRepository;
43:
44: private Update\UpdateHelperInterface $updateHelper;
45:
46: private Update\UpdaterInterface $updater;
47:
48: public function __construct(
49: ConfigContainerInterface $configContainer,
50: UpdateInfoRepositoryInterface $updateInfoRepository,
ERROR: Unable to parse file: /code/src/Gui/Album/AlbumViewAdapter.php
ERROR: Parse error at line 49 column 13:
39: use Ampache\Module\Application\Album\DeleteAction;
40: use Ampache\Module\Authorization\AccessLevelEnum;
41: use Ampache\Module\Authorization\GuiGatekeeperInterface;
42: use Ampache\Module\Authorization\Check\FunctionCheckerInterface;
43: use Ampache\Module\Playback\Stream_Playlist;
44: use Ampache\Module\Util\Ui;
45: use Ampache\Module\Util\ZipHandlerInterface;
46:
47: final class AlbumViewAdapter implements AlbumViewAdapterInterface
48: {
49: private ConfigContainerInterface $configContainer;
^
50:
51: private ModelFactoryInterface $modelFactory;
52:
53: private ZipHandlerInterface $zipHandler;
54:
55: private FunctionCheckerInterface $functionChecker;
56:
57: private GuiGatekeeperInterface $gatekeeper;
58:
59: private Browse $browse;
ERROR: Unable to parse file: /code/src/Repository/LicenseRepository.php
ERROR: Parse error at line 42 column 15:
32:
33: /**
34: * Manages access to license data
35: *
36: * Tables: `license`
37: *
38: * @extends BaseRepository<License>
39: */
40: final class LicenseRepository extends BaseRepository implements LicenseRepositoryInterface
41: {
42: protected DatabaseConnectionInterface $connection;
^
43:
44: public function __construct(
45: DatabaseConnectionInterface $connection
46: ) {
47: $this->connection = $connection;
48: }
49:
50: /**
51: * Returns a list of licenses accessible by the current user.
52: *
ERROR: Unable to parse file: /code/src/Repository/ImageRepository.php
ERROR: Parse error at line 39 column 13:
29: use Generator;
30: use PDO;
31:
32: /**
33: * Manages database access related to images (`Art`)
34: *
35: * Tables: `image`
36: */
37: final class ImageRepository implements ImageRepositoryInterface
38: {
39: private DatabaseConnectionInterface $connection;
^
40:
41: public function __construct(
42: DatabaseConnectionInterface $connection
43: ) {
44: $this->connection = $connection;
45: }
46:
47: /**
48: * Get the object details for the art table
49: */
ERROR: Unable to parse file: /code/src/Repository/ArtistRepository.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Repository;
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Module\Database\DatabaseConnectionInterface;
30: use Ampache\Module\System\Dba;
31: use Ampache\Repository\Model\Artist;
32: use Ampache\Repository\Model\Catalog;
33:
34: final class ArtistRepository implements ArtistRepositoryInterface
35: {
36: private DatabaseConnectionInterface $connection;
^
37:
38: public function __construct(
39: DatabaseConnectionInterface $connection
40: ) {
41: $this->connection = $connection;
42: }
43:
44: /**
45: * Deletes the artist entry
46: */
ERROR: Unable to parse file: /code/src/Repository/SongRepository.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Repository\Model\Artist;
31: use Ampache\Repository\Model\Catalog;
32: use Ampache\Module\System\Core;
33: use Ampache\Module\System\Dba;
34: use Ampache\Repository\Model\Song;
35: use Ampache\Repository\Model\Tag;
36: use Generator;
37:
38: final class SongRepository implements SongRepositoryInterface
39: {
40: private DatabaseConnectionInterface $connection;
^
41:
42: public function __construct(
43: DatabaseConnectionInterface $connection
44: ) {
45: $this->connection = $connection;
46: }
47:
48: /**
49: * gets the songs for an album takes an optional limit
50: *
ERROR: Unable to parse file: /code/src/Repository/ShareRepository.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Repository\Model\User;
35: use DateTimeInterface;
36:
37: /**
38: * Manages share related database access
39: *
40: * Tables: `share`
41: */
42: final class ShareRepository implements ShareRepositoryInterface
43: {
44: private DatabaseConnectionInterface $connection;
^
45:
46: private ConfigContainerInterface $configContainer;
47:
48: public function __construct(
49: DatabaseConnectionInterface $connection,
50: ConfigContainerInterface $configContainer
51: ) {
52: $this->connection = $connection;
53: $this->configContainer = $configContainer;
54: }
ERROR: Unable to parse file: /code/src/Repository/BaseRepository.php
ERROR: Parse error at line 37 column 15:
27:
28: use Ampache\Module\Database\DatabaseConnectionInterface;
29: use Ampache\Repository\Model\ModelInterface;
30: use PDO;
31:
32: /**
33: * @template TModel as ModelInterface
34: */
35: abstract class BaseRepository
36: {
37: protected DatabaseConnectionInterface $connection;
^
38:
39: /**
40: * @return class-string<TModel>
41: */
42: abstract protected function getModelClass(): string;
43:
44: abstract protected function getTableName(): string;
45:
46: /**
47: * @return list<mixed>
ERROR: Unable to parse file: /code/src/Repository/PrivateMessageRepository.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Repository\Model\PrivateMessageInterface;
31: use Ampache\Repository\Model\User;
32:
33: /**
34: * Manages database access related to private-message
35: *
36: * Table: `user_pvmsg`
37: */
38: final class PrivateMessageRepository implements PrivateMessageRepositoryInterface
39: {
40: private ModelFactoryInterface $modelFactory;
^
41:
42: private DatabaseConnectionInterface $connection;
43:
44: public function __construct(
45: ModelFactoryInterface $modelFactory,
46: DatabaseConnectionInterface $connection
47: ) {
48: $this->modelFactory = $modelFactory;
49: $this->connection = $connection;
50: }
ERROR: Unable to parse file: /code/src/Repository/AlbumDiskRepository.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Module\Database\DatabaseConnectionInterface;
29: use Ampache\Repository\Model\Album;
30: use Ampache\Repository\Model\AlbumDisk;
31:
32: /**
33: * Provides database access to album-disks
34: */
35: final class AlbumDiskRepository implements AlbumDiskRepositoryInterface
36: {
37: private DatabaseConnectionInterface $connection;
^
38:
39: public function __construct(
40: DatabaseConnectionInterface $connection
41: ) {
42: $this->connection = $connection;
43: }
44:
45: /**
46: * Returns the disks for an album
47: *
ERROR: Unable to parse file: /code/src/Repository/PodcastRepository.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Repository\Model\Podcast;
31: use Generator;
32:
33: /**
34: * Manages podcast related database access
35: *
36: * Tables: `podcast`, `podcast_episode`, `deleted_podcast_episodes`
37: */
38: final class PodcastRepository implements PodcastRepositoryInterface
39: {
40: private ModelFactoryInterface $modelFactory;
^
41:
42: private DatabaseConnectionInterface $connection;
43:
44: public function __construct(
45: ModelFactoryInterface $modelFactory,
46: DatabaseConnectionInterface $connection
47: ) {
48: $this->modelFactory = $modelFactory;
49: $this->connection = $connection;
50: }
ERROR: Unable to parse file: /code/src/Repository/BookmarkRepository.php
ERROR: Parse error at line 35 column 13:
25:
26: namespace Ampache\Repository;
27:
28: use Ampache\Module\Database\DatabaseConnectionInterface;
29: use Ampache\Repository\Model\Bookmark;
30: use Ampache\Repository\Model\User;
31: use DateTimeInterface;
32:
33: final class BookmarkRepository implements BookmarkRepositoryInterface
34: {
35: private DatabaseConnectionInterface $connection;
^
36:
37: public function __construct(
38: DatabaseConnectionInterface $connection
39: ) {
40: $this->connection = $connection;
41: }
42:
43: /**
44: * @return list<int>
45: */
ERROR: Unable to parse file: /code/src/Repository/AlbumRepository.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Module\Database\DatabaseConnectionInterface;
30: use Ampache\Module\System\Core;
31: use Ampache\Module\System\Dba;
32: use Ampache\Repository\Model\Album;
33: use Ampache\Repository\Model\Catalog;
34:
35: final class AlbumRepository implements AlbumRepositoryInterface
36: {
37: private DatabaseConnectionInterface $connection;
^
38:
39: public function __construct(
40: DatabaseConnectionInterface $connection
41: ) {
42: $this->connection = $connection;
43: }
44:
45: /**
46: * This returns a number of random albums
47: *
ERROR: Unable to parse file: /code/src/Repository/DeletedPodcastEpisodeRepository.php
ERROR: Parse error at line 39 column 13:
29: use Generator;
30: use PDO;
31:
32: /**
33: * Manages database access related to deleted podcast-episodes
34: *
35: * Tables: `deleted_podcast_episodes`
36: */
37: final class DeletedPodcastEpisodeRepository implements DeletedPodcastEpisodeRepositoryInterface
38: {
39: private DatabaseConnectionInterface $connection;
^
40:
41: public function __construct(
42: DatabaseConnectionInterface $connection
43: ) {
44: $this->connection = $connection;
45: }
46:
47: /**
48: * Returns all deleted podcast episodes
49: *
ERROR: Unable to parse file: /code/src/Repository/MetadataFieldRepository.php
ERROR: Parse error at line 40 column 13:
30: use Generator;
31: use PDO;
32:
33: /**
34: * Manages song metadata-fields related database access
35: *
36: * Tables: `metadata_field`
37: */
38: final class MetadataFieldRepository implements MetadataFieldRepositoryInterface
39: {
40: private DatabaseConnectionInterface $connection;
^
41:
42: public function __construct(
43: DatabaseConnectionInterface $connection
44: ) {
45: $this->connection = $connection;
46: }
47:
48: /**
49: * Remove metadata for songs which don't exist anymore
50: */
ERROR: Unable to parse file: /code/src/Repository/UserRepository.php
ERROR: Parse error at line 454 column 13:
444: */
445: public function getStatistics(int $timePeriod = 1200): array
446: {
447: $userResult = Dba::fetch_single_column(
448: 'SELECT COUNT(`id`) FROM `user`'
449: );
450:
451: $time = time();
452:
453: $sessionResult = Dba::fetch_single_column(
454: <<<SQL
^
455: SELECT
456: COUNT(DISTINCT `session`.`username`)
457: FROM `session`
458: INNER JOIN `user`
459: ON `session`.`username` = `user`.`username`
460: WHERE `session`.`expire` > ? AND `user`.`last_seen` > ?;
461: SQL,
462: [$time, $time - $timePeriod]
463: );
464:
ERROR: Unable to parse file: /code/src/Repository/WantedRepository.php
ERROR: Parse error at line 42 column 13:
32:
33: /**
34: * Manages database access related to Wanted-items/recommendations
35: *
36: * Tables: `wanted`
37: *
38: * @phpstan-import-type DatabaseRow from WantedRepositoryInterface
39: */
40: final class WantedRepository implements WantedRepositoryInterface
41: {
42: private DatabaseConnectionInterface $connection;
^
43:
44: public function __construct(
45: DatabaseConnectionInterface $connection
46: ) {
47: $this->connection = $connection;
48: }
49:
50: /**
51: * Get wanted list.
52: *
ERROR: Unable to parse file: /code/src/Repository/AccessRepository.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Repository\Model\User;
32: use Generator;
33:
34: /**
35: * Manages ACL related database access
36: *
37: * Table: `access_list`
38: */
39: final class AccessRepository implements AccessRepositoryInterface
40: {
41: private DatabaseConnectionInterface $connection;
^
42:
43: private ModelFactoryInterface $modelFactory;
44:
45: public function __construct(
46: DatabaseConnectionInterface $connection,
47: ModelFactoryInterface $modelFactory
48: ) {
49: $this->connection = $connection;
50: $this->modelFactory = $modelFactory;
51: }
ERROR: Unable to parse file: /code/src/Repository/ShoutRepository.php
ERROR: Parse error at line 43 column 15:
33:
34: /**
35: * Manages shout-box related database access
36: *
37: * Table: `user_shout`
38: *
39: * @extends BaseRepository<Shoutbox>
40: */
41: final class ShoutRepository extends BaseRepository implements ShoutRepositoryInterface
42: {
43: protected DatabaseConnectionInterface $connection;
^
44:
45: private LoggerInterface $logger;
46:
47: public function __construct(
48: DatabaseConnectionInterface $connection,
49: LoggerInterface $logger
50: ) {
51: $this->connection = $connection;
52: $this->logger = $logger;
53: }
ERROR: Unable to parse file: /code/src/Repository/MetadataRepository.php
ERROR: Parse error at line 41 column 13:
31: use Generator;
32: use PDO;
33:
34: /**
35: * Manages song metadata related database access
36: *
37: * Tables: `metadata`
38: */
39: final class MetadataRepository implements MetadataRepositoryInterface
40: {
41: private DatabaseConnectionInterface $connection;
^
42:
43: private MetadataFieldRepositoryInterface $metadataFieldRepository;
44:
45: public function __construct(
46: DatabaseConnectionInterface $connection,
47: MetadataFieldRepositoryInterface $metadataFieldRepository
48: ) {
49: $this->connection = $connection;
50: $this->metadataFieldRepository = $metadataFieldRepository;
51: }
ERROR: Unable to parse file: /code/src/Repository/IpHistoryRepository.php
ERROR: Parse error at line 43 column 13:
33: use Generator;
34: use PDO;
35:
36: /**
37: * Manages ip-history related database access
38: *
39: * Table: `ip_history`
40: */
41: final class IpHistoryRepository implements IpHistoryRepositoryInterface
42: {
43: private DatabaseConnectionInterface $connection;
^
44:
45: private ConfigContainerInterface $configContainer;
46:
47: public function __construct(
48: DatabaseConnectionInterface $connection,
49: ConfigContainerInterface $configContainer
50: ) {
51: $this->connection = $connection;
52: $this->configContainer = $configContainer;
53: }
ERROR: Unable to parse file: /code/src/Repository/LiveStreamRepository.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Repository\Model\ModelFactoryInterface;
32: use Ampache\Repository\Model\User;
33:
34: /**
35: * Manages database access related to Live-Streams (Radiostations)
36: *
37: * Tables: `live_stream`
38: */
39: final class LiveStreamRepository implements LiveStreamRepositoryInterface
40: {
41: private ModelFactoryInterface $modelFactory;
^
42:
43: private DatabaseConnectionInterface $connection;
44:
45: public function __construct(
46: ModelFactoryInterface $modelFactory,
47: DatabaseConnectionInterface $connection
48: ) {
49: $this->modelFactory = $modelFactory;
50: $this->connection = $connection;
51: }
ERROR: Unable to parse file: /code/src/Repository/PodcastEpisodeRepository.php
ERROR: Parse error at line 44 column 13:
34: use Ampache\Repository\Model\Podcast_Episode;
35: use Generator;
36:
37: /**
38: * Manages database access related to podcast-episodes
39: *
40: * Tables: `podcast_episode`
41: */
42: final class PodcastEpisodeRepository implements PodcastEpisodeRepositoryInterface
43: {
44: private ModelFactoryInterface $modelFactory;
^
45:
46: private DatabaseConnectionInterface $connection;
47:
48: private ConfigContainerInterface $configContainer;
49:
50: public function __construct(
51: ModelFactoryInterface $modelFactory,
52: DatabaseConnectionInterface $connection,
53: ConfigContainerInterface $configContainer
54: ) {
ERROR: Unable to parse file: /code/src/Repository/PreferenceRepository.php
ERROR: Parse error at line 62 column 16:
52: public function getAll(?User $user = null): array
53: {
54: $userLimit = '';
55: $userId = User::INTERNAL_SYSTEM_USER_ID;
56:
57: if ($user !== null) {
58: $userLimit = 'AND `preference`.`category` != \'system\'';
59: $userId = $user->getId();
60: }
61:
62: $sql = <<<SQL
^
63: SELECT
64: `preference`.`id`,
65: `preference`.`name`,
66: `preference`.`description`,
67: `preference`.`level`,
68: `preference`.`type`,
69: `preference`.`category`,
70: `preference`.`subcategory`,
71: `user_preference`.`value`
72: FROM
ERROR: Unable to parse file: /code/src/Repository/UpdateInfoRepository.php
ERROR: Parse error at line 35 column 13:
25:
26: namespace Ampache\Repository;
27:
28: use Ampache\Module\Database\DatabaseConnectionInterface;
29:
30: /**
31: * Provides access to the `update_info` table
32: */
33: final class UpdateInfoRepository implements UpdateInfoRepositoryInterface
34: {
35: private DatabaseConnectionInterface $connection;
^
36:
37: public function __construct(
38: DatabaseConnectionInterface $connection
39: ) {
40: $this->connection = $connection;
41: }
42:
43: /**
44: * Returns a single value by its key
45: *
ERROR: Unable to parse file: /code/src/Repository/Model/Label.php
ERROR: Parse error at line 44 column 12:
34:
35: /**
36: * This is the class responsible for handling the Label object
37: * it is related to the label table in the database.
38: */
39: class Label extends database_object implements library_item
40: {
41: protected const DB_TABLENAME = 'label';
42:
43: /* Variables from DB */
44: public int $id = 0;
^
45: public ?string $name;
46: public ?string $category;
47: public ?string $summary;
48: public ?string $address;
49: public ?string $email;
50: public ?string $website;
51: public ?int $user;
52: public ?int $creation_date;
53: public ?string $mbid; // MusicBrainz ID
54: public ?string $country;
ERROR: Unable to parse file: /code/src/Repository/Model/Shoutbox.php
ERROR: Parse error at line 41 column 13:
31: use DateTimeInterface;
32:
33: /**
34: * Shoutbox item
35: *
36: * @see ShoutRepository
37: */
38: class Shoutbox extends BaseModel
39: {
40: /** @var int User-id */
41: private int $user = 0;
^
42:
43: /** @var string Comment */
44: private string $text = '';
45:
46: /** @var int Date */
47: private int $date = 0;
48:
49: /** @var bool True if a sticky shout */
50: private bool $sticky = false;
51:
ERROR: Unable to parse file: /code/src/Repository/Model/Podcast.php
ERROR: Parse error at line 47 column 13:
37: /**
38: * Podcast item
39: *
40: * @see PodcastRepository
41: */
42: class Podcast extends database_object implements library_item, CatalogItemInterface
43: {
44: protected const DB_TABLENAME = 'podcast';
45:
46: /* Variables from DB */
47: private int $id = 0;
^
48:
49: private ?string $feed = null;
50:
51: private int $catalog = 0;
52:
53: private ?string $title = null;
54:
55: private ?string $website = null;
56:
57: private ?string $description = null;
ERROR: Unable to parse file: /code/src/Repository/Model/TvShow.php
ERROR: Parse error at line 41 column 12:
31: use Ampache\Config\AmpConfig;
32: use Ampache\Repository\ShareRepositoryInterface;
33: use Ampache\Repository\ShoutRepositoryInterface;
34: use Ampache\Repository\UserActivityRepositoryInterface;
35:
36: class TvShow extends database_object implements library_item, CatalogItemInterface
37: {
38: protected const DB_TABLENAME = 'tvshow';
39:
40: /* Variables from DB */
41: public int $id = 0;
^
42: public ?string $name;
43: public ?string $prefix;
44: public ?string $summary;
45: public ?int $year;
46:
47: public $catalog_id;
48: public $tags;
49: public $f_tags;
50: public $episodes;
51: public $seasons;
ERROR: Unable to parse file: /code/src/Repository/Model/Personal_Video.php
ERROR: Parse error at line 34 column 12:
24: */
25:
26: namespace Ampache\Repository\Model;
27:
28: use Ampache\Module\System\Dba;
29:
30: class Personal_Video extends Video
31: {
32: protected const DB_TABLENAME = 'personal_video';
33:
34: public ?string $location;
^
35: public ?string $summary;
36:
37: public $video;
38: public $f_location;
39:
40: /**
41: * Constructor
42: * This pulls the personal video information from the database and returns
43: * a constructed object
44: * @param int|null $object_id
ERROR: Unable to parse file: /code/src/Repository/Model/Live_Stream.php
ERROR: Parse error at line 44 column 12:
34: *
35: * This handles the internet radio stuff, that is inserted into live_stream
36: * this can include podcasts or what-have-you
37: *
38: */
39: class Live_Stream extends database_object implements Media, library_item, CatalogItemInterface
40: {
41: protected const DB_TABLENAME = 'live_stream';
42:
43: /* DB based variables */
44: public int $id = 0;
^
45: public ?string $name;
46: public ?string $site_url;
47: public ?string $url;
48: public int $genre;
49: public int $catalog;
50: public ?string $codec;
51:
52: public ?string $link = null;
53: /**
54: * @var null|string $f_name
ERROR: Unable to parse file: /code/src/Repository/Model/License.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Repository\LicenseRepositoryInterface;
30:
31: /**
32: * License item
33: *
34: * @see LicenseRepository
35: */
36: class License extends BaseModel
37: {
38: /** @var string|null License title */
39: private ?string $name = null;
^
40:
41: /** @var string|null Descriptive text */
42: private ?string $description = null;
43:
44: /** @var string|null Lint to the license page */
45: private ?string $external_link = null;
46:
47: private LicenseRepositoryInterface $licenseRepository;
48:
49: public function __construct(
ERROR: Unable to parse file: /code/src/Repository/Model/Tag.php
ERROR: Parse error at line 44 column 12:
34: /**
35: * Tag Class
36: *
37: * This class handles all of the genre related operations
38: *
39: */
40: class Tag extends database_object implements library_item, GarbageCollectibleInterface
41: {
42: protected const DB_TABLENAME = 'tag';
43:
44: public int $id = 0;
^
45: public ?string $name;
46: public int $is_hidden;
47:
48: public $f_name;
49:
50: /**
51: * constructor
52: * This takes a tag id and returns all of the relevant information
53: * @param int|null $tag_id
54: */
ERROR: Unable to parse file: /code/src/Repository/Model/Artist.php
ERROR: Parse error at line 46 column 12:
36: use Ampache\Repository\LabelRepositoryInterface;
37: use Ampache\Repository\SongRepositoryInterface;
38: use Ampache\Repository\UserActivityRepositoryInterface;
39: use PDOStatement;
40:
41: class Artist extends database_object implements library_item, CatalogItemInterface
42: {
43: protected const DB_TABLENAME = 'artist';
44:
45: /* Variables from DB */
46: public int $id = 0;
^
47: public ?string $name;
48: public ?string $prefix;
49: public ?string $mbid; // MusicBrainz ID
50: public ?string $summary;
51: public ?string $placeformed;
52: public ?int $yearformed;
53: public int $last_update;
54: public ?int $user;
55: public bool $manual_update;
56: public ?int $time;
ERROR: Unable to parse file: /code/src/Repository/Model/Bookmark.php
ERROR: Parse error at line 41 column 12:
31: use PDOStatement;
32:
33: /**
34: * This manage bookmark on playable items
35: */
36: class Bookmark extends database_object
37: {
38: protected const DB_TABLENAME = 'bookmark';
39:
40: // Public variables
41: public int $id = 0;
^
42: public int $user;
43: public int $position;
44: public ?string $comment;
45: public ?string $object_type;
46: public int $object_id;
47: public int $creation_date;
48: public int $update_date;
49:
50: /**
51: * Constructor
ERROR: Unable to parse file: /code/src/Repository/Model/PrivateMsg.php
ERROR: Parse error at line 39 column 13:
29:
30: /**
31: * This is the class responsible for handling the PrivateMsg object
32: * it is related to the user_pvmsg table in the database.
33: */
34: class PrivateMsg extends database_object implements PrivateMessageInterface
35: {
36: protected const DB_TABLENAME = 'user_pvmsg';
37:
38: /* Variables from DB */
39: private int $id = 0;
^
40: private ?string $subject;
41: private ?string $message;
42: private int $from_user;
43: private int $to_user;
44: private bool $is_read;
45: private ?int $creation_date;
46:
47:
48: /**
49: * @param int|null $pm_id
ERROR: Unable to parse file: /code/src/Repository/Model/Wanted.php
ERROR: Parse error at line 45 column 12:
35: use Ampache\Repository\WantedRepositoryInterface;
36: use Exception;
37: use MusicBrainz\HttpAdapters\RequestsHttpAdapter;
38: use MusicBrainz\MusicBrainz;
39:
40: class Wanted extends database_object
41: {
42: protected const DB_TABLENAME = 'wanted';
43:
44: /* Variables from DB */
45: public int $id = 0;
^
46: public ?int $user;
47: public ?int $artist = null;
48: public ?string $artist_mbid;
49: public ?string $mbid;
50: public ?string $name;
51: public ?int $year;
52: public int $date;
53: public int $accepted;
54:
55: /**
ERROR: Unable to parse file: /code/src/Repository/Model/TVShow_Season.php
ERROR: Parse error at line 43 column 12:
33: use PDOStatement;
34:
35: class TVShow_Season extends database_object implements
36: library_item,
37: GarbageCollectibleInterface,
38: CatalogItemInterface
39: {
40: protected const DB_TABLENAME = 'tvshow_season';
41:
42: /* Variables from DB */
43: public int $id = 0;
^
44: public int $season_number;
45: public int $tvshow;
46:
47: public $catalog_id;
48: public $episodes;
49: public $f_name;
50: public $f_tvshow;
51: public $f_tvshow_link;
52:
53: public ?string $link = null;
ERROR: Unable to parse file: /code/src/Repository/Model/Rating.php
ERROR: Parse error at line 60 column 12:
50: 'video',
51: 'playlist',
52: 'search',
53: 'tvshow',
54: 'tvshow_season',
55: 'podcast',
56: 'podcast_episode'
57: );
58:
59: // Public variables
60: public int $id; // The object_id of the object rated
^
61: public string $type; // The object_type of object we want
62:
63: /**
64: * Constructor
65: * This is run every time a new object is created, and requires
66: * the id and type of object that we need to pull the rating for
67: * @param int|null $rating_id
68: * @param string $type
69: */
70: public function __construct($rating_id, $type)
ERROR: Unable to parse file: /code/src/Repository/Model/BaseModel.php
ERROR: Parse error at line 31 column 15:
21: * You should have received a copy of the GNU Affero General Public License
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Repository\Model;
27:
28: abstract class BaseModel implements ModelInterface
29: {
30: /** @var int Primary key*/
31: protected int $id = 0;
^
32:
33: /**
34: * Returns true if the object is new/unknown
35: */
36: public function isNew(): bool
37: {
38: return $this->id === 0;
39: }
40:
41: /**
ERROR: Unable to parse file: /code/src/Repository/Model/Catalog.php
ERROR: Parse error at line 143 column 12:
133: 'search' => 0,
134: 'share' => 0,
135: 'size' => 0,
136: 'song' => 0,
137: 'tag' => 0,
138: 'time' => 0,
139: 'user' => 0,
140: 'video' => 0
141: ];
142:
143: public int $id = 0;
^
144: public ?string $name;
145: public ?string $catalog_type;
146: public int $last_update;
147: public ?int $last_clean;
148: public int $last_add;
149: public bool $enabled;
150: public ?string $rename_pattern = '';
151: public ?string $sort_pattern = '';
152: public ?string $gather_types = '';
153:
ERROR: Unable to parse file: /code/src/Repository/Model/Broadcast.php
ERROR: Parse error at line 39 column 12:
29: use Ampache\Module\Api\Ajax;
30: use Ampache\Config\AmpConfig;
31: use Ampache\Module\System\Core;
32: use Ampache\Module\System\Dba;
33: use PDOStatement;
34:
35: class Broadcast extends database_object implements library_item
36: {
37: protected const DB_TABLENAME = 'broadcast';
38:
39: public int $id = 0;
^
40: public int $user;
41: public ?string $name;
42: public ?string $description;
43: public bool $is_private;
44: public int $song;
45: public bool $started;
46: public int $listeners;
47: public ?string $key;
48:
49: public ?string $link = null;
ERROR: Unable to parse file: /code/src/Repository/Model/TVShow_Episode.php
ERROR: Parse error at line 34 column 12:
24: */
25:
26: namespace Ampache\Repository\Model;
27:
28: use Ampache\Module\System\Dba;
29:
30: class TVShow_Episode extends Video
31: {
32: protected const DB_TABLENAME = 'tvshow_episode';
33:
34: public ?string $original_name;
^
35: public int $season;
36: public int $episode_number;
37: public ?string $summary;
38:
39: public $f_link;
40: public $f_season;
41: public $f_season_link;
42: public $f_tvshow;
43: public $f_tvshow_link;
44:
ERROR: Unable to parse file: /code/src/Repository/Model/Share.php
ERROR: Parse error at line 52 column 12:
42: 'album_disk',
43: 'artist',
44: 'playlist',
45: 'podcast',
46: 'podcast_episode',
47: 'search',
48: 'song',
49: 'video'
50: );
51:
52: public int $id = 0;
^
53: public int $user;
54: public ?string $object_type;
55: public int $object_id;
56: public bool $allow_stream;
57: public bool $allow_download;
58: public int $expire_days;
59: public int $max_counter;
60: public ?string $secret;
61: public int $counter;
62: public int $creation_date;
ERROR: Unable to parse file: /code/src/Repository/Model/AlbumDisk.php
ERROR: Parse error at line 41 column 12:
31:
32: /**
33: * This is the class responsible for handling the Album object
34: * it is related to the album table in the database.
35: */
36: class AlbumDisk extends database_object implements library_item, CatalogItemInterface
37: {
38: protected const DB_TABLENAME = 'album_disk';
39:
40: /* Variables from DB */
41: public int $id = 0;
^
42: public int $album_id;
43: public int $disk;
44: public int $disk_count = 0;
45: public ?int $time;
46: public int $catalog;
47: public int $song_count;
48: public int $total_count;
49: public ?string $disksubtitle;
50:
51: /* Variables from parent Album */
ERROR: Unable to parse file: /code/src/Repository/Model/Song_Preview.php
ERROR: Parse error at line 39 column 12:
29: use Ampache\Module\Playback\Stream_Url;
30: use Ampache\Module\System\Dba;
31: use Ampache\Config\AmpConfig;
32: use Ampache\Module\System\Core;
33: use Ampache\Module\Wanted\MissingArtistRetrieverInterface;
34:
35: class Song_Preview extends database_object implements Media, playable_item
36: {
37: protected const DB_TABLENAME = 'song_preview';
38:
39: public int $id = 0;
^
40: public ?string $session;
41: public ?int $artist; // artist.id (Int)
42: public ?string $artist_mbid;
43: public ?string $title;
44: public ?string $album_mbid;
45: public ?string $mbid; // MusicBrainz ID
46: public ?int $disk;
47: public ?int $track;
48: public ?string $file;
49:
ERROR: Unable to parse file: /code/src/Repository/Model/Democratic.php
ERROR: Parse error at line 44 column 12:
34: use Ampache\Module\System\Core;
35:
36: /**
37: * This class handles democratic play, which is a fancy
38: * name for voting based playback.
39: */
40: class Democratic extends Tmp_Playlist
41: {
42: protected const DB_TABLENAME = 'democratic';
43:
44: public ?string $name = null;
^
45: public ?int $cooldown = null;
46: public int $level = 0;
47: public int $user = 0;
48: public bool $primary = false;
49: public int $base_playlist = 0;
50:
51: public $f_cooldown;
52: public $f_primary;
53: public $f_level;
54: public $tmp_playlist;
ERROR: Unable to parse file: /code/src/Repository/Model/Tmp_Playlist.php
ERROR: Parse error at line 43 column 12:
33: *
34: * This class handles the temporary playlists in Ampache. It handles the
35: * tmp_playlist and tmp_playlist_data tables, and sneaks out at night to
36: * visit user_vote from time to time.
37: */
38: class Tmp_Playlist extends database_object
39: {
40: protected const DB_TABLENAME = 'tmp_playlist';
41:
42: // Variables from the Database
43: public int $id = 0;
^
44: public ?string $session;
45: public ?string $type;
46: public ?string $object_type;
47:
48: // Generated Elements
49: public $items = array();
50:
51: /**
52: * Constructor
53: * This takes a playlist_id as an optional argument and gathers the
ERROR: Unable to parse file: /code/src/Repository/Model/User_Playlist.php
ERROR: Parse error at line 41 column 12:
31: /**
32: * UserPlaylist Class
33: *
34: * This class handles the user playlists in Ampache. It handles the
35: * user_playlist table creating a global play queue for each user
36: */
37: class User_Playlist extends database_object
38: {
39: protected const DB_TABLENAME = 'user_playlist';
40:
41: public int $user;
^
42: public string $client;
43:
44: /**
45: * Constructor
46: * This takes a user_id as an optional argument and gathers the
47: * information. If no user_id is passed or the requested one isn't
48: * found, return false.
49: * @param int|null $user_id
50: * @param string|null $client
51: */
ERROR: Unable to parse file: /code/src/Repository/Model/Song.php
ERROR: Parse error at line 63 column 12:
53: class Song extends database_object implements
54: Media,
55: library_item,
56: GarbageCollectibleInterface,
57: CatalogItemInterface,
58: MetadataEnabledInterface
59: {
60: protected const DB_TABLENAME = 'song';
61:
62: /* Variables from DB */
63: public int $id = 0;
^
64: public ?string $file;
65: public int $catalog;
66: public int $album;
67: public ?int $disk = null;
68: public int $year;
69: public ?int $artist;
70: public ?string $title = null;
71: public int $bitrate;
72: public int $rate;
73: public ?string $mode = null;
ERROR: Unable to parse file: /code/src/Repository/Model/Podcast_Episode.php
ERROR: Parse error at line 50 column 12:
40: use DateTime;
41: use DateTimeInterface;
42:
43: class Podcast_Episode extends database_object implements
44: Media,
45: library_item,
46: CatalogItemInterface
47: {
48: protected const DB_TABLENAME = 'podcast_episode';
49:
50: public int $id = 0;
^
51: public ?string $title;
52: public ?string $guid;
53: public int $podcast;
54: public ?string $state;
55: public ?string $file;
56: public ?string $source;
57: public int $size;
58: public int $time;
59: public ?string $website;
60: public ?string $description;
ERROR: Unable to parse file: /code/src/Repository/Model/Album.php
ERROR: Parse error at line 50 column 12:
40:
41: /**
42: * This is the class responsible for handling the Album object
43: * it is related to the album table in the database.
44: */
45: class Album extends database_object implements library_item, CatalogItemInterface
46: {
47: protected const DB_TABLENAME = 'album';
48:
49: /* Variables from DB */
50: public int $id = 0;
^
51: public ?string $name;
52: public ?string $prefix;
53: public ?string $mbid; // MusicBrainz ID
54: public int $year;
55: public int $disk_count = 0;
56: public ?string $mbid_group; // MusicBrainz Release Group ID
57: public ?string $release_type;
58: public ?int $album_artist;
59: public ?int $original_year = null;
60: public ?string $barcode;
ERROR: Unable to parse file: /code/src/Repository/Model/MetadataField.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Repository\MetadataFieldRepositoryInterface;
29:
30: /**
31: * Represents metadata fields
32: */
33: class MetadataField
34: {
35: /**
36: * Database ID
37: */
38: private int $id = 0;
^
39:
40: /**
41: * Tag name
42: */
43: private string $name = '';
44:
45: /**
46: * Is the Tag public?
47: */
48: private bool $public = true;
ERROR: Unable to parse file: /code/src/Repository/Model/playlist_object.php
ERROR: Parse error at line 40 column 12:
30: use Ampache\Module\System\Core;
31: use Ampache\Module\Util\Ui;
32:
33: /**
34: * playlist_object
35: * Abstracting out functionality needed by both normal and smart playlists
36: */
37: abstract class playlist_object extends database_object implements library_item
38: {
39: // Database variables
40: public int $id = 0;
^
41: public ?string $name;
42: public ?int $user;
43: public ?string $username;
44: public ?string $type;
45:
46: public ?string $link = null;
47: public int $date = 0;
48: public ?int $last_duration = 0;
49: public ?int $last_update = 0;
50: public ?string $f_date;
ERROR: Unable to parse file: /code/src/Repository/Model/User.php
ERROR: Parse error at line 54 column 12:
44: * with a user_id from user.id
45: */
46: class User extends database_object
47: {
48: /** @var int Defines the internal system user-id */
49: public const INTERNAL_SYSTEM_USER_ID = -1;
50:
51: protected const DB_TABLENAME = 'user';
52:
53: // Basic Components
54: public int $id = 0;
^
55: public ?string $username;
56: public ?string $fullname;
57: public ?string $email;
58: public ?string $website;
59: public ?string $apikey;
60: public int $access;
61: public bool $disabled;
62: public int $last_seen;
63: public ?int $create_date;
64: public ?string $validation;
ERROR: Unable to parse file: /code/src/Repository/Model/Userflag.php
ERROR: Parse error at line 45 column 12:
35: use PDOStatement;
36:
37: /**
38: * This user flag/unflag songs, albums, artists, videos, tvshows, movies ... as favorite.
39: */
40: class Userflag extends database_object
41: {
42: protected const DB_TABLENAME = 'user_flag';
43:
44: // Public variables
45: public int $id; // The object_id of the object flagged
^
46: public string $type; // The object_type of object we want
47:
48: /**
49: * Constructor
50: * This is run every time a new object is created, and requires
51: * the id and type of object that we need to pull the flag for
52: * @param int|null $object_id
53: * @param string $type
54: */
55: public function __construct($object_id, $type)
ERROR: Unable to parse file: /code/src/Repository/Model/Movie.php
ERROR: Parse error at line 34 column 12:
24: */
25:
26: namespace Ampache\Repository\Model;
27:
28: use Ampache\Module\System\Dba;
29:
30: class Movie extends Video
31: {
32: protected const DB_TABLENAME = 'movie';
33:
34: public ?string $original_name;
^
35: public ?string $summary;
36: public ?int $year;
37: public ?string $prefix;
38:
39: public $video;
40: public $f_original_name;
41:
42: /**
43: * Constructor
44: * This pulls the movie information from the database and returns
ERROR: Unable to parse file: /code/src/Repository/Model/Video.php
ERROR: Parse error at line 49 column 12:
39: use Ampache\Repository\UserActivityRepositoryInterface;
40:
41: class Video extends database_object implements
42: Media,
43: library_item,
44: GarbageCollectibleInterface,
45: CatalogItemInterface
46: {
47: protected const DB_TABLENAME = 'video';
48:
49: public int $id = 0;
^
50: public string $file;
51: public int $catalog;
52: public ?string $title;
53: public ?string $video_codec;
54: public ?string $audio_codec;
55: public int $resolution_x;
56: public int $resolution_y;
57: public int $time;
58: public int $size;
59: public ?string $mime;
ERROR: Unable to parse file: /code/src/Repository/Model/Search.php
ERROR: Parse error at line 71 column 12:
61: 'label',
62: 'playlist',
63: 'podcast',
64: 'podcast_episode',
65: 'tag',
66: 'user',
67: 'video'
68: );
69:
70: // override playlist_object
71: public ?string $type = 'public';
^
72: // rules used to run a search (User chooses rules from available types for that object)
73: public $rules; // JSON string to decoded to array
74: public ?string $logic_operator = 'AND';
75: public ?int $random = 0;
76: public int $limit = 0;
77: public ?int $last_count = 0;
78:
79: public $objectType; // the type of object you want to return (self::VALID_TYPES)
80: public $search_user; // user running the search
81: public $types = array(); // rules that are available to the objectType (title, year, rating, etc)
ERROR: Unable to parse file: /code/src/Repository/Model/Useractivity.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Repository\Model;
27:
28: use Ampache\Module\System\Dba;
29: use PDOStatement;
30:
31: class Useractivity extends database_object
32: {
33: protected const DB_TABLENAME = 'user_activity';
34:
35: /* Variables from DB */
36: public int $id = 0;
^
37: public int $user;
38: public string $action;
39: public int $object_id;
40: public string $object_type;
41: public int $activity_date;
42:
43: /**
44: * Constructor
45: * This is run every time a new object is created, and requires
46: * the id and type of object that we need to pull the flag for
ERROR: Unable to parse file: /code/src/Repository/Model/Metadata.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Repository\MetadataFieldRepositoryInterface;
29: use Ampache\Repository\MetadataRepositoryInterface;
30:
31: /**
32: * Represents metadata linked to library-items
33: */
34: class Metadata
35: {
36: /** @var int Database primary key */
37: private int $id = 0;
^
38:
39: /** @var int Id of a library item like song or video */
40: private int $object_id = 0;
41:
42: /** @var int Id of the linked MetadataField */
43: private int $field = 0;
44:
45: /** @var string Tag Data */
46: private string $data = '';
47:
ERROR: Unable to parse file: /code/src/Repository/Model/Clip.php
ERROR: Parse error at line 35 column 12:
25:
26: namespace Ampache\Repository\Model;
27:
28: use Ampache\Module\System\Dba;
29: use PDOStatement;
30:
31: class Clip extends Video
32: {
33: protected const DB_TABLENAME = 'clip';
34:
35: public ?int $artist;
^
36: public ?int $song;
37:
38: public $video;
39: public $f_artist;
40: public $f_song;
41:
42: /**
43: * Constructor
44: * This pulls the clip information from the database and returns
45: * a constructed object
ERROR: Unable to parse file: /code/src/Repository/Model/database_object.php
ERROR: Parse error at line 44 column 20:
34: * caching for all of the objects to cut down on the database calls
35: */
36: abstract class database_object
37: {
38: protected const DB_TABLENAME = null;
39:
40: private static $object_cache = array();
41:
42: // Statistics for debugging
43: public static $cache_hit = 0;
44: private static ?bool $_enabled = null;
^
45:
46: /**
47: * get_info
48: * retrieves the info from the database and puts it in the cache
49: * @param int $object_id
50: * @param string $table_name
51: */
52: public function get_info($object_id, $table_name = ''): array
53: {
54: $table = $this->getTableName($table_name);
ERROR: Unable to parse file: /code/src/Repository/LabelRepository.php
ERROR: Parse error at line 35 column 13:
25:
26: namespace Ampache\Repository;
27:
28: use Ampache\Module\Database\DatabaseConnectionInterface;
29: use Ampache\Repository\Model\Label;
30: use DateTimeInterface;
31: use PDO;
32:
33: final class LabelRepository implements LabelRepositoryInterface
34: {
35: private DatabaseConnectionInterface $connection;
^
36:
37: public function __construct(
38: DatabaseConnectionInterface $connection
39: ) {
40: $this->connection = $connection;
41: }
42:
43: public function findById(int $labelId): ?Label
44: {
45: $label = new Label($labelId);
ERROR: Unable to parse file: /code/src/Plugin/AmpacheCatalogFavorites.php
ERROR: Parse error at line 40 column 12:
30: use Ampache\Repository\Model\Preference;
31: use Ampache\Repository\Model\Song;
32: use Ampache\Repository\Model\User;
33: use Ampache\Repository\Model\Userflag;
34: use Ampache\Module\Api\Ajax;
35: use Ampache\Module\Playback\Stream_Playlist;
36: use Ampache\Module\Util\Ui;
37:
38: class AmpacheCatalogFavorites implements AmpachePluginInterface
39: {
40: public string $name = 'Catalog Favorites';
^
41: public string $categories = 'home';
42: public string $description = 'Catalog favorites on homepage';
43: public string $url = '';
44: public string $version = '000002';
45: public string $min_ampache = '370021';
46: public string $max_ampache = '999999';
47:
48: // These are internal settings used by this class, run this->load to fill them out
49: private $maxitems;
50: private $gridview;
ERROR: Unable to parse file: /code/src/Plugin/Ampachechartlyrics.php
ERROR: Parse error at line 35 column 12:
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Song;
29: use Ampache\Repository\Model\User;
30: use Ampache\Module\System\Core;
31: use WpOrg\Requests\Requests;
32:
33: class Ampachechartlyrics implements AmpachePluginInterface
34: {
35: public string $name = 'ChartLyrics';
^
36: public string $categories = 'lyrics';
37: public string $description = 'Get lyrics from ChartLyrics';
38: public string $url = 'http://www.chartlyrics.com';
39: public string $version = '000001';
40: public string $min_ampache = '360022';
41: public string $max_ampache = '999999';
42:
43: /**
44: * Constructor
45: */
ERROR: Unable to parse file: /code/src/Plugin/AmpacheLibravatar.php
ERROR: Parse error at line 33 column 12:
23: *
24: */
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\User;
29: use Ampache\Module\System\Core;
30:
31: class AmpacheLibravatar implements AmpachePluginInterface
32: {
33: public string $name = 'Libravatar';
^
34: public string $categories = 'avatar';
35: public string $description = 'Users avatar\'s with Libravatar';
36: public string $url = 'https://www.libravatar.org';
37: public string $version = '000001';
38: public string $min_ampache = '360040';
39: public string $max_ampache = '999999';
40:
41: /**
42: * Constructor
43: */
ERROR: Unable to parse file: /code/src/Plugin/AmpacheLastfm.php
ERROR: Parse error at line 37 column 12:
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Repository\Model\Plugin;
30: use Ampache\Repository\Model\Preference;
31: use Ampache\Repository\Model\Song;
32: use Ampache\Repository\Model\User;
33: use Ampache\Module\Playback\Scrobble\Scrobbler;
34:
35: class AmpacheLastfm implements AmpachePluginInterface
36: {
37: public string $name = 'Last.FM';
^
38: public string $categories = 'scrobbling';
39: public string $description = 'Records your played songs to your Last.FM account';
40: public string $url = '';
41: public string $version = '000005';
42: public string $min_ampache = '360003';
43: public string $max_ampache = '999999';
44:
45: // These are internal settings used by this class, run this->load to fill them out
46: private $user_id;
47: private $challenge;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheStreamBandwidth.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Repository\Model\Preference;
30: use Ampache\Repository\Model\User;
31: use Ampache\Module\Util\Graph;
32: use Ampache\Module\Util\ObjectTypeToClassNameMapper;
33:
34: class AmpacheStreamBandwidth implements AmpachePluginInterface
35: {
36: public string $name = 'Stream Bandwidth';
^
37: public string $categories = 'stream_control';
38: public string $description = 'Control bandwidth per user';
39: public string $url = '';
40: public string $version = '000001';
41: public string $min_ampache = '370024';
42: public string $max_ampache = '999999';
43:
44: // These are internal settings used by this class, run this->load to fill them out
45: private $user_id;
46: private $bandwidth_days;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheStreamTime.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Repository\Model\Preference;
30: use Ampache\Repository\Model\User;
31: use Ampache\Module\Util\Graph;
32: use Ampache\Module\Util\ObjectTypeToClassNameMapper;
33:
34: class AmpacheStreamTime implements AmpachePluginInterface
35: {
36: public string $name = 'Stream Time';
^
37: public string $categories = 'stream_control';
38: public string $description = 'Control time per user';
39: public string $url = '';
40: public string $version = '000001';
41: public string $min_ampache = '370024';
42: public string $max_ampache = '999999';
43:
44: // These are internal settings used by this class, run this->load to fill them out
45: private $user_id;
46: private $time_days;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheFriendsTimeline.php
ERROR: Parse error at line 39 column 12:
29: use Ampache\Repository\Model\Preference;
30: use Ampache\Repository\Model\User;
31: use Ampache\Repository\Model\Useractivity;
32: use Ampache\Module\System\Core;
33: use Ampache\Module\User\Activity\UserActivityRendererInterface;
34: use Ampache\Module\Util\Ui;
35: use Ampache\Repository\UserActivityRepositoryInterface;
36:
37: class AmpacheFriendsTimeline implements AmpachePluginInterface
38: {
39: public string $name = 'Friends Timeline';
^
40: public string $categories = 'home';
41: public string $description = 'Friends Timeline on homepage';
42: public string $url = '';
43: public string $version = '000001';
44: public string $min_ampache = '370040';
45: public string $max_ampache = '999999';
46:
47: // These are internal settings used by this class, run this->load to fill them out
48: private $maxitems;
49:
ERROR: Unable to parse file: /code/src/Plugin/AmpacheGravatar.php
ERROR: Parse error at line 32 column 12:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\User;
29:
30: class AmpacheGravatar implements AmpachePluginInterface
31: {
32: public string $name = 'Gravatar';
^
33: public string $categories = 'avatar';
34: public string $description = 'User\'s avatars with Gravatar';
35: public string $url = 'https://gravatar.com';
36: public string $version = '000001';
37: public string $min_ampache = '360040';
38: public string $max_ampache = '999999';
39:
40: /**
41: * Constructor
42: */
ERROR: Unable to parse file: /code/src/Plugin/AmpacheYourls.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Preference;
29: use Ampache\Repository\Model\User;
30: use Ampache\Module\System\Core;
31: use Exception;
32: use WpOrg\Requests\Requests;
33:
34: class AmpacheYourls implements AmpachePluginInterface
35: {
36: public string $name = 'YOURLS';
^
37: public string $categories = 'shortener';
38: public string $description = 'URL shorteners on shared links with YOURLS';
39: public string $url = 'http://yourls.org';
40: public string $version = '000002';
41: public string $min_ampache = '360037';
42: public string $max_ampache = '999999';
43:
44: // These are internal settings used by this class, run this->load to fill them out
45: private $yourls_domain;
46: private $yourls_use_idn;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheMusicBrainz.php
ERROR: Parse error at line 42 column 12:
32: use Ampache\Repository\Model\Preference;
33: use Ampache\Repository\Model\User;
34: use Exception;
35: use MusicBrainz\Filters\ArtistFilter;
36: use MusicBrainz\Filters\LabelFilter;
37: use MusicBrainz\MusicBrainz;
38: use MusicBrainz\HttpAdapters\RequestsHttpAdapter;
39:
40: class AmpacheMusicBrainz implements AmpachePluginInterface
41: {
42: public string $name = 'MusicBrainz';
^
43: public string $categories = 'metadata';
44: public string $description = 'MusicBrainz metadata integration';
45: public string $url = 'http://www.musicbrainz.org';
46: public string $version = '000003';
47: public string $min_ampache = '360003';
48: public string $max_ampache = '999999';
49:
50: // These are internal settings used by this class, run this->load to fill them out
51: public bool $overwrite_name = false;
52:
ERROR: Unable to parse file: /code/src/Plugin/Ampachelistenbrainz.php
ERROR: Parse error at line 37 column 12:
27:
28: use Ampache\Repository\Model\Album;
29: use Ampache\Repository\Model\Artist;
30: use Ampache\Repository\Model\Plugin;
31: use Ampache\Repository\Model\Preference;
32: use Ampache\Repository\Model\Song;
33: use Ampache\Repository\Model\User;
34:
35: class Ampachelistenbrainz implements AmpachePluginInterface
36: {
37: public string $name = 'ListenBrainz';
^
38: public string $categories = 'scrobbling';
39: public string $description = 'Records your played songs to your ListenBrainz Account';
40: public string $url = '';
41: public string $version = '000002';
42: public string $min_ampache = '380004';
43: public string $max_ampache = '999999';
44:
45: // These are internal settings used by this class, run this->load to fill them out
46: private $token;
47: private $api_host;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheHeadphones.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Preference;
29: use Ampache\Repository\Model\User;
30: use Ampache\Repository\Model\Wanted;
31: use Exception;
32: use WpOrg\Requests\Requests;
33:
34: class AmpacheHeadphones implements AmpachePluginInterface
35: {
36: public string $name = 'Headphones';
^
37: public string $categories = 'wanted';
38: public string $description = 'Automatically download accepted Wanted List albums with Headphones';
39: public string $url = 'https://github.com/rembo10/headphones/';
40: public string $version = '000001';
41: public string $min_ampache = '360030';
42: public string $max_ampache = '999999';
43:
44: // These are internal settings used by this class, run this->load to fill them out
45: private $api_url;
46: private $api_key;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheTwitter.php
ERROR: Parse error at line 32 column 12:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\User;
29:
30: class AmpacheTwitter implements AmpachePluginInterface
31: {
32: public string $name = 'Twitter';
^
33: public string $categories = 'share';
34: public string $description = 'Twitter share';
35: public string $url = 'https://twitter.com';
36: public string $version = '000001';
37: public string $min_ampache = '370027';
38: public string $max_ampache = '999999';
39:
40: /**
41: * Constructor
42: */
ERROR: Unable to parse file: /code/src/Plugin/AmpacheTheaudiodb.php
ERROR: Parse error at line 42 column 12:
32: use Ampache\Repository\Model\Label;
33: use Ampache\Repository\Model\Plugin;
34: use Ampache\Repository\Model\Preference;
35: use Ampache\Repository\Model\User;
36: use Ampache\Module\System\Core;
37: use Exception;
38: use WpOrg\Requests\Requests;
39:
40: class AmpacheTheaudiodb implements AmpachePluginInterface
41: {
42: public string $name = 'TheAudioDb';
^
43: public string $categories = 'metadata';
44: public string $description = 'TheAudioDb metadata integration';
45: public string $url = 'http://www.theaudiodb.com';
46: public string $version = '000003';
47: public string $min_ampache = '370009';
48: public string $max_ampache = '999999';
49:
50: // These are internal settings used by this class, run this->load to fill them out
51: public $overwrite_name;
52:
ERROR: Unable to parse file: /code/src/Plugin/AmpacheRSSView.php
ERROR: Parse error at line 35 column 12:
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Preference;
29: use Ampache\Repository\Model\User;
30: use Ampache\Module\System\Core;
31: use Ampache\Module\Util\Ui;
32:
33: class AmpacheRSSView implements AmpachePluginInterface
34: {
35: public string $name = 'RSSView';
^
36: public string $categories = 'home';
37: public string $description = 'RSS View';
38: public string $url = '';
39: public string $version = '000001';
40: public string $min_ampache = '370021';
41: public string $max_ampache = '999999';
42:
43: // These are internal settings used by this class, run this->load to fill them out
44: private $feed_url;
45: private $maxitems;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheMatomo.php
ERROR: Parse error at line 35 column 12:
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Repository\Model\Preference;
30: use Ampache\Repository\Model\User;
31: use Ampache\Module\System\Core;
32:
33: class AmpacheMatomo implements AmpachePluginInterface
34: {
35: public string $name = 'Matomo';
^
36: public string $categories = 'stats';
37: public string $description = 'Matomo statistics';
38: public string $url = '';
39: public string $version = '000001';
40: public string $min_ampache = '370034';
41: public string $max_ampache = '999999';
42:
43: // These are internal settings used by this class, run this->load to fill them out
44: private $site_id;
45: private $matomo_url;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheBitly.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Preference;
29: use Ampache\Repository\Model\User;
30: use Ampache\Module\System\Core;
31: use Exception;
32: use WpOrg\Requests\Requests;
33:
34: class AmpacheBitly implements AmpachePluginInterface
35: {
36: public string $name = 'Bit.ly';
^
37: public string $categories = 'shortener';
38: public string $description = 'URL shorteners on shared links with Bit.ly';
39: public string $url = 'http://bitly.com';
40: public string $version = '000003';
41: public string $min_ampache = '360037';
42: public string $max_ampache = '999999';
43:
44: // These are internal settings used by this class, run this->load to fill them out
45: private $bitly_token;
46: private $bitly_group_guid;
ERROR: Unable to parse file: /code/src/Plugin/Ampache7digital.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Preference;
29: use Ampache\Repository\Model\User;
30: use Ampache\Module\Util\OAuth\OAuthConsumer;
31: use Ampache\Module\Util\OAuth\OAuthRequest;
32: use Ampache\Module\Util\OAuth\OAuthSignatureMethod_HMAC_SHA1;
33:
34: class Ampache7digital implements AmpachePluginInterface
35: {
36: public string $name = '7digital';
^
37: public string $categories = 'preview';
38: public string $description = 'Song preview from 7digital';
39: public string $url = 'http://www.7digital.com';
40: public string $version = '000001';
41: public string $min_ampache = '370015';
42: public string $max_ampache = '999999';
43:
44: // These are internal settings used by this class, run this->load to fill them out
45: private $api_key;
46: private $secret;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheLyristLyrics.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Preference;
29: use Ampache\Repository\Model\Song;
30: use Ampache\Repository\Model\User;
31: use Ampache\Module\System\Core;
32: use WpOrg\Requests\Requests;
33:
34: class AmpacheLyristLyrics implements AmpachePluginInterface
35: {
36: public string $name = 'Lyrist Lyrics';
^
37: public string $categories = 'lyrics';
38: public string $description = 'Get lyrics from a public Lyrist instance';
39: public string $url = 'https://github.com/asrvd/lyrist';
40: public string $version = '000002';
41: public string $min_ampache = '360022';
42: public string $max_ampache = '999999';
43:
44: // These are internal settings used by this class, run this->load to fill them out
45: private string $api_host;
46:
ERROR: Unable to parse file: /code/src/Plugin/AmpacheRatingMatch.php
ERROR: Parse error at line 40 column 12:
30: use Ampache\Repository\Model\Plugin;
31: use Ampache\Repository\Model\Preference;
32: use Ampache\Repository\Model\Rating;
33: use Ampache\Repository\Model\Song;
34: use Ampache\Repository\Model\User;
35: use Ampache\Repository\Model\Userflag;
36: use Ampache\Module\System\Dba;
37:
38: class AmpacheRatingMatch implements AmpachePluginInterface
39: {
40: public string $name = 'RatingMatch';
^
41: public string $categories = 'scrobbling';
42: public string $description = 'Raise the album and artist rating to match the highest song rating';
43: public string $url = '';
44: public string $version = '000004';
45: public string $min_ampache = '360003';
46: public string $max_ampache = '999999';
47:
48: // These are internal settings used by this class, run this->load to fill them out
49: private $min_stars;
50: private $match_flags;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheTvdb.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Art;
29: use Ampache\Repository\Model\Preference;
30: use Ampache\Repository\Model\User;
31: use Exception;
32: use Moinax;
33:
34: class AmpacheTvdb implements AmpachePluginInterface
35: {
36: public string $name = 'Tvdb';
^
37: public string $categories = 'metadata';
38: public string $description = 'TVDb metadata integration';
39: public string $url = 'http://thetvdb.com';
40: public string $version = '000003';
41: public string $min_ampache = '370009';
42: public string $max_ampache = '999999';
43:
44: // These are internal settings used by this class, run this->load to fill them out
45: private $api_key;
46:
ERROR: Unable to parse file: /code/src/Plugin/AmpachePiwik.php
ERROR: Parse error at line 35 column 12:
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Repository\Model\Preference;
30: use Ampache\Repository\Model\User;
31: use Ampache\Module\System\Core;
32:
33: class AmpachePiwik implements AmpachePluginInterface
34: {
35: public string $name = 'Piwik';
^
36: public string $categories = 'stats';
37: public string $description = 'Piwik statistics';
38: public string $url = '';
39: public string $version = '000001';
40: public string $min_ampache = '370034';
41: public string $max_ampache = '999999';
42:
43: // These are internal settings used by this class, run this->load to fill them out
44: private $site_id;
45: private $piwik_url;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheDiscogs.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Art;
29: use Ampache\Repository\Model\Preference;
30: use Ampache\Repository\Model\User;
31: use Exception;
32: use WpOrg\Requests\Requests;
33:
34: class AmpacheDiscogs implements AmpachePluginInterface
35: {
36: public string $name = 'Discogs';
^
37: public string $categories = 'metadata';
38: public string $description = 'Discogs metadata integration';
39: public string $url = 'http://www.discogs.com';
40: public string $version = '000001';
41: public string $min_ampache = '370021';
42: public string $max_ampache = '999999';
43:
44: // These are internal settings used by this class, run this->load to fill them out
45: private $api_key;
46: private $secret;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheFacebook.php
ERROR: Parse error at line 32 column 12:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\User;
29:
30: class AmpacheFacebook implements AmpachePluginInterface
31: {
32: public string $name = 'Facebook';
^
33: public string $categories = 'share';
34: public string $description = 'Facebook share';
35: public string $url = 'https://facebook.com';
36: public string $version = '000001';
37: public string $min_ampache = '370027';
38: public string $max_ampache = '999999';
39:
40: /**
41: * Constructor
42: */
ERROR: Unable to parse file: /code/src/Plugin/Ampacheflickr.php
ERROR: Parse error at line 35 column 12:
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Preference;
29: use Ampache\Repository\Model\User;
30: use Ampache\Module\System\Core;
31: use WpOrg\Requests\Requests;
32:
33: class Ampacheflickr implements AmpachePluginInterface
34: {
35: public string $name = 'Flickr';
^
36: public string $categories = 'slideshow';
37: public string $description = 'Artist photos from Flickr';
38: public string $url = 'http://www.flickr.com';
39: public string $version = '000001';
40: public string $min_ampache = '360045';
41: public string $max_ampache = '999999';
42:
43: // These are internal settings used by this class, run this->load to fill them out
44: private $api_key;
45:
ERROR: Unable to parse file: /code/src/Plugin/Ampachelibrefm.php
ERROR: Parse error at line 37 column 12:
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Repository\Model\Plugin;
30: use Ampache\Repository\Model\Preference;
31: use Ampache\Repository\Model\Song;
32: use Ampache\Repository\Model\User;
33: use Ampache\Module\Playback\Scrobble\Scrobbler;
34:
35: class Ampachelibrefm implements AmpachePluginInterface
36: {
37: public string $name = 'Libre.FM';
^
38: public string $categories = 'scrobbling';
39: public string $description = 'Records your played songs to your Libre.FM Account';
40: public string $url = '';
41: public string $version = '000003';
42: public string $min_ampache = '360003';
43: public string $max_ampache = '999999';
44:
45: // These are internal settings used by this class, run this->load to fill them out
46: private $user_id;
47: private $challenge;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheAmazon.php
ERROR: Parse error at line 35 column 12:
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Repository\Model\Preference;
30: use Ampache\Repository\Model\User;
31: use Ampache\Module\Util\AmazonSearch;
32:
33: class AmpacheAmazon implements AmpachePluginInterface
34: {
35: public string $name = 'Amazon';
^
36: public string $categories = 'metadata';
37: public string $description = 'Amazon arts';
38: public string $url = 'http://www.amazon.com';
39: public string $version = '000001';
40: public string $min_ampache = '370009';
41: public string $max_ampache = '999999';
42:
43: // These are internal settings used by this class, run this->load to fill them out
44: private $amazon_base_url;
45: private $amazon_max_results_pages;
ERROR: Unable to parse file: /code/src/Plugin/AmpachePaypal.php
ERROR: Parse error at line 35 column 12:
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Repository\Model\library_item;
30: use Ampache\Repository\Model\Preference;
31: use Ampache\Repository\Model\User;
32:
33: class AmpachePaypal implements AmpachePluginInterface
34: {
35: public string $name = 'Paypal';
^
36: public string $categories = 'user';
37: public string $description = 'PayPal donation button on user page';
38: public string $url = '';
39: public string $version = '000001';
40: public string $min_ampache = '370034';
41: public string $max_ampache = '999999';
42:
43: // These are internal settings used by this class, run this->load to fill them out
44: private $user;
45: private $business;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheGoogleAnalytics.php
ERROR: Parse error at line 33 column 12:
23: *
24: */
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Preference;
29: use Ampache\Repository\Model\User;
30:
31: class AmpacheGoogleAnalytics implements AmpachePluginInterface
32: {
33: public string $name = 'GoogleAnalytics';
^
34: public string $categories = 'stats';
35: public string $description = 'Google Analytics statistics';
36: public string $url = '';
37: public string $version = '000001';
38: public string $min_ampache = '370034';
39: public string $max_ampache = '999999';
40:
41: // These are internal settings used by this class, run this->load to fill them out
42: private $user;
43: private $tracking_id;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheOmdb.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Art;
29: use Ampache\Repository\Model\User;
30: use Ampache\Module\System\Core;
31: use Exception;
32: use WpOrg\Requests\Requests;
33:
34: class AmpacheOmdb implements AmpachePluginInterface
35: {
36: public string $name = 'Omdb';
^
37: public string $categories = 'metadata';
38: public string $description = 'OMDb metadata integration';
39: public string $url = 'http://www.omdbapi.com';
40: public string $version = '000001';
41: public string $min_ampache = '370009';
42: public string $max_ampache = '999999';
43:
44: /**
45: * Constructor
46: * This function does nothing
ERROR: Unable to parse file: /code/src/Plugin/AmpacheGoogleMaps.php
ERROR: Parse error at line 36 column 12:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\Preference;
29: use Ampache\Repository\Model\User;
30: use Ampache\Module\System\Core;
31: use Exception;
32: use WpOrg\Requests\Requests;
33:
34: class AmpacheGoogleMaps implements AmpachePluginInterface
35: {
36: public string $name = 'GoogleMaps';
^
37: public string $categories = 'geolocation';
38: public string $description = 'Show user\'s location with Google Maps';
39: public string $url = 'http://maps.google.com';
40: public string $version = '000001';
41: public string $min_ampache = '370022';
42: public string $max_ampache = '999999';
43:
44: // These are internal settings used by this class, run this->load to fill them out
45: private $api_key;
46:
ERROR: Unable to parse file: /code/src/Plugin/AmpachePersonalFavorites.php
ERROR: Parse error at line 36 column 12:
26: use Ampache\Repository\Model\Playlist;
27: use Ampache\Repository\Model\Preference;
28: use Ampache\Repository\Model\Search;
29: use Ampache\Repository\Model\User;
30: use Ampache\Module\Api\Ajax;
31: use Ampache\Module\Playback\Stream_Playlist;
32: use Ampache\Module\Util\Ui;
33:
34: class AmpachePersonalFavorites implements AmpachePluginInterface
35: {
36: public string $name = 'Personal Favorites';
^
37: public string $categories = 'home';
38: public string $description = 'Personal favorites on homepage';
39: public string $url = '';
40: public string $version = '000002';
41: public string $min_ampache = '370021';
42: public string $max_ampache = '999999';
43:
44: // These are internal settings used by this class, run this->load to fill them out
45: private $display;
46: private $playlist;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheStreamHits.php
ERROR: Parse error at line 35 column 12:
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Repository\Model\Preference;
30: use Ampache\Repository\Model\User;
31: use Ampache\Module\Util\Graph;
32:
33: class AmpacheStreamHits implements AmpachePluginInterface
34: {
35: public string $name = 'Stream Hits';
^
36: public string $categories = 'stream_control';
37: public string $description = 'Control hits per user';
38: public string $url = '';
39: public string $version = '000001';
40: public string $min_ampache = '370024';
41: public string $max_ampache = '999999';
42:
43: // These are internal settings used by this class, run this->load to fill them out
44: private $user_id;
45: private $hits_days;
ERROR: Unable to parse file: /code/src/Plugin/AmpacheShoutHome.php
ERROR: Parse error at line 37 column 12:
27:
28: use Ampache\Config\AmpConfig;
29: use Ampache\Module\Shout\ShoutRendererInterface;
30: use Ampache\Repository\Model\Preference;
31: use Ampache\Repository\Model\User;
32: use Ampache\Module\Util\Ui;
33: use Ampache\Repository\ShoutRepositoryInterface;
34:
35: class AmpacheShoutHome implements AmpachePluginInterface
36: {
37: public string $name = 'Shout Home';
^
38: public string $categories = 'home';
39: public string $description = 'Shoutbox on homepage';
40: public string $url = '';
41: public string $version = '000001';
42: public string $min_ampache = '370021';
43: public string $max_ampache = '999999';
44:
45: // These are internal settings used by this class, run this->load to fill them out
46: private $maxitems;
47:
ERROR: Unable to parse file: /code/src/Config/Init/Init.php
ERROR: Parse error at line 41 column 13:
31: use Ampache\Config\Init\Exception\EnvironmentNotSuitableException;
32: use Ampache\Config\Init\Exception\GetTextNotAvailableException;
33: use Ampache\Module\System\Core;
34: use Ampache\Module\Util\EnvironmentInterface;
35:
36: /**
37: * This class performs the complete init process to build a working ampache application environment
38: */
39: final class Init
40: {
41: private EnvironmentInterface $environment;
^
42:
43: /** @var InitializationHandlerInterface[] */
44: private array $initializationHandler;
45:
46: public function __construct(
47: EnvironmentInterface $environment,
48: array $initializationHandler
49: ) {
50: $this->environment = $environment;
51: $this->initializationHandler = $initializationHandler;
ERROR: Unable to parse file: /code/src/Config/Init/InitializationHandlerEnvironment.php
ERROR: Parse error at line 33 column 13:
23: *
24: */
25:
26: namespace Ampache\Config\Init;
27:
28: use Ampache\Config\Init\Exception\EnvironmentNotSuitableException;
29: use Ampache\Module\Util\EnvironmentInterface;
30:
31: final class InitializationHandlerEnvironment implements InitializationHandlerInterface
32: {
33: private EnvironmentInterface $environment;
^
34:
35: public function __construct(
36: EnvironmentInterface $environment
37: ) {
38: $this->environment = $environment;
39: }
40:
41: public function init(): void
42: {
43: if ($this->environment->check() === false) {
ERROR: Unable to parse file: /code/src/Config/Init/InitializationHandlerDatabaseUpdate.php
ERROR: Parse error at line 35 column 13:
25:
26: namespace Ampache\Config\Init;
27:
28: use Ampache\Config\Init\Exception\DatabaseOutdatedException;
29: use Ampache\Config\Init\Exception\EnvironmentNotSuitableException;
30: use Ampache\Module\System\Dba;
31: use Ampache\Module\System\Update;
32:
33: final class InitializationHandlerDatabaseUpdate implements InitializationHandlerInterface
34: {
35: private Update\UpdaterInterface $updater;
^
36:
37: public function __construct(
38: Update\UpdaterInterface $updater
39: ) {
40: $this->updater = $updater;
41: }
42:
43: public function init(): void
44: {
45: // Check to see if we need to perform an update
ERROR: Unable to parse file: /code/src/Config/Init/InitializationHandlerGlobals.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Config\Init;
27:
28: use Ampache\Config\ConfigContainerInterface;
29: use Ampache\Module\System\Core;
30: use Ampache\Module\System\Session;
31:
32: final class InitializationHandlerGlobals implements InitializationHandlerInterface
33: {
34: private ConfigContainerInterface $configContainer;
^
35:
36: public function __construct(
37: ConfigContainerInterface $configContainer
38: ) {
39: $this->configContainer = $configContainer;
40: }
41:
42: public function init(): void
43: {
44: Core::get_global('user')->format(false);
ERROR: Unable to parse file: /code/src/Config/Init/InitializationHandlerConfig.php
ERROR: Parse error at line 43 column 13:
33: use DateTimeZone;
34:
35: final class InitializationHandlerConfig implements InitializationHandlerInterface
36: {
37: private const VERSION = '6.4.0'; // AMPACHE_VERSION
38: private const CONFIG_VERSION = '71';
39: private const STRUCTURE = 'public'; // Project release is using either the public html folder or squashed structure
40:
41: public const CONFIG_FILE_PATH = __DIR__ . '/../../../config/ampache.cfg.php';
42:
43: private EnvironmentInterface $environment;
^
44:
45: public function __construct(
46: EnvironmentInterface $environment
47: ) {
48: $this->environment = $environment;
49: }
50:
51: public function init(): void
52: {
53: // Check to make sure the config file exists. If it doesn't then go ahead and
ERROR: Unable to parse file: /code/src/Config/Init/InitializationHandlerAuth.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Config\Init;
27:
28: use Ampache\Repository\Model\Preference;
29: use Ampache\Module\System\SessionInterface;
30: use Ampache\Module\Util\EnvironmentInterface;
31:
32: final class InitializationHandlerAuth implements InitializationHandlerInterface
33: {
34: private EnvironmentInterface $environment;
^
35:
36: private SessionInterface $session;
37:
38: public function __construct(
39: EnvironmentInterface $environment,
40: SessionInterface $session
41: ) {
42: $this->environment = $environment;
43: $this->session = $session;
44: }
ERROR: Unable to parse file: /code/src/Config/ConfigContainer.php
ERROR: Parse error at line 34 column 13:
24: */
25:
26: namespace Ampache\Config;
27:
28: /**
29: * The ConfigContainer is a containment for all of Ampache's configuration data.
30: * Once initialized, the data is immutable
31: */
32: final class ConfigContainer implements ConfigContainerInterface
33: {
34: private array $configuration;
^
35:
36: public function __construct(
37: array $configuration
38: ) {
39: $this->configuration = $configuration;
40: }
41:
42: public function updateConfig(array $configuration): ConfigContainerInterface
43: {
44: $this->configuration = array_merge(
ERROR: Unable to parse file: /code/src/Config/DicBuilder.php
ERROR: Parse error at line 65 column 1:
55: require_once __DIR__ . '/../Module/Authorization/service_definition.php',
56: require_once __DIR__ . '/../Module/License/service_definition.php',
57: require_once __DIR__ . '/../Repository/service_definition.php',
58: require_once __DIR__ . '/../Module/Label/service_definition.php',
59: require_once __DIR__ . '/../Module/Artist/service_definition.php',
60: require_once __DIR__ . '/../Module/Wanted/service_definition.php',
61: require_once __DIR__ . '/../Module/Share/service_definition.php',
62: require_once __DIR__ . '/../Module/Shout/service_definition.php',
63: require_once __DIR__ . '/../Module/Podcast/service_definition.php',
64: require_once __DIR__ . '/../Module/Metadata/service_definition.php',
65: );
^
66:
67: return $builder->build();
68:
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/UserAjaxHandler.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Module\Authorization\Access;
29: use Ampache\Config\AmpConfig;
30: use Ampache\Module\System\Core;
31: use Ampache\Module\Util\RequestParserInterface;
32: use Ampache\Repository\Model\User;
33: use Ampache\Module\User\Following\UserFollowStateRendererInterface;
34: use Ampache\Module\User\Following\UserFollowTogglerInterface;
35:
36: final class UserAjaxHandler implements AjaxHandlerInterface
37: {
38: private RequestParserInterface $requestParser;
^
39:
40: private UserFollowTogglerInterface $followToggler;
41:
42: private UserFollowStateRendererInterface $userFollowStateRenderer;
43:
44: public function __construct(
45: RequestParserInterface $requestParser,
46: UserFollowTogglerInterface $followToggler,
47: UserFollowStateRendererInterface $userFollowStateRenderer
48: ) {
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/SearchAjaxHandler.php
ERROR: Parse error at line 47 column 13:
37: use Ampache\Repository\Model\Art;
38: use Ampache\Repository\Model\Artist;
39: use Ampache\Repository\Model\Playlist;
40: use Ampache\Repository\Model\Search;
41: use Ampache\Repository\Model\Song;
42: use Ampache\Repository\Model\User;
43: use Ampache\Module\Wanted\MissingArtistFinderInterface;
44:
45: final class SearchAjaxHandler implements AjaxHandlerInterface
46: {
47: private RequestParserInterface $requestParser;
^
48:
49: private ConfigContainerInterface $configContainer;
50:
51: private MissingArtistFinderInterface $missingArtistFinder;
52:
53: private LabelRepositoryInterface $labelRepository;
54:
55: public function __construct(
56: RequestParserInterface $requestParser,
57: ConfigContainerInterface $configContainer,
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/PlaylistAjaxHandler.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Util\InterfaceImplementationChecker;
31: use Ampache\Module\Util\ObjectTypeToClassNameMapper;
32: use Ampache\Module\Util\RequestParserInterface;
33: use Ampache\Repository\Model\Browse;
34: use Ampache\Module\System\Core;
35: use Ampache\Repository\Model\library_item;
36: use Ampache\Repository\Model\Playlist;
37:
38: final class PlaylistAjaxHandler implements AjaxHandlerInterface
39: {
40: private RequestParserInterface $requestParser;
^
41:
42: public function __construct(
43: RequestParserInterface $requestParser
44: ) {
45: $this->requestParser = $requestParser;
46: }
47:
48: public function handle(): void
49: {
50: $results = array();
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/StatsAjaxHandler.php
ERROR: Parse error at line 40 column 13:
30: use Ampache\Module\Util\RequestParserInterface;
31: use Ampache\Module\Util\Ui;
32: use Ampache\Repository\Model\Plugin;
33: use Ampache\Module\System\Session;
34: use Ampache\Module\Statistics\Stats;
35: use Ampache\Repository\Model\Song;
36: use Ampache\Repository\Model\User;
37:
38: final class StatsAjaxHandler implements AjaxHandlerInterface
39: {
40: private RequestParserInterface $requestParser;
^
41:
42: public function __construct(
43: RequestParserInterface $requestParser
44: ) {
45: $this->requestParser = $requestParser;
46: }
47:
48: public function handle(): void
49: {
50: $results = array();
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/StreamAjaxHandler.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Module\Util\InterfaceImplementationChecker;
29: use Ampache\Config\AmpConfig;
30: use Ampache\Module\System\Core;
31: use Ampache\Module\Util\RequestParserInterface;
32: use Ampache\Repository\Model\Preference;
33: use Ampache\Module\Util\Ui;
34:
35: final class StreamAjaxHandler implements AjaxHandlerInterface
36: {
37: private RequestParserInterface $requestParser;
^
38:
39: public function __construct(
40: RequestParserInterface $requestParser
41: ) {
42: $this->requestParser = $requestParser;
43: }
44: public function handle(): void
45: {
46: $results = array();
47: $action = $this->requestParser->getFromRequest('action');
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/TagAjaxHandler.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Module\System\Core;
33: use Ampache\Repository\Model\Label;
34: use Ampache\Repository\Model\library_item;
35: use Ampache\Repository\Model\Tag;
36: use Ampache\Module\Util\InterfaceImplementationChecker;
37: use Ampache\Module\Util\ObjectTypeToClassNameMapper;
38: use Ampache\Repository\LabelRepositoryInterface;
39:
40: final class TagAjaxHandler implements AjaxHandlerInterface
41: {
42: private RequestParserInterface $requestParser;
^
43:
44: private LabelRepositoryInterface $labelRepository;
45:
46: public function __construct(
47: RequestParserInterface $requestParser,
48: LabelRepositoryInterface $labelRepository
49: ) {
50: $this->requestParser = $requestParser;
51: $this->labelRepository = $labelRepository;
52: }
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/IndexAjaxHandler.php
ERROR: Parse error at line 53 column 13:
43: use Ampache\Repository\Model\User;
44: use Ampache\Repository\Model\Wanted;
45: use Ampache\Repository\AlbumRepositoryInterface;
46: use Ampache\Repository\LabelRepositoryInterface;
47: use Ampache\Repository\SongRepositoryInterface;
48: use Ampache\Repository\VideoRepositoryInterface;
49: use Ampache\Repository\WantedRepositoryInterface;
50:
51: final class IndexAjaxHandler implements AjaxHandlerInterface
52: {
53: private RequestParserInterface $requestParser;
^
54:
55: private SlideshowInterface $slideshow;
56:
57: private AlbumRepositoryInterface $albumRepository;
58:
59: private LabelRepositoryInterface $labelRepository;
60:
61: private SongRepositoryInterface $songRepository;
62:
63: private WantedRepositoryInterface $wantedRepository;
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/RandomAjaxHandler.php
ERROR: Parse error at line 42 column 13:
32: use Ampache\Repository\Model\Browse;
33: use Ampache\Module\System\Core;
34: use Ampache\Repository\Model\Playlist;
35: use Ampache\Repository\Model\Random;
36: use Ampache\Module\Util\Ui;
37: use Ampache\Repository\AlbumRepositoryInterface;
38: use Ampache\Repository\SongRepositoryInterface;
39:
40: final class RandomAjaxHandler implements AjaxHandlerInterface
41: {
42: private RequestParserInterface $requestParser;
^
43:
44: private AlbumRepositoryInterface $albumRepository;
45:
46: private SongRepositoryInterface $songRepository;
47:
48: public function __construct(
49: RequestParserInterface $requestParser,
50: AlbumRepositoryInterface $albumRepository,
51: SongRepositoryInterface $songRepository
52: ) {
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/PlayerAjaxHandler.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Application\Api\Ajax\Handler;
27:
28: use Ampache\Module\Util\AjaxUriRetrieverInterface;
29: use Ampache\Module\Util\RequestParserInterface;
30: use Ampache\Module\Util\UiInterface;
31: use Ampache\Repository\Model\Broadcast;
32: use Ampache\Module\System\Core;
33:
34: final class PlayerAjaxHandler implements AjaxHandlerInterface
35: {
36: private RequestParserInterface $requestParser;
^
37:
38: private AjaxUriRetrieverInterface $ajaxUriRetriever;
39:
40: private UiInterface $ui;
41:
42: public function __construct(
43: RequestParserInterface $requestParser,
44: AjaxUriRetrieverInterface $ajaxUriRetriever,
45: UiInterface $ui
46: ) {
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/BrowseAjaxHandler.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Repository\Model\ModelFactoryInterface;
30: use Ampache\Module\Share\ShareUiLinkRendererInterface;
31: use Ampache\Module\Util\InterfaceImplementationChecker;
32: use Ampache\Module\System\Core;
33: use Ampache\Repository\Model\Playlist;
34: use Ampache\Module\Util\Ui;
35: use Ampache\Repository\LiveStreamRepositoryInterface;
36:
37: final class BrowseAjaxHandler implements AjaxHandlerInterface
38: {
39: private RequestParserInterface $requestParser;
^
40:
41: private ModelFactoryInterface $modelFactory;
42:
43: private LiveStreamRepositoryInterface $liveStreamRepository;
44:
45: private ShareUiLinkRendererInterface $shareUiLinkRenderer;
46:
47: public function __construct(
48: RequestParserInterface $requestParser,
49: ModelFactoryInterface $modelFactory,
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/DemocraticPlaybackAjaxHandler.php
ERROR: Parse error at line 37 column 13:
27:
28: use Ampache\Module\Authorization\Access;
29: use Ampache\Config\AmpConfig;
30: use Ampache\Module\Util\RequestParserInterface;
31: use Ampache\Repository\Model\Browse;
32: use Ampache\Module\System\Core;
33: use Ampache\Repository\Model\Democratic;
34:
35: final class DemocraticPlaybackAjaxHandler implements AjaxHandlerInterface
36: {
37: private RequestParserInterface $requestParser;
^
38:
39: public function __construct(
40: RequestParserInterface $requestParser
41: ) {
42: $this->requestParser = $requestParser;
43: }
44:
45: public function handle(): void
46: {
47: $democratic = Democratic::get_current_playlist();
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/DefaultAjaxHandler.php
ERROR: Parse error at line 47 column 13:
37: use Ampache\Repository\Model\Rating;
38: use Ampache\Module\Util\Ui;
39: use Ampache\Repository\Model\Tag;
40: use Ampache\Repository\Model\User;
41: use Ampache\Repository\Model\Userflag;
42: use Ampache\Repository\AlbumRepositoryInterface;
43: use Ampache\Repository\SongRepositoryInterface;
44:
45: final class DefaultAjaxHandler implements AjaxHandlerInterface
46: {
47: private RequestParserInterface $requestParser;
^
48:
49: private AlbumRepositoryInterface $albumRepository;
50:
51: private SongRepositoryInterface $songRepository;
52:
53: public function __construct(
54: RequestParserInterface $requestParser,
55: AlbumRepositoryInterface $albumRepository,
56: SongRepositoryInterface $songRepository
57: ) {
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/LocalPlayAjaxHandler.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Config\AmpConfig;
30: use Ampache\Module\Util\RequestParserInterface;
31: use Ampache\Repository\Model\Browse;
32: use Ampache\Module\System\Core;
33: use Ampache\Module\Playback\Localplay\LocalPlay;
34: use Ampache\Repository\Model\Preference;
35: use Ampache\Module\Util\Ui;
36:
37: final class LocalPlayAjaxHandler implements AjaxHandlerInterface
38: {
39: private RequestParserInterface $requestParser;
^
40:
41: public function __construct(
42: RequestParserInterface $requestParser
43: ) {
44: $this->requestParser = $requestParser;
45: }
46:
47: public function handle(): void
48: {
49: $results = array();
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/PodcastAjaxHandler.php
ERROR: Parse error at line 38 column 13:
28: use Ampache\Module\Authorization\Access;
29: use Ampache\Module\Podcast\PodcastEpisodeDownloaderInterface;
30: use Ampache\Module\Podcast\PodcastSyncerInterface;
31: use Ampache\Module\System\Core;
32: use Ampache\Module\Util\RequestParserInterface;
33: use Ampache\Repository\Model\Podcast_Episode;
34: use Ampache\Repository\PodcastRepositoryInterface;
35:
36: final class PodcastAjaxHandler implements AjaxHandlerInterface
37: {
38: private RequestParserInterface $requestParser;
^
39:
40: private PodcastSyncerInterface $podcastSyncer;
41:
42: private PodcastEpisodeDownloaderInterface $podcastEpisodeDownloader;
43: private PodcastRepositoryInterface $podcastRepository;
44:
45: public function __construct(
46: RequestParserInterface $requestParser,
47: PodcastSyncerInterface $podcastSyncer,
48: PodcastEpisodeDownloaderInterface $podcastEpisodeDownloader,
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/CatalogAjaxHandler.php
ERROR: Parse error at line 36 column 13:
26: namespace Ampache\Application\Api\Ajax\Handler;
27:
28: use Ampache\Module\Authorization\Access;
29: use Ampache\Module\Api\Ajax;
30: use Ampache\Module\Util\RequestParserInterface;
31: use Ampache\Repository\Model\Catalog;
32: use Ampache\Module\System\Core;
33:
34: final class CatalogAjaxHandler implements AjaxHandlerInterface
35: {
36: private RequestParserInterface $requestParser;
^
37:
38: public function __construct(
39: RequestParserInterface $requestParser
40: ) {
41: $this->requestParser = $requestParser;
42: }
43:
44: public function handle(): void
45: {
46: $results = array();
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/Handler/SongAjaxHandler.php
ERROR: Parse error at line 39 column 13:
29: use Ampache\Module\Api\Ajax;
30: use Ampache\Module\Shout\ShoutRendererInterface;
31: use Ampache\Module\System\Core;
32: use Ampache\Module\Util\RequestParserInterface;
33: use Ampache\Repository\Model\Shoutbox;
34: use Ampache\Repository\Model\Song;
35: use Ampache\Repository\ShoutRepositoryInterface;
36:
37: final class SongAjaxHandler implements AjaxHandlerInterface
38: {
39: private RequestParserInterface $requestParser;
^
40:
41: private ShoutRepositoryInterface $shoutRepository;
42:
43: private ShoutRendererInterface $shoutRenderer;
44:
45: public function __construct(
46: RequestParserInterface $requestParser,
47: ShoutRepositoryInterface $shoutRepository,
48: ShoutRendererInterface $shoutRenderer
49: ) {
ERROR: Unable to parse file: /code/src/Application/Api/Ajax/AjaxApplication.php
ERROR: Parse error at line 69 column 13:
59: 'podcast' => PodcastAjaxHandler::class,
60: 'random' => RandomAjaxHandler::class,
61: 'search' => SearchAjaxHandler::class,
62: 'song' => SongAjaxHandler::class,
63: 'stats' => StatsAjaxHandler::class,
64: 'stream' => StreamAjaxHandler::class,
65: 'tag' => TagAjaxHandler::class,
66: 'user' => UserAjaxHandler::class,
67: ];
68:
69: private ContainerInterface $dic;
^
70:
71: public function __construct(
72: ContainerInterface $dic
73: ) {
74: $this->dic = $dic;
75: }
76:
77: public function run(): void
78: {
79: xoutput_headers();
ERROR: Unable to parse file: /code/rector.php
ERROR: Parse error at line 21 column 24:
11:
12: return RectorConfig::configure()
13: ->withPaths([
14: __DIR__ . '/tests',
15: ])
16: ->withCache(__DIR__ . '/build/rector', FileCacheStorage::class)
17: ->withImportNames()
18: ->withRules([
19: InlineConstructorDefaultToPropertyRector::class
20: ])
21: ->withPhpSets(php74: true)
^
22: ->withPreparedSets(deadCode: true, codeQuality: true, codingStyle: true)
23: ->withSkip([
24: FlipTypeControlToUseExclusiveTypeRector::class,
25: StaticClosureRector::class,
26: SymplifyQuoteEscapeRector::class,
27: ]);
28:
ERROR: Unable to parse file: /code/docs/examples/AmpacheExample.php
ERROR: Parse error at line 32 column 12:
22: * along with this program. If not, see <https://www.gnu.org/licenses/>.
23: *
24: */
25:
26: namespace Ampache\Plugin;
27:
28: use Ampache\Repository\Model\User;
29:
30: class AmpacheExample implements AmpachePluginInterface
31: {
32: public string $name = 'Example';
^
33: public string $categories = 'home';
34: public string $description = 'Example Plugin';
35: public string $url = '';
36: public string $version = '000001';
37: public string $min_ampache = '370021';
38: public string $max_ampache = '999999';
39:
40: /**
41: * Constructor
42: */
INFO: 1915/1915 source files have been analyzed
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 17.141s
INFO: Final Memory: 6M/301M
INFO: ------------------------------------------------------------------------
|