├── migrations ├── .gitignore └── Version20240401205417.php ├── tests ├── _output │ └── .gitignore ├── Acceptance.suite.yml ├── Unit.suite.yml ├── Api.suite.yml ├── bootstrap.php ├── Support │ ├── UnitTester.php │ ├── AcceptanceTester.php │ └── ApiTester.php ├── Acceptance │ ├── FrontendCest.php │ └── BackendCest.php └── Unit │ ├── YoutubeVideoTitleParsingTest.php │ └── UtilsTest.php ├── assets ├── styles │ └── app.css ├── scss │ ├── styles.scss │ └── partials │ │ ├── reset.scss │ │ ├── embed.scss │ │ └── iphone-style.scss ├── js │ ├── main.js │ ├── show.js │ ├── about.js │ ├── trends.js │ ├── twig │ │ └── result.html.twig │ └── vendor │ │ └── tablesort.js └── widget │ ├── widget-overlay.scss │ └── widget.scss ├── templates ├── api │ └── api.less ├── macros │ └── tools.twig ├── bundles │ └── TwigBundle │ │ └── Exception │ │ ├── error.html.twig │ │ ├── error404.html.twig │ │ └── error503.html.twig ├── admin │ ├── _base.html.twig │ ├── dashboard.html.twig │ ├── login.html.twig │ ├── clients.html.twig │ └── clients.new.html.twig ├── _widget.html.twig ├── about.html.twig ├── trends.html.twig └── base.html.twig ├── deploy ├── vars.yml.dist ├── Caddyfile ├── nginx.conf └── deploy.yml ├── public ├── favicon.ico ├── favicon.png ├── img │ ├── close.png │ ├── error.png │ ├── logo.png │ ├── reset.png │ ├── share.png │ ├── social.png │ ├── album_on.png │ ├── browsers.png │ ├── coverlay.png │ ├── home_pic.png │ ├── success.png │ ├── track_on.png │ ├── twitter.png │ ├── ajax-loader.gif │ ├── album_link.png │ ├── album_off.png │ ├── artist_link.png │ ├── background.png │ ├── extra_cover.png │ ├── extra_remix.png │ ├── fact_free.png │ ├── fact_picks.png │ ├── fact_widget.png │ ├── icon_search.png │ ├── logo_footer.png │ ├── new_window.png │ ├── song_link.png │ ├── track_off.png │ ├── creator_idea.png │ ├── fact_friends.png │ ├── fact_patterns.png │ ├── fact_sharing.png │ ├── lang_underlay.png │ ├── more_options.png │ ├── nothumb_album.png │ ├── nothumb_track.png │ ├── options_down.png │ ├── plus_options.png │ ├── widget_button.png │ ├── background_menu.png │ ├── creator_design.png │ ├── dashboard │ │ ├── album.png │ │ ├── song.png │ │ ├── users.png │ │ └── song-alt.png │ ├── extra_acoustic.png │ ├── fact_pertinence.png │ ├── icon_search_help.png │ ├── iphone-style │ │ ├── off.png │ │ ├── on.png │ │ ├── slider.png │ │ ├── slider_center.png │ │ ├── slider_left.png │ │ └── slider_right.png │ ├── pagination_left.png │ ├── pagination_right.png │ ├── ajax-loader-widget.gif │ └── platforms │ │ ├── platform_amazon.png │ │ ├── platform_deezer.png │ │ ├── platform_groove.png │ │ ├── platform_hypem.png │ │ ├── platform_itunes.png │ │ ├── platform_lastfm.png │ │ ├── platform_napster.png │ │ ├── platform_qobuz.png │ │ ├── platform_spotify.png │ │ ├── platform_tidal.png │ │ ├── platform_youtube.png │ │ ├── platform_mixcloud.png │ │ ├── platform_chart_amazon.png │ │ ├── platform_chart_deezer.png │ │ ├── platform_chart_groove.png │ │ ├── platform_chart_hypem.png │ │ ├── platform_chart_itunes.png │ │ ├── platform_chart_lastfm.png │ │ ├── platform_chart_qobuz.png │ │ ├── platform_chart_tidal.png │ │ ├── platform_full_amazon.png │ │ ├── platform_full_deezer.png │ │ ├── platform_full_groove.png │ │ ├── platform_full_hypem.png │ │ ├── platform_full_itunes.png │ │ ├── platform_full_lastfm.png │ │ ├── platform_full_napster.png │ │ ├── platform_full_qobuz.png │ │ ├── platform_full_spotify.png │ │ ├── platform_full_tidal.png │ │ ├── platform_full_youtube.png │ │ ├── platform_soundcloud.png │ │ ├── platform_chart_mixcloud.png │ │ ├── platform_chart_napster.png │ │ ├── platform_chart_spotify.png │ │ ├── platform_chart_youtube.png │ │ ├── platform_full_mixcloud.png │ │ ├── platform_chart_soundcloud.png │ │ ├── platform_full_soundcloud.png │ │ └── platform_youtube_compliance.png ├── index.php └── build │ ├── js │ ├── main.js │ ├── show.js │ ├── about.js │ ├── trends.js │ ├── vendor │ │ └── tablesort.js │ ├── widget.js │ └── twig │ │ └── result.html.twig │ └── css │ ├── widget-overlay.css │ ├── embed.css │ └── widget.css ├── config ├── packages │ ├── mailer.yaml │ ├── asset_mapper.yaml │ ├── translation.yaml │ ├── nelmio_cors.yaml │ ├── twig.yaml │ ├── debug.yaml │ ├── doctrine_migrations.yaml │ ├── routing.yaml │ ├── validator.yaml │ ├── web_profiler.yaml │ ├── framework.yaml │ ├── nyholm_psr7.yaml │ ├── cache.yaml │ ├── league_oauth2_server.yaml │ ├── doctrine.yaml │ ├── monolog.yaml │ └── security.yaml ├── routes │ ├── security.yaml │ ├── framework.yaml │ ├── league_oauth2_server.yaml │ └── web_profiler.yaml ├── routes.yaml ├── preload.php ├── bundles.php └── services.yaml ├── src ├── Dataclass │ └── MusicalEntity │ │ ├── MusicalEntityMergeException.php │ │ ├── MusicalEntityInterface.php │ │ └── Entities │ │ └── Album.php ├── Kernel.php ├── Services │ ├── Platforms │ │ ├── Interfaces │ │ │ ├── WebStoreInterface.php │ │ │ ├── ScrobblingPlatformInterface.php │ │ │ ├── WebStreamingPlatformInterface.php │ │ │ └── GeneralPlatformInterface.php │ │ ├── PlatformException.php │ │ └── PlatformResult.php │ └── ClientCredentialsGrant.php ├── Command │ ├── StatsUpdaterCommand.php │ ├── ExpiredIntentsCleanerCommand.php │ └── PlatformIpsFetcherCommand.php ├── Serializer │ └── ApiErrorSerializer.php ├── Repository │ └── ApiClientRepository.php ├── EventSubscriber │ ├── LocaleSubscriber.php │ ├── ApiStatsSubscriber.php │ └── ApiBypassSubscriber.php ├── Controller │ ├── SecurityController.php │ └── BackendController.php ├── Security │ ├── AdminUser.php │ ├── AdminUserProvider.php │ └── LoginFormAuthenticator.php ├── Utils │ ├── ApiUtils.php │ └── Utils.php └── Entity │ ├── ApiClient.php │ └── Item.php ├── .editorconfig ├── .env.test ├── examples ├── search.curl.sh ├── search.requests.py ├── search.request.js ├── search.curl.php └── postman │ └── tuneefy.postman_environment.json ├── bin ├── console └── phpunit ├── codeception.yml ├── .php-cs-fixer.php ├── .gitignore ├── package.json ├── phpunit.xml.dist ├── .env ├── gulpfile.js ├── README.md └── composer.json /migrations/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/_output/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /assets/styles/app.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: skyblue; 3 | } 4 | -------------------------------------------------------------------------------- /templates/api/api.less: -------------------------------------------------------------------------------- 1 | .action dl.inner { 2 | margin-top: 1px; 3 | } -------------------------------------------------------------------------------- /deploy/vars.yml.dist: -------------------------------------------------------------------------------- 1 | tuneefy_hosts: frontend 2 | project_path: /var/www/tuneefy -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/favicon.png -------------------------------------------------------------------------------- /public/img/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/close.png -------------------------------------------------------------------------------- /public/img/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/error.png -------------------------------------------------------------------------------- /public/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/logo.png -------------------------------------------------------------------------------- /public/img/reset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/reset.png -------------------------------------------------------------------------------- /public/img/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/share.png -------------------------------------------------------------------------------- /public/img/social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/social.png -------------------------------------------------------------------------------- /config/packages/mailer.yaml: -------------------------------------------------------------------------------- 1 | framework: 2 | mailer: 3 | dsn: '%env(MAILER_DSN)%' 4 | -------------------------------------------------------------------------------- /public/img/album_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/album_on.png -------------------------------------------------------------------------------- /public/img/browsers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/browsers.png -------------------------------------------------------------------------------- /public/img/coverlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/coverlay.png -------------------------------------------------------------------------------- /public/img/home_pic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/home_pic.png -------------------------------------------------------------------------------- /public/img/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/success.png -------------------------------------------------------------------------------- /public/img/track_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/track_on.png -------------------------------------------------------------------------------- /public/img/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/twitter.png -------------------------------------------------------------------------------- /public/img/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/ajax-loader.gif -------------------------------------------------------------------------------- /public/img/album_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/album_link.png -------------------------------------------------------------------------------- /public/img/album_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/album_off.png -------------------------------------------------------------------------------- /public/img/artist_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/artist_link.png -------------------------------------------------------------------------------- /public/img/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/background.png -------------------------------------------------------------------------------- /public/img/extra_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/extra_cover.png -------------------------------------------------------------------------------- /public/img/extra_remix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/extra_remix.png -------------------------------------------------------------------------------- /public/img/fact_free.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/fact_free.png -------------------------------------------------------------------------------- /public/img/fact_picks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/fact_picks.png -------------------------------------------------------------------------------- /public/img/fact_widget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/fact_widget.png -------------------------------------------------------------------------------- /public/img/icon_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/icon_search.png -------------------------------------------------------------------------------- /public/img/logo_footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/logo_footer.png -------------------------------------------------------------------------------- /public/img/new_window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/new_window.png -------------------------------------------------------------------------------- /public/img/song_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/song_link.png -------------------------------------------------------------------------------- /public/img/track_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/track_off.png -------------------------------------------------------------------------------- /public/img/creator_idea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/creator_idea.png -------------------------------------------------------------------------------- /public/img/fact_friends.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/fact_friends.png -------------------------------------------------------------------------------- /public/img/fact_patterns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/fact_patterns.png -------------------------------------------------------------------------------- /public/img/fact_sharing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/fact_sharing.png -------------------------------------------------------------------------------- /public/img/lang_underlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/lang_underlay.png -------------------------------------------------------------------------------- /public/img/more_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/more_options.png -------------------------------------------------------------------------------- /public/img/nothumb_album.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/nothumb_album.png -------------------------------------------------------------------------------- /public/img/nothumb_track.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/nothumb_track.png -------------------------------------------------------------------------------- /public/img/options_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/options_down.png -------------------------------------------------------------------------------- /public/img/plus_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/plus_options.png -------------------------------------------------------------------------------- /public/img/widget_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/widget_button.png -------------------------------------------------------------------------------- /public/img/background_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/background_menu.png -------------------------------------------------------------------------------- /public/img/creator_design.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/creator_design.png -------------------------------------------------------------------------------- /public/img/dashboard/album.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/dashboard/album.png -------------------------------------------------------------------------------- /public/img/dashboard/song.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/dashboard/song.png -------------------------------------------------------------------------------- /public/img/dashboard/users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/dashboard/users.png -------------------------------------------------------------------------------- /public/img/extra_acoustic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/extra_acoustic.png -------------------------------------------------------------------------------- /public/img/fact_pertinence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/fact_pertinence.png -------------------------------------------------------------------------------- /public/img/icon_search_help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/icon_search_help.png -------------------------------------------------------------------------------- /public/img/iphone-style/off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/iphone-style/off.png -------------------------------------------------------------------------------- /public/img/iphone-style/on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/iphone-style/on.png -------------------------------------------------------------------------------- /public/img/pagination_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/pagination_left.png -------------------------------------------------------------------------------- /public/img/pagination_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/pagination_right.png -------------------------------------------------------------------------------- /config/routes/security.yaml: -------------------------------------------------------------------------------- 1 | _security_logout: 2 | resource: security.route_loader.logout 3 | type: service 4 | -------------------------------------------------------------------------------- /public/img/ajax-loader-widget.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/ajax-loader-widget.gif -------------------------------------------------------------------------------- /public/img/dashboard/song-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/dashboard/song-alt.png -------------------------------------------------------------------------------- /public/img/iphone-style/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/iphone-style/slider.png -------------------------------------------------------------------------------- /public/img/iphone-style/slider_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/iphone-style/slider_center.png -------------------------------------------------------------------------------- /public/img/iphone-style/slider_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/iphone-style/slider_left.png -------------------------------------------------------------------------------- /public/img/iphone-style/slider_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/iphone-style/slider_right.png -------------------------------------------------------------------------------- /public/img/platforms/platform_amazon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_amazon.png -------------------------------------------------------------------------------- /public/img/platforms/platform_deezer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_deezer.png -------------------------------------------------------------------------------- /public/img/platforms/platform_groove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_groove.png -------------------------------------------------------------------------------- /public/img/platforms/platform_hypem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_hypem.png -------------------------------------------------------------------------------- /public/img/platforms/platform_itunes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_itunes.png -------------------------------------------------------------------------------- /public/img/platforms/platform_lastfm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_lastfm.png -------------------------------------------------------------------------------- /public/img/platforms/platform_napster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_napster.png -------------------------------------------------------------------------------- /public/img/platforms/platform_qobuz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_qobuz.png -------------------------------------------------------------------------------- /public/img/platforms/platform_spotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_spotify.png -------------------------------------------------------------------------------- /public/img/platforms/platform_tidal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_tidal.png -------------------------------------------------------------------------------- /public/img/platforms/platform_youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_youtube.png -------------------------------------------------------------------------------- /public/img/platforms/platform_mixcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_mixcloud.png -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_amazon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_amazon.png -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_deezer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_deezer.png -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_groove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_groove.png -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_hypem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_hypem.png -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_itunes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_itunes.png -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_lastfm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_lastfm.png -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_qobuz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_qobuz.png -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_tidal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_tidal.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_amazon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_amazon.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_deezer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_deezer.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_groove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_groove.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_hypem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_hypem.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_itunes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_itunes.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_lastfm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_lastfm.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_napster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_napster.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_qobuz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_qobuz.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_spotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_spotify.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_tidal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_tidal.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_youtube.png -------------------------------------------------------------------------------- /public/img/platforms/platform_soundcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_soundcloud.png -------------------------------------------------------------------------------- /templates/macros/tools.twig: -------------------------------------------------------------------------------- 1 | {% macro ellipsis(txt, len) -%} 2 | {{ txt|length > len ? txt|slice(0, len) ~ '…' : txt }} 3 | {%- endmacro %} -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_mixcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_mixcloud.png -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_napster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_napster.png -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_spotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_spotify.png -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_youtube.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_mixcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_mixcloud.png -------------------------------------------------------------------------------- /config/routes.yaml: -------------------------------------------------------------------------------- 1 | controllers: 2 | resource: 3 | path: ../src/Controller/ 4 | namespace: App\Controller 5 | type: attribute 6 | -------------------------------------------------------------------------------- /public/img/platforms/platform_chart_soundcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_chart_soundcloud.png -------------------------------------------------------------------------------- /public/img/platforms/platform_full_soundcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_full_soundcloud.png -------------------------------------------------------------------------------- /public/img/platforms/platform_youtube_compliance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tchapi/tuneefy2/HEAD/public/img/platforms/platform_youtube_compliance.png -------------------------------------------------------------------------------- /config/routes/framework.yaml: -------------------------------------------------------------------------------- 1 | when@dev: 2 | _errors: 3 | resource: '@FrameworkBundle/Resources/config/routing/errors.xml' 4 | prefix: /_error 5 | -------------------------------------------------------------------------------- /config/packages/asset_mapper.yaml: -------------------------------------------------------------------------------- 1 | framework: 2 | asset_mapper: 3 | # The paths to make available to the asset mapper. 4 | paths: 5 | - assets/ 6 | -------------------------------------------------------------------------------- /tests/Acceptance.suite.yml: -------------------------------------------------------------------------------- 1 | actor: AcceptanceTester 2 | suite_namespace: Tests\Acceptance 3 | modules: 4 | enabled: 5 | - PhpBrowser: 6 | url: http://127.0.0.1:9999/ -------------------------------------------------------------------------------- /src/Dataclass/MusicalEntity/MusicalEntityMergeException.php: -------------------------------------------------------------------------------- 1 | bootEnv(dirname(__DIR__).'/.env'); 11 | } 12 | -------------------------------------------------------------------------------- /config/packages/validator.yaml: -------------------------------------------------------------------------------- 1 | framework: 2 | validation: 3 | # Enables validator auto-mapping support. 4 | # For instance, basic validation constraints will be inferred from Doctrine's metadata. 5 | #auto_mapping: 6 | # App\Entity\: [] 7 | 8 | when@test: 9 | framework: 10 | validation: 11 | not_compromised_password: false 12 | -------------------------------------------------------------------------------- /src/Services/Platforms/Interfaces/ScrobblingPlatformInterface.php: -------------------------------------------------------------------------------- 1 | getName().' platform did not respond correctly'.($message ? ': '.$message : '').'.'); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /public/build/js/show.js: -------------------------------------------------------------------------------- 1 | function toggleEmbed(){$("#embedHolder").toggle(),$("#embed").toggleClass("open")}function newTweet(t){var e=($(window).width()-575)/2,n=($(window).height()-400)/2;window.open("https://twitter.com/home?status="+t,"twitter","status=1,width=575,height=400,top="+n+",left="+e)}$(document).ready(function(){$("#mainLink, #embedContent").click(function(t){$(t.target).focus(),$(t.target).select()})}); -------------------------------------------------------------------------------- /templates/bundles/TwigBundle/Exception/error.html.twig: -------------------------------------------------------------------------------- 1 | {% set schemaType, page = "WebPage", "500" %} 2 | 3 | {% extends 'base.html.twig' %} 4 | 5 | {% block content %} 6 |
{{ "error.500.description"|trans|raw }}
9 | {{ "error.action"|trans }} 10 |{{ "error.404.description"|trans|raw }}
9 | {{ "error.action"|trans }} 10 |{{ "error.503.description"|trans|raw }}
9 | {{ "error.action.api"|trans }} 10 || Name | 15 |Since | 16 |Description | 17 |Key | 18 |Items | 19 |Calls | 20 |
|---|---|---|---|---|---|
| {{ client.name }} | 27 |{{ client.created_at|date('d/m/y') }} | 28 |
29 | {% if client.description %}{{ client.description|default('N/A')}} {% endif %} 30 | {% if client.url %}{{ client.url }} {% endif %} 31 | {{ client.email }} |
32 | {{ client.identifier }} | 33 |{{ client.nb_items|number_format(0,'.',' ') }} | 34 |
35 | {% if stats[client.identifier] is defined %}
36 | {% for item in stats[client.identifier] %}
37 | {{ item['method'] }} → {{ item['count']|number_format(0,'.',' ') }} 38 | {% endfor %} 39 | {% endif %} 40 | |
41 |

'),e.style.opacity=1,encodeURIComponent(decodeURIComponent(document.location.href))),t=null,i=null,a="";try{-1!=l.indexOf(".deezer.")&&null!=el("player_track_title")?(i=el("player_track_artist").innerHTML,t=el("player_track_title").innerHTML):-1!=l.indexOf(".deezer.")&&null!=elcl("player-track-title")?(i=elcl("player-track-artist")[0].childNodes[1].innerHTML,t=elcl("player-track-title")[0].firstChild.innerHTML):-1!=l.indexOf(".grooveshark.")&&null!=el("now-playing-metadata")?(i=el("now-playing-metadata").childNodes[4].innerHTML,t=el("now-playing-metadata").firstChild.innerHTML):-1!=l.indexOf(".radionomy.")&&null!=el("track-name")?(i=el("artist-name").innerHTML,t=el("track-name").innerHTML):-1!=l.indexOf(".stereomood.")&&null!=el("info_track_title")?(i=el("info_track_artist").innerHTML,t=el("info_track_title").innerHTML):-1!=l.indexOf(".musicmaze.")&&null!=el("song-title")?(i=el("artist-name").firstChild.innerHTML,t=el("song-title").firstChild.innerHTML):-1!=l.indexOf(".myspace.com/music/player")&&null!=el("mainContent")?(i=el("mainContent").childNodes[3].childNodes[11].childNodes[1].childNodes[5].firstChild.innerHTML,t=el("mainContent").childNodes[3].childNodes[11].childNodes[1].childNodes[3].firstChild.innerHTML):-1!=l.indexOf(".myspace.")&&null!=document.getElementsByTagName("h1")[1]?(i=document.getElementsByTagName("h1")[1].firstChild.innerHTML,t=document.getElementsByTagName("h6")[0].firstChild.firstChild.innerHTML):-1!=l.indexOf("player.qobuz.")&&null!=el("now-playing")?l=encodeURIComponent(el("now-playing").childNodes[2].childNodes[3].childNodes[0].href):-1!=l.indexOf("music.xbox.")&&null!=el("player")?(t=$("#player").find(".playerNowPlaying .playerNowPlayingMetadata .primaryMetadata a").html(),i=$("#player").find(".playerNowPlaying .playerNowPlayingMetadata .secondaryMetadata a:first-child").html()):-1!=l.indexOf("radiooooo.")&&null!=elcl("songinfo--box")[0]&&(i=elcl("song__artist")[0].innerHTML,t=elcl("song__title")[0].innerHTML)}catch(e){t=i=null}null!=i&&void 0!==i&&(a+=i+"+"),null!=t&&void 0!==t&&(a+=t);a=""==a?l:encodeURIComponent(a);e.innerHTML=n+(''),document.body.appendChild(e)}();
--------------------------------------------------------------------------------
/src/Services/ClientCredentialsGrant.php:
--------------------------------------------------------------------------------
1 | clientRepository->getClientEntity($clientId);
28 |
29 | if (!$client) {
30 | error_log("No client with identifier {$clientId} was found");
31 |
32 | return null;
33 | }
34 |
35 | return $this->issueAccessToken($accessTokenTTL, $client, $client->getIdentifier(), []);
36 | }
37 |
38 | public function respondToAccessTokenRequest(
39 | ServerRequestInterface $request,
40 | ResponseTypeInterface $responseType,
41 | \DateInterval $accessTokenTTL
42 | ): ResponseTypeInterface {
43 | list($clientId) = $this->getClientCredentials($request);
44 |
45 | $client = $this->getClientEntityOrFail($clientId, $request);
46 |
47 | if (!$client->isConfidential()) {
48 | $this->getEmitter()->emit(new RequestEvent(RequestEvent::CLIENT_AUTHENTICATION_FAILED, $request));
49 |
50 | throw OAuthServerException::invalidClient($request);
51 | }
52 |
53 | // Validate request
54 | $this->validateClient($request);
55 |
56 | $scopes = $this->validateScopes($this->getRequestParameter('scope', $request, $this->defaultScope));
57 |
58 | // Finalize the requested scopes
59 | $finalizedScopes = $this->scopeRepository->finalizeScopes($scopes, $this->getIdentifier(), $client);
60 |
61 | // Issue and persist access token
62 | // [CHANGED]: we use the client identifier as user identifier, instead of null
63 | $accessToken = $this->issueAccessToken($accessTokenTTL, $client, $client->getIdentifier(), $finalizedScopes);
64 |
65 | // Send event to emitter
66 | $this->getEmitter()->emit(new RequestAccessTokenEvent(RequestEvent::ACCESS_TOKEN_ISSUED, $request, $accessToken));
67 |
68 | // Inject access token into response type
69 | $responseType->setAccessToken($accessToken);
70 |
71 | return $responseType;
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/assets/js/twig/result.html.twig:
--------------------------------------------------------------------------------
1 |