From eb1f0c29d56cf6bf78b40d62d021ca802168fccf Mon Sep 17 00:00:00 2001 From: seasnail8169 Date: Sat, 3 Apr 2021 01:41:03 +0100 Subject: [PATCH] Fixed "github-master" type URLs --- .../fetchers/GithubMasterFetcher.java | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/main/java/io/gitlab/jfronny/resclone/fetchers/GithubMasterFetcher.java b/src/main/java/io/gitlab/jfronny/resclone/fetchers/GithubMasterFetcher.java index 10de409..f0f16f0 100644 --- a/src/main/java/io/gitlab/jfronny/resclone/fetchers/GithubMasterFetcher.java +++ b/src/main/java/io/gitlab/jfronny/resclone/fetchers/GithubMasterFetcher.java @@ -1,32 +1,36 @@ package io.gitlab.jfronny.resclone.fetchers; -import io.gitlab.jfronny.resclone.data.RescloneException; +import io.gitlab.jfronny.resclone.util.UrlUtils; public class GithubMasterFetcher extends PackFetcher { + @Override public String getSourceTypeName() { return "github-master"; } @Override - public String getDownloadUrl(String baseUrl) throws RescloneException { + public String getDownloadUrl(String baseUrl) throws Exception { String[] parts = baseUrl.split("/"); - String url = ""; - if (parts.length == 2) { - url = getStr(parts[0], parts[1], "main"); - if (!urlValid(url)) - url = getStr(parts[0], parts[1], "master"); - } - else if (parts.length == 3) { - url = getStr(parts[0], parts[1], parts[2]); - } - else { - throw new RescloneException("Format for github-master is USER/REPO[/BRANCH]"); + String url; + + switch (parts.length) { + case 2: + url = getStr(parts[0], parts[1], "main"); + if (!UrlUtils.urlValid(url)) url = getStr(parts[0], parts[1], "master"); + break; + case 3: + url = getStr(parts[0], parts[1], parts[2]); + break; + default: + throw new Exception("Format for github-master is USER/REPO[/BRANCH]"); } + return url; } private String getStr(String user, String repo, String branch) { - return "https://github.com/" + user + "/" + repo + "/archive/" + branch + ".zip"; + return "https://github.com/" + user + "/" + repo + "/archive/refs/heads/" + branch + ".zip"; } -} + +} \ No newline at end of file