Skip to content

Commit

Permalink
Merge pull request #14 from mauriciocolli/refactor-extractor
Browse files Browse the repository at this point in the history
Fix dash parser and more refactor
  • Loading branch information
mauriciocolli authored Jul 12, 2017
2 parents bda65e8 + b1989c0 commit b5b25a4
Show file tree
Hide file tree
Showing 41 changed files with 791 additions and 740 deletions.
2 changes: 1 addition & 1 deletion Extractor.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public Extractor(UrlIdHandler urlIdHandler, int serviceId, String url) {
this.urlIdHandler = urlIdHandler;
this.serviceId = serviceId;
this.url = url;
this.previewInfoCollector = new StreamInfoItemCollector(urlIdHandler, serviceId);
this.previewInfoCollector = new StreamInfoItemCollector(serviceId);
}

public String getUrl() {
Expand Down
6 changes: 3 additions & 3 deletions Info.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ public abstract class Info implements Serializable {
* Id of this Info object <br>
* e.g. Youtube: https://www.youtube.com/watch?v=RER5qCTzZ7 > RER5qCTzZ7
*/
public String id = "";
public String url = "";
public String name = "";
public String id;
public String url;
public String name;

public List<Throwable> errors = new Vector<>();
}
19 changes: 12 additions & 7 deletions InfoItem.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.schabi.newpipe.extractor;

import java.io.Serializable;

/*
* Created by the-scrabi on 11.02.17.
*
Expand All @@ -22,14 +20,21 @@
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
*/

public interface InfoItem extends Serializable {
enum InfoType {
import java.io.Serializable;

public abstract class InfoItem implements Serializable {
public enum InfoType {
STREAM,
PLAYLIST,
CHANNEL
}

InfoType infoType();
String getTitle();
String getLink();
public InfoItem(InfoType infoType) {
this.info_type = infoType;
}

public final InfoType info_type;
public int service_id = -1;
public String url;
public String name;
}
2 changes: 1 addition & 1 deletion InfoItemCollector.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
*/

public class InfoItemCollector {
public abstract class InfoItemCollector {
private List<InfoItem> itemList = new Vector<>();
private List<Throwable> errors = new Vector<>();
private int serviceId = -1;
Expand Down
13 changes: 13 additions & 0 deletions MediaFormat.java
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,17 @@ public static String getMimeById(int ident) {
}
return "";
}

/**
* Return the MediaFormat with the supplied mime type
*
* @return MediaFormat associated with this mime type,
* or null if none match it.
*/
public static MediaFormat getFromMimeType(String mimeType) {
for (MediaFormat vf : MediaFormat.values()) {
if (vf.mimeType.equals(mimeType)) return vf;
}
return null;
}
}
1 change: 0 additions & 1 deletion channel/ChannelExtractor.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.schabi.newpipe.extractor.channel;

import org.schabi.newpipe.extractor.Extractor;
import org.schabi.newpipe.extractor.ListExtractor;
import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
Expand Down
21 changes: 8 additions & 13 deletions channel/ChannelInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,16 @@

public class ChannelInfo extends Info {

public static ChannelInfo getInfo(ChannelExtractor extractor)
throws ParsingException {
public static ChannelInfo getInfo(ChannelExtractor extractor) throws ParsingException {
ChannelInfo info = new ChannelInfo();

// important data
info.service_id = extractor.getServiceId();
info.url = extractor.getUrl();
info.id = extractor.getChannelId();
info.name = extractor.getChannelName();
info.hasMoreStreams = extractor.hasMoreStreams();
info.has_more_streams = extractor.hasMoreStreams();

try {
info.id = extractor.getChannelId();
} catch (Exception e) {
info.errors.add(e);
}
try {
info.avatar_url = extractor.getAvatarUrl();
} catch (Exception e) {
Expand Down Expand Up @@ -75,10 +70,10 @@ public static ChannelInfo getInfo(ChannelExtractor extractor)
return info;
}

public String avatar_url = "";
public String banner_url = "";
public String feed_url = "";
public List<InfoItem> related_streams = null;
public String avatar_url;
public String banner_url;
public String feed_url;
public List<InfoItem> related_streams;
public long subscriber_count = -1;
public boolean hasMoreStreams = false;
public boolean has_more_streams = false;
}
25 changes: 7 additions & 18 deletions channel/ChannelInfoItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,14 @@
* along with NewPipe. If not, see <http://www.gnu.org/licenses/>.
*/

public class ChannelInfoItem implements InfoItem {
public class ChannelInfoItem extends InfoItem {

public int serviceId = -1;
public String channelName = "";
public String thumbnailUrl = "";
public String webPageUrl = "";
public String description = "";
public long subscriberCount = -1;
public long viewCount = -1;
public String thumbnail_url;
public String description;
public long subscriber_count = -1;
public long view_count = -1;

public InfoType infoType() {
return InfoType.CHANNEL;
}

public String getTitle() {
return channelName;
}

public String getLink() {
return webPageUrl;
public ChannelInfoItem() {
super(InfoType.CHANNEL);
}
}
12 changes: 6 additions & 6 deletions channel/ChannelInfoItemCollector.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,24 +31,24 @@ public ChannelInfoItemCollector(int serviceId) {
public ChannelInfoItem extract(ChannelInfoItemExtractor extractor) throws ParsingException {
ChannelInfoItem resultItem = new ChannelInfoItem();
// important information
resultItem.channelName = extractor.getChannelName();
resultItem.name = extractor.getChannelName();

resultItem.serviceId = getServiceId();
resultItem.webPageUrl = extractor.getWebPageUrl();
resultItem.service_id = getServiceId();
resultItem.url = extractor.getWebPageUrl();

// optional information
try {
resultItem.subscriberCount = extractor.getSubscriberCount();
resultItem.subscriber_count = extractor.getSubscriberCount();
} catch (Exception e) {
addError(e);
}
try {
resultItem.viewCount = extractor.getViewCount();
resultItem.view_count = extractor.getViewCount();
} catch (Exception e) {
addError(e);
}
try {
resultItem.thumbnailUrl = extractor.getThumbnailUrl();
resultItem.thumbnail_url = extractor.getThumbnailUrl();
} catch (Exception e) {
addError(e);
}
Expand Down
11 changes: 11 additions & 0 deletions exceptions/ContentNotAvailableException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.schabi.newpipe.extractor.exceptions;

public class ContentNotAvailableException extends ParsingException {
public ContentNotAvailableException(String message) {
super(message);
}

public ContentNotAvailableException(String message, Throwable cause) {
super(message, cause);
}
}
1 change: 0 additions & 1 deletion playlist/PlaylistExtractor.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.schabi.newpipe.extractor.playlist;

import org.schabi.newpipe.extractor.Extractor;
import org.schabi.newpipe.extractor.ListExtractor;
import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
Expand Down
22 changes: 9 additions & 13 deletions playlist/PlaylistInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,10 @@ public static PlaylistInfo getInfo(PlaylistExtractor extractor) throws ParsingEx

info.service_id = extractor.getServiceId();
info.url = extractor.getUrl();
info.id = extractor.getPlaylistId();
info.name = extractor.getPlaylistName();
info.hasMoreStreams = extractor.hasMoreStreams();
info.has_more_streams = extractor.hasMoreStreams();

try {
info.id = extractor.getPlaylistId();
} catch (Exception e) {
info.errors.add(e);
}
try {
info.streams_count = extractor.getStreamsCount();
} catch (Exception e) {
Expand Down Expand Up @@ -63,12 +59,12 @@ public static PlaylistInfo getInfo(PlaylistExtractor extractor) throws ParsingEx
return info;
}

public String avatar_url = "";
public String banner_url = "";
public String uploader_url = "";
public String uploader_name = "";
public String uploader_avatar_url = "";
public String avatar_url;
public String banner_url;
public String uploader_url;
public String uploader_name;
public String uploader_avatar_url;
public long streams_count = 0;
public List<InfoItem> related_streams = null;
public boolean hasMoreStreams = false;
public List<InfoItem> related_streams;
public boolean has_more_streams;
}
23 changes: 8 additions & 15 deletions playlist/PlaylistInfoItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,15 @@

import org.schabi.newpipe.extractor.InfoItem;

public class PlaylistInfoItem implements InfoItem {
public class PlaylistInfoItem extends InfoItem {

public int serviceId = -1;
public String name = "";
public String thumbnailUrl = "";
public String webPageUrl = "";
public String thumbnail_url;
/**
* How many streams this playlist have
*/
public long streams_count = 0;

public InfoType infoType() {
return InfoType.PLAYLIST;
}

public String getTitle() {
return name;
}

public String getLink() {
return webPageUrl;
public PlaylistInfoItem() {
super(InfoType.PLAYLIST);
}
}
13 changes: 10 additions & 3 deletions playlist/PlaylistInfoItemCollector.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.schabi.newpipe.extractor.playlist;

import org.schabi.newpipe.extractor.InfoItemCollector;
import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.exceptions.ParsingException;

public class PlaylistInfoItemCollector extends InfoItemCollector {
Expand All @@ -12,10 +13,16 @@ public PlaylistInfoItem extract(PlaylistInfoItemExtractor extractor) throws Pars
final PlaylistInfoItem resultItem = new PlaylistInfoItem();

resultItem.name = extractor.getPlaylistName();
resultItem.serviceId = getServiceId();
resultItem.webPageUrl = extractor.getWebPageUrl();
resultItem.service_id = getServiceId();
resultItem.url = extractor.getWebPageUrl();

try {
resultItem.thumbnail_url = extractor.getThumbnailUrl();
} catch (Exception e) {
addError(e);
}
try {
resultItem.thumbnailUrl = extractor.getThumbnailUrl();
resultItem.streams_count = extractor.getStreamsCount();
} catch (Exception e) {
addError(e);
}
Expand Down
1 change: 1 addition & 0 deletions playlist/PlaylistInfoItemExtractor.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ public interface PlaylistInfoItemExtractor {
String getThumbnailUrl() throws ParsingException;
String getPlaylistName() throws ParsingException;
String getWebPageUrl() throws ParsingException;
long getStreamsCount() throws ParsingException;
}
9 changes: 4 additions & 5 deletions search/InfoItemSearchCollector.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.schabi.newpipe.extractor.search;

import org.schabi.newpipe.extractor.InfoItemCollector;
import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.channel.ChannelInfoItemCollector;
import org.schabi.newpipe.extractor.channel.ChannelInfoItemExtractor;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
Expand Down Expand Up @@ -30,15 +29,15 @@
*/

public class InfoItemSearchCollector extends InfoItemCollector {
private String suggestion = "";
private String suggestion;
private StreamInfoItemCollector streamCollector;
private ChannelInfoItemCollector channelCollector;

SearchResult result = new SearchResult();
private SearchResult result = new SearchResult();

InfoItemSearchCollector(UrlIdHandler handler, int serviceId) {
InfoItemSearchCollector(int serviceId) {
super(serviceId);
streamCollector = new StreamInfoItemCollector(handler, serviceId);
streamCollector = new StreamInfoItemCollector(serviceId);
channelCollector = new ChannelInfoItemCollector(serviceId);
}

Expand Down
7 changes: 3 additions & 4 deletions search/SearchEngine.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.schabi.newpipe.extractor.search;

import org.schabi.newpipe.extractor.UrlIdHandler;
import org.schabi.newpipe.extractor.exceptions.ExtractionException;

import java.io.IOException;
Expand Down Expand Up @@ -28,7 +27,7 @@

public abstract class SearchEngine {
public enum Filter {
STREAM, CHANNEL, PLAY_LIST
STREAM, CHANNEL, PLAYLIST
}

public static class NothingFoundException extends ExtractionException {
Expand All @@ -39,8 +38,8 @@ public NothingFoundException(String message) {

private InfoItemSearchCollector collector;

public SearchEngine(UrlIdHandler urlIdHandler, int serviceId) {
collector = new InfoItemSearchCollector(urlIdHandler, serviceId);
public SearchEngine(int serviceId) {
collector = new InfoItemSearchCollector(serviceId);
}

protected InfoItemSearchCollector getInfoItemSearchCollector() {
Expand Down
2 changes: 1 addition & 1 deletion search/SearchResult.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public static SearchResult getSearchResult(SearchEngine engine, String query,
return result;
}

public String suggestion = "";
public String suggestion;
public List<InfoItem> resultList = new Vector<>();
public List<Throwable> errors = new Vector<>();
}
Loading

0 comments on commit b5b25a4

Please sign in to comment.