Fix channels with subscription count disabled
Related: TeamNewPipe/NewPipe#1649
This commit is contained in:
parent
f6be85e2f5
commit
0400ae026f
2 changed files with 21 additions and 9 deletions
|
@ -7,13 +7,15 @@ import com.grack.nanojson.JsonParserException;
|
||||||
import org.jsoup.Jsoup;
|
import org.jsoup.Jsoup;
|
||||||
import org.jsoup.nodes.Document;
|
import org.jsoup.nodes.Document;
|
||||||
import org.jsoup.nodes.Element;
|
import org.jsoup.nodes.Element;
|
||||||
import org.schabi.newpipe.extractor.*;
|
import org.schabi.newpipe.extractor.Downloader;
|
||||||
|
import org.schabi.newpipe.extractor.NewPipe;
|
||||||
|
import org.schabi.newpipe.extractor.StreamingService;
|
||||||
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
|
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
||||||
|
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
|
||||||
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
|
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
|
||||||
import org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector;
|
import org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector;
|
||||||
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
|
|
||||||
import org.schabi.newpipe.extractor.utils.DonationLinkHelper;
|
import org.schabi.newpipe.extractor.utils.DonationLinkHelper;
|
||||||
import org.schabi.newpipe.extractor.utils.Parser;
|
import org.schabi.newpipe.extractor.utils.Parser;
|
||||||
import org.schabi.newpipe.extractor.utils.Utils;
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
@ -131,11 +133,16 @@ public class YoutubeChannelExtractor extends ChannelExtractor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getSubscriberCount() throws ParsingException {
|
public long getSubscriberCount() throws ParsingException {
|
||||||
Element el = doc.select("span[class*=\"yt-subscription-button-subscriber-count\"]").first();
|
final Element el = doc.select("span[class*=\"yt-subscription-button-subscriber-count\"]").first();
|
||||||
if (el != null) {
|
if (el != null) {
|
||||||
return Long.parseLong(Utils.removeNonDigitCharacters(el.text()));
|
try {
|
||||||
|
return Long.parseLong(Utils.removeNonDigitCharacters(el.text()));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
throw new ParsingException("Could not get subscriber count", e);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new ParsingException("Could not get subscriber count");
|
// If the element is null, the channel have the subscriber count disabled
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,11 +59,16 @@ public class YoutubeChannelInfoItemExtractor implements ChannelInfoItemExtractor
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getSubscriberCount() throws ParsingException {
|
public long getSubscriberCount() throws ParsingException {
|
||||||
Element subsEl = el.select("span[class*=\"yt-subscriber-count\"]").first();
|
final Element subsEl = el.select("span[class*=\"yt-subscriber-count\"]").first();
|
||||||
if (subsEl == null) {
|
if (subsEl != null) {
|
||||||
return 0;
|
try {
|
||||||
|
return Long.parseLong(Utils.removeNonDigitCharacters(el.text()));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
throw new ParsingException("Could not get subscriber count", e);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return Long.parseLong(Utils.removeNonDigitCharacters(subsEl.text()));
|
// If the element is null, the channel have the subscriber count disabled
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue