diff options
-rw-r--r-- | packages/corsair/corsair_0.2.0.bb | 16 | ||||
-rw-r--r-- | packages/corsair/files/corsair-024.patch | 351 |
2 files changed, 360 insertions, 7 deletions
diff --git a/packages/corsair/corsair_0.2.0.bb b/packages/corsair/corsair_0.2.0.bb index 1adcc17c73..2c5ce53433 100644 --- a/packages/corsair/corsair_0.2.0.bb +++ b/packages/corsair/corsair_0.2.0.bb @@ -1,16 +1,22 @@ -DESCRIPTION = "corsair: RSS aggregator for Qtopia/OZ" +DESCRIPTION = "RSS aggregator for Qtopia" SECTION = "opie/applications" -MAINTAINER = "I dont want to have my name here. <corsair@gotontheinter.net>" +MAINTAINER = "Marcin Juszkiewicz <openembedded@hrw.one.pl>" LICENSE = "GPL" AUTHOR = "Joe Rumsey <joe@rumsey.org>" HOMEPAGE = "http://corsair.sf.net/" +DEPENDS = "opie-pics" +RDEPENDS = "opie-pics" PV = "0.2.0" +PR = "r4" + CVSDATE = "20050911" #application was released 20050910 - next versions will be released as tarballs +#corsair-024.patch from 'mistermix' http://www.oesf.org/forums/index.php?showtopic=14661 inherit palmtop SRC_URI = "cvs://anonymous@cvs.sourceforge.net/cvsroot/corsair;module=corsair \ + file://corsair-024.patch;patch=1 \ file://corsair-opie.patch;patch=1" S = "${WORKDIR}/corsair" @@ -18,16 +24,12 @@ S = "${WORKDIR}/corsair" do_configure() { } -# Files: bin/corsair apps/Applications/corsair.desktop pics/Corsair.png -# pics/newfeed.png pics/get.png pics/reload.png pics/play.png - do_install() { install -d ${D}${palmtopdir}/pics/ install -d ${D}${palmtopdir}/apps/Applications/ install -d ${D}${palmtopdir}/bin install -m 0644 ${S}/Corsair.png ${D}${palmtopdir}/pics/ install -m 0644 ${S}/corsair.desktop ${D}${palmtopdir}/apps/Applications/ - install -m 0644 ${S}/icons/newfeed.png ${S}/icons/get.png ${S}/icons/reload.png ${S}/icons/play.png ${D}${palmtopdir}/pics/ + install -m 0644 ${S}/icons/newfeed.png ${S}/icons/get.png ${D}${palmtopdir}/pics/ install -m 0755 ${S}/corsair ${D}${palmtopdir}/bin/ } - diff --git a/packages/corsair/files/corsair-024.patch b/packages/corsair/files/corsair-024.patch new file mode 100644 index 0000000000..9cf160fdc8 --- /dev/null +++ b/packages/corsair/files/corsair-024.patch @@ -0,0 +1,351 @@ +Index: corsair.control +=================================================================== +RCS file: /cvsroot/corsair/corsair/corsair.control,v +retrieving revision 1.6 +diff -u -u -r1.6 corsair.control +--- corsair/corsair.control 10 Sep 2005 20:05:51 -0000 1.6 ++++ corsair/corsair.control 31 Oct 2005 20:00:43 -0000 +@@ -1,9 +1,9 @@ +-Files: bin/corsair apps/Applications/corsair.desktop pics/Corsair.png pics/newfeed.png pics/get.png pics/reload.png pics/play.png help/html/corsair.html help/html/corsair_usage.html help/html/corsair_intro.html help/html/gpl.html ++Files: bin/corsair apps/Applications/corsair.desktop pics/Corsair.png pics/newfeed.png pics/get.png pics/reload.png pics/play.png pics/details.png pics/UtilsIcon.png pics/list.png pics/volume.png pics/mute.png pics/fileopen.png pics/txt.xpm help/html/corsair.html help/html/corsair_usage.html help/html/corsair_intro.html help/html/gpl.html + Priority: optional + Section: qpe/applications + Maintainer: Joe Rumsey <corsair@rumsey.org> + Architecture: $CPU_ARCH + Arch: $DEVICE_ARCH +-Version: 0.2.0 ++Version: 0.2.4 + License: GPL + Description: Corsair RSS/Podcast Aggregator +Index: corsair.cpp +=================================================================== +RCS file: /cvsroot/corsair/corsair/corsair.cpp,v +retrieving revision 1.7 +diff -u -u -r1.7 corsair.cpp +--- corsair/corsair.cpp 10 Sep 2005 20:05:51 -0000 1.7 ++++ corsair/corsair.cpp 31 Oct 2005 20:00:44 -0000 +@@ -35,13 +35,13 @@ + #include <qmenubar.h> + #include <qprogressbar.h> + #include <qmessagebox.h> ++#include <qaccel.h> + + #include <qtopia/resource.h> + #include <qtopia/config.h> + #include <qtopia/global.h> + #include <qtopia/qcopenvelope_qws.h> + +- + #include "download.h" + #include "info.h" + +@@ -105,11 +105,15 @@ + QPopupMenu *file = new QPopupMenu(m_menuPopup); + file->insertItem("&Load", this, SLOT(loadNewFile())); + file->insertItem("E&xit", this, SLOT(close())); +- + QPopupMenu *view = new QPopupMenu(m_menuPopup); + view->insertItem("&Downloads", this, SLOT(viewDownloads())); + view->insertItem("&Preferences", this, SLOT(preferences())); + ++ // bind Zaurus cancel key (escape) to close ++ QAccel *a = new QAccel( this ); ++ a->connectItem( a->insertItem(Key_Escape), ++ this, ++ SLOT(close()) ); + QPopupMenu *help = new QPopupMenu(m_menuPopup); + help->insertItem("&Help", this, SLOT(help())); + help->insertItem("&About", this, SLOT(about())); +@@ -211,8 +215,10 @@ + FeedShow *show = m_feeds.GetShow(item); + if(show && show->m_haveLocalCopy) { + play(show); +- } else { ++ } else if (show && show->m_haveEnclosure) { + grabItem(item); ++ } else { ++ view(item); + } + } + } +@@ -637,11 +643,12 @@ + void CorsairWindow::play(FeedShow *show) + { + if(show->m_haveLocalCopy) { +- QCString player = (const char *)QString("QPE/Application/" + option("audioplayer", "player")); ++ QCString player = (const char *)QString("QPE/Application/" + option("audioplayer", "kino2")); + QCopEnvelope e(player, "setDocument(QString)"); + QString sub; +- e << show->fullLocalPath(sub); +- ++ QString filename = show->fullLocalPath(sub); ++ e << filename; ++ LOG(4, "filename=%s\n", (const char *)filename); + QCopEnvelope r(player, "raise()"); + } + } +Index: download.cpp +=================================================================== +RCS file: /cvsroot/corsair/corsair/download.cpp,v +retrieving revision 1.7 +diff -u -u -r1.7 download.cpp +--- corsair/download.cpp 10 Sep 2005 20:05:51 -0000 1.7 ++++ corsair/download.cpp 31 Oct 2005 20:00:44 -0000 +@@ -27,8 +27,10 @@ + { + m_parent = parent; + m_url = url; ++ m_host = url.host(); + m_param = param; + m_complete = false; ++ m_redirectCount = 0; + + init(); + +@@ -67,10 +69,10 @@ + if(port < 0) + port = 80; + +- LOG(2, "connecting to %s:%d\n", (const char *)m_url.host(), port); +- connectToHost(m_url.host(), port); ++ LOG(2, "connecting to %s:%d\n", (const char *)m_host, port); ++ connectToHost(m_host, port); + +- emit statusUpdate("Connecting to " + m_url.host()); ++ emit statusUpdate("Connecting to " + m_host); + } + + void Download::openFile() +@@ -144,8 +146,8 @@ + m_file.writeBlock((const char *)line, line.length()); + m_totalRead += line.length(); + } else if(!m_gotResponse) { +- LOG(2, "%s", (const char *)line); +- if(line.contains("302 Found") || line.contains("301 Moved Permanently")) { ++ LOG(2, "Response=%s", (const char *)line); ++ if(line.contains("302 Found") || line.contains("301 Moved Permanently") || line.contains("302 Redirect")) { + m_redirect = true; + } else if(!line.contains("200 OK")) { + complete(Error); +@@ -153,7 +155,7 @@ + } + m_gotResponse = true; + } else { +- LOG(2, "%s", (const char *)line); ++ LOG(2, "Response Line=%s", (const char *)line); + QString lower = line.lower(); + if(lower.startsWith("transfer-encoding: ") && line.contains("chunked")) { + m_chunked = true; +@@ -166,9 +168,15 @@ + m_redirectLocation = line.right(line.length() - (QString("location: ").length())).stripWhiteSpace(); + } else if(line.length() < 1 || line[0] == '\r' || line[0] == '\n') { + if(m_redirect) { ++ if (m_redirectCount > REDIRECT_MAX || ++ m_redirectLocation.isNull()) { ++ error(RedirectError); ++ } + init(); + close(); ++ m_redirectCount++; + m_url = QUrl(m_redirectLocation); ++ m_host = m_url.host(); + go(); + } else { + m_headersComplete = true; +@@ -194,14 +202,14 @@ + + void Download::connected() + { +- emit statusUpdate("Connected to " + m_url.host()); ++ emit statusUpdate("Connected to " + m_host); + LOG(2, "connected\n"); + + QString get = m_url.encodedPathAndQuery(); + + QString req; + req = "GET " + get + " HTTP/1.1\r\n"; +- req += "Host: " + m_url.host() + "\r\n"; ++ req += "Host: " + m_host + "\r\n"; + req += "\r\n"; + + LOG(2, "Grabbing %s with '%s'\n", (const char *)get, (const char *)req); +@@ -212,16 +220,17 @@ + + void Download::hostFound() + { +- emit statusUpdate("Host " + m_url.host() + " found"); ++ emit statusUpdate("Host " + m_host + " found"); + LOG(2, "hostFound\n"); + } + + void Download::connectionClosed() + { ++ LOG(2, "connectionClosed to %s",(const char*)m_host); + readyRead(); + +- emit statusUpdate(m_url.host() + "Done"); +- LOG(2, "connectionClosed\n"); ++ statusUpdate(m_host + "done"); ++ + m_file.close(); + complete(Error); + } +Index: download.h +=================================================================== +RCS file: /cvsroot/corsair/corsair/download.h,v +retrieving revision 1.4 +diff -u -u -r1.4 download.h +--- corsair/download.h 4 Sep 2005 16:52:22 -0000 1.4 ++++ corsair/download.h 31 Oct 2005 20:00:44 -0000 +@@ -23,6 +23,8 @@ + #include <qsocket.h> + #include <qurl.h> + ++#define REDIRECT_MAX 5 // max redirects ++ + class CorsairWindow; + + class Download : public QSocket { +@@ -43,6 +45,8 @@ + bool m_redirect; + QString m_redirectLocation; + bool m_complete; ++ QString m_host; ++ int m_redirectCount; + + void *m_param; + +@@ -54,6 +58,7 @@ + NoData, + CantConnect, + NotFound, ++ RedirectError, + Error + }; + +Index: feedparser.h +=================================================================== +RCS file: /cvsroot/corsair/corsair/feedparser.h,v +retrieving revision 1.3 +diff -u -u -r1.3 feedparser.h +--- corsair/feedparser.h 10 Sep 2005 20:05:51 -0000 1.3 ++++ corsair/feedparser.h 31 Oct 2005 20:00:44 -0000 +@@ -66,6 +66,7 @@ + m_elemTitle[m_level] = ""; + m_enclosure = ""; + m_description = ""; ++ m_elemLink[m_level] = ""; + } else if(name == "enclosure") { + m_enclosure = attr.value("url"); + } +@@ -84,14 +85,14 @@ + { + LOG(3, "endElement %s\n", (const char *)name); + if(m_elementName[m_level] == "item") { +- m_feed->addShow(m_elemTitle[m_level], ++ m_feed->addShow(m_elemTitle[m_level].simplifyWhiteSpace(), + m_enclosure, + m_description, + m_elemLink[m_level]); + } else if(m_elementName[m_level] == "channel") { +- m_feed->setName(m_elemTitle[m_level]); ++ m_feed->setName(m_elemTitle[m_level].simplifyWhiteSpace()); + } else if(m_elementName[m_level] == "title") { +- m_elemTitle[m_level - 1] = m_elementData[m_level]; ++ m_elemTitle[m_level - 1] = m_elementData[m_level].simplifyWhiteSpace(); + } else if(m_elementName[m_level] == "description") { + m_description = m_elementData[m_level]; + } else if(m_elementName[m_level] == "link") { +Index: feeds.cpp +=================================================================== +RCS file: /cvsroot/corsair/corsair/feeds.cpp,v +retrieving revision 1.7 +diff -u -u -r1.7 feeds.cpp +--- corsair/feeds.cpp 10 Sep 2005 20:05:51 -0000 1.7 ++++ corsair/feeds.cpp 31 Oct 2005 20:00:44 -0000 +@@ -213,19 +213,26 @@ + m_isNew(isNew), + m_index(index), + m_haveLocalCopy(false) , ++ m_haveEnclosure(false), + m_listItem(NULL) + { + QString sub; + QFile f(fullLocalPath(sub)); +- if(enclosure.length() > 0 && f.exists()) +- m_haveLocalCopy = true; ++ QString filename = fileName(); ++ if(enclosure.length() > 0) { ++ m_haveEnclosure = true; ++ if (f.exists()) { ++ LOG(1,"Show file exists: (%s) (%s) \n",(const char *)sub, (const char *) filename); ++ m_haveLocalCopy = true; ++ } ++ } + } + + QString FeedShow::fullLocalPath(QString &sub) + { + sub = m_feed->m_list->owner()->showsDir() + "/" + m_feed->dirName() + "/"; + +- return sub + fileName(); ++ return sub + cleanfileName(); + } + + void FeedShow::setHaveLocalCopy(bool haveit) +@@ -292,8 +299,9 @@ + FeedShow *i; + for(i = m_shows.first(); i; i = m_shows.next()) { + if(link.length() > 0) { +- if(i->m_link == link) ++ if(i->m_link == link) { + return; ++ } + } else if(enclosure.length() > 0) { + if(i->m_enclosure == enclosure) { + return; +Index: feeds.h +=================================================================== +RCS file: /cvsroot/corsair/corsair/feeds.h,v +retrieving revision 1.5 +diff -u -u -r1.5 feeds.h +--- corsair/feeds.h 10 Sep 2005 20:05:51 -0000 1.5 ++++ corsair/feeds.h 31 Oct 2005 20:00:45 -0000 +@@ -74,6 +74,7 @@ + int m_index; + + bool m_haveLocalCopy; ++ bool m_haveEnclosure; + + ShowListViewItem *m_listItem; + +@@ -83,6 +84,13 @@ + return f; + } + ++ QString cleanfileName() { ++ QString f = fileName(); ++ int loc = f.findRev('?'); ++ f = f.left(loc); ++ return f; ++ } ++ + QString fullLocalPath(QString &subDir); + void setHaveLocalCopy(bool haveit); + +Index: main.cpp +=================================================================== +RCS file: /cvsroot/corsair/corsair/main.cpp,v +retrieving revision 1.3 +diff -u -u -r1.3 main.cpp +--- corsair/main.cpp 10 Sep 2005 20:05:51 -0000 1.3 ++++ corsair/main.cpp 31 Oct 2005 20:00:45 -0000 +@@ -23,7 +23,7 @@ + + #include "corsair.h" + +-int g_debug = 2; ++int g_debug = 3; + + #ifndef GOOD_MACROS + void LOG(int l, const char *fmt, ...) |