导航菜单

页面标题

页面副标题

Kreate v1.5.0 - SoundcloudChannelExtractor.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), ""));
    }
}