⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 media.jsp

📁 HomePlayer is an extention of the FreePlayer software provided by the french internet provider Free
💻 JSP
📖 第 1 页 / 共 2 页
字号:
<%@page contentType="text/html;charset=ISO-8859-15" pageEncoding="UTF-8"%>
<%@page import="org.homeplayer.data.*"%>
<%@page import="org.homeplayer.util.*"%>
<%@page import="org.homeplayer.util.collections.*"%>
<%@page import="org.homeplayer.util.java.*"%>
<%@page import="org.homeplayer.database.*"%>
<%@page import="org.homeplayer.web.*"%>
<%@page import="org.homeplayer.playlist.*"%>
<%@page import="org.homeplayer.ihm.tree.*"%>
<%@page import="java.util.*"%>
<jsp:useBean id="hppc" class="org.homeplayer.web.HPPageContext" scope="request">
				<jsp:setProperty name="hppc" property="request" value="<%=request%>" />
</jsp:useBean>
<%
if (WebUtil.getParam(request, "WAIT", false)) {
%>
<jsp:forward page="/WEB-INF/jsp/wait.jsp" />
<%
return;}

String tfilter = WebUtil.getParam(request, "FILTER", "");
String fvalue = WebUtil.getParam(request, "FILTERVALUE", "");
String sorter = WebUtil.getParam(request, "SORTER", "");

/*
 * On commence par recuperer le type du media. Par defaut, c'est Film
 */
String mediaType = request.getParameter("MediaType");
if( mediaType.equals("WEBVIDEO") ) {
	hppc.setRefresh("/videotv/vodmodule.jsp?MODULE="+WebUtil.urlEncode("CatchUP TV")) ;
	%>
	<jsp:include page="/WEB-INF/jsp/empty.jsp" />
	<%
	return ;
}
if(mediaType==null) {
	mediaType = Film.nomType;
}

int navLevel = 1 ;
if(mediaType.equals("PODCAST") || mediaType.equals("RSS") || mediaType.equals("WEBTV") || mediaType.equals("FBTV")) {
	navLevel = tfilter.equals("") ? 2 : 3;
}


/*
 * On recupere l'indice de la page courante. Cet indice concerne la partie gauche de
 * la page.
 */
int start = WebUtil.getParam(request, "start", -1) ;
if(start<0) {
	start = 0;
	//nous venons de la page principale, donc, si nous avions deja une arborescence, nous la supprimons
	HPSession.set(Arborescence.ARBO_IN_SESSION, null);
}

hppc.setServiceName(mediaType);
hppc.setChannelPage("/media/media.jsp?MediaType="+mediaType+"&FILTER="+tfilter+"&FILTERVALUE="+fvalue+"&page=%d" ) ;

//On initialise le mediamanager courant qui permettra de recuperer les mediaitems
MediaManager mgr = MultiMediaManager.shareInstance().getMediaManagerFor(mediaType) ;
MediaManager.setCurrentMediaManager(mgr) ;

/*
 * DEFINITION DE L'ARBORESCENCE
 */
//on recupere la definition de l'arborescence. Par exemple, ARTISTE/ALBUM
ArrayList<MediaItemFilterCollection> arborescences = (ArrayList<MediaItemFilterCollection>) HPSession.get(Arborescence.ARBO_IN_SESSION);
int indexFilter = WebUtil.getParam(request, "INDEXFILTER", 0);
int indexArbo = WebUtil.getParam(request, "INDEXARBO", -1);
String tagValue = WebUtil.getParam(request, "TAGVALUE", null);

//l'arborescence courante
MediaItemFilterCollection arbo = null;

if(arborescences==null) {
	//Si nous ne l'avons pas, nous la recuperons.
	arborescences = Arborescence.getArborescence(mgr);
	HPSession.set(Arborescence.ARBO_IN_SESSION, arborescences);
}

if(indexArbo!=-1) {
	//nous sommes en train de parcourir une arborescence
	arbo = arborescences.get(indexArbo);
	tagValue = WebUtil.urlDecode(tagValue);
	/*
     * Si l'on a une valeur a filtrer, c'est que l'on est au moins profondeur n,
     * avec n>0.
     * Donc, cette valeur s'applique sur la profondeur n-1.
     */
	if(indexFilter>0) {
		MediaItemFilter mif = arbo.get(indexFilter-1);
		mif.setFilterValue(tagValue);
	}
	/*
	 * Dans le cas ou l'on remonte d'un niveau inferieur dans l'arborescence, on doit
     * retirer les valeurs des filtres qui ne doivent plus etre appliquees.
	 */
	for(int i=indexFilter; i<arbo.size(); i++) {
		MediaItemFilter mif = arbo.get(i);
		mif.setFilterValue(null);
	}
}


boolean inLeaf = true;
if(arbo!=null) {
	int maxArboSize = 1 ; /*arbo.size()*/
	for(int i=0; i<maxArboSize; i++) {
		MediaItemFilter mif = arbo.get(i);
		if(mif.getFilterValue()==null) {
	inLeaf = false;
	break;
		}
	}
} else {
	inLeaf = false;
}



/*
 * Nous recuperons les valeurs a afficher pour l'arborescence
 */
MediaItemCollection mediaItems = null;
ArrayList<HPMenuLink> tagsToDisplay = null;

HPSession.set( "MEDIALISTSORTER", Boolean.TRUE ) ;

if(arbo!=null) {
	if(inLeaf) {
		mediaItems = HPDB.getFilteredMediaItems(arbo);
	}

	/*
	 * Le Vector tags va contenir l'ensemble des valeurs possibles pour le prochain
	 * filtrage, s'il y en a.
	 * Dans l'exemple precedent, ce seront les noms des albums de Brian May.
	 * Mais nous ne le recuperons que si nous sommes dans l'affichage de l'arborescence
	 */
	if(tfilter.equals("")) {
		tagsToDisplay = new ArrayList<HPMenuLink>();
		StringList tags = new StringList();
		if(indexFilter<arbo.size()) {
			tags = HPDB.getMediaItemFilterTag(arbo);
		}
		int up = indexFilter+1;
		for(String tag : tags) {
			tagsToDisplay.add(new HPMenuLink(tag, "/media/media.jsp?MediaType="+mediaType+"&INDEXFILTER="+up+"&TAGVALUE="+WebUtil.urlEncode(tag)+"&start=0&INDEXARBO="+indexArbo, hppc ));
		}
		//+1 car il y a le premier niveau avec les noms des arbos
		hppc.setNavLevel(navLevel+indexFilter+1);
	}
} else if(tfilter.equals("MS")) {
	tagsToDisplay = new ArrayList<HPMenuLink>();
	for( int i=0 ; i<mgr.getPlayListManager().getPlaylists().size() ; i++ ) {
		MediaPlayList playlist = (MediaPlayList)mgr.getPlayListManager().getPlaylists().get(i) ;
		if( playlist.isAutomatic() == false ) {
			tagsToDisplay.add(new HPMenuLink(playlist.getName(), "/media/media.jsp?MediaType="+mediaType+"&FILTER=MS&FILTERVALUE="+WebUtil.urlEncode(playlist.getName())+"&start=0", hppc));
		}
	}
	if(!fvalue.equals("")) {
		MediaPlayList playlist = mgr.getPlayListManager().getMediaPlayList( fvalue );
		mediaItems = playlist==null? null : mgr.getMediaItemCollection( playlist );
		HPSession.set( "MEDIALISTSORTER", playlist==null||playlist.isAutomatic()==true?Boolean.FALSE:Boolean.TRUE );
		hppc.setNavLevel(navLevel+2);
	} else {
		hppc.setNavLevel(navLevel+1);		
	}
} else if(tfilter.equals("MSD") ) {
	tagsToDisplay = new ArrayList<HPMenuLink>();
	Vector playlists = mgr.getDynamicPlaylistManager().getPlaylists() ;
	for( int i=0; i<playlists.size(); i++ ) {
		DynamicPlaylist playlist = (DynamicPlaylist)playlists.get(i);
		tagsToDisplay.add(new HPMenuLink(playlist.getId(), "/media/media.jsp?MediaType="+mediaType+"&FILTER=MSD&FILTERVALUE="+playlist.getId()+"&start=0", hppc));
	}
	if(!fvalue.equals("")) {
		DynamicPlaylist playlist = mgr.getDynamicPlaylistManager().getMediaPlayList(fvalue);
		mediaItems = playlist.getMediaItems();
		HPSession.set( "MEDIALISTSORTER", Boolean.FALSE );
		hppc.setNavLevel(navLevel+2);
	} else {
		hppc.setNavLevel(navLevel+1);		
	}
} else if(tfilter.equals("SEARCH") ) {
	if(!fvalue.equals("")) {
		mediaItems = mgr.search(fvalue) ;
		hppc.setNavLevel(navLevel+2);
	} else {
		hppc.setNavLevel(navLevel+1);		
	}
} else if(tfilter.equals("YOUTUBE") ) {
	tagsToDisplay = new ArrayList<HPMenuLink>();
	Vector playlists = YoutubeModule.shareInstance().getPlaylists() ;
	for( int i=0; i<playlists.size(); i++ ) {
		VideoWebModule.CachePlaylist playlist = (VideoWebModule.CachePlaylist)playlists.get(i);
		tagsToDisplay.add(new HPMenuLink(playlist.getName(), "/media/media.jsp?MediaType="+mediaType+"&FILTER=YOUTUBE&FILTERVALUE="+WebUtil.urlEncode(playlist.getName())+"&start=0"+(playlist.isCacheValid()==false?"&WAIT=true":""), hppc));
	}
	tagsToDisplay.add(new HPMenuLink("Rechercher dans YouTube", "/media/media.jsp?MediaType="+mediaType+"&FILTER=YOUTUBE&FILTERVALUE=SEARCH", hppc));
	if(!fvalue.equals("")&&!fvalue.equals("SEARCH")) {
		MediaPlayList playlist = YoutubeModule.shareInstance().getMediaPlayList( fvalue );
		if( playlist==null ) {
	mediaItems = new MediaItemCollection() ;
	mediaItems.fromVector(YoutubeModule.shareInstance().search(fvalue)) ;
		} else {
	mediaItems = new MediaItemCollection() ;
	mediaItems.fromVector(playlist.getFullMediaItems(mgr)) ;
		}
		HPSession.set( "MEDIALISTSORTER", playlist==null||playlist.isAutomatic()==true?Boolean.FALSE:Boolean.TRUE );
		hppc.setNavLevel(navLevel+2);
	} else {
		hppc.setNavLevel(navLevel+1);		
	}
} else if(tfilter.equals("DAILYMOTION") ) {
	tagsToDisplay = new ArrayList<HPMenuLink>();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -