package support.audio;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;
import support.Rest;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowEvent;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Classe che serve a far partire un video di youtube in una frame
*/
public class Musich implements Audio {
/**
* L'url da dove possiamo pescare i dati di youtube dei video
*/
private static final String API_URL = "https://www.googleapis.com/youtube/v3/search?";
/**
* La key necessaria per prendere i dati da youtube
* Tra l'altro l'ho presa a caso... quindi boh.
*/
private static final String KEY = "AIzaSyAYcQcX9P5btBTfgdwWwETNh_7jV20cQp0";
/**
* IL thread che ha fatto partire il frame corrente
*/
private Thread currentThread;
/**
* Il frame (ovvero la windows) che e' attualmente attiva
*/
private JFrame currentFrame;
/**
* Serve ad inizializzare la libreria SWT di eclipse e chrriis.dj
*/
public Musich() {
/*
* Viene mandato questo errore in console, pero' boh... solo ogni tanto:
* Exception "java.lang.ClassNotFoundException: com/intellij/codeInsight/editorActions/FoldingData"while constructing DataFlavor for: application/x-java-jvm-local-objectref; class=com.intellij.codeInsight.editorActions.FoldingData
* A volte ne tira tante, a volte nessuna.
* Sta' di fatto che per quanto ne so non compromette il funzionamento.
* Al massimo usare un logger che dice di ignorare questo errore nel log
*/
NativeInterface.initialize();
NativeInterface.open();
NativeInterface.runEventPump(); // this should be called at the end of main (it said this but who cares)
}
/**
* Serve ad avere una lista di id dei video che corrispondono alle keyword indicate nella ricerca
* @param search la ricerca da fare su youtube
* @param maxResult quanti risultati si vuole avere
* @return una lista di id dei video che corrispondono alla ricerca
*/
public static List getVideosId(String search, final int maxResult) {
try {
search = URLEncoder.encode(search, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Map response = Rest.get(API_URL +
"maxResults=" + maxResult +
"&part=snippet" +
"&type=video" +
"&q=" + search +
"&key=" + KEY);
List