Tagging the 0.2 release - Release from 24-Sep-2007
git-svn-id: http://www.neo1973-germany.de/svn@39 46df4e5c-bc4e-4628-a0fc-830ba316316d
This commit is contained in:
parent
b1217d34a7
commit
a273e076e3
8 changed files with 2525 additions and 0 deletions
BIN
pyFeedRead/tags/0.2/docs/pyFeedRead-0.2-feed_content-om.png
Normal file
BIN
pyFeedRead/tags/0.2/docs/pyFeedRead-0.2-feed_content-om.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
BIN
pyFeedRead/tags/0.2/docs/pyFeedRead-0.2-feed_content.png
Normal file
BIN
pyFeedRead/tags/0.2/docs/pyFeedRead-0.2-feed_content.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
263
pyFeedRead/tags/0.2/docs/slashdot.rss
Normal file
263
pyFeedRead/tags/0.2/docs/slashdot.rss
Normal file
|
@ -0,0 +1,263 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
|
||||
|
||||
<channel rdf:about="http://slashdot.org/">
|
||||
<title>Slashdot</title>
|
||||
<link>http://slashdot.org/</link>
|
||||
<description>News for nerds, stuff that matters</description>
|
||||
<dc:language>en-us</dc:language>
|
||||
<dc:rights>Copyright 1997-2006, OSTG - Open Source Technology Group, Inc. All Rights Reserved.</dc:rights>
|
||||
<dc:date>2007-09-23T23:00:19+00:00</dc:date>
|
||||
<dc:publisher>OSTG</dc:publisher>
|
||||
<dc:creator>help@slashdot.org</dc:creator>
|
||||
<dc:subject>Technology</dc:subject>
|
||||
<syn:updatePeriod>hourly</syn:updatePeriod>
|
||||
<syn:updateFrequency>1</syn:updateFrequency>
|
||||
<syn:updateBase>1970-01-01T00:00+00:00</syn:updateBase>
|
||||
<items>
|
||||
<rdf:Seq>
|
||||
<rdf:li rdf:resource="http://hardware.slashdot.org/article.pl?sid=07/09/23/2055211&from=rss" />
|
||||
<rdf:li rdf:resource="http://slashdot.org/article.pl?sid=07/09/23/2049207&from=rss" />
|
||||
<rdf:li rdf:resource="http://hardware.slashdot.org/article.pl?sid=07/09/23/1639205&from=rss" />
|
||||
<rdf:li rdf:resource="http://slashdot.org/article.pl?sid=07/09/23/1633249&from=rss" />
|
||||
<rdf:li rdf:resource="http://science.slashdot.org/article.pl?sid=07/09/23/1627255&from=rss" />
|
||||
<rdf:li rdf:resource="http://it.slashdot.org/article.pl?sid=07/09/23/141225&from=rss" />
|
||||
<rdf:li rdf:resource="http://apple.slashdot.org/article.pl?sid=07/09/23/1359200&from=rss" />
|
||||
<rdf:li rdf:resource="http://slashdot.org/article.pl?sid=07/09/23/1340207&from=rss" />
|
||||
<rdf:li rdf:resource="http://developers.slashdot.org/article.pl?sid=07/09/23/1249235&from=rss" />
|
||||
<rdf:li rdf:resource="http://science.slashdot.org/article.pl?sid=07/09/23/0848226&from=rss" />
|
||||
<rdf:li rdf:resource="http://slashdot.org/article.pl?sid=07/09/23/0835233&from=rss" />
|
||||
<rdf:li rdf:resource="http://yro.slashdot.org/article.pl?sid=07/09/23/0823201&from=rss" />
|
||||
<rdf:li rdf:resource="http://developers.slashdot.org/article.pl?sid=07/09/23/0019224&from=rss" />
|
||||
<rdf:li rdf:resource="http://slashdot.org/article.pl?sid=07/09/23/0024219&from=rss" />
|
||||
<rdf:li rdf:resource="http://apple.slashdot.org/article.pl?sid=07/09/23/0017240&from=rss" />
|
||||
</rdf:Seq>
|
||||
</items>
|
||||
<image rdf:resource="http://images.slashdot.org/topics/topicslashdot.gif" />
|
||||
<textinput rdf:resource="http://slashdot.org/search.pl" />
|
||||
</channel>
|
||||
|
||||
<image rdf:about="http://images.slashdot.org/topics/topicslashdot.gif">
|
||||
<title>Slashdot</title>
|
||||
<url>http://images.slashdot.org/topics/topicslashdot.gif</url>
|
||||
<link>http://slashdot.org/</link>
|
||||
</image>
|
||||
|
||||
<item rdf:about="http://hardware.slashdot.org/article.pl?sid=07/09/23/2055211&from=rss">
|
||||
<title>Intel Demos Core 2 Extreme QX9650 Quad-Core At IDF</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160366495/article.pl</link>
|
||||
<description>MojoKid writes "Intel demonstrated a dual socket gaming rig at IDF this week, based on their Skulltrail platform with the X38 chipset. The interesting thing about this machine wasn't just that it had 45nm quad-core CPUs in its sockets, as well as PCI Express 2.0 capable slots, but also that it was running a pair of NVIDIA graphics cards in SLI. That's right, SLI on an Intel chipset. No word whether or not X38 would officially be supported with SLI just yet. In fact, NVIDIA representatives noted Intel was buying NVIDIA nForce 100 SLI Southbridges just for this one Intel motherboard model."<p><a href="http://hardware.slashdot.org/article.pl?sid=07/09/23/2055211&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=Ja3k3j"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=Ja3k3j" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160366495" height="1" width="1"/></description>
|
||||
<dc:creator>Zonk</dc:creator>
|
||||
<dc:date>2007-09-23T22:43:00+00:00</dc:date>
|
||||
<dc:subject>intel</dc:subject>
|
||||
<slash:department>kind-of-a-morbid-name</slash:department>
|
||||
<slash:section>hardware</slash:section>
|
||||
<slash:comments>6</slash:comments>
|
||||
<slash:hit_parade>6,6,5,5,1,0,0</slash:hit_parade>
|
||||
<feedburner:origLink>http://hardware.slashdot.org/article.pl?sid=07/09/23/2055211&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://slashdot.org/article.pl?sid=07/09/23/2049207&from=rss">
|
||||
<title>New Version of Gmail Being Tested</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160366496/article.pl</link>
|
||||
<description>Keith writes "Gmail was launched on April 1, 2004, and has revolutionized the way many of us use email. The interface has remained largely untouched since it launched, but get ready, it's soon to undergo a change in what they describe as a 'New Version'. Only a select few people have access to use the new interface &mdash; mainly employees and trusted people outside the company called 'Trusted Testers'. From the ZDNet blog entry: 'Google lets every-day users who are fluent in both English and another language translate small snippets of English text into the language of their choice. This is how they can offer services in several languages without spending a dime on professional translators. Unfortunately, exposing sensitive information in this manner makes it hard to keep a secret. One of my readers, who wishes to remain anonymous, stumbled across an interesting snippet of text (which I confirmed exists) spilling the beans on a new version of Gmail that is either currently being tested, or about to be released to testing in short order.'"<p><a href="http://slashdot.org/article.pl?sid=07/09/23/2049207&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=ISqm63"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=ISqm63" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160366496" height="1" width="1"/></description>
|
||||
<dc:creator>Zonk</dc:creator>
|
||||
<dc:date>2007-09-23T21:13:00+00:00</dc:date>
|
||||
<dc:subject>google</dc:subject>
|
||||
<slash:department>every-solid-companion</slash:department>
|
||||
<slash:section>mainpage</slash:section>
|
||||
<slash:comments>75</slash:comments>
|
||||
<slash:hit_parade>75,69,57,38,8,4,1</slash:hit_parade>
|
||||
<feedburner:origLink>http://slashdot.org/article.pl?sid=07/09/23/2049207&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://hardware.slashdot.org/article.pl?sid=07/09/23/1639205&from=rss">
|
||||
<title>Method for $1/Watt Solar Panels Will Soon See Commercial Use</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160366497/article.pl</link>
|
||||
<description>An anonymous reader writes "A method developed at Colorado State University for crafting solar panels has been developed to the point where they are nearly ready for mass production. Professor W.S. Sampath's technique has resulted in a low-cost, high-efficiency process for creating the panels, which will soon be fabricated by a commercial interest. 'Produced at less than $1 per watt, the panels will dramatically reduce the cost of generating solar electricity and could power homes and businesses around the globe with clean energy for roughly the same cost as traditionally generated electricity. Sampath has developed a continuous, automated manufacturing process for solar panels using glass coating with a cadmium telluride thin film instead of the standard high-cost crystalline silicon. Because the process produces high efficiency devices (ranging from 11% to 13%) at a very high rate and yield, it can be done much more cheaply than with existing technologies.'"<p><a href="http://hardware.slashdot.org/article.pl?sid=07/09/23/1639205&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=AOylTS"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=AOylTS" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160366497" height="1" width="1"/></description>
|
||||
<dc:creator>Zonk</dc:creator>
|
||||
<dc:date>2007-09-23T19:22:00+00:00</dc:date>
|
||||
<dc:subject>power</dc:subject>
|
||||
<slash:department>i'll-take-five</slash:department>
|
||||
<slash:section>hardware</slash:section>
|
||||
<slash:comments>195</slash:comments>
|
||||
<slash:hit_parade>195,194,162,128,38,23,11</slash:hit_parade>
|
||||
<feedburner:origLink>http://hardware.slashdot.org/article.pl?sid=07/09/23/1639205&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://slashdot.org/article.pl?sid=07/09/23/1633249&from=rss">
|
||||
<title>Intel Releases Mashups for the Masses</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160304862/article.pl</link>
|
||||
<description>News_and_info writes "Intel has released an online tool called Mash Maker with the intent of allowing anyone to create mashups. They offer some training on how to use it, but the tool is fairly easy to use out of the gate. I see it more as a rudimentary semantic browser. From the article: 'Mashups have still not really penetrated the mainstream. My mother is not using mashup sites, and she is definitely not creating them. Even if there was a mashup out there that did exactly what she wanted, the chances are that she wouldn't know it existed, and would be confused by it if she tried to use it ... With Mash Maker, mashups are part of the normal browsing experience. As you browse the web, the Mash Maker toolbar displays buttons representing mashups that Mash Maker thinks you might want to apply to your current page.'"<p><a href="http://slashdot.org/article.pl?sid=07/09/23/1633249&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=QROvKH"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=QROvKH" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160304862" height="1" width="1"/></description>
|
||||
<dc:creator>Zonk</dc:creator>
|
||||
<dc:date>2007-09-23T18:19:00+00:00</dc:date>
|
||||
<dc:subject>internet</dc:subject>
|
||||
<slash:department>applying-data-to-the-situation-for-the-win</slash:department>
|
||||
<slash:section>mainpage</slash:section>
|
||||
<slash:comments>95</slash:comments>
|
||||
<slash:hit_parade>95,95,82,54,22,12,10</slash:hit_parade>
|
||||
<feedburner:origLink>http://slashdot.org/article.pl?sid=07/09/23/1633249&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://science.slashdot.org/article.pl?sid=07/09/23/1627255&from=rss">
|
||||
<title>The Gradual Public Awareness of the Might of Algorithms</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160281557/article.pl</link>
|
||||
<description>Soylent Mauve writes "The trend toward data- and algorithm-driven tuning of business operations has gotten a lot of attention recently &mdash; check out the recent articles in the New York Times and the Economist. It looks like computer scientists, especially those with machine learning training, are getting their day in the sun. From the NYT piece: 'It was the Internet that stripped the word of its innocence. Algorithms, as closely guarded as state secrets, buy and sell stocks and mortgage-backed securities, sometimes with a dispassionate zeal that crashes markets. Algorithms promise to find the news that fits you, and even your perfect mate. You can't visit Amazon without being confronted with a list of books and other products that the Great Algoritmi recommends. Its intuitions, of course, are just calculations -- given enough time they could be carried out with stones. But when so much data is processed so rapidly, the effect is oracular and almost opaque.'"<p><a href="http://science.slashdot.org/article.pl?sid=07/09/23/1627255&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=WHm1Mm"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=WHm1Mm" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160281557" height="1" width="1"/></description>
|
||||
<dc:creator>Zonk</dc:creator>
|
||||
<dc:date>2007-09-23T17:27:00+00:00</dc:date>
|
||||
<dc:subject>software</dc:subject>
|
||||
<slash:department>interlocking-gears</slash:department>
|
||||
<slash:section>science</slash:section>
|
||||
<slash:comments>105</slash:comments>
|
||||
<slash:hit_parade>105,102,82,57,19,11,7</slash:hit_parade>
|
||||
<feedburner:origLink>http://science.slashdot.org/article.pl?sid=07/09/23/1627255&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://it.slashdot.org/article.pl?sid=07/09/23/141225&from=rss">
|
||||
<title>Homeland Security's Tech Wonders</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160269236/article.pl</link>
|
||||
<description>Lucas123 writes "The multi-billion dollar budget of the Department of Homeland Security has spawned a myriad of new, whiz-bang technology that includes things like keychain-size, remote-controlled aerial vehicles designed to collect and transmit data for military and homeland security uses. It also includes infrared cameras that capture license plate images to match them in milliseconds to police records. "Seventy percent of all criminal activity can be tied to a vehicle," says Mark Windover, president of Remington ELSAG Law Enforcement Systems, which is marketing its product to 250 U.S. police agencies."<p><a href="http://it.slashdot.org/article.pl?sid=07/09/23/141225&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=hU3wuj"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=hU3wuj" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160269236" height="1" width="1"/></description>
|
||||
<dc:creator>CmdrTaco</dc:creator>
|
||||
<dc:date>2007-09-23T16:49:00+00:00</dc:date>
|
||||
<dc:subject>security</dc:subject>
|
||||
<slash:department>segways-and-calculator-watches</slash:department>
|
||||
<slash:section>it</slash:section>
|
||||
<slash:comments>79</slash:comments>
|
||||
<slash:hit_parade>79,77,57,41,17,12,8</slash:hit_parade>
|
||||
<feedburner:origLink>http://it.slashdot.org/article.pl?sid=07/09/23/141225&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://apple.slashdot.org/article.pl?sid=07/09/23/1359200&from=rss">
|
||||
<title>Apple Platform Lock-Ins, A 3rd Party Dev's Opinion</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160269237/article.pl</link>
|
||||
<description>Iftekhar writes "Wil Shipley, of Delicious Monster fame, has written a very candid essay on what he perceives as Apple's growing trend toward platform lock-ins. He writes: 'Why is the iPhone locked to a single carrier, so I can't travel internationally with it? There's really only one viable reason: Apple wanted a share of the carrier's profits, which meant giving AT&amp;T an exclusive deal. Which meant, we get screwed so Apple can make more money. It's that simple. [...] As Apple gets more and more of its revenue from non-Mac devices, they are also getting more and more of their revenue from devices that simply exclude third parties. Consumers suffer from this. We suffer from increased prices and decreased competition and innovation. We suffer so Apple can make a few more bucks, when Apple is clearly not hurting for money.'"<p><a href="http://apple.slashdot.org/article.pl?sid=07/09/23/1359200&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=ZKxo0Q"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=ZKxo0Q" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160269237" height="1" width="1"/></description>
|
||||
<dc:creator>CmdrTaco</dc:creator>
|
||||
<dc:date>2007-09-23T15:38:00+00:00</dc:date>
|
||||
<dc:subject>apple</dc:subject>
|
||||
<slash:department>no-sir-i-don't-like-it</slash:department>
|
||||
<slash:section>apple</slash:section>
|
||||
<slash:comments>230</slash:comments>
|
||||
<slash:hit_parade>230,222,180,143,53,29,18</slash:hit_parade>
|
||||
<feedburner:origLink>http://apple.slashdot.org/article.pl?sid=07/09/23/1359200&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://slashdot.org/article.pl?sid=07/09/23/1340207&from=rss">
|
||||
<title>Wikipedia 2.0, Now With Trust?</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160229642/article.pl</link>
|
||||
<description>USB EVDO writes "The online encyclopedia is set to trial two systems aimed at boosting readers' confidence in its accuracy. Over the past few years, a series of measures aimed at reducing the threat of vandalism and boosting public confidence in Wikipedia have been developed. Last month a project designed independently of Wikipedia, called WikiScanner, allowed people to work out what the motivations behind certain entries might be by revealing which people or organisations the contributions were made by . Meanwhile the Wikimedia Foundation, the charity that oversees the online encyclopedia, now says it is poised to trial a host of new trust-based capabilities."<p><a href="http://slashdot.org/article.pl?sid=07/09/23/1340207&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=FSI6CV"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=FSI6CV" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160229642" height="1" width="1"/></description>
|
||||
<dc:creator>CmdrTaco</dc:creator>
|
||||
<dc:date>2007-09-23T14:29:00+00:00</dc:date>
|
||||
<dc:subject>internet</dc:subject>
|
||||
<slash:department>something-to-think-about</slash:department>
|
||||
<slash:section>mainpage</slash:section>
|
||||
<slash:comments>149</slash:comments>
|
||||
<slash:hit_parade>149,145,130,98,43,22,13</slash:hit_parade>
|
||||
<feedburner:origLink>http://slashdot.org/article.pl?sid=07/09/23/1340207&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://developers.slashdot.org/article.pl?sid=07/09/23/1249235&from=rss">
|
||||
<title>Thinking about Rails? Think Again</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160229643/article.pl</link>
|
||||
<description>wolfeon writes "In 2005, Derek Sivers of CD Baby wanted to scrap his site and perform a rewrite in Rails. He hired Jeremy Kemper, also known as bitsweat on Freenode, to help on the project. Two years later, through blood and sweat, the project was then canceled because of limitations of Rails. Rails just wasn't meant to do everything since it is very much "canned" project. Mr. Sivers has written an entry in the O'Reilly blog: 7 reasons I switched back to PHP."<p><a href="http://developers.slashdot.org/article.pl?sid=07/09/23/1249235&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=2JfhMJ"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=2JfhMJ" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160229643" height="1" width="1"/></description>
|
||||
<dc:creator>CmdrTaco</dc:creator>
|
||||
<dc:date>2007-09-23T13:18:00+00:00</dc:date>
|
||||
<dc:subject>programming</dc:subject>
|
||||
<slash:department>or-not-at-all</slash:department>
|
||||
<slash:section>developers</slash:section>
|
||||
<slash:comments>310</slash:comments>
|
||||
<slash:hit_parade>310,303,251,190,44,23,8</slash:hit_parade>
|
||||
<feedburner:origLink>http://developers.slashdot.org/article.pl?sid=07/09/23/1249235&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://science.slashdot.org/article.pl?sid=07/09/23/0848226&from=rss">
|
||||
<title>Happiness Is A Warm Electrode</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160229644/article.pl</link>
|
||||
<description>sufijazz writes "A story by Gregory Mone on the Popular Science website talks about trials to use deep brain stimulation to cure chronic depression. It's a deeper exploration of the 'brain pacemaker' discussed here on the site before, and a practical application of research discussed even earlier. Why the pulses affect mood is still unclear, but scientists believe that they may facilitate chemical communication between brain cells, possibly by forcing ions through nerve fibers called axons. In turn, this may trigger the release of mood-regulating chemicals like serotonin and norepinephrine. Similar trials are being conducted in other places. Exact numbers are hard to ascertain, but it's estimated that fewer than 50 patients in North America are walking around with wires in their brain."<p><a href="http://science.slashdot.org/article.pl?sid=07/09/23/0848226&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=28ZgvU"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=28ZgvU" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160229644" height="1" width="1"/></description>
|
||||
<dc:creator>Zonk</dc:creator>
|
||||
<dc:date>2007-09-23T11:14:00+00:00</dc:date>
|
||||
<dc:subject>biotech</dc:subject>
|
||||
<slash:department>everything-looks-so-vivid</slash:department>
|
||||
<slash:section>science</slash:section>
|
||||
<slash:comments>137</slash:comments>
|
||||
<slash:hit_parade>137,135,108,82,24,12,9</slash:hit_parade>
|
||||
<feedburner:origLink>http://science.slashdot.org/article.pl?sid=07/09/23/0848226&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://slashdot.org/article.pl?sid=07/09/23/0835233&from=rss">
|
||||
<title>Google Experiences EU Antitrust Friction Over Doubleclick</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160170458/article.pl</link>
|
||||
<description>An anonymous reader writes "Here in the US, the Google purchase of Doubleclick is old news. Despite a few hiccups, the news of April and May seems well in the past. In the European Union, though, the discussion begins anew again as Google seeks permission from EU antitrust regulators. From the article: 'The European Commission said it had set a review deadline of October 26, when it could approve the deal, give a two-week extension or open an in-depth, four-month investigation ... The Commission has already sent questionnaires asking competitors and customers what they think about the deal. Google has already filed with the U.S. Federal Trade Commission and with the Australian competition regulator.'"<p><a href="http://slashdot.org/article.pl?sid=07/09/23/0835233&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=3PYtmc"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=3PYtmc" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160170458" height="1" width="1"/></description>
|
||||
<dc:creator>Zonk</dc:creator>
|
||||
<dc:date>2007-09-23T10:31:00+00:00</dc:date>
|
||||
<dc:subject>google</dc:subject>
|
||||
<slash:department>it's-tough-trying-to-take-over-the-world</slash:department>
|
||||
<slash:section>mainpage</slash:section>
|
||||
<slash:comments>57</slash:comments>
|
||||
<slash:hit_parade>57,55,40,23,7,5,1</slash:hit_parade>
|
||||
<feedburner:origLink>http://slashdot.org/article.pl?sid=07/09/23/0835233&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://yro.slashdot.org/article.pl?sid=07/09/23/0823201&from=rss">
|
||||
<title>New Attorneys Fee Decision Against RIAA</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160147211/article.pl</link>
|
||||
<description>NewYorkCountryLawyer writes "The RIAA has gotten slammed again, this time in Oregon, as the Magistrate Judge in Atlantic v. Andersen has ruled that Tanya Andersen's motion for attorneys fees should be granted. The Magistrate, in his 15-page decision, noted that, despite extensive pretrial discovery proceedings, 'when plaintiffs dismissed their claims in June 2007, they apparently had no more material evidence to support their claims than they did when they first contacted defendant in February 2005.....' and concluded that 'Copyright holders generally, and these plaintiffs specifically, should be deterred from prosecuting infringement claims as plaintiffs did in this case.' This is the same case in which (a) the RIAA insisted on interrogating Ms. Andersen's 10-year-old girl at a face-to-face deposition, (b) the defendant filed RICO counterclaims against the record companies, and (c) the defendant recently converted her RICO case into a class action"<p><a href="http://yro.slashdot.org/article.pl?sid=07/09/23/0823201&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=4m2MlP"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=4m2MlP" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160147211" height="1" width="1"/></description>
|
||||
<dc:creator>Zonk</dc:creator>
|
||||
<dc:date>2007-09-23T08:20:00+00:00</dc:date>
|
||||
<dc:subject>court</dc:subject>
|
||||
<slash:department>maybe-you-should-reconsider-your-strategy</slash:department>
|
||||
<slash:section>yro</slash:section>
|
||||
<slash:comments>94</slash:comments>
|
||||
<slash:hit_parade>94,90,78,64,32,16,11</slash:hit_parade>
|
||||
<feedburner:origLink>http://yro.slashdot.org/article.pl?sid=07/09/23/0823201&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://developers.slashdot.org/article.pl?sid=07/09/23/0019224&from=rss">
|
||||
<title>Eclipse Makes Java Development on the Mac Easier</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160147212/article.pl</link>
|
||||
<description>An anonymous reader writes "While the Java development environment is fully integrated into Mac OS X, the Eclipse developer IDE brings a fully integrated Java development environment to Mac OS X that provides a more consistent and easier to develop cross-platform experience. This article shows you how quickly you can be up and running with Eclipse and Java development on the Mac. 'Whether you're a Mac OS X Java developer working on cross-platform Java projects, a Linux developer switching to Mac OS X because of its UNIX-based core, or a general Java developer looking to develop applications targeted to Mac OS X, you'll want to look at the Eclipse IDE because it provides a solution to each of these development needs. While Mac OS X provides Xcode as its primary Java development IDE, Eclipse provides a more robust cross-platform development environment, with application frameworks for reporting, database access, communications, graphics, and more, and a rich-client platform framework for building applications.'"<p><a href="http://developers.slashdot.org/article.pl?sid=07/09/23/0019224&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=JmAVfm"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=JmAVfm" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160147212" height="1" width="1"/></description>
|
||||
<dc:creator>Zonk</dc:creator>
|
||||
<dc:date>2007-09-23T05:07:00+00:00</dc:date>
|
||||
<dc:subject>java</dc:subject>
|
||||
<slash:department>something-thoughtful-for-saturday-night</slash:department>
|
||||
<slash:section>developers</slash:section>
|
||||
<slash:comments>178</slash:comments>
|
||||
<slash:hit_parade>178,177,130,85,30,18,9</slash:hit_parade>
|
||||
<feedburner:origLink>http://developers.slashdot.org/article.pl?sid=07/09/23/0019224&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://slashdot.org/article.pl?sid=07/09/23/0024219&from=rss">
|
||||
<title>The Journey of Radios From Hardware to Software</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160086749/article.pl</link>
|
||||
<description>An anonymous reader writes "The New York Times is carrying a story all about the process of replacing radios with software. The article tells the tale of Vanu Bose, son of the man who started the Bose company, and his quest to bring software to what was previously a hardware-only enterprise. He met a lot of resistance in the 90s to his ideas, because processor technology was not up to the task. Now that technology has caught up with Vanu, his software (and other products like it) are increasingly replacing now-outdated hardware components. 'Well-established companies like Motorola and Ericsson now use elements of software-defined radio for their base stations. But Mr. Bose was the first to come to market with software that could handle multiple networks with the same equipment. Software radio appears to offer an elegant solution to what has been a vexing problem: how to have a single handset, like a cellphone, communicate across multiple networks. For instance, the G.S.M. standard, for global system for mobile communications, is used broadly in Europe, and most notably in the United States by AT&amp;T.'"<p><a href="http://slashdot.org/article.pl?sid=07/09/23/0024219&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=rFYdRq"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=rFYdRq" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160086749" height="1" width="1"/></description>
|
||||
<dc:creator>Zonk</dc:creator>
|
||||
<dc:date>2007-09-23T03:15:00+00:00</dc:date>
|
||||
<dc:subject>software</dc:subject>
|
||||
<slash:department>wave-of-the-future</slash:department>
|
||||
<slash:section>mainpage</slash:section>
|
||||
<slash:comments>97</slash:comments>
|
||||
<slash:hit_parade>97,95,81,69,21,12,5</slash:hit_parade>
|
||||
<feedburner:origLink>http://slashdot.org/article.pl?sid=07/09/23/0024219&from=rss</feedburner:origLink></item>
|
||||
|
||||
<item rdf:about="http://apple.slashdot.org/article.pl?sid=07/09/23/0017240&from=rss">
|
||||
<title>Crazy Stevie's iPhone Prices are Insaaane!</title>
|
||||
<link>http://rss.slashdot.org/~r/Slashdot/slashdot/~3/160086750/article.pl</link>
|
||||
<description>theodp writes "Slate takes a look at the alarming lesson of the iPhone price cut and ponders the long-term effects of a Fire-Sale Nation mentality, especially when companies go all Crazy Eddie slashing prices on products like homes and cars that have active secondary markets. 'High-profile price-chopping tends to occur whenever companies freak out about the vicious combination of a slowing consumer economy and the prospect of getting stuck with big inventories of unsold goods. The tactic often works in the short term. The hype over insanely low prices functions as a form of free advertising, and the lower prices tend to attract buyers. Apple announced on Sept. 10 that it had sold its 1 millionth iPhone.'"<p><a href="http://apple.slashdot.org/article.pl?sid=07/09/23/0017240&from=rss">Read more of this story</a> at Slashdot.</p>
|
||||
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=un83xL"><img src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=un83xL" border="0"></img></a></p><img src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/160086750" height="1" width="1"/></description>
|
||||
<dc:creator>Zonk</dc:creator>
|
||||
<dc:date>2007-09-23T01:05:00+00:00</dc:date>
|
||||
<dc:subject>money</dc:subject>
|
||||
<slash:department>come-on-down</slash:department>
|
||||
<slash:section>apple</slash:section>
|
||||
<slash:comments>307</slash:comments>
|
||||
<slash:hit_parade>307,303,262,215,45,21,17</slash:hit_parade>
|
||||
<feedburner:origLink>http://apple.slashdot.org/article.pl?sid=07/09/23/0017240&from=rss</feedburner:origLink></item>
|
||||
|
||||
<textinput rdf:about="http://slashdot.org/search.pl">
|
||||
<title>Search Slashdot</title>
|
||||
<description>Search Slashdot stories</description>
|
||||
<name>query</name>
|
||||
<link>http://slashdot.org/search.pl</link>
|
||||
</textinput>
|
||||
|
||||
</rdf:RDF>
|
1767
pyFeedRead/tags/0.2/src/BeautifulSoup.py
Normal file
1767
pyFeedRead/tags/0.2/src/BeautifulSoup.py
Normal file
File diff suppressed because it is too large
Load diff
89
pyFeedRead/tags/0.2/src/FeedRead.py
Executable file
89
pyFeedRead/tags/0.2/src/FeedRead.py
Executable file
|
@ -0,0 +1,89 @@
|
|||
#!/usr/bin/python
|
||||
"""
|
||||
* FeedRead.py - pyFeedRead - initialize GUI
|
||||
*
|
||||
* (C) 2007 by Kristian Mueller <kristian-m@kristian-m.de>
|
||||
* All Rights Reserved
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
"""
|
||||
|
||||
import gtk
|
||||
from SelectFeedPanel import *
|
||||
from ShowFeedContent import *
|
||||
from ShowFeedText import *
|
||||
|
||||
NOTEBK_PADDING = 6
|
||||
# NOTEBK_PADDING = 0
|
||||
|
||||
class FeedRead:
|
||||
def __init__(self):
|
||||
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
|
||||
self.window.set_title("pyFeedRead")
|
||||
self.window.connect("delete_event", self.delete_event)
|
||||
self.window.set_border_width(0)
|
||||
self.window.set_default_size(480, 640)
|
||||
|
||||
self.notebook = gtk.Notebook()
|
||||
self.notebook.set_tab_pos(gtk.POS_BOTTOM)
|
||||
|
||||
FeedPanel = SelectFeedPanel()
|
||||
self.add_notebook_page(FeedPanel, "gtk-index")
|
||||
FeedContentPanel = ShowFeedContent(FeedPanel)
|
||||
self.add_notebook_page(FeedContentPanel, "gtk-justify-left")
|
||||
self.add_notebook_page(ShowFeedText(FeedContentPanel), "gtk-justify-center")
|
||||
|
||||
## expand page selectors to full width
|
||||
for child in self.notebook.get_children():
|
||||
self.notebook.child_set_property(child, "tab_expand", True)
|
||||
self.notebook.show()
|
||||
|
||||
self.window.add(self.notebook)
|
||||
self.window.show_all()
|
||||
|
||||
def delete_event(self, widget, event, data=None):
|
||||
gtk.main_quit()
|
||||
return False
|
||||
|
||||
def add_notebook_page(self, panel, icon_name):
|
||||
image = gtk.Image()
|
||||
image.set_from_icon_name(icon_name, gtk.ICON_SIZE_LARGE_TOOLBAR)
|
||||
image.show()
|
||||
image_alignment = gtk.Alignment(xalign=0.5, yalign=0.5, xscale=1.0, yscale=1.0)
|
||||
image_alignment.add(image)
|
||||
image_alignment.set_padding(NOTEBK_PADDING, NOTEBK_PADDING, 0, 0)
|
||||
image_alignment.show()
|
||||
scroll_win = gtk.ScrolledWindow()
|
||||
scroll_win.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||
scroll_win.show()
|
||||
scroll_win.add_with_viewport(panel)
|
||||
self.notebook.append_page(scroll_win, image_alignment)
|
||||
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
gtk.gdk.threads_init()
|
||||
gtk.gdk.threads_enter()
|
||||
try:
|
||||
gtk.main()
|
||||
except:
|
||||
exit(0)
|
||||
gtk.gdk.threads_leave()
|
||||
|
||||
if (__name__ == '__main__'):
|
||||
FeedRead = FeedRead()
|
||||
main()
|
||||
|
129
pyFeedRead/tags/0.2/src/SelectFeedPanel.py
Normal file
129
pyFeedRead/tags/0.2/src/SelectFeedPanel.py
Normal file
|
@ -0,0 +1,129 @@
|
|||
"""
|
||||
* SelectFeedPanel.py - FeedRead - list of feeds
|
||||
*
|
||||
* (C) 2007 by Kristian Mueller <kristian-m@kristian-m.de>
|
||||
* All Rights Reserved
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
"""
|
||||
|
||||
import gtk
|
||||
import os
|
||||
|
||||
DATA_FILE = "~/.pyFeedRead.data"
|
||||
|
||||
class SelectFeedPanel(gtk.VBox):
|
||||
def __init__(self):
|
||||
gtk.VBox.__init__(self, False, 0)
|
||||
data_file = os.path.expanduser(DATA_FILE)
|
||||
if os.path.exists(data_file):
|
||||
try:
|
||||
data_fd = open(data_file, 'r')
|
||||
self.saved_store = self.load_feed_list(data_fd.read().split('\n'))
|
||||
data_fd.close()
|
||||
except:
|
||||
self.saved_store = None
|
||||
else:
|
||||
self.saved_store = None
|
||||
|
||||
self.create_notebook_page()
|
||||
|
||||
def load_feed_list(self, lines):
|
||||
store = gtk.ListStore(str, str)
|
||||
for line in lines:
|
||||
if len(line.split("\"")) >= 4:
|
||||
name = line.split("\"")[1]
|
||||
url = line.split("\"")[3]
|
||||
store.append([name, url])
|
||||
return store
|
||||
|
||||
|
||||
def save_cb(self, widget):
|
||||
data_file = os.path.expanduser(DATA_FILE)
|
||||
data_fs = open(data_file , 'w')
|
||||
list_iter = self.list_store.get_iter_first()
|
||||
while list_iter != None:
|
||||
name = self.list_store.get(list_iter, 0)[0]
|
||||
url = self.list_store.get(list_iter, 1)[0]
|
||||
list_iter = self.list_store.iter_next(list_iter)
|
||||
data_fs.write("\"%s\",\"%s\"\n" %(name, url))
|
||||
data_fs .close()
|
||||
|
||||
def edited_cb(self, cell, path, new_text, user_data):
|
||||
liststore, column = user_data
|
||||
liststore[path][column] = new_text
|
||||
return
|
||||
|
||||
def create_notebook_page(self):
|
||||
self.set_border_width(0)
|
||||
|
||||
list_frame = gtk.Frame("Feeds")
|
||||
list_frame.set_border_width(0)
|
||||
list_box = gtk.VBox(False, 0)
|
||||
list_box.set_border_width(15)
|
||||
scroll_win = gtk.ScrolledWindow()
|
||||
scroll_win.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||
|
||||
if self.saved_store == None:
|
||||
self.list_store = gtk.ListStore(str, str)
|
||||
self.feed_list = gtk.TreeView(self.list_store)
|
||||
self.list_store.append(['Spiegel Online', 'http://www.spiegel.de/schlagzeilen/rss/0,5291,10,00.xml'])
|
||||
self.list_store.append(['Reuters', 'http://today.reuters.com/rss/topNews'])
|
||||
self.list_store.append(['Heise', 'http://www.heise.de/newsticker/heise.rdf'])
|
||||
else:
|
||||
self.list_store = self.saved_store
|
||||
self.feed_list = gtk.TreeView(self.list_store)
|
||||
|
||||
cell0 = gtk.CellRendererText()
|
||||
cell0.set_property('editable', True)
|
||||
cell1 = gtk.CellRendererText()
|
||||
cell1.feed_listet_property('editable', True)
|
||||
|
||||
cell0.connect('edited', self.edited_cb, (self.list_store, 0))
|
||||
cell1.connect('edited', self.edited_cb, (self.list_store, 1))
|
||||
|
||||
tvcolumn0 = gtk.TreeViewColumn('Feed Name', cell0, markup=0)
|
||||
tvcolumn1 = gtk.TreeViewColumn('Feed URL', cell1, markup=1)
|
||||
|
||||
self.feed_list.append_column(tvcolumn0)
|
||||
self.feed_list.append_column(tvcolumn1)
|
||||
|
||||
tvcolumn0.set_sort_column_id(0)
|
||||
tvcolumn1.set_sort_column_id(1)
|
||||
tvcolumn0.set_resizable(True)
|
||||
tvcolumn1.set_resizable(True)
|
||||
|
||||
scroll_win.add(self.feed_list)
|
||||
list_box.add(scroll_win)
|
||||
|
||||
btn_box = gtk.HBox()
|
||||
|
||||
add_btn = gtk.Button("Add\nnew Feed")
|
||||
add_btn.connect("clicked", self.add_feed)
|
||||
btn_box.add(add_btn)
|
||||
|
||||
save_btn = gtk.Button("Save\nList")
|
||||
save_btn.connect("clicked", self.save_cb)
|
||||
btn_box.add(save_btn)
|
||||
|
||||
list_box.pack_start(btn_box, False, False, 0)
|
||||
|
||||
list_frame.add(list_box)
|
||||
self.pack_start(list_frame, True, True, 0)
|
||||
self.show_all()
|
||||
|
||||
def add_feed(self, widget):
|
||||
row_iter = self.list_store.append(['New', 'http://'])
|
||||
|
111
pyFeedRead/tags/0.2/src/ShowFeedContent.py
Normal file
111
pyFeedRead/tags/0.2/src/ShowFeedContent.py
Normal file
|
@ -0,0 +1,111 @@
|
|||
"""
|
||||
* ShowFeedContent.py - FeedRead - show feed entries
|
||||
*
|
||||
* (C) 2007 by Kristian Mueller <kristian-m@kristian-m.de>
|
||||
* All Rights Reserved
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
"""
|
||||
|
||||
import gtk
|
||||
import urllib
|
||||
|
||||
class ShowFeedContent(gtk.VBox):
|
||||
def __init__(self, FeedPanel):
|
||||
gtk.VBox.__init__(self, False, 0)
|
||||
self.FeedPanel = FeedPanel
|
||||
self.feed_provider = ""
|
||||
self.create_notebook_page()
|
||||
self.descriptions = {}
|
||||
|
||||
def get_feed_content(self, url):
|
||||
doc = urllib.urlopen(url)
|
||||
print "searching feed..."
|
||||
link = ""
|
||||
name = ""
|
||||
description = ""
|
||||
found_item = False
|
||||
for line in doc.read().split("\n"):
|
||||
if line.find("<item ") >= 0 or line.find("<item>") >= 0 or found_item:
|
||||
found_item = True
|
||||
else:
|
||||
continue
|
||||
|
||||
if line.find("</item>") >= 0:
|
||||
self.list_store.append([name, link])
|
||||
self.descriptions.update({link: description})
|
||||
found_item = False
|
||||
|
||||
if line.find("<link>") >= 0:
|
||||
link = line.split(">")[1].split("<")[0]
|
||||
|
||||
if line.find("<title>") >= 0:
|
||||
name = line.split(">")[1].split("<")[0]
|
||||
|
||||
if line.find("<description>") >= 0:
|
||||
description = line.split(">")[1].split("<")[0]
|
||||
|
||||
def load_feed(self, widget):
|
||||
(model, model_iter) = self.FeedPanel.feed_list.get_selection().get_selected()
|
||||
if model_iter >= 1:
|
||||
self.list_store.clear()
|
||||
feed_name = model.get_value(model_iter, 0) # column is first (name)
|
||||
self.feed_provider = feed_name
|
||||
self.state_entry.set_text(feed_name)
|
||||
url = model.get_value(model_iter, 1) # column is second (url)
|
||||
text = self.get_feed_content(url)
|
||||
else:
|
||||
feed_name = "none"
|
||||
url = "http://"
|
||||
text = "No Content"
|
||||
|
||||
def create_notebook_page(self):
|
||||
self.set_border_width(0)
|
||||
|
||||
list_box = gtk.VBox(False, 0)
|
||||
#list_box.set_border_width(15)
|
||||
|
||||
update_btn = gtk.Button("update")
|
||||
update_btn.connect("clicked", self.load_feed)
|
||||
self.pack_start(update_btn, False, False, 0)
|
||||
|
||||
self.state_entry = gtk.Entry()
|
||||
self.state_entry.set_text("")
|
||||
self.state_entry.set_sensitive(0)
|
||||
list_box.pack_start(self.state_entry, False, False, 0)
|
||||
|
||||
scroll_win = gtk.ScrolledWindow()
|
||||
scroll_win.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||
|
||||
self.list_store = gtk.ListStore(str, str)
|
||||
self.feed_list = gtk.TreeView(self.list_store)
|
||||
cell = gtk.CellRendererText()
|
||||
cell.set_property('editable', True)
|
||||
tvcolumn0 = gtk.TreeViewColumn('Article', cell, markup=0)
|
||||
tvcolumn1 = gtk.TreeViewColumn('URL', cell, markup=1)
|
||||
|
||||
self.feed_list.append_column(tvcolumn0)
|
||||
self.feed_list.append_column(tvcolumn1)
|
||||
|
||||
tvcolumn0.set_sort_column_id(0)
|
||||
tvcolumn1.set_sort_column_id(1)
|
||||
tvcolumn0.set_resizable(True)
|
||||
tvcolumn1.set_resizable(True)
|
||||
|
||||
scroll_win.add(self.feed_list)
|
||||
list_box.add(scroll_win)
|
||||
|
||||
self.pack_start(list_box, True, True, 0)
|
||||
self.show_all()
|
166
pyFeedRead/tags/0.2/src/ShowFeedText.py
Normal file
166
pyFeedRead/tags/0.2/src/ShowFeedText.py
Normal file
|
@ -0,0 +1,166 @@
|
|||
"""
|
||||
* ShowFeedContent.py - FeedRead - show text
|
||||
*
|
||||
* (C) 2007 by Kristian Mueller <kristian-m@kristian-m.de>
|
||||
* All Rights Reserved
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
"""
|
||||
|
||||
import gtk
|
||||
import urllib
|
||||
# import BeautifulSoup
|
||||
import re
|
||||
import os
|
||||
|
||||
class ShowFeedText(gtk.VBox):
|
||||
def __init__(self, FeedPanel):
|
||||
gtk.VBox.__init__(self, False, 0)
|
||||
self.FeedContentPanel = FeedPanel
|
||||
self.create_notebook_page()
|
||||
|
||||
def get_url_content(self, title, url):
|
||||
self.state_entry.set_text(self.FeedContentPanel.feed_provider)
|
||||
## html to text
|
||||
## from http://mail.python.org/pipermail/python-list/2005-February/309923.html
|
||||
comments = re.compile('<!--.*?-->', re.DOTALL)
|
||||
tags = re.compile('<.*?>', re.DOTALL)
|
||||
"""
|
||||
def extracttext(obj):
|
||||
if isinstance(obj,BeautifulSoup.Tag):
|
||||
return "".join(extracttext(c) for c in obj.contents)
|
||||
else:
|
||||
return str(obj)
|
||||
|
||||
def striptags(text):
|
||||
text = re.sub(comments,'', text)
|
||||
text = re.sub(tags,'', text)
|
||||
return text
|
||||
|
||||
|
||||
def bsouptext(text):
|
||||
if len(text) > 0:
|
||||
# try:
|
||||
souptree = BeautifulSoup.BeautifulSoup(text)
|
||||
# if isinstance(souptree.body, str):
|
||||
bodytext = extracttext(souptree.body.fetchText)
|
||||
text = re.sub(comments,'', bodytext)
|
||||
text = collapsenewlines(text)
|
||||
return text
|
||||
# except:
|
||||
# return ""
|
||||
return ""
|
||||
"""
|
||||
def collapsenewlines(text):
|
||||
tmp_text = "\n".join(line for line in text.splitlines() if line)
|
||||
ret_text = ""
|
||||
for line in tmp_text.split("\n"):
|
||||
if len(line.rstrip()) >= 1:
|
||||
ret_text += line.rstrip() + '\n'
|
||||
return ret_text
|
||||
return " ".join(word for word in \
|
||||
("\n".join(line for line in text.splitlines() if line)).split(" ") \
|
||||
if len(word) > 1)
|
||||
|
||||
descr_text = self.FeedContentPanel.descriptions[url]
|
||||
if len(descr_text) >= 1:
|
||||
descr_text = re.sub(comments,'', descr_text)
|
||||
# descr_text = collapsenewlines(descr_text)
|
||||
return descr_text
|
||||
|
||||
|
||||
#doc = urllib.urlopen(url)
|
||||
print "url: %s" %url
|
||||
#doc_text = doc.read()
|
||||
|
||||
### different aproach using lynx
|
||||
ELINKS_CMD = "links -dump -dump-charset utf8 -dump-width 1024" # -assume_charset=utf8 -display_charset=utf8"
|
||||
LINKS_CMD = "links -dump"
|
||||
LYNX_CMD = "lynx -dump -assume_charset=utf8 -display_charset=utf8 -width=1024"
|
||||
CMD = LINKS_CMD
|
||||
try:
|
||||
# print "Command: %s" %("%s %s" %(CMD, url))
|
||||
# lynx_ostream = os.popen("%s %s" %(CMD, url))
|
||||
# message_text = re.sub(comments,'', lynx_ostream.read())
|
||||
|
||||
doc = urllib.urlopen(url)
|
||||
print "1"
|
||||
new_text = ""
|
||||
message_text = doc.read()
|
||||
message_text = re.sub(comments,'', message_text)
|
||||
tag_level = 0
|
||||
for char in message_text:
|
||||
if char == '<':
|
||||
tag_level += 1
|
||||
if char == '>':
|
||||
tag_level -= 1
|
||||
else:
|
||||
if tag_level >= 1:
|
||||
continue
|
||||
else:
|
||||
try:
|
||||
new_text += char.encode('utf-8')
|
||||
except:
|
||||
new_text += '?'
|
||||
|
||||
message_text = collapsenewlines(new_text)
|
||||
return message_text
|
||||
except:
|
||||
return "Error: Could not run the links program to load data."
|
||||
|
||||
def load_feed(self, widget):
|
||||
(model, model_iter) = self.FeedContentPanel.feed_list.get_selection().get_selected()
|
||||
if model_iter >= 1:
|
||||
feed_name = model.get_value(model_iter, 0) # column is first (name)
|
||||
url = model.get_value(model_iter, 1) # column is second (url)
|
||||
text = self.get_url_content(feed_name, url)
|
||||
else:
|
||||
feed_name = "none"
|
||||
url = "http://"
|
||||
text = "No Content"
|
||||
|
||||
self.text_buffer.set_text("%s\n\n%s" % (feed_name, text) )
|
||||
|
||||
def create_notebook_page(self):
|
||||
self.set_border_width(0)
|
||||
|
||||
text_box = gtk.VBox(False, 0)
|
||||
#text_box.set_border_width(15)
|
||||
|
||||
update_btn = gtk.Button("update")
|
||||
update_btn.connect("clicked", self.load_feed)
|
||||
self.pack_start(update_btn, False, False, 0)
|
||||
|
||||
self.state_entry = gtk.Entry()
|
||||
self.state_entry.set_text("")
|
||||
self.state_entry.set_sensitive(0)
|
||||
text_box.pack_start(self.state_entry, False, False, 0)
|
||||
|
||||
scroll_win = gtk.ScrolledWindow()
|
||||
scroll_win.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||
|
||||
text_view = gtk.TextView()
|
||||
text_view.set_cursor_visible(False)
|
||||
text_view.set_wrap_mode(gtk.WRAP_WORD)
|
||||
self.text_buffer = text_view.get_buffer()
|
||||
|
||||
text_view.set_editable(False)
|
||||
|
||||
scroll_win.add(text_view)
|
||||
text_box.add(scroll_win)
|
||||
|
||||
self.pack_start(text_box, True, True, 0)
|
||||
self.show_all()
|
||||
|
Loading…
Reference in a new issue