mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
update AtomReader, add support releaseTag on android
This commit is contained in:
@@ -61,10 +61,12 @@ public class AtomReader {
|
||||
public static class Entry {
|
||||
public final String title;
|
||||
public final String updated;
|
||||
public final String link;
|
||||
|
||||
private Entry(String title, String updated) {
|
||||
private Entry(String title, String updated, String link) {
|
||||
this.title = title;
|
||||
this.updated = updated;
|
||||
this.link = link;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,6 +74,7 @@ public class AtomReader {
|
||||
parser.require(XmlPullParser.START_TAG, ns, "entry");
|
||||
String title = null;
|
||||
String updated = null;
|
||||
String link = null;
|
||||
while (parser.next() != XmlPullParser.END_TAG) {
|
||||
if (parser.getEventType() != XmlPullParser.START_TAG) {
|
||||
continue;
|
||||
@@ -81,11 +84,13 @@ public class AtomReader {
|
||||
title = readTitle(parser);
|
||||
} else if (name.equals("updated")) {
|
||||
updated = readUpdated(parser);
|
||||
} else if (name.equals("link")) {
|
||||
link = readLink(parser);
|
||||
} else {
|
||||
skip(parser);
|
||||
}
|
||||
}
|
||||
return new Entry(title, updated);
|
||||
return new Entry(title, updated, link);
|
||||
}
|
||||
|
||||
private String readTitle(XmlPullParser parser) throws Exception {
|
||||
@@ -102,6 +107,21 @@ public class AtomReader {
|
||||
return updated;
|
||||
}
|
||||
|
||||
private String readLink(XmlPullParser parser) throws Exception {
|
||||
String link = "";
|
||||
parser.require(XmlPullParser.START_TAG, ns, "link");
|
||||
String tag = parser.getName();
|
||||
String relType = parser.getAttributeValue(null, "rel");
|
||||
if (tag.equals("link")) {
|
||||
if (relType.equals("alternate")) {
|
||||
link = parser.getAttributeValue(null, "href");
|
||||
parser.nextTag();
|
||||
}
|
||||
}
|
||||
parser.require(XmlPullParser.END_TAG, ns, "link");
|
||||
return link;
|
||||
}
|
||||
|
||||
private String readText(XmlPullParser parser) throws Exception {
|
||||
String result = "";
|
||||
if (parser.next() == XmlPullParser.TEXT) {
|
||||
|
||||
@@ -46,4 +46,28 @@ public class GitLogs {
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
public String getLatestReleaseTag() {
|
||||
String tag = "";
|
||||
try {
|
||||
URL url = new URL("https://github.com/Card-Forge/forge/releases.atom");
|
||||
InputStream inputStream = url.openStream();
|
||||
List<AtomReader.Entry> entries = new AtomReader().parse(inputStream);
|
||||
for (AtomReader.Entry entry : entries) {
|
||||
if (entry.link != null) {
|
||||
try {
|
||||
String val = entry.link;
|
||||
tag = val.substring(val.lastIndexOf("forge"));
|
||||
break;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
inputStream.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -641,8 +641,7 @@ public class Main extends ForgeAndroidApplication {
|
||||
|
||||
@Override
|
||||
public String getReleaseTag() {
|
||||
//android doesn't have release yet on github...
|
||||
return "";
|
||||
return new GitLogs().getLatestReleaseTag();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user