Skip to content

Commit 49157fc

Browse files
authored
Merge pull request #317 from wb9688/tnp-nanojson
Use our fork of nanojson
2 parents 74f0ab1 + b51699a commit 49157fc

22 files changed

Lines changed: 244 additions & 349 deletions

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ allprojects {
1010

1111
repositories {
1212
jcenter()
13+
maven { url "https://jitpack.io" }
1314
}
1415
}
1516

extractor/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
dependencies {
22
implementation project(':timeago-parser')
33

4-
implementation 'com.grack:nanojson:1.1'
4+
implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751'
55
implementation 'org.jsoup:jsoup:1.9.2'
66
implementation 'org.mozilla:rhino:1.7.7.1'
77
implementation 'com.github.spotbugs:spotbugs-annotations:3.1.0'
88
implementation 'org.nibor.autolink:autolink:0.8.0'
99

1010
testImplementation 'junit:junit:4.12'
11-
}
11+
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeAccountExtractor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public String getNextPageUrl() throws IOException, ExtractionException {
109109
public InfoItemsPage<StreamInfoItem> getPage(String pageUrl) throws IOException, ExtractionException {
110110
Response response = getDownloader().get(pageUrl);
111111
JsonObject json = null;
112-
if (null != response && !StringUtil.isBlank(response.responseBody())) {
112+
if (response != null && !StringUtil.isBlank(response.responseBody())) {
113113
try {
114114
json = JsonParser.object().from(response.responseBody());
115115
} catch (Exception e) {
@@ -169,7 +169,7 @@ private void setInitialData(String responseBody) throws ExtractionException {
169169
try {
170170
json = JsonParser.object().from(responseBody);
171171
} catch (JsonParserException e) {
172-
throw new ExtractionException("Unable to extract peertube channel data", e);
172+
throw new ExtractionException("Unable to extract PeerTube channel data", e);
173173
}
174174
if (json == null) throw new ExtractionException("Unable to extract PeerTube channel data");
175175
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public List<VideoStream> getVideoStreams() throws IOException, ExtractionExcepti
167167
assertPageFetched();
168168
List<VideoStream> videoStreams = new ArrayList<>();
169169
try {
170-
JsonArray streams = json.getArray("files", new JsonArray());
170+
JsonArray streams = json.getArray("files");
171171
for (Object s : streams) {
172172
if (!(s instanceof JsonObject)) continue;
173173
JsonObject stream = (JsonObject) s;

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudChannelExtractor.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import javax.annotation.Nonnull;
1717
import java.io.IOException;
1818

19+
import static org.schabi.newpipe.extractor.utils.JsonUtils.EMPTY_STRING;
20+
1921
@SuppressWarnings("WeakerAccess")
2022
public class SoundcloudChannelExtractor extends ChannelExtractor {
2123
private String userId;
@@ -62,10 +64,7 @@ public String getAvatarUrl() {
6264

6365
@Override
6466
public String getBannerUrl() {
65-
return user.getObject("visuals", new JsonObject())
66-
.getArray("visuals", new JsonArray())
67-
.getObject(0, new JsonObject())
68-
.getString("visual_url");
67+
return user.getObject("visuals").getArray("visuals").getObject(0).getString("visual_url");
6968
}
7069

7170
@Override
@@ -80,7 +79,7 @@ public long getSubscriberCount() {
8079

8180
@Override
8281
public String getDescription() {
83-
return user.getString("description", "");
82+
return user.getString("description", EMPTY_STRING);
8483
}
8584

8685
@Nonnull

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudChannelInfoItemExtractor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.grack.nanojson.JsonObject;
44
import org.schabi.newpipe.extractor.channel.ChannelInfoItemExtractor;
55

6+
import static org.schabi.newpipe.extractor.utils.JsonUtils.EMPTY_STRING;
67
import static org.schabi.newpipe.extractor.utils.Utils.replaceHttpWithHttps;
78

89
public class SoundcloudChannelInfoItemExtractor implements ChannelInfoItemExtractor {
@@ -24,7 +25,7 @@ public String getUrl() {
2425

2526
@Override
2627
public String getThumbnailUrl() {
27-
String avatarUrl = itemObject.getString("avatar_url", "");
28+
String avatarUrl = itemObject.getString("avatar_url", EMPTY_STRING);
2829
String avatarUrlBetterResolution = avatarUrl.replace("large.jpg", "crop.jpg");
2930
return avatarUrlBetterResolution;
3031
}
@@ -41,6 +42,6 @@ public long getStreamCount() {
4142

4243
@Override
4344
public String getDescription() {
44-
return itemObject.getString("description", "");
45+
return itemObject.getString("description", EMPTY_STRING);
4546
}
4647
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudParsingHelper.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import static java.util.Collections.singletonList;
3030
import static org.schabi.newpipe.extractor.ServiceList.SoundCloud;
31+
import static org.schabi.newpipe.extractor.utils.JsonUtils.EMPTY_STRING;
3132
import static org.schabi.newpipe.extractor.utils.Utils.replaceHttpWithHttps;
3233

3334
public class SoundcloudParsingHelper {
@@ -256,17 +257,17 @@ public static String getStreamsFromApi(StreamInfoItemsCollector collector, Strin
256257

257258
@Nonnull
258259
static String getUploaderUrl(JsonObject object) {
259-
String url = object.getObject("user").getString("permalink_url", "");
260+
String url = object.getObject("user").getString("permalink_url", EMPTY_STRING);
260261
return replaceHttpWithHttps(url);
261262
}
262263

263264
@Nonnull
264265
static String getAvatarUrl(JsonObject object) {
265-
String url = object.getObject("user", new JsonObject()).getString("avatar_url", "");
266+
String url = object.getObject("user").getString("avatar_url", EMPTY_STRING);
266267
return replaceHttpWithHttps(url);
267268
}
268269

269270
public static String getUploaderName(JsonObject object) {
270-
return object.getObject("user").getString("username", "");
271+
return object.getObject("user").getString("username", EMPTY_STRING);
271272
}
272273
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudPlaylistInfoItemExtractor.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.schabi.newpipe.extractor.exceptions.ParsingException;
55
import org.schabi.newpipe.extractor.playlist.PlaylistInfoItemExtractor;
66

7+
import static org.schabi.newpipe.extractor.utils.JsonUtils.EMPTY_STRING;
78
import static org.schabi.newpipe.extractor.utils.Utils.replaceHttpWithHttps;
89

910
public class SoundcloudPlaylistInfoItemExtractor implements PlaylistInfoItemExtractor {
@@ -31,7 +32,7 @@ public String getUrl() {
3132
public String getThumbnailUrl() throws ParsingException {
3233
// Over-engineering at its finest
3334
if (itemObject.isString(ARTWORK_URL_KEY)) {
34-
final String artworkUrl = itemObject.getString(ARTWORK_URL_KEY, "");
35+
final String artworkUrl = itemObject.getString(ARTWORK_URL_KEY, EMPTY_STRING);
3536
if (!artworkUrl.isEmpty()) {
3637
String artworkUrlBetterResolution = artworkUrl.replace("large.jpg", "crop.jpg");
3738
return artworkUrlBetterResolution;
@@ -45,16 +46,16 @@ public String getThumbnailUrl() throws ParsingException {
4546

4647
// First look for track artwork url
4748
if (trackObject.isString(ARTWORK_URL_KEY)) {
48-
String artworkUrl = trackObject.getString(ARTWORK_URL_KEY, "");
49+
String artworkUrl = trackObject.getString(ARTWORK_URL_KEY, EMPTY_STRING);
4950
if (!artworkUrl.isEmpty()) {
5051
String artworkUrlBetterResolution = artworkUrl.replace("large.jpg", "crop.jpg");
5152
return artworkUrlBetterResolution;
5253
}
5354
}
5455

5556
// Then look for track creator avatar url
56-
final JsonObject creator = trackObject.getObject(USER_KEY, new JsonObject());
57-
final String creatorAvatar = creator.getString(AVATAR_URL_KEY, "");
57+
final JsonObject creator = trackObject.getObject(USER_KEY);
58+
final String creatorAvatar = creator.getString(AVATAR_URL_KEY, EMPTY_STRING);
5859
if (!creatorAvatar.isEmpty()) return creatorAvatar;
5960
}
6061
} catch (Exception ignored) {
@@ -63,7 +64,7 @@ public String getThumbnailUrl() throws ParsingException {
6364

6465
try {
6566
// Last resort, use user avatar url. If still not found, then throw exception.
66-
return itemObject.getObject(USER_KEY).getString(AVATAR_URL_KEY, "");
67+
return itemObject.getObject(USER_KEY).getString(AVATAR_URL_KEY, EMPTY_STRING);
6768
} catch (Exception e) {
6869
throw new ParsingException("Failed to extract playlist thumbnail url", e);
6970
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudSearchExtractor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.net.URL;
2424

2525
import static org.schabi.newpipe.extractor.services.soundcloud.SoundcloudSearchQueryHandlerFactory.ITEMS_PER_PAGE;
26+
import static org.schabi.newpipe.extractor.utils.JsonUtils.EMPTY_STRING;
2627

2728
public class SoundcloudSearchExtractor extends SearchExtractor {
2829

@@ -84,7 +85,7 @@ private InfoItemsCollector<InfoItem, InfoItemExtractor> collectItems(JsonArray s
8485
if (!(result instanceof JsonObject)) continue;
8586
//noinspection ConstantConditions
8687
JsonObject searchResult = (JsonObject) result;
87-
String kind = searchResult.getString("kind", "");
88+
String kind = searchResult.getString("kind", EMPTY_STRING);
8889
switch (kind) {
8990
case "user":
9091
collector.commit(new SoundcloudChannelInfoItemExtractor(searchResult));

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/SoundcloudStreamExtractor.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434

3535
import javax.annotation.Nonnull;
3636

37+
import static org.schabi.newpipe.extractor.utils.JsonUtils.EMPTY_STRING;
38+
3739
public class SoundcloudStreamExtractor extends StreamExtractor {
3840
private JsonObject track;
3941

@@ -45,7 +47,7 @@ public SoundcloudStreamExtractor(StreamingService service, LinkHandler linkHandl
4547
public void onFetchPage(@Nonnull Downloader downloader) throws IOException, ExtractionException {
4648
track = SoundcloudParsingHelper.resolveFor(downloader, getOriginalUrl());
4749

48-
String policy = track.getString("policy", "");
50+
String policy = track.getString("policy", EMPTY_STRING);
4951
if (!policy.equals("ALLOW") && !policy.equals("MONETIZE")) {
5052
throw new ContentNotAvailableException("Content not available: policy " + policy);
5153
}
@@ -78,9 +80,9 @@ public DateWrapper getUploadDate() throws ParsingException {
7880
@Nonnull
7981
@Override
8082
public String getThumbnailUrl() {
81-
String artworkUrl = track.getString("artwork_url", "");
83+
String artworkUrl = track.getString("artwork_url", EMPTY_STRING);
8284
if (artworkUrl.isEmpty()) {
83-
artworkUrl = track.getObject("user").getString("avatar_url", "");
85+
artworkUrl = track.getObject("user").getString("avatar_url", EMPTY_STRING);
8486
}
8587
String artworkUrlBetterResolution = artworkUrl.replace("large.jpg", "crop.jpg");
8688
return artworkUrlBetterResolution;

0 commit comments

Comments
 (0)