正在查看: Kreate v1.5.0 应用的 SoundcloudChannelExtractor.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Kreate v1.5.0 应用的 SoundcloudChannelExtractor.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package org.schabi.newpipe.extractor.services.soundcloud.extractors;
import androidx.core.graphics.TypefaceCompat$;
import com.grack.nanojson.JsonObject;
import com.grack.nanojson.JsonParser;
import com.grack.nanojson.JsonParserException;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import javax.annotation.Nonnull;
import kotlin.UByte$;
import org.schabi.newpipe.extractor.Image;
import org.schabi.newpipe.extractor.StreamingService;
import org.schabi.newpipe.extractor.channel.ChannelExtractor;
import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs;
import org.schabi.newpipe.extractor.downloader.Downloader;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
import org.schabi.newpipe.extractor.exceptions.ParsingException;
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
import org.schabi.newpipe.extractor.services.soundcloud.SoundcloudParsingHelper;
import org.schabi.newpipe.extractor.services.soundcloud.linkHandler.SoundcloudChannelTabLinkHandlerFactory;
public class SoundcloudChannelExtractor extends ChannelExtractor {
private static final String USERS_ENDPOINT = "https://api-v2.soundcloud.com/users/";
private JsonObject user;
private String userId;
@Override
public String getFeedUrl() {
return null;
}
public SoundcloudChannelExtractor(StreamingService streamingService, ListLinkHandler listLinkHandler) {
super(streamingService, listLinkHandler);
}
@Override
public void onFetchPage(@Nonnull Downloader downloader) throws IOException, ExtractionException {
String id = getLinkHandler().getId();
this.userId = id;
try {
this.user = (JsonObject) JsonParser.object().from(downloader.get(USERS_ENDPOINT + id + "?client_id=" + SoundcloudParsingHelper.clientId(), getExtractorLocalization()).responseBody());
} catch (JsonParserException e) {
throw new ParsingException("Could not parse json response", e);
}
}
@Override
@Nonnull
public String getId() {
return this.userId;
}
@Override
@Nonnull
public String getName() {
return this.user.getString("username");
}
@Override
@Nonnull
public List<Image> getAvatars() {
return SoundcloudParsingHelper.getAllImagesFromArtworkOrAvatarUrl(this.user.getString("avatar_url"));
}
@Override
@Nonnull
public List<Image> getBanners() {
return SoundcloudParsingHelper.getAllImagesFromVisualUrl(this.user.getObject("visuals").getArray("visuals").getObject(0).getString("visual_url"));
}
@Override
public long getSubscriberCount() {
return this.user.getLong("followers_count", 0L);
}
@Override
public String getDescription() {
return this.user.getString("description", "");
}
@Override
public String getParentChannelName() {
return "";
}
@Override
public String getParentChannelUrl() {
return "";
}
@Override
@Nonnull
public List<Image> getParentChannelAvatars() {
return Collections.EMPTY_LIST;
}
@Override
public boolean isVerified() throws ParsingException {
return this.user.getBoolean("verified");
}
@Override
@Nonnull
public List<ListLinkHandler> getTabs() throws ParsingException {
String url = getUrl();
String str = url + SoundcloudChannelTabLinkHandlerFactory.getUrlSuffix("tracks");
String str2 = url + SoundcloudChannelTabLinkHandlerFactory.getUrlSuffix("playlists");
String str3 = url + SoundcloudChannelTabLinkHandlerFactory.getUrlSuffix(ChannelTabs.ALBUMS);
String id = getId();
return UByte$.ExternalSyntheticBackport0.m(new ListLinkHandler(str, str, id, TypefaceCompat$.ExternalSyntheticBackport0.m("tracks"), ""), new ListLinkHandler(str2, str2, id, TypefaceCompat$.ExternalSyntheticBackport0.m("playlists"), ""), new ListLinkHandler(str3, str3, id, TypefaceCompat$.ExternalSyntheticBackport0.m(ChannelTabs.ALBUMS), ""));
}
}