From c9409bc26c95323e74e51d6b56a53242d5db56c1 Mon Sep 17 00:00:00 2001 From: carm Date: Sat, 22 Jan 2022 05:09:02 +0800 Subject: [PATCH] =?UTF-8?q?[v1.0.0]=20=E5=AE=8C=E6=88=90GithubUser?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=9A=84=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 - .../lib/githubreleases4j/GithubAsset.java | 6 +- .../lib/githubreleases4j/GithubRelease.java | 2 +- .../carm/lib/githubreleases4j/GithubUser.java | 95 ++++++++++++++++++- src/test/java/GithubReleasesTest.java | 1 - src/test/java/GithubUserTestTest.java | 26 +++++ 6 files changed, 118 insertions(+), 13 deletions(-) create mode 100644 src/test/java/GithubUserTestTest.java diff --git a/README.md b/README.md index 87edf39..95567ed 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,6 @@ README LANGUAGES [ [ENGLISH](README_enUS.md) | [中文](README.md) ] [![License](https://img.shields.io/github/license/CarmJos/GithubPM)](https://opensource.org/licenses/GPL-3.0) [![workflow](https://github.com/CarmJos/GithubPM/actions/workflows/maven.yml/badge.svg?branch=master)](https://github.com/CarmJos/GithubPM/actions/workflows/maven.yml) ![CodeSize](https://img.shields.io/github/languages/code-size/CarmJos/GithubPM) -![Support](https://img.shields.io/badge/Minecraft-Java%201.16--Latest-green) ![](https://visitor-badge.glitch.me/badge?page_id=GithubPM.readme) GitHub Releases for Java , 基于 [GitHub REST API](https://docs.github.com/cn/rest/reference/releases) 实现。 diff --git a/src/main/java/cc/carm/lib/githubreleases4j/GithubAsset.java b/src/main/java/cc/carm/lib/githubreleases4j/GithubAsset.java index 8fe28ad..51f7ade 100644 --- a/src/main/java/cc/carm/lib/githubreleases4j/GithubAsset.java +++ b/src/main/java/cc/carm/lib/githubreleases4j/GithubAsset.java @@ -17,10 +17,6 @@ public class GithubAsset { return new GithubAsset(source, contents); } - protected static GithubAsset of(@NotNull GithubRelease source, @NotNull String jsonString) { - return of(source, new JSONObject(jsonString)); - } - private final @NotNull GithubRelease source; private final @NotNull JSONObject contents; @@ -102,6 +98,6 @@ public class GithubAsset { @Override public String toString() { - return getContents().toString(0); + return getContents().toString(); } } diff --git a/src/main/java/cc/carm/lib/githubreleases4j/GithubRelease.java b/src/main/java/cc/carm/lib/githubreleases4j/GithubRelease.java index c132cad..279a0dc 100644 --- a/src/main/java/cc/carm/lib/githubreleases4j/GithubRelease.java +++ b/src/main/java/cc/carm/lib/githubreleases4j/GithubRelease.java @@ -147,7 +147,7 @@ public class GithubRelease { @Override public String toString() { - return getContents().toString(0); + return getContents().toString(); } diff --git a/src/main/java/cc/carm/lib/githubreleases4j/GithubUser.java b/src/main/java/cc/carm/lib/githubreleases4j/GithubUser.java index 587c28e..f1dde43 100644 --- a/src/main/java/cc/carm/lib/githubreleases4j/GithubUser.java +++ b/src/main/java/cc/carm/lib/githubreleases4j/GithubUser.java @@ -1,6 +1,7 @@ package cc.carm.lib.githubreleases4j; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.json.JSONObject; public class GithubUser { @@ -9,10 +10,6 @@ public class GithubUser { return new GithubUser(contents); } - protected static GithubUser of(@NotNull String jsonString) { - return of(new JSONObject(jsonString)); - } - private final @NotNull JSONObject contents; private GithubUser(@NotNull JSONObject contents) { @@ -23,8 +20,96 @@ public class GithubUser { return contents; } + public int getID() { + return getContents().getInt("id"); + } + + public @NotNull String getLoginID() { + return getContents().getString("login"); + } + + public @NotNull String getNodeID() { + return getContents().getString("node_id"); + } + + public @Nullable String getAvatarURL() { + return getContents().getString("avatar_url"); + } + + public @Nullable String getGravatarID() { + return getContents().getString("gravatar_id"); + } + + public @NotNull String getURL() { + return getContents().getString("url"); + } + + public @NotNull String getProfileURL() { + return getContents().getString("html_url"); + } + + public @NotNull String getFollowersURL() { + return getContents().getString("followers_url"); + } + + public @NotNull String getFollowingURL() { + return getContents().getString("following_url"); + } + + public @NotNull String getFollowingURL(@NotNull String otherUsername) { + return getFollowingURL().replace("{/other_user}", "/" + otherUsername); + } + + public @NotNull String getGistsURL() { + return getContents().getString("gists_url"); + } + + public @NotNull String getGistsURL(int gistID) { + return getGistsURL().replace("{/gist_id}", "/" + gistID); + } + + public @NotNull String getStarredURL() { + return getContents().getString("starred_url"); + } + + public @NotNull String getStarredURL(@NotNull String owner, @NotNull String repo) { + return getStarredURL().replace("{/owner}{/repo}", "/" + owner + "/" + repo); + } + + public @NotNull String getSubscriptionsURL() { + return getContents().getString("subscriptions_url"); + } + + public @NotNull String getOrganizationsURL() { + return getContents().getString("organizations_url"); + } + + public @NotNull String getReposURL() { + return getContents().getString("repos_url"); + } + + public @NotNull String getEventsURL() { + return getContents().getString("events_url"); + } + + public @NotNull String getEventsURL(String privacy) { + return getEventsURL().replace("{/privacy}", "/" + privacy); + } + + public @NotNull String getReceivedEventsURL() { + return getContents().getString("received_events_url"); + } + + public @NotNull String getType() { + return getContents().getString("type"); + } + + public boolean isSiteAdmin() { + return getContents().getBoolean("site_admin"); + } + @Override public String toString() { - return getContents().toString(0); + return getContents().toString(); } } diff --git a/src/test/java/GithubReleasesTest.java b/src/test/java/GithubReleasesTest.java index 1076184..a34da76 100644 --- a/src/test/java/GithubReleasesTest.java +++ b/src/test/java/GithubReleasesTest.java @@ -26,7 +26,6 @@ public class GithubReleasesTest { release.getAssets().stream().findFirst().ifPresent(GithubReleasesTest::downloadAssets); } - } private static void printInfo(@Nullable GithubRelease release) { diff --git a/src/test/java/GithubUserTestTest.java b/src/test/java/GithubUserTestTest.java new file mode 100644 index 0000000..a7a82af --- /dev/null +++ b/src/test/java/GithubUserTestTest.java @@ -0,0 +1,26 @@ +import cc.carm.lib.githubreleases4j.GithubRelease; +import cc.carm.lib.githubreleases4j.GithubReleases4J; +import cc.carm.lib.githubreleases4j.GithubUser; +import org.junit.Test; + +import java.text.SimpleDateFormat; + +public class GithubUserTestTest { + + public static final SimpleDateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + @Test + public void onTest() { + + GithubRelease release = GithubReleases4J.getLatestRelease("CarmJos", "UltraDepository"); + if (release != null) { + System.out.println("# " + release.getName() + " [" + FORMAT.format(release.getCreateTime()) + "]"); + + GithubUser author = release.getAuthor(); + System.out.println("- " + author.getStarredURL("LSeng", "Kar")); + } + + } + + +}