rss 开发实例2 getFeed()方法得实现

本文介绍了一个基于Java的RSS个性化订阅实现方案,通过Spring框架和Apache Commons Logging等技术,为用户提供根据用户名获取定制化的RSS Feed服务。该服务能够根据用户的资料自动生成包含用户昵称、简介和个人主页链接的RSS Feed。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.ouou.webapp.rss;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.bind.RequestUtils;
import org.springframework.beans.BeansException;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.feed.synd.SyndImage;
import com.sun.syndication.feed.synd.SyndImageImpl;
import com.sun.syndication.io.FeedException;
import com.ouou.video.om.Videos;
import com.ouou.video.om.VideosPeer;
import com.ouou.util.ImagesUtil;
import com.ouou.util.DomainUtil;
import com.ouou.service.impl.VideosManagerImpl;
import com.leyuan.client.model.User;
import com.leyuan.client.model.UserInfo;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Properties;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: xingtao
* Date: 2006-9-12
* Time: 21:54:11
*/
public class SpaceFeed extends AbstractFeedServlet{
    private static final Log logger = LogFactory.getLog(SpaceFeed.class);
    public SyndFeed getFeed(HttpServletRequest request, String type) throws IOException, FeedException {
        String username = RequestUtils.getStringParameter(request, "username","");
        SyndFeed feed = getBaseFeed();
        try {
            Properties prop = (Properties) context.getBean("space_rss");
            User user = umanager.getUserByUserName(username);
            UserInfo userInfo = umanager.getUserInfoByUID(user.getUid());
            if (!"".equalsIgnoreCase(username) || null != user || null!=userInfo ) {
                feed.setTitle(new StringBuffer(prop.getProperty("title")).append(user.getNick()).toString());
                feed.setDescription(userInfo.getIntro());
                SyndImage image = new SyndImageImpl();
                image.setUrl(ImagesUtil.getUserCoverUrl(userInfo.getCoverImage()));
                image.setTitle(user.getUserName());
                String link = new StringBuffer(DomainUtil.getSpaceDomain())
                            .append("/space/")
                            .append(user.getUserName()).toString();
                image.setLink(link);
                feed.setImage(image);
                feed.setLink(link);                
                List<Videos> list = vmanager.getVideos(user.getUid(),VideosManagerImpl.AUDITING_STATUS, VideosManagerImpl.SHARE,10,0, VideosPeer.CREATE_TIME,false);
                feed = process(feed, list);
            }
        } catch (BeansException e) {
            e.printStackTrace();
            logger.error(e);
            return null;
        }
        return feed;
    }
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值