{"id":15988829,"url":"https://github.com/michael-simons/scrobbles4j","last_synced_at":"2025-10-11T23:16:48.016Z","repository":{"id":37970836,"uuid":"411840140","full_name":"michael-simons/scrobbles4j","owner":"michael-simons","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-14T17:17:57.000Z","size":785,"stargazers_count":5,"open_issues_count":4,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-16T15:48:39.839Z","etag":null,"topics":["analytics","japlscript","jdk17","music","quarkus","sql"],"latest_commit_sha":null,"homepage":"https://info.michael-simons.eu/2021/10/03/yet-another-incarnation-of-my-ongoing-scrobbles/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michael-simons.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-29T21:54:30.000Z","updated_at":"2025-03-14T17:18:00.000Z","dependencies_parsed_at":"2023-02-18T22:15:46.513Z","dependency_job_id":"87e97373-1a76-4b43-b8a4-6455353349e5","html_url":"https://github.com/michael-simons/scrobbles4j","commit_stats":{"total_commits":409,"total_committers":2,"mean_commits":204.5,"dds":"0.21515892420537897","last_synced_commit":"b3008bff976245034f0b09496bfbb25b19ac017e"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-simons%2Fscrobbles4j","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-simons%2Fscrobbles4j/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-simons%2Fscrobbles4j/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-simons%2Fscrobbles4j/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michael-simons","download_url":"https://codeload.github.com/michael-simons/scrobbles4j/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244126617,"owners_count":20402149,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","japlscript","jdk17","music","quarkus","sql"],"created_at":"2024-10-08T04:21:34.019Z","updated_at":"2025-10-11T23:16:47.918Z","avatar_url":"https://github.com/michael-simons.png","language":"Java","readme":"= Scrobbles4j\n:sectanchors:\n\n[abstract]\n--\nA set of modules around tracking, displaying and analyzing musical habits (\"scrobbling\") via Java.\n--\n\nimage:https://github.com/michael-simons/scrobbles4j/workflows/build/badge.svg[link=https://github.com/michael-simons/scrobbles4j/actions]\n\n== Requirements\n\n=== For building the project\n\n* JDK 17\n\n=== For using the client\n\n* An Apple macOS device, running iTunes, Apple Music or the Spotify app.\n\n\n== Building and running\n\n=== Build the whole project\n\n.On Linux or macOS\n[source,bash]\n----\n./mvnw clean verify\n----\n\n.On Windows\n[source,bash]\n----\nmvnw.cmd clean verify\n----\n\n=== Run the client with the desired sources and sinks\n\n[source,bash]\n----\njava \\\n-p model/target/modules:\\\nclient/app/target/modules:\\\nclient/sources/apple.music/target/modules:\\\nclient/sinks/logger/target/modules \\\n-m scrobbles4j.client.app/scrobbles4j.client.app.Launcher\n----\n\nOr use a prebuild binary will all available sources and sinks:\n\n[source,bash]\n----\n./client/bundle/target/maven-jlink/default/bin/scrobbles4j\n----\n\nThe Maven command above also creates a ZIP-Bundle, find it under `./client/bundle/target/scrobbles4j.zip`.\n\n=== Run the server\n\nThis will bring up MariaDB inside a container:\n\n[source,bash]\n----\n./mvnw quarkus:dev\n----\n\nTo point it to your own instance run:\n\n[source,bash]\n----\n./mvnw quarkus:dev \\\n  -Dquarkus.datasource.jdbc.url=jdbc:mariadb://127.0.0.1:3306/music\\?useJDBCCompliantTimezoneShift=true\\\u0026useUnicode=true\\\u0026serverTimezone=UTC\\\u0026useGmtMillisForDatetimes=true\\\u0026useLegacyDatetimeCode=false\\\u0026useTimezone=true \\\n  -Dquarkus.datasource.username=root \\\n  -Dquarkus.datasource.password=secret\n----\n\nOne live instance is here: http://charts.michael-simons.eu.\n\nNOTE: As the scrobbler backend is not yet implemented, the live data behind the instance\n      above comes straight from my old scrobbler at https://dailyfratze.de.\n      As a matter of fact, Scrobbles4j owns a separate scheme in the database, with\n      read only access and a couple of views onto the original source. \n      CQRS on the database level. Thanks https://twitter.com/jordisola_/status/1444225890800525316[ᴊᴏʀᴅɪ]\n      for a fitting description.\n\n== Misc\n\nA local database can be brought up independent of Quarkus like this:\n\n----\ndocker run -v `pwd`/var/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=music -e MYSQL_USER=music -e MYSQL_PASSWORD=music --publish=3306:3306  mariadb:10.9\n----\n\nIt will store it's data in a local folder, so it will be there after the container has been deleted and restarted.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichael-simons%2Fscrobbles4j","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichael-simons%2Fscrobbles4j","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichael-simons%2Fscrobbles4j/lists"}