1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2026-04-26 16:51:23 +00:00

+Merge Adam Howard's (medavox) commit with my changes & remove conflict.

+update searchEngine.java & YoutubeSearchEngine.java file.

Conflicts:
	app/src/main/java/org/schabi/newpipe/SearchEngine.java
	app/src/main/java/org/schabi/newpipe/youtube/YoutubeSearchEngine.java
This commit is contained in:
chandrashekhar
2015-11-05 13:03:47 +05:30
7 changed files with 213 additions and 18 deletions

View File

@@ -321,7 +321,7 @@ public class ActionBarHandler {
}
});
builder.create().show();
Log.d(TAG, "Either no Streaming player for audio was installed, or something importand crashed:");
Log.d(TAG, "Either no Streaming player for audio was installed, or something important crashed:");
e.printStackTrace();
}
}

View File

@@ -32,7 +32,8 @@ public interface SearchEngine {
public Vector<VideoInfoItem> resultList = new Vector<>();
}
Result search(String query, int page);
ArrayList<String> suggestionList(String query);
//Result search(String query, int page);
Result search(String query, int page, String contentCountry);
}

View File

@@ -1,10 +1,12 @@
package org.schabi.newpipe;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.support.v4.app.ListFragment;
import android.util.Log;
import android.view.View;
@@ -90,7 +92,11 @@ public class VideoItemListFragment extends ListFragment {
@Override
public void run() {
try {
SearchEngine.Result result = engine.search(query, page);
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getContext());
String contentCountryKey = getContext().getString(R.string.contentCountry);
String contentCountry = sp.getString(contentCountryKey, "");
SearchEngine.Result result = engine.search(query, page, contentCountry);
Log.i(TAG, "countryCode passed:\""+contentCountry+"\"");
if(run) {
h.post(new ResultRunnable(result, requestId));
}

View File

@@ -49,7 +49,8 @@ public class YoutubeSearchEngine implements SearchEngine {
private static final String TAG = YoutubeSearchEngine.class.toString();
@Override
public Result search(String query, int page) {
public Result search(String query, int page, String countryCode) {
//String contentCountry = PreferenceManager.getDefaultSharedPreferences(this).getString(getString(R.string., "");
Uri.Builder builder = new Uri.Builder();
builder.scheme("https")
.authority("www.youtube.com")
@@ -57,6 +58,18 @@ public class YoutubeSearchEngine implements SearchEngine {
.appendQueryParameter("search_query", query)
.appendQueryParameter("page", Integer.toString(page))
.appendQueryParameter("filters", "video");
//if we've been passed a valid, non-empty country code, append it to the URL
if(countryCode.length() > 0) {
if(countryCode.length() == 2) {
builder.appendQueryParameter("gl", countryCode);
builder.appendQueryParameter("persist_gl", "1");
Log.i(TAG, "URI: \""+builder+"\"");
}
else {
Log.e(TAG, "invalid country code passed to search(): \""+countryCode+"\"");
}
}
String url = builder.build().toString();
String site = Downloader.download(url);
@@ -162,25 +175,14 @@ public class YoutubeSearchEngine implements SearchEngine {
}
doc.getDocumentElement().normalize();
// System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("CompleteSuggestion");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
// System.out.println("\nCurrent Element :" + nNode.getNodeName());
NodeList nList1 = doc.getElementsByTagName("suggestion");
Node nNode1 = nList1.item(temp);
// System.out.println("\nInside Item :" + nNode1.getNodeName());
Node nNode1 = nList1.item(temp)
;
if (nNode1.getNodeType() == Node.ELEMENT_NODE) {
org.w3c.dom.Element eElement = (org.w3c.dom.Element) nNode1;
System.out.println("final data : " + eElement.getAttribute("data"));
suggestions.add(eElement.getAttribute("data"));
}
}