Cron RSS Reader

So I've been using newsbeuter like many people for over a year now. However, the one complaint I and many others have voiced on the forums is that: there exists no cron RSS reader. Sure you can run newsbeuter 24/7 with the auto-refresh feature enabled, but who wants that. So a week ago at the start of the holidays I wrote my own. Now after a week I have seen that it works and that it should be ready to release in beta. Please understand that this is designed in my favorite way; stupid simple. It is source edited and demands only two files: a history file, and the program. I wrote it in python because of the wonderful feedparser library and because this way you can edit your feeds on the fly without needing to recompile.
For anyone who wishes, feel free to play around with this and give me your feedback.
To get it working just run the following to ensure you have the deps:
sudo pacman -Sy coreutils curl python3 python-feedparser youtube-dl
Next put the following source in a file and chmod 700 it. Now you can ./rss or maybe put it in ~/bin and add that to your path so you can run it like any other binary. But wait! Now before you run it, you will more than likely want to edit the config unless you want all of my feeds and just happen to have a /home/keller/downloads folder you want all the stuff put in. To edit the urls just follow the examples I left in. They are in the style ("Name Of Feed", "http:\\example.com\rss\url.xml") where the first entry starts with and additional open brace and then each end in a comma if it is not the last feed entry or a additional close brace if it is. If you don't have anything for the particular category, just use (). Now give it a run by appending the --no-download option. If you don't, it's going to take a while and will work on every feed entry.
To quote --help:
Usage: rss [Options]
This is a zero hassle RSS reader. It is designed to be source configured and
run without a care in the world. Cron it, script it, just plain run it...
Options:
-h, --help Show me this message.
--no-download Do not act on new entries.
(Simply mark as old.)
-q, --quiet Don't talk.
-v, --say-something The opposite of -q.
In terms of action, it will:
First: Append new links to a file called links.html in the downloads folder that you can view with your browser of choice. This is the fastest so you can read your feeds while you wait on the downloads.
Second: Download the attached image from Deviant Art
Third: Download every youtube video at a max of 720p (To speed up the download and conserve bandwidth)
Lastly: Download all of your podcasts
I was debating adding twitter, but I don't use RSS for twitter (or twitter for that matter) so if there is a desire for it (or others) let me know.
#!/usr/bin/python
# Depends on:
# * coreutils
# * curl
# * python3
# * python-feedparser
# * youtube-dl
# - - - - - - - - - - - - - - Configuration and URLs - - - - - - - - - - - - - #
be_quiet = False # True disables output (Good for cron)
download_dir = "/home/keller/downloads/"
history_file = "/home/keller/.rss_history"
# Appends to links.html page in download directory
link_urls = (("Extra Ordinary", "http://www.exocomics.com/feed"),
("Doghouse Diaries", "http://feeds2.feedburner.com/thedoghousediaries/feed"),
("Cyanide & Happiness", "http://feeds.feedburner.com/Explosm"),
("XKCD", "http://xkcd.com/rss.xml"),
("Scandinavia And The World", "http://feeds.feedburner.com/satwcomic?format=xml"),
("Surviving The World", "http://survivingtheworld.net/feed.xml"),
("Something Of That Ilk", "http://somethingofthatilk.com/rss/index.php"),
("Invisible Bread", "http://feeds.feedburner.com/InvisibleBread"),
("Happle Tea", "http://www.happletea.com/feed/"),
("Dilbert", "http://feed.dilbert.com/dilbert/daily_strip"),
("What-If", "http://what-if.xkcd.com/feed.atom"),
("Networking Nerd", "http://networkingnerd.net/feed/"),
("Fry Guy's Blog", "http://www.fryguy.net/feed/"),
("Ethereal Mind", "http://feeds.feedburner.com/etherealmind?format=xml"),
("Packet Pushers", "http://feeds.feedburner.com/PacketPushersBlogsOnly"),
("Lone SysAdmin", "http://lonesysadmin.net/feed/"),
("Arch Linux News", "http://www.archlinux.org/feeds/news/"),
("Schneier on Security", "http://feeds.feedburner.com/schneier/excerpts"))
# Deviant Art RSS
deviant_art_urls = (("Isbjorg's Main Gallery", "http://backend.deviantart.com/rss.xml?q=gallery%3Aisbjorg%2F9742889&type=deviation"))
# Youtube RSS - Youtube Username Only
youtube_users = (("Phillip DeFranco", "sxephil"),
("Freddie", "freddiew"),
("Freddie BTS", "freddiew2"),
("Corridor Digital", "corridordigital"),
("Corridor Digital BTS", "samandniko"),
("Jenna Marbles", "jennamarbles"),
("Source Fed", "sourcefed"),
("Minute Physics", "minutephysics"),
("VSauce", "vsauce"),
("Numberphile", "numberphile"),
("Veritasium", "1veritasium"),
("Sixty Symbols", "sixtysymbols"),
("Periodic Videos", "periodicvideos"))
# Podcasts - Audio/Video linked content download
podcast_urls = (("Security Now", "http://feeds.twit.tv/sn_video_large"),
("Ted Talks", "http://feeds.feedburner.com/tedtalks_video"),
("Scam School", "http://revision3.com/scamschool/feed/MP4-Large"),
("Hak 5", "http://feeds.feedburner.com/hak5hd?format=xml"),
("Film Riot", "http://revision3.com/filmriot/feed/MP4-hd30"),
("SANS News", "https://isc.sans.edu/dailypodcast.xml"),
("The Techie Geek", "http://feeds.feedburner.com/thetechiegeek/ogg?format=xml"))
# - - - - - - - - - - - - No need to modify below here - - - - - - - - - - - - #
from feedparser import parse
from os import system
from sys import argv
import pickle
# -- Argument Parse
no_download = False
if "--help" in argv or "-h" in argv:
print("""Usage: rss [Options]
This is a zero hassle RSS reader. It is designed to be source configured and
run without a care in the world. Cron it, script it, just plain run it...
Options:
-h, --help Show me this message.
--no-download Do not act on new entries.
(Simply mark as old.)
-q, --quiet Don't talk.
-v, --say-something The opposite of -q.
exit()
if "--no-download" in argv:
no_download = True
if "--quiet" in argv or "-q" in argv:
be_quiet = True
if "--say-something" in argv or "-v" in argv:
be_quiet = False
# -- Unpickle History
try:
history = pickle.load(open(history_file, "rb"))
except:
tmp = open(history_file, "w")
tmp.close()
history = {"podcast" : [], "deviant_art" : [], "youtube" : [], "link" : []}
current_links = [] # Holds all current links so we can prune ancient history
# -- Link
for url in link_urls:
if not be_quiet : print("Checking", url[0] + "...")
for entry in parse(url[1]).entries:
current_links.append(entry.link)
if entry.link not in history["link"]: # If is a new link
if not be_quiet : print(" * New Content Found!")
if no_download or system('echo "<a href=\"' + entry.link + '\">' + url[0] + ' : ' + entry.title + '</a><br />" >> ' + download_dir + 'links.html') == 0: # Append to file
history["link"].append(entry.link)
# -- Deviant Art
for url in deviant_art_urls:
if not be_quiet : print("Checking", url[0] + "...")
for entry in parse(url[1]).entries:
if entry.media_content[0]["url"][-4] == '.': # Check it's a file
current_links.append(entry.media_content[0]["url"])
if entry.media_content[0]["url"] not in history["deviant_art"]: # If is a new link
if not be_quiet : print(" * Downloading:", entry.media_content[0]["url"][entry.media_content[0]["url"].rfind('/') + 1:])
if no_download or system('curl -so "' + download_dir + entry.media_content[0]["url"][entry.media_content[0]["url"].rfind('/') + 1:] + '" "' + entry.media_content[0]["url"] + '"') == 0: # Download
history["deviant_art"].append(entry.media_content[0]["url"])
# -- Youtube
for url in youtube_users:
if not be_quiet : print("Checking", url[0] + "...")
for entry in parse("https://gdata.youtube.com/feeds/api/users/" + url[1] + "/uploads").entries:
current_links.append(entry.link)
if entry.link not in history["youtube"]: # If is a new link
if no_download or system('youtube-dl --max-quality 22 -o "' + download_dir + '%(title)s.%(ext)s" "' + entry.link + '"' + ['', ' -q'][be_quiet]) == 0: # Download
history["youtube"].append(entry.link)
# -- Podcast
for url in podcast_urls:
if not be_quiet : print("Checking", url[0] + "...")
for entry in parse(url[1]).entries:
for link in entry.links:
if link.type[0:5] == "video" or link.type[0:5] == "audio": # If _IT_ describes itself as video or audio
current_links.append(link.href)
if link.href not in history["podcast"]: # If is a new link
if not be_quiet : print(" * Downloading:", link.href[link.href.rfind('/') + 1:])
if no_download or system('curl -#Lo "' + download_dir + link.href[link.href.rfind('/') + 1:] + '" "' + link.href + '"' + ['', ' -s'][be_quiet]) == 0: # Download
history["podcast"].append(link.href)
# -- History Dump
for key in history:
for link in history[key]:
if link not in current_links:
history[key].remove(link)
# -- Pickle History
pickle.dump(history, open(history_file, "wb"))
That's all folks. If you do give it a try, please give feed back even if it's just that the whole thing sucks. I'd love to know what feeds don't work, if there is anything you want added, or if you just think it's swell.
If there appears to be some interest I'll look at putting this in the AUR. Maybe with a mode for config files so that each user can have thier feeds all independantly checked with each run under cron. Though that'll take some work to get just right so I'm only doing so if people are sure they would like such a feature. So yeah, feel free to ask for the moon, I'll see what I can do in most cases.
Lastly, I am humbly sorry that I suck at documenting how exactly it works here. If you have any questions at all, please feel free to post away and I will do my best to answer them.

This is a shame that Apple doesnt (somehow) make this one of the cross-platform features.
I mean come on, how many of us mac users actually have ALL our computer-using relatives on a mac? In a perfect world, all of us, but reality is, I'm the only one out of about 11 people on my and my wife's side of the family that we share pics of the kids with. Everyone else uses Winblows.
I was pumped when I heard about photocasting. Alas, now that I've tried to make this work smoothly for the novice windows users who want to see pictures of our kids, I realize there is *zero chance* of me being able to use this. There is no way I can see myself sending my 63 year old mother an RSS feed link and having her figure out what to do with it (when she can barely figure out how to look at the pics I send in email he he). If she has to go install an RSS reader, forget it.
Anyway, great mac only feature, but this would be a huge feather in Apple's cap if they could figure out how to serve this up to Windows end users just as effortlessly.
eMac, PB17"   Mac OS X (10.4.4)  
eMac   Mac OS X (10.2.x)  

Similar Messages

  • Safari 5.1.2: Where is the built-in RSS Reader theme stored?

    Hi all,
    Safari's built-in RSS reader menus are displayed in wrong language on my system - does anybody know in which library Apple's blue RSS reader theme and/or it's ressources are stored, so I could check for missing language files? All hints I could find on the web are describing pre-5.1 versions of Safari, and after investigating my current libraries I'm sure the ressources changed, e.g. the SyndicationUI.framework under /System/Library/PrivateFrameworks.
    Does anybody have any hints for me?

    OK, here's what I'm talking about. This is a screen capture of a tab from the Macintosh version of Safari:
    Notice how the "X" to close the tab is on the left-hand side and the text of the tab is centered on the width of the tab.
    Here is a screenshot of the Windows version of Safari:
    You can see how the tab is much smaller for one, but also how the text is justified to the left with the "X" to close the tab appearing on the right side of the tab instead of the left.
    I don't really prefer one over the other (ie. left or right side), I just wondered if there's some setting to make them act the same way on both so that I don't have to constantly remember what OS I'm on in order to remember where the darn "X" is to close the tab.

  • Why was deleted the RSS reader in Mail on OS X Mountain Lion?

    Why was deleted the RSS reader in Mail on OS X Mountain Lion?
    How can I re-enable the RSS reader?

    All RSS Readers that I tested from MacAppStore are much worst than Mail's in Lion.
    Hate them all. I'm using blogtrottr.com to compile all RSS and send me via email. But it's flooding my mailbox. There're a bunch of them that require a Google Reader account, and I won't do that. It doesn't matter to Google which RSS I'm following.
    I wish Apple put RSS reading back to Mail. Stupid idea taking it off.

  • E71 font size in RSS reader

    Dear E71 Gurus,
    has anybody been able to change the font size in the RSS reader?
    It seems to always use the same (large) font when reading RSS feeds irrespective of the font size set for browsing (for example small or smaller).
    Am I missing something?
    Thanks,
    Dane
    Proud E71-1 owner (yeah!)

    rrs reader

  • Linking to a Specific Spry panel (modified for RSS Reader)

    Hi – I would like to implement the following tutorial however have it work for the Spry Framework RSS Reader: http://foundationphp.com/tutorials/spry_url_utils.php
    I understand the concept of this article and have been able to implement the solution up to step 4 however for my solution I am not working with tabbed panels or an accordion widget but the RSS Reader from the latest Spry Framework. I would like to have a specific feed and article selected on the page depending on what link the user has come from.
    So instead of working with the tabbed panel and accordion variables I would be using the variables:
    var dsCategories
    var dsFeeds
    var dsChannel
    var dsArticles
    I would like to know if anyone can assist me in modifying the solution to suit this scenario? or if it is even possible?
    Thanks.
    Michael.

    Hi Ben,
    Thanks for pointing me to this tutorial.
    To keep things easier for myself I have kept the variable name as row. I have added the following code to the head of my called page:
    On lines 9-10:
    <script type="text/javascript" src="js/SpryURLUtils.js"></script>
    <script type="text/javascript"> var params = Spry.Utils.getLocationParamsAsObject();</script>
    On lines 19-26:
    //define the data set
                var ds1 = new Spry.Data.XMLDataSet("data/LocalFeeds.xml", "feeds/feed");
                //get the url parameter for the row number
                var params = Spry.Utils.getLocationParamsAsObject();
                //set an observer so that when the data is loaded, we update the current row to the url param value
                ds1.addobserver({ onPostLoad: function(ds, type) {
                                                                                                                                ds1.setCurrentRow(params.row); }
    Currently my called page is still not loading in the wanted state with calling page passing the parameter row=2.
    I aren’t sure what I am still missing but think it is perhaps something to do with setting the spry:region and spry:repeat to equal ds1? But not sure where I should be placing this.
    Am I nearly there?
    http://www.michael-williams.com.au/
    Thanks.

  • How to hide html tags in RSS reader

    Hello everyone!
    I need a help. I`m not a programmer, but I make a very simple RSS reader based on this tutorial http://mobile.dzone.com/articles/building-mobile-rss-reader ... Application works perfect, but I have a problem into DetailsView (rss feed item)... In this view application show me a all html tags into rss feed (or articles on my website)... Content into Description (in application) begins with <p> margin-left: 4px,.... and other html tags. Please, tell me how I set to hide this tags and show only a article content (text)..I
    I will be really greatful for any help!
    Best regards,
    Rok

    Unfortunately no, there is not. It's absolutely needed so that site studio knows how to load the pages. One thing you can do is to use SSPU (site studio publishing utility) to generate static pages and then use a scripting language, such as perl, to strip out all the site studio-specific code from those pages.
    Sorry, but that's one big downside to using site studio.

  • How do I set safari to be the default rss reader on windows XP

    How do I set safari to be the default rss reader on windows XP?

    Looks like I got it to work by selecting a document and setting in get info.  For some reason it was not working before.
    never mind

  • Safari as RSS Reader and Embedded Videos

    I'm trying to slim down the amount of extraneous software on my computer and would like to begin using Safari 4 as my RSS reader. But, a lot of my favorite web feeds have posts containing embedded youtube videos or other multi-media besides pictures. I've been unable to ascertain whether this is because Safari does not offer this capability or if the problem is on my side.
    Just to clarify, I DO know that I can view these posts individually from the feed site and view the videos; but I would like to be able to open a feed in the "feed://" view and watch embedded media.
    Any help or insight?

    bump.

  • N96 native rss reader font size and images

    Hi!
    I love the native rss reader on my N96 and I use it a lot. However there are a few things that I would like to have better:
    Font size. The font is huge. Although it works if you sit in a car on a bumpy road, it would be nice to be able to adjust it.
    Images don´t always fit on to the screen. Scrolling sideways is impossible because then you jump to the next topic.
    Links in the news don´t work. They just open the original item in the browser window.
    Sometimes the text goes over the edge, and again scrolling sideways doesn´t work.
    Someone had made a better html template for the news reader on n95, but it didn´t work on my n96 so I don´t know any way how to fix these problems.
    Thanks

    you probably have a security sandbox issue.
    what's your url?

  • RSS Reader to replace soon to be defunct Google Reader

    Win7x64 Pro, HP Laptop, Firefox ver 19.0.2
    Google is dropping their Google RSS Reader. Is there another comparable full service RSS Reader compatible with Firefox?

    Unfortunately that Developer says he is dropping feedly when Google disappears.

  • RSS reader recommendation

    Slighlty off topic sorry.
    Can anyone suggest a free RSS reader that copes with SDN's authentication requirements.
    I really like the ability to monitor this forum through RSS rather than email, however my current reader doesn't like retrieving the full posts in-place. I have to logon through IE before it will show.

    Thanks Rich
    But that was my original reader but I couldn't get it to work with SDN at all. Do you use it?
    I'm now using FeedReader3. Which is nearly there. Shows me so many words in a preview pane but can't open the full post.

  • RSS reader-server side

    anyone see or plan to develop server sider RSS reader for Oracle Applicatiron Server?

    I don't see "JavaFX" in this message, what it is doing in this forum?

  • Rss reader for systray

    Started working on a little project. An rss reader that sits in the systray. Its pretty bare right now, but its downloading feeds and opens them in the browser when i click on them.
    http://i.imgur.com/ldvS3.jpg
    -- mod edit: read the Forum Etiquette and only post thumbnails http://wiki.archlinux.org/index.php/For … s_and_Code [jwr] --

    Fixed that bug, kind of, i'm not sure if it's the proper solution, but it seems to work. Relevant code:
    def build_submenu(self, feed):
    menu = Gtk.Menu()
    for i in feed.entries:
    menuitem = Gtk.MenuItem()
    menuitem.set_label(i.title)
    menuitem.connect("activate", self.construct_command(i.link))
    menu.append(menuitem)
    return menu
    def construct_command(self, link):
    def open_link(self):
    webbrowser.open(link)
    return open_link
    Lambda expression inside a loop seems to overwrite itself during every iteration, like here:
    l = []
    for i in range(10):
    l.append(id(lambda x: x*i))
    print(l)
    # OUT: [139721358186400, 139721358186400, 139721358186400, 139721358186400, 139721358186400, 139721358186400, 139721358186400, 139721358186400, 139721358186400, 139721358186400]
    print(l.count(l[0]))
    # OUT: 10
    As you can see, id of the lambda expression is the same in every iteration, despite being a different function (i is different in each lambda), so when the for loop finishes, you'll end up with only one callable object, that every menu item executes on activation.
    EDIT:
    After a bit of screwing around, i found that this also works:
    menuitem.link = i.link
    menuitem.connect("activate", lambda x: webbrowser.open(x.link))
    Instead of passing the arbitrary address to the lambda it just extracts link from the menu entry itself.
    Last edited by kaszak696 (2013-01-18 16:02:15)

  • RSS Reader Extender

    Hello to all,
    ive tested the sample rss reader.
    Now if I want to read the text in this tag:
    <content:encoded></content:encoded>?
    How I can do that?
    my code at the moment is valid only for description:
    this.body.htmlText = rssFeed.lastResult.rss.channel.item
    .description;
    Thanks so much

    Hello i copy a part of xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet href="
    http://feeds.blogo.it/~d/styles/rss2italianfull.xsl"
    type="text/xsl" media="screen"?><?xml-stylesheet href="
    http://feeds.blogo.it/~d/styles/itemcontent.css"
    type="text/css" media="screen"?><rss xmlns:content="
    http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="
    http://wellformedweb.org/CommentAPI/"
    xmlns:dc="
    http://purl.org/dc/elements/1.1/"
    xmlns:feedburner="
    http://rssnamespace.org/feedburner/ext/1.0"
    version="2.0">
    <channel>
    <title>melablog</title>
    <link>
    http://www.melablog.it</link>
    <description>melablog.it</description>
    <pubDate>Fri, 08 Dec 2006 14:00:19 GMT</pubDate>
    <generator>
    http://lightpress.org/</generator>
    <copyright>2004-2005 Blogo.it</copyright>
    <language>it-it</language>
    <atom10:link xmlns:atom10="
    http://www.w3.org/2005/Atom"
    rel="self" href="
    http://www.melablog.it/rss2.xml"
    type="application/rss+xml" /><item>
    <title>Una wishlist nella Dashboard</title>
    <link>
    http://feeds.blogo.it/~r/Melablog/it/~3/58614279/una-wishlist-nella-dashboard</link>
    <guid isPermaLink="false">
    http://www.melablog.it/post/2926/una-wishlist-nella-dashboard</guid>
    <pubDate>Fri, 08 Dec 2006 14:00:19 GMT</pubDate>
    <dc:creator>Simone Gambirasio</dc:creator>
    <comments>
    http://www.melablog.it/post/2926/una-wishlist-nella-dashboard#comments</comments>
    <category>software</category><category>os-x</category><category>online</category><categor y>idee</category>
    <content:encoded><![CDATA[<p><img src="
    http://static.blogo.it/melablog/gifttaggingwidget_20061114141941.jpg"
    class="post" align="left" border="0" width="250" height="135"
    alt="" />Avete mai pensato di realizzare una wishlist per
    Natale? Lo so, da una parte sembra infantile quanto una letterina a
    Babbo Natale, dall'altra sembra arido quanto una lista nozze. Io,
    invece, mi diverto tantissimo a leggere le wishlist degli altri.
    Sarò figlio del consumismo, ma credo che si possa imparare
    molto da una persona in base agli oggetti che desidera.</p>
    <p>Ora, se decidete di realizzare una wishlist dovrete
    pensare a quale sistema sfruttare. Anche se vi ho già detto
    che apprezzo <a href="
    http://www.kaboodle.com">Kaboodle</a>,
    web 2.0 allo stato puro, credo che si stia imponendo come standard
    al semplicità di <a href="
    http://gifttagging.com/">GiftTagging</a>,
    che tra l'altro si integra bene con <a href="
    http://myspace.com/">MySpace</a>.
    Il meccanismo ricorda del.icio.us, con la possibilità di
    aggiungere tag ai regali, descrizione e l'opportunità di
    ottenere un feed delle wishlist dei vostri amici. E se usate Mac,
    allora fa per voi: GiftTagging si integra benissimo sia con Safari
    che con Firefox (1 o 2 che sia) e, ciliegina sulla torta, ha anche
    una bella <a href="
    http://www.apple.com/downloads/dashboard/shopping/gifttaggingwidget.html">widget
    per Tiger</a>. Basta installarla nella Dashboard ed inserirvi
    gli indirizzi email degli amici: se hanno creato una lista con
    GiftTagging l'avrete sempre sott'occhio nel vostro cruscotto. E se
    non l'hanno creata, consigliateglielo caldamente, magari mostrando
    loro la vostra... </p>
    <p><a href="
    http://feeds.blogo.it/~a/Melablog/it?a=dSrp3H"><img
    src="
    http://feeds.blogo.it/~a/Melablog/it?i=dSrp3H"
    border="0"></img></a></p>
    <div class="feedflare"><a href="
    http://feeds.blogo.it/~f/Melablog/it?a=CJtBTT5S"><img
    src="
    http://feeds.blogo.it/~f/Melablog/it?i=CJtBTT5S"
    border="0"></img></a></div><img src="
    http://feeds.blogo.it/~r/Melablog/it/~4/58614279"/>
    <description>Avete mai pensato di realizzare una
    wishlist per Natale? Lo so, da una parte sembra infantile quanto
    una letterina a Babbo Natale, dall'altra sembra arido quanto una
    lista nozze. Io, invece, mi[...]</description>
    <feedburner:awareness>
    http://api.feedburner.com/awareness/1.0/GetItemData?uri=Melablog/it&amp;itemurl=http%3A%2F %2Fwww.melablog.it%2Fpost%2F2926%2Funa-wishlist-nella-dashboard</feedburner:awareness><fee dburner:origLink>http://www.melablog.it/post/2926/una-wishlist-nella-dashboard</feedburner :origLink></item>

  • RSS Reader Ajax Portlet for Workshop 9.2

    Hi,
    is there any available example of RSS Reader Portlet with Ajax support for Workshop 9.2?
    Any help is well accepted,
    thanks,
    Ben

    Ben,
    With the weblogic portal 9.2 you can find all the JSP but this time Bea has not given the JPF code.Jsp code is available there.The path will be
    \WebContent\portlets\rssreader\*.jsp
    Create EAR project
    Create Portal project with groupspace enabled
    Go to merged view of the weblogic workshop
    Right click the portlets folder and choose copy to project
    Hope this time you will get the sample code :-)
    Regards
    Bishnu

Maybe you are looking for