Creating a Planet Me Blog Aggregator
The Planet Project allows on-line communities to build a central Web page easily, aggregating blogs from people in their community. The Planet code powers such community blogs as Planet GNOME and Planet Apache. Such on-line uses of the Planet code provide a low cost of entry for people to keep an eye on a community. This article focuses on using the Planet code on your local machine to create your own custom blog aggregator.
The Planet code requires Python 2.2 or later. The simplest method to install Planet is to download a nightly snapshot tarball from the planetplanet.org Web site and extract it to your home directory. I tend to rename the extracted planet-nightly directory to include its day of download and use a handy link to the current version of Planet Me.
In this article, I've used references to the path of my home directory a few times; remember to substitute your own home directory in the examples.
Listing 1. Installing Planet
$ cd ~ $ tar xjvf planet-nightly.tar.bz2 $ planetdated=planet-$(date +'%d%b%y') $ mv planet-nightly $planetdated; $ ln -s $planetdated planet $ cd planet $ cp -av fancy-examples me-meta $ cd me-meta $ cp ../examples/*.xml* . $ edit config.ini name = Planet Me link = file://home/ben/planet/me/index.html owner_name = John Doe owner_email = root@localhost # later in the file # template_files should all be on one line template_files = me-meta/index.html.tmpl me-meta/rss20.xml.tmpl me-meta/rss10.xml.tmpl me-meta/opml.xml.tmpl me-meta/foafroll.xml.tmpl # later in the file change # fancy-examples/index.html.tmpl [me-meta/index.html.tmpl] items_per_page = 30 $ cd .. $ mkdir cache $ ln -s output me # Without proxy $ python planet.py me-meta/config.ini # Using a standard squid proxy on "dairiserver" $ http_proxy=http://dairiserver:3128/ \ python planet.py me-meta/config.ini
The two final commands in Listing 1 show how to fetch current news feeds and set up your initial Planet. The commands will vary depending on things such as whether or not you have to use a proxy server to access the Internet. After running these commands, you should have a Planet Me viewable in your Web browser at ~/planet/me/index.html. After doing these steps, your planet should look similar to Figure 1.
You'll want to customize which news feeds you are viewing. This is done at the end of me-meta/config.ini. The configuration file defines a section by text surrounded by square brackets. Options for a section follow its initial definition as key=value pairs. You define each blog to aggregate in a section where you specify the URL of the RSS feed for the section name. See Listing 2 for an example from the default config.ini file.
The name will be shown in the header for each aggregated post from that blog, and the face image will be on the right side when using the default HTML templates. The facewidth and faceheight are optional by default.
Listing 2. Sample Aggregation Definition
[http://www.gnome.org/~jdub/blog/?flav=rss] name = Jeff Waugh face = jdub.png facewidth = 70 faceheight = 74
Many sites provide handy topic icons that can be used to spruce up your Planet Me. For example, in Listing 3, I use one of the Slashdot section icons (see the on-line Resources) for news items taken from Slashdot's RSS feed.
Assuming you use the Planet setup as described in this article, the topic icons are stored in ~/planet/me/images. You can see the setup for my Slashdot topic icon in Listing 3.
Listing 3. How to Get the Image from Slashdot
$ cd ~/planet/me/images/ $ wget \ http://images.slashdot.org/topics/topicslashback.gif # convert is from ImageMagick $ convert topicslashback.gif slashdot.png
Listing 4 shows the new section to append to the config.ini to integrate the Slashdot icon into your Planet Me.
- New Products
- Readers' Choice Awards 2014
- Handling the workloads of the Future
- Android Candy: Google Keep
- December 2014 Issue of Linux Journal: Readers' Choice
- Using Django and MongoDB to Build a Blog
- Days Between Dates?
- diff -u: What's New in Kernel Development
- Computing without a Computer
Editorial Advisory Panel
Thank you to our 2014 Editorial Advisors!
- Jeff Parent
- Brad Baillio
- Nick Baronian
- Steve Case
- Chadalavada Kalyana
- Caleb Cullen
- Keir Davis
- Michael Eager
- Nick Faltys
- Dennis Frey
- Philip Jacob
- Jay Kruizenga
- Steve Marquez
- Dave McAllister
- Craig Oda
- Mike Roberts
- Chris Stark
- Patrick Swartz
- David Lynch
- Alicia Gibb
- Thomas Quinlan
- Carson McDonald
- Kristen Shoemaker
- Charnell Luchich
- James Walker
- Victor Gregorio
- Hari Boukis
- Brian Conner
- David Lane