{"id":18565644,"url":"https://github.com/hypothermic/javacogs","last_synced_at":"2025-11-01T14:30:20.776Z","repository":{"id":37110227,"uuid":"160055706","full_name":"hypothermic/javacogs","owner":"hypothermic","description":"Discogs client library for Java/Kotlin","archived":false,"fork":false,"pushed_at":"2023-04-14T17:50:27.000Z","size":175,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-14T08:38:19.031Z","etag":null,"topics":["api","discogs","discogs-api","java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hypothermic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-02T14:29:15.000Z","updated_at":"2024-05-02T13:15:42.000Z","dependencies_parsed_at":"2022-06-24T09:54:08.107Z","dependency_job_id":null,"html_url":"https://github.com/hypothermic/javacogs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypothermic%2Fjavacogs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypothermic%2Fjavacogs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypothermic%2Fjavacogs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypothermic%2Fjavacogs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hypothermic","download_url":"https://codeload.github.com/hypothermic/javacogs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239293947,"owners_count":19615043,"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":["api","discogs","discogs-api","java"],"created_at":"2024-11-06T22:19:37.450Z","updated_at":"2025-11-01T14:30:20.730Z","avatar_url":"https://github.com/hypothermic.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](http://ci.hypothermic.nl/buildStatus/icon?job=javacogs/master)](https://ci.hypothermic.nl/job/javacogs/job/master/)\n[![Download](https://img.shields.io/badge/download-latest-blue.svg)](https://ci.hypothermic.nl/job/javacogs/job/master/lastSuccessfulBuild/artifact/target/)\n[![BSD 3-Clause License](https://img.shields.io/badge/license-BSD%203--Clause-lightgrey.svg)](https://github.com/hypothermic/javacogs/blob/master/LICENSE)\n\n# Javacogs\n\nA professional client library for the Discogs API v2.  \nCompatible with all Java platforms including Android.\n\n# Features\n\n- Asynchronous networking and response\n- Easy authentication with one-time setup\n- Built-in adaptive rate limiting\n- Handler library structure for ease of use\n- Support for Java 6 and up (and Kotlin, of course!)\n- No external dependencies except for the JSON parser\n\n# Try it out\n\nRetrieve information about a release by ID:\n\n```java\nint releaseId = 249504; // ID of Rick Astley - Never Gonna Give You Up\n\nJavacogs.getInstance().getHandler(Handler.DATABASE)\n.getReleaseById(releaseId, new ResponseCallback\u003cRelease\u003e() {\n    public void onResult(Response\u003cRelease\u003e response) {\n        if (response.hasSucceeded()) {\n            System.out.println(response.getValue().toString());\n        } else {\n            System.out.println(\"Response failed.\");\n        }\n    }\n});\n```\n\nMore examples are in the [examples](./src/examples/) directory.  \nDon't worry, they have proper documentation for beginners!\n\n### Maven dependency\n```xml\n\u003crepository\u003e\n  \u003cid\u003ejavacogs-mvn-repo\u003c/id\u003e\n  \u003curl\u003ehttps://raw.github.com/hypothermic/javacogs/mvn-repo/\u003c/url\u003e\n\u003c/repository\u003e\n\n\u003cdependency\u003e\n  \u003cgroupId\u003enl.hypothermic\u003c/groupId\u003e\n  \u003cartifactId\u003ejavacogs\u003c/artifactId\u003e\n  \u003cversion\u003e[1.0.18,)\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Gradle dependency\n```gradle\nrepositories {\n    maven {\n        url \"https://raw.github.com/hypothermic/javacogs/mvn-repo/\"\n    }\n}\n\ndependencies {\n    // Note: use 'api' instead of 'compile' if you're using Android Studio.\n    compile group: 'nl.hypothermic', name: 'javacogs', version: '1.0.17-RC1'\n}\n```\n\n# Authentication\n\nYou can authenticate to Discogs using the Discogs Auth Flow:\n\nAuthenticate using a **Token**:\n\n```java\nJavacogs client = new Javacogs();\nclient.setAuthenticationMethod(new TokenAuthenticationMethod(\"YOUR-TOKEN\"));\n```\n\nAuthenticate using a **Key** and **Secret**:\n\n```java\nclient.setAuthenticationMethod(new KeySecretAuthenticationMethod(\"KEY\", \"SECRET\"));\n```\n\nTo use **OAuth**, you will need to implement the `AuthenticationMethod` interface in your own implementation.  \nThen, simply call `client.setAuthenticationMethod(new YourOAuthImplementation(...));`\n\n# Handler structure\n\nAt first glance, the handler system might seem a little complicated.\nYou will soon find out that this design choice is extremely easy to use though.\nHere's a structure mapping to get you started:\n\n```\nnew Javacogs() -\u003e DatabaseHandler() -\u003e getEntitiesBySearch()\n                                    -\u003e getReleaseById()\n                                    -\u003e getReleasesByArtist()\n                                    -\u003e getReleasesByLabel()\n                                    -\u003e getMasterById()\n                                    -\u003e getArtistById()\n                                    -\u003e getLabelById()\n                                    \n               -\u003e UserCollectionHandler() -\u003e getFolderById()\n                                          -\u003e getFoldersByUser()\n                                          -\u003e getFolderContents()\n                                          -\u003e getCollectionValue()\n                                          -\u003e deleteFolderById()\n                                          -\u003e addReleaseToFolder()\n                                          -\u003e deleteReleaseFromFolder()\n                                          \n               -\u003e UserWantlistHandler() -\u003e getWantlistByUsername()\n                                        -\u003e addReleaseToWantlist()\n                                        -\u003e deleteReleaseFromWantlist()\n                                           \n               -\u003e UserIdentityHandler() -\u003e getProfileByUsername()\n                                        -\u003e getUserSubmissions()\n                                        -\u003e getUserContributions()\n                                        \n               -\u003e ApiStatisticsHandler() -\u003e getLabelsCount()\n                                         -\u003e getReleasesCount()\n                                         -\u003e getArtistsCount()\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypothermic%2Fjavacogs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhypothermic%2Fjavacogs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypothermic%2Fjavacogs/lists"}