mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-30 23:03:00 +00:00 
			
		
		
		
	Merge remote-tracking branch 'origin/master'
This commit is contained in:
		| @@ -0,0 +1,89 @@ | ||||
| package org.schabi.newpipe.services.youtube; | ||||
|  | ||||
| import android.test.AndroidTestCase; | ||||
|  | ||||
| import org.schabi.newpipe.VideoPreviewInfo; | ||||
| import org.schabi.newpipe.services.SearchEngine; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
|  | ||||
| /** | ||||
|  * Created by the-scrabi on 29.12.15. | ||||
|  * | ||||
|  * Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org> | ||||
|  * YoutubeSearchEngineTest.java is part of NewPipe. | ||||
|  * | ||||
|  * NewPipe is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation, either version 3 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * NewPipe is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with NewPipe.  If not, see <http://www.gnu.org/licenses/>. | ||||
|  */ | ||||
|  | ||||
| public class YoutubeSearchEngineTest extends AndroidTestCase { | ||||
|     private SearchEngine.Result result; | ||||
|     private ArrayList<String> suggestionReply; | ||||
|  | ||||
|     @Override | ||||
|     public void setUp() throws Exception{ | ||||
|         super.setUp(); | ||||
|         SearchEngine engine = new YoutubeSearchEngine(); | ||||
|         result = engine.search("https://www.youtube.com/results?search_query=bla", 0, "de"); | ||||
|         suggestionReply = engine.suggestionList("hello"); | ||||
|     } | ||||
|  | ||||
|     public void testIfNoErrorOccur() { | ||||
|         assertEquals(result.errorMessage, ""); | ||||
|     } | ||||
|  | ||||
|     public void testIfListIsNotEmpty() { | ||||
|         assertEquals(result.resultList.size() > 0, true); | ||||
|     } | ||||
|  | ||||
|     public void testItemsHaveTitle() { | ||||
|         for(VideoPreviewInfo i : result.resultList) { | ||||
|             assertEquals(i.title.isEmpty(), false); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void testItemsHaveUploader() { | ||||
|         for(VideoPreviewInfo i : result.resultList) { | ||||
|             assertEquals(i.uploader.isEmpty(), false); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void testItemsHaveRightDuration() { | ||||
|         for(VideoPreviewInfo i : result.resultList) { | ||||
|             assertTrue(i.duration, i.duration.contains(":")); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void testItemsHaveRightThumbnail() { | ||||
|         for (VideoPreviewInfo i : result.resultList) { | ||||
|             assertTrue(i.thumbnail_url, i.thumbnail_url.contains("https://")); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void testItemsHaveRightVideoUrl() { | ||||
|         for (VideoPreviewInfo i : result.resultList) { | ||||
|             assertTrue(i.webpage_url, i.webpage_url.contains("https://")); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void testIfSuggestionsAreReplied() { | ||||
|         assertEquals(suggestionReply.size() > 0, true); | ||||
|     } | ||||
|  | ||||
|     public void testIfSuggestionsAreValid() { | ||||
|         for(String s : suggestionReply) { | ||||
|             assertTrue(s, !s.isEmpty()); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,100 @@ | ||||
| package org.schabi.newpipe.services.youtube; | ||||
|  | ||||
| import android.test.AndroidTestCase; | ||||
| import android.util.Log; | ||||
|  | ||||
| import org.schabi.newpipe.services.VideoInfo; | ||||
|  | ||||
| /** | ||||
|  * Created by the-scrabi on 30.12.15. | ||||
|  * | ||||
|  * Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org> | ||||
|  * YoutubeVideoExtractorDefault.java is part of NewPipe. | ||||
|  * | ||||
|  * NewPipe is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation, either version 3 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * NewPipe is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with NewPipe.  If not, see <http://www.gnu.org/licenses/>. | ||||
|  */ | ||||
|  | ||||
| public class YoutubeVideoExtractorDefaultTest extends AndroidTestCase { | ||||
|     private YoutubeVideoExtractor extractor; | ||||
|  | ||||
|     public void setUp() { | ||||
|         extractor = new YoutubeVideoExtractor("https://www.youtube.com/watch?v=FmG385_uUys"); | ||||
|     } | ||||
|  | ||||
|     public void testGetErrorCode() { | ||||
|         assertEquals(extractor.getErrorCode(), VideoInfo.NO_ERROR); | ||||
|     } | ||||
|  | ||||
|     public void testGetErrorMessage() { | ||||
|         assertEquals(extractor.getErrorMessage(), ""); | ||||
|     } | ||||
|  | ||||
|     public void testGetTimeStamp() { | ||||
|         assertTrue(Integer.toString(extractor.getTimeStamp()), | ||||
|                 extractor.getTimeStamp() >= 0); | ||||
|     } | ||||
|  | ||||
|     public void testGetTitle() { | ||||
|         assertTrue(!extractor.getTitle().isEmpty()); | ||||
|     } | ||||
|  | ||||
|     public void testGetDescription() { | ||||
|         assertTrue(extractor.getDescription() != null); | ||||
|     } | ||||
|  | ||||
|     public void testGetUploader() { | ||||
|         assertTrue(!extractor.getUploader().isEmpty()); | ||||
|     } | ||||
|  | ||||
|     public void testGetLength() { | ||||
|         assertTrue(extractor.getLength() > 0); | ||||
|     } | ||||
|  | ||||
|     public void testGetViews() { | ||||
|         assertTrue(extractor.getLength() > 0); | ||||
|     } | ||||
|  | ||||
|     public void testGetUploadDate() { | ||||
|         assertTrue(extractor.getUploadDate().length() > 0); | ||||
|     } | ||||
|  | ||||
|     public void testGetThumbnailUrl() { | ||||
|         assertTrue(extractor.getThumbnailUrl(), | ||||
|                 extractor.getThumbnailUrl().contains("https://")); | ||||
|     } | ||||
|  | ||||
|     public void testGetUploaderThumbnailUrl() { | ||||
|         assertTrue(extractor.getUploaderThumbnailUrl(), | ||||
|                 extractor.getUploaderThumbnailUrl().contains("https://")); | ||||
|     } | ||||
|  | ||||
|     public void testGetAudioStreams() { | ||||
|         for(VideoInfo.AudioStream s : extractor.getAudioStreams()) { | ||||
|             assertTrue(s.url, | ||||
|                     s.url.contains("https://")); | ||||
|             assertTrue(s.bandwidth > 0); | ||||
|             assertTrue(s.samplingRate > 0); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void testGetVideoStreams() { | ||||
|         for(VideoInfo.VideoStream s : extractor.getVideoStreams()) { | ||||
|             assertTrue(s.url, | ||||
|                     s.url.contains("https://")); | ||||
|             assertTrue(s.resolution.length() > 0); | ||||
|             assertTrue(Integer.toString(s.format), | ||||
|                     0 <= s.format && s.format <= 4); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,59 @@ | ||||
| package org.schabi.newpipe.services.youtube; | ||||
|  | ||||
| import android.test.AndroidTestCase; | ||||
|  | ||||
| import org.schabi.newpipe.services.VideoInfo; | ||||
|  | ||||
| /** | ||||
|  * Created by the-scrabi on 30.12.15. | ||||
|  * | ||||
|  * Copyright (C) Christian Schabesberger 2015 <chris.schabesberger@mailbox.org> | ||||
|  * YoutubeVideoExtractorGema.java is part of NewPipe. | ||||
|  * | ||||
|  * NewPipe is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation, either version 3 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * NewPipe is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with NewPipe.  If not, see <http://www.gnu.org/licenses/>. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| // This class only works in Germany. | ||||
| public class YoutubeVideoExtractorGemaTest extends AndroidTestCase { | ||||
|  | ||||
|     // Deaktivate this Test Case bevore uploading it githup, otherwise CI will fail. | ||||
|     private static final boolean testActive = false; | ||||
|  | ||||
|  | ||||
|     private YoutubeVideoExtractor extractor; | ||||
|  | ||||
|     public void setUp() { | ||||
|         if(testActive) { | ||||
|             extractor = new YoutubeVideoExtractor("https://www.youtube.com/watch?v=3O1_3zBUKM8"); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void testGetErrorCode() { | ||||
|         if(testActive) { | ||||
|             assertEquals(extractor.getErrorCode(), VideoInfo.ERROR_BLOCKED_BY_GEMA); | ||||
|         } else { | ||||
|             assertTrue(true); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void testGetErrorMessage() { | ||||
|         if(testActive) { | ||||
|             assertTrue(extractor.getErrorMessage(), | ||||
|                     extractor.getErrorMessage().contains("GEMA")); | ||||
|         } else { | ||||
|             assertTrue(true); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -16,6 +16,7 @@ import android.view.MenuInflater; | ||||
| import android.view.MenuItem; | ||||
| import android.widget.ArrayAdapter; | ||||
|  | ||||
| import org.schabi.newpipe.services.MediaFormat; | ||||
| import org.schabi.newpipe.services.VideoInfo; | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| package org.schabi.newpipe; | ||||
| package org.schabi.newpipe.services; | ||||
| 
 | ||||
| /** | ||||
|  * Created by Adam Howard on 08/11/15. | ||||
| @@ -106,21 +106,23 @@ public abstract class VideoExtractor { | ||||
|         return videoInfo; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     //todo: add licence field | ||||
|     protected abstract int getErrorCode(); | ||||
|     protected abstract String getErrorMessage(); | ||||
|     protected abstract String getVideoUrl(String videoId); | ||||
|     protected abstract String getVideoId(String siteUrl); | ||||
|     protected abstract int getTimeStamp(); | ||||
|     protected abstract String getTitle(); | ||||
|     protected abstract String getDescription(); | ||||
|     protected abstract String getUploader(); | ||||
|     protected abstract int getLength(); | ||||
|     protected abstract long getViews(); | ||||
|     protected abstract String getUploadDate(); | ||||
|     protected abstract String getThumbnailUrl(); | ||||
|     protected abstract String getUploaderThumbnailUrl(); | ||||
|     protected abstract VideoInfo.AudioStream[] getAudioStreams(); | ||||
|     protected abstract VideoInfo.VideoStream[] getVideoStreams(); | ||||
|     public abstract int getErrorCode(); | ||||
|     public abstract String getErrorMessage(); | ||||
|  | ||||
|     //todo: remove these functions, or make them static, otherwise its useles, to have them here | ||||
|     public abstract String getVideoUrl(String videoId); | ||||
|     public abstract String getVideoId(String siteUrl); | ||||
|     /////////////////////////////////////////////////////////////////////////////////////////// | ||||
|     public abstract int getTimeStamp(); | ||||
|     public abstract String getTitle(); | ||||
|     public abstract String getDescription(); | ||||
|     public abstract String getUploader(); | ||||
|     public abstract int getLength(); | ||||
|     public abstract long getViews(); | ||||
|     public abstract String getUploadDate(); | ||||
|     public abstract String getThumbnailUrl(); | ||||
|     public abstract String getUploaderThumbnailUrl(); | ||||
|     public abstract VideoInfo.AudioStream[] getAudioStreams(); | ||||
|     public abstract VideoInfo.VideoStream[] getVideoStreams(); | ||||
| } | ||||
|   | ||||
| @@ -14,7 +14,7 @@ import org.mozilla.javascript.Function; | ||||
| import org.mozilla.javascript.ScriptableObject; | ||||
| import org.schabi.newpipe.Downloader; | ||||
| import org.schabi.newpipe.services.VideoExtractor; | ||||
| import org.schabi.newpipe.MediaFormat; | ||||
| import org.schabi.newpipe.services.MediaFormat; | ||||
| import org.schabi.newpipe.services.VideoInfo; | ||||
| import org.schabi.newpipe.VideoPreviewInfo; | ||||
| import org.xmlpull.v1.XmlPullParser; | ||||
|   | ||||
| @@ -39,6 +39,7 @@ | ||||
|         android:title="@string/settings_category_appearance_title" | ||||
|         android:textAllCaps="true"> | ||||
|  | ||||
|         <!-- Not yet working. | ||||
|         <ListPreference | ||||
|             android:key="@string/theme_key" | ||||
|             android:title="@string/theme_title" | ||||
| @@ -46,6 +47,7 @@ | ||||
|             android:entries="@array/theme_description_list" | ||||
|             android:entryValues="@array/theme_list" | ||||
|             android:defaultValue="@string/default_theme_value"/> | ||||
|             --> | ||||
|  | ||||
|         <CheckBoxPreference | ||||
|             android:key="@string/show_play_with_kodi_key" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Weblate
					Weblate