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

📄 rss.jsp

📁 HomePlayer is an extention of the FreePlayer software provided by the french internet provider Free
💻 JSP
字号:
<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="com.sun.syndication.feed.synd.*"%>
<%@page import="org.homeplayer.util.*"%>
<%@page import="org.homeplayer.data.*"%>
<%@page import="org.homeplayer.web.*"%>
<%@page import="java.util.*"%>
<%@page import="java.text.*"%>
<jsp:useBean id="hppc" class="org.homeplayer.web.HPPageContext"
	scope="request">
	<jsp:setProperty name="hppc" property="request" value="<%=request%>" />
	<jsp:setProperty name="hppc" property="navLevel" value="5" />
</jsp:useBean>
<%
int maxInPage = 8;
int start = 0;
if (request.getParameter("start") != null) {
	start = Integer.parseInt(request.getParameter("start"));
}

String media = "";
if (request.getParameter("Media") != null) {
	media = request.getParameter("Media");
}

XMLChannel rssch = (XMLChannel) MediaManager.getCurrentMediaManager().getMediaItem(GUIDGenerator.makeGUID(media));
hppc.setServiceName( rssch instanceof RSSChannel ? "RSS" : "PODCAST" ) ;
int pos;

if (request.getParameter("pos") != null) {
	pos = Integer.parseInt(request.getParameter("pos"));
} else {
	rssch.load();
	pos = -1;
}

RSSEntity parsedFeed = rssch.getRSSEntity(); //get the parsed feed
if( parsedFeed.isValid() == false ) {
	hppc.setRefresh(1, hppc.getUpUrl());
	%>
	    <jsp:include page="<%= hppc.getSkin().getHeader() %>"/>
		<jsp:include page="../body.jsp"/>
			<table width="95%" style="text-align:center">
				<tr><td style="height:30px">&nbsp;</td></tr>
				<tr>
					<td style="text-align:center">
						<table style="width:300px;heigth:20px"><tr><td style="text-align:center">Flux invalide.</td></tr></table>
					</td>
				</tr>
			</table>
		<jsp:include page="<%= hppc.getSkin().getFooter() %>"/>
	<%
	return ;
}

List entries = parsedFeed.getEntries(); //get the entries

boolean prec = (start - maxInPage) >= 0;
boolean next = start + maxInPage < entries.size();
if (prec) {
	hppc.addMenuItem(new HPMenuPrevious(
			"rss.jsp?Media=" + WebUtil.urlEncode(media) + "&start=" + (start - maxInPage) + "&pos="
					+ (start - maxInPage)));
}

RSSHistoryManager rssHistManager = RSSHistoryManager.getInstance();
RSSHistory rssHist = rssHistManager.getRssHistory(rssch.getPath());

//open the content of an entry

SyndEntry thenews = null;
if (request.getParameter("open") != null) {
	thenews = (SyndEntry) entries.get(pos);
	rssHist.setAsVisited(thenews.getTitle(), thenews.getPublishedDate());
}

//Date utility
Date oldestDate = null;
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_YEAR, -30);
Date nextMonth = c.getTime();
Date lastpubdate = null ;

for (int i = 0; i < entries.size(); i++) {

	SyndEntry n = (SyndEntry) entries.get(i);
	Date d = n.getPublishedDate();

	if (oldestDate == null) {
		oldestDate = d;
		continue;
	}
	if (lastpubdate == null) {
		lastpubdate = d;
	} else {
		lastpubdate = d==null ? lastpubdate : d.after(lastpubdate) ? d : lastpubdate ;
	}
	if (d == null) {
		d = nextMonth;
	}
	if (d.before(oldestDate)) {
		oldestDate = d;
	}
}

if (oldestDate == null) {
	oldestDate = nextMonth;
} else {
	c = Calendar.getInstance();
	c.setTime(oldestDate);
	c.add(Calendar.DAY_OF_YEAR, -1);
	oldestDate = c.getTime();
}

rssHist.clear(oldestDate);

//display left block titles

for (int i = start; i < entries.size() && (i - start) < maxInPage; i++ ) {

	SyndEntry n = (SyndEntry) entries.get(i);
	String label = StringUtil.encodeHTML(n.getTitle());
	if (rssHist.hasBeenVisited(n.getTitle())) {
		label = "-<em>" + label + "</em>-";
	}
	hppc.addMenuItem(new HPMenuLink(label, "rss.jsp?Media=" + WebUtil.urlEncode(media) + "&amp;start=" + start + "&amp;pos="+ i + "&amp;open=true", pos==i));
}
if (next) {

	hppc.addMenuItem(new org.homeplayer.web.HPMenuNext(
			"rss.jsp?Media=" + WebUtil.urlEncode(media) + "&amp;start="
					+ (start + maxInPage) + "&amp;pos="
					+ (start + maxInPage)));
}

hppc.setHeaderTitle(rssch.getTitle() + " (" + (pos + 1) + "/" + entries.size() + ")");

//add to favorite
hppc.setFavorite(hppc.getServiceName(), rssch.getTitle(), StringUtil.gsub(hppc.getLocalURL(), "pos=", "dummy="));
if( request.getParameter("open") != null && rssch instanceof PodcastChannel ) {
	PodcastChannel podcast = (PodcastChannel)rssch ;
	int mediatype = podcast.getMediaType( thenews ) ;
	if( mediatype != PodcastChannel.MEDIATYPE_UNKNOW ) {
		String mediaurl = podcast.getMediaURL( thenews ) ;
		hppc.topCommandAppend( "<li><img src=\"/images/novaweb/playpodcast.gif\" alt=\"Jouer Podcast\" class=\"img-fav\" />" ) ;
		hppc.topCommandAppend( "<a href=\"playweburl.jsp?MediaType=PODCAST&Media="+media+"&MediaURL="+WebUtil.urlEncode(mediaurl)+"&MediaTitle="+WebUtil.urlEncode(thenews.getTitle())+(mediatype==PodcastChannel.MEDIATYPE_AUDIO?("&next="+WebUtil.urlEncode(hppc.getLocalURL())):"")+"\" title=\""+(mediatype==PodcastChannel.MEDIATYPE_AUDIO?"Ecouter":"Voir")+"\" class=\"link-menu\">");
		hppc.topCommandAppend( mediatype==PodcastChannel.MEDIATYPE_AUDIO?"Ecouter":"Voir" ) ;
		hppc.topCommandAppend( "</a></li>" ) ;
		hppc.topCommandAppend( "<li><img src=\"/images/novaweb/download.gif\" alt=\"télécharger\" class=\"img-fav\" />" ) ;
		hppc.topCommandAppend( "<a href=\"download.jsp?MediaURL="+WebUtil.urlEncode(mediaurl)+"&MediaTitle="+WebUtil.urlEncode(thenews.getTitle())+ "&MediaType="+mediatype+"&RSSName="+WebUtil.urlEncode(rssch.getTitle())+"&next="+WebUtil.urlEncode(hppc.getLocalURL())+"\" title=\"Télécharger\" class=\"link-menu\">");
		hppc.topCommandAppend( "Télécharger" ) ;
		hppc.topCommandAppend( "</a></li>" ) ;
	}
}else{
	hppc.topCommandAppend( "<li><img src=\"/images/novaweb/playpodcast.gif\" alt=\"Jouer Podcast\" class=\"img-fav\" /></li>");
}
SimpleDateFormat datef = new SimpleDateFormat( "dd/MM/yyyy HH:mm" ) ;
%>

<jsp:include page="<%= hppc.getSkin().getHeader() %>"/>
<jsp:include page="../body.jsp"/>
<table width="406px">
	<tr>
		<td><%if (request.getParameter("open") != null) {%>
		<table>
			<tr>
				<td><%=thenews.getTitle()%><%=thenews.getPublishedDate()==null?"":(" - <em>"+datef.format(thenews.getPublishedDate())+"</em>")%></td>
			</tr>
			<tr>
				<td style="width:300px"><%String desc = thenews.getContents().size()>0 ? ((SyndContent) thenews.getContents().get(0)).getValue() : thenews.getDescription().getValue() ;
				if (desc == null) {
					desc = "";
				} else {
					// suppression des liens 
					desc = desc.replaceAll("<(a|A)\\b[^>]*>", "");
					desc = desc.replaceAll("</(a|A)[^>]*>", "");
					desc = desc.replaceAll("<img\\b[^>]*>", "");
					desc = desc.replaceAll("<object classid\\b[^>]*>", "");
					desc = desc.replaceAll("<param name\\b[^>]*>", "");
					desc = desc.replaceAll("<embed\\b[^>]*>", "");
					//desc = desc.length() > 600 ? desc.substring(0, 600) + "..." : desc;
				}
				%> <p class="resume"><%=desc%></p>
				</td>
			</tr>
		</table>
		<%} else {%>
		<table>
			<tr>
				<td style="height:80px;width:80px;vertical-align:center;text-align:center">
					<%
					try {
						ImageUtil.ImageInfo img = ImageUtil.getCachedResizedImageInfo(ImageUtil.toUrl(rssch.getIcon()), 80, 80 ) ;
						System.out.println("source de l'image, path : "+img.getPath()+" url: "+img.getUrl());
					%>				
					<img src="<%= img.getPath() %>" style="width:<%=img.getWidth() %>px;height:<%=img.getHeight() %>px" alt="image flux" class="img-fav" />
					<% } catch (ImageUtil.ImageException e) { %>
					<img src="/images/novaweb/photos.gif" style="width:32px;height:32px" alt="photos" class="img-fav" />					
					<% } %>
				</td>
				<td style="vertical-align:top"><%=rssch.getTitle() %><br /><em>Dernière mise à jour : <%=lastpubdate==null?"Inconnu":(datef.format(lastpubdate)) %></em>
				</td>	
			</tr>
			<tr>
				<td colspan="2"><%String desc = rssch.getRSSEntity()!=null ? rssch.getRSSEntity().getDescription() : "" ;
				if (desc == null) {
					desc = "";
				} else {
					// suppression des liens 
					desc = desc.replaceAll("<(a|A)\\b[^>]*>", "");
					desc = desc.replaceAll("</(a|A)[^>]*>", "");
					desc = desc.replaceAll("<img\\b[^>]*>", "");
					desc = desc.replaceAll("<object classid\\b[^>]*>", "");
					desc = desc.replaceAll("<param name\\b[^>]*>", "");
					desc = desc.replaceAll("<embed\\b[^>]*>", "");
					//desc = desc.length() > 600 ? desc.substring(0, 600) + "..." : desc;
				}
				%> <p class="resume"><%=desc%></p>
				</td>
			</tr>
		</table>
		<%} %>
		</td>
	</tr>
</table>
<jsp:include page="<%= hppc.getSkin().getFooter() %>"/>

⌨️ 快捷键说明

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