Slot refactoring

This commit is contained in:
Jaidyn Ann 2021-03-20 18:45:37 -05:00
parent 4027ed0c4f
commit 9149de6eb9
11 changed files with 227 additions and 179 deletions

View File

@ -16,25 +16,25 @@
AtomFeed::AtomFeed() AtomFeed::AtomFeed()
{ {
title = BString("Untitled Feed"); fTitle = BString("Untitled Feed");
cachePath = BString(""); fCachePath = BString("");
} }
AtomFeed::AtomFeed(Feed* feed) AtomFeed::AtomFeed(Feed* feed)
: AtomFeed::AtomFeed() : AtomFeed::AtomFeed()
{ {
SetXmlUrl(feed->GetXmlUrl()); SetXmlUrl(feed->XmlUrl());
SetCachePath(feed->GetCachePath()); SetCachePath(feed->CachePath());
} }
void void
AtomFeed::Parse () AtomFeed::Parse()
{ {
entries = BObjectList<Entry>(5, true); fEntries = BObjectList<Entry>(5, true);
tinyxml2::XMLDocument xml; tinyxml2::XMLDocument xml;
xml.LoadFile(GetCachePath().String()); xml.LoadFile(CachePath().String());
Feed::Parse(); Feed::Parse();
@ -54,17 +54,17 @@ AtomFeed::RootParse(tinyxml2::XMLElement* xfeed)
bool set = false; bool set = false;
SetTitle(xfeed->FirstChildElement("title")); _SetTitle(xfeed->FirstChildElement("title"));
set = SetDate(xfeed->FirstChildElement("updated")); set = _SetDate(xfeed->FirstChildElement("updated"));
if (!set) if (!set)
set = SetDate(xfeed->FirstChildElement("published")); set = _SetDate(xfeed->FirstChildElement("published"));
if (!set && xentry) if (!set && xentry)
set = SetDate(xentry->FirstChildElement("updated")); set = _SetDate(xentry->FirstChildElement("updated"));
if (!set && xentry) if (!set && xentry)
set = SetDate(xentry->FirstChildElement("published")); set = _SetDate(xentry->FirstChildElement("published"));
std::cout << "Channel '" << title << "' at '" << xmlUrl.UrlString() std::cout << "Channel '" << fTitle << "' at '" << fXmlUrl.UrlString()
<< "':\n"; << "':\n";
} }
@ -80,28 +80,29 @@ AtomFeed::EntryParse(tinyxml2::XMLElement* xentry)
newEntry->SetTitle(xentry->FirstChildElement("title")); newEntry->SetTitle(xentry->FirstChildElement("title"));
newEntry->SetPostUrl(xentry->FirstChildElement("link")->Attribute("href")); newEntry->SetPostUrl(xentry->FirstChildElement("link")->Attribute("href"));
newEntry->SetFeedTitle(title); newEntry->SetFeedTitle(fTitle);
bool set = false; bool set = false;
set = newEntry->SetDesc(xentry->FirstChildElement("summary")); set = newEntry->SetDescription(xentry->FirstChildElement("summary"));
if (!set) if (!set)
set = newEntry->SetDesc(xentry->FirstChildElement("description")); set = newEntry->SetDescription(xentry->FirstChildElement("description"));
if (!set && xmedia) if (!set && xmedia)
set = newEntry->SetDesc(xmedia->FirstChildElement("media:description")); set = newEntry->SetDescription(
xmedia->FirstChildElement("media:description"));
set = newEntry->SetDate(xentry->FirstChildElement("updated")); set = newEntry->SetDate(xentry->FirstChildElement("updated"));
if (!set) if (!set)
set = newEntry->SetDate(xentry->FirstChildElement("published")); set = newEntry->SetDate(xentry->FirstChildElement("published"));
if (date == NULL || date < newEntry->GetDate()) if (fDate == NULL || fDate < newEntry->Date())
SetDate(newEntry->GetDate()); _SetDate(newEntry->Date());
if (xcontent) { if (xcontent) {
xcontent->Accept(&xprinter); xcontent->Accept(&xprinter);
newEntry->SetContent(xprinter.CStr()); newEntry->SetContent(xprinter.CStr());
} }
AddEntry(newEntry); _AddEntry(newEntry);
} }
@ -112,8 +113,8 @@ AtomFeed::ParseEntries(tinyxml2::XMLElement* xfeed)
xentry = xfeed->FirstChildElement("entry"); xentry = xfeed->FirstChildElement("entry");
int entryCount = xmlCountSiblings(xentry, "entry"); int entryCount = _XmlCountSiblings(xentry, "entry");
entries = BObjectList<Entry>(entryCount, true); fEntries = BObjectList<Entry>(entryCount, true);
std::cout << "\t-" << entryCount << "-\n"; std::cout << "\t-" << entryCount << "-\n";

View File

@ -14,12 +14,13 @@
Entry::Entry() Entry::Entry()
:
fTitle(BString()),
fDescription(BString()),
fFeedTitle(BString()),
fPostUrl(BString()),
fContent(BString())
{ {
title = BString("");
description = BString("");
feedTitle = BString("");
postUrl = BString("");
content = BString("");
} }
@ -30,43 +31,50 @@ Entry::~Entry()
bool bool
Entry::Filetize(BDirectory outDir) Entry::Filetize(BDirectory outDir)
{ {
BFile file(title.String(), B_READ_WRITE); BFile file(fTitle.String(), B_READ_WRITE);
BEntry outDirEntry; BEntry outDirEntry;
time_t tt_date = date.Time_t(); time_t tt_date = fDate.Time_t();
outDir.GetEntry(&outDirEntry); outDir.GetEntry(&outDirEntry);
if (outDir.InitCheck() == B_ENTRY_NOT_FOUND) { if (outDir.InitCheck() == B_ENTRY_NOT_FOUND) {
outDir.CreateDirectory(BPath(&outDirEntry).Path(), &outDir); outDir.CreateDirectory(BPath(&outDirEntry).Path(), &outDir);
} }
outDir.CreateFile(title.String(), &file); outDir.CreateFile(fTitle.String(), &file);
BString betype = BString("text/x-feed-entry"); BString betype = BString("text/x-feed-entry");
file.WriteAttr("BEOS:TYPE", B_MIME_STRING_TYPE, 0, betype.String(), file.WriteAttr("BEOS:TYPE", B_MIME_STRING_TYPE, 0, betype.String(),
betype.CountChars() + 1); betype.CountChars() + 1);
file.WriteAttr("Feed:name", B_STRING_TYPE, 0, file.WriteAttr("Feed:name", B_STRING_TYPE, 0,
title.String(), title.CountChars()); fTitle.String(), fTitle.CountChars());
file.WriteAttr("Feed:description", B_STRING_TYPE, 0, file.WriteAttr("Feed:description", B_STRING_TYPE, 0,
description.String(), description.CountChars()); fDescription.String(), fDescription.CountChars());
file.WriteAttr("Feed:source", B_STRING_TYPE, 0, file.WriteAttr("Feed:source", B_STRING_TYPE, 0,
feedTitle.String(), feedTitle.CountChars()); fFeedTitle.String(), fFeedTitle.CountChars());
file.WriteAttr("META:url", B_STRING_TYPE, 0, postUrl.String(), file.WriteAttr("META:url", B_STRING_TYPE, 0, fPostUrl.String(),
postUrl.CountChars()); fPostUrl.CountChars());
if (date != NULL) { if (fDate != NULL) {
file.WriteAttr("Feed:when", B_TIME_TYPE, 0, &tt_date, sizeof(time_t)); file.WriteAttr("Feed:when", B_TIME_TYPE, 0, &tt_date, sizeof(time_t));
} }
file.Write(content.String(), content.Length()); file.Write(fContent.String(), fContent.Length());
return false; return false;
} }
BString
Entry::Title()
{
return fTitle;
}
bool bool
Entry::SetTitle(const char* titleStr) Entry::SetTitle(const char* titleStr)
{ {
if (titleStr != NULL) if (titleStr != NULL)
title = BString(titleStr); fTitle = BString(titleStr);
else return false; else return false;
return true; return true;
} }
@ -81,40 +89,61 @@ Entry::SetTitle(tinyxml2::XMLElement* elem)
} }
BString
Entry::Description()
{
return fDescription;
}
bool bool
Entry::SetDesc(const char* descStr) Entry::SetDescription(const char* descStr)
{ {
if (descStr != NULL) if (descStr != NULL)
description = BString(descStr); fDescription = BString(descStr);
else return false; else return false;
return true; return true;
} }
bool bool
Entry::SetDesc(tinyxml2::XMLElement* elem) Entry::SetDescription(tinyxml2::XMLElement* elem)
{ {
if (elem != NULL) if (elem != NULL)
return SetDesc(elem->GetText()); return SetDescription(elem->GetText());
return false; return false;
} }
BString
Entry::FeedTitle()
{
return fFeedTitle;
}
bool bool
Entry::SetFeedTitle(BString titleStr) Entry::SetFeedTitle(BString titleStr)
{ {
if (titleStr != NULL) if (titleStr != NULL)
feedTitle = titleStr; fFeedTitle = titleStr;
else return false; else return false;
return true; return true;
} }
BString
Entry::Content()
{
return fContent;
}
bool bool
Entry::SetContent(const char* contentStr) Entry::SetContent(const char* contentStr)
{ {
if (contentStr != NULL) if (contentStr != NULL)
content = BString(contentStr); fContent = BString(contentStr);
else return false; else return false;
return true; return true;
} }
@ -129,11 +158,18 @@ Entry::SetContent(tinyxml2::XMLElement* elem)
} }
BString
Entry::PostUrl()
{
return fPostUrl;
}
bool bool
Entry::SetPostUrl(const char* urlStr) Entry::SetPostUrl(const char* urlStr)
{ {
if (urlStr != NULL) if (urlStr != NULL)
postUrl = BString(urlStr); fPostUrl = BString(urlStr);
else return false; else return false;
return true; return true;
} }
@ -148,6 +184,13 @@ Entry::SetPostUrl(tinyxml2::XMLElement* elem)
} }
BDateTime
Entry::Date()
{
return fDate;
}
bool bool
Entry::SetDate(const char* dateStr) Entry::SetDate(const char* dateStr)
{ {
@ -156,7 +199,7 @@ Entry::SetDate(const char* dateStr)
BDateTime newDate = feedDateToBDate(dateStr); BDateTime newDate = feedDateToBDate(dateStr);
if (newDate == NULL) if (newDate == NULL)
return false; return false;
date = newDate; fDate = newDate;
return true; return true;
} }
@ -170,10 +213,3 @@ Entry::SetDate(tinyxml2::XMLElement* elem)
} }
BDateTime
Entry::GetDate()
{
return date;
}

View File

@ -22,25 +22,37 @@ public:
bool Filetize(BDirectory outDir); bool Filetize(BDirectory outDir);
BString Title();
bool SetTitle(const char*); bool SetTitle(const char*);
bool SetTitle(tinyxml2::XMLElement*); bool SetTitle(tinyxml2::XMLElement*);
bool SetDesc(const char*);
bool SetDesc(tinyxml2::XMLElement*); BString Description();
bool SetDescription(const char*);
bool SetDescription(tinyxml2::XMLElement*);
BString FeedTitle();
bool SetFeedTitle(BString); bool SetFeedTitle(BString);
BString Content();
bool SetContent(const char*); bool SetContent(const char*);
bool SetContent(tinyxml2::XMLElement*); bool SetContent(tinyxml2::XMLElement*);
bool SetPostUrl(const char*);
bool SetPostUrl(tinyxml2::XMLElement*);
bool SetDate(const char*);
bool SetDate(tinyxml2::XMLElement*);
BDateTime GetDate();
BString title; BString PostUrl();
BString description; bool SetPostUrl(const char*);
BString feedTitle; bool SetPostUrl(tinyxml2::XMLElement*);
BDateTime date;
BString postUrl; BDateTime Date();
BString content; bool SetDate(const char*);
bool SetDate(tinyxml2::XMLElement*);
private:
BString fTitle;
BString fDescription;
BString fFeedTitle;
BDateTime fDate;
BString fPostUrl;
BString fContent;
}; };

View File

@ -31,7 +31,7 @@ Feed::Feed(BUrl xml)
find_directory(B_USER_CACHE_DIRECTORY, &cache); find_directory(B_USER_CACHE_DIRECTORY, &cache);
cache.Append("Pogger"); cache.Append("Pogger");
cache.Append(urlToFilename(xmlUrl)); cache.Append(urlToFilename(fXmlUrl));
SetCachePath(cache.Path()); SetCachePath(cache.Path());
} }
@ -83,16 +83,16 @@ Feed::Feed(BUrl xml, BEntry entry)
Feed::Feed(Feed* feed) Feed::Feed(Feed* feed)
: Feed() : Feed()
{ {
SetTitle(feed->GetTitle()); SetTitle(feed->Title());
SetXmlUrl(feed->GetXmlUrl()); SetXmlUrl(feed->XmlUrl());
} }
Feed::Feed() Feed::Feed()
: :
title(BString("Untitled Feed")) fTitle(BString("Untitled Feed"))
{ {
lastDate = BDateTime::CurrentDateTime(B_LOCAL_TIME); fLastDate = BDateTime::CurrentDateTime(B_LOCAL_TIME);
} }
@ -104,13 +104,13 @@ Feed::~Feed()
void void
Feed::Parse() Feed::Parse()
{ {
BFile feedFile = BFile(cachePath, B_READ_ONLY); BFile feedFile = BFile(fCachePath, B_READ_ONLY);
time_t tt_lastDate = 0; time_t tt_lastDate = 0;
feedFile.ReadAttr("Feed:when", B_TIME_TYPE, 0, &tt_lastDate, sizeof(time_t)); feedFile.ReadAttr("Feed:when", B_TIME_TYPE, 0, &tt_lastDate, sizeof(time_t));
if (tt_lastDate > 0) if (tt_lastDate > 0)
lastDate.SetTime_t(tt_lastDate); fLastDate.SetTime_t(tt_lastDate);
} }
@ -118,12 +118,12 @@ Feed::Parse()
bool bool
Feed::Fetch() Feed::Fetch()
{ {
BFile cacheFile = BFile(cachePath, B_READ_WRITE | B_CREATE_FILE); BFile cacheFile = BFile(fCachePath, B_READ_WRITE | B_CREATE_FILE);
cacheFile.ReadAttrString("Feed:hash", &lastHash); cacheFile.ReadAttrString("Feed:hash", &fLastHash);
int32 result = fetch(xmlUrl, &cacheFile, &hash, 30); int32 result = fetch(fXmlUrl, &cacheFile, &fHash, 30);
cacheFile.WriteAttrString("Feed:hash", &hash); cacheFile.WriteAttrString("Feed:hash", &fHash);
if (result == 0) if (result == 0)
return true; return true;
@ -134,10 +134,10 @@ Feed::Fetch()
void void
Feed::Filetize() Feed::Filetize()
{ {
BFile feedFile(cachePath, B_WRITE_ONLY | B_CREATE_FILE); BFile feedFile(fCachePath, B_WRITE_ONLY | B_CREATE_FILE);
time_t tt_date = date.Time_t(); time_t tt_date = fDate.Time_t();
BString url = xmlUrl.UrlString(); BString url = fXmlUrl.UrlString();
BString name = GetTitle(); BString name = Title();
BString type("application/x-feed-source"); BString type("application/x-feed-source");
feedFile.WriteAttrString("Feed:name", &name); feedFile.WriteAttrString("Feed:name", &name);
@ -152,7 +152,7 @@ Feed::Filetize()
void void
Feed::Unfiletize() Feed::Unfiletize()
{ {
BEntry entry(GetCachePath().String()); BEntry entry(CachePath().String());
entry.Remove(); entry.Remove();
} }
@ -161,7 +161,7 @@ bool
Feed::IsRss() Feed::IsRss()
{ {
tinyxml2::XMLDocument xml; tinyxml2::XMLDocument xml;
xml.LoadFile(cachePath.String()); xml.LoadFile(fCachePath.String());
if (xml.FirstChildElement("rss")) if (xml.FirstChildElement("rss"))
return true; return true;
@ -173,7 +173,7 @@ bool
Feed::IsAtom() Feed::IsAtom()
{ {
tinyxml2::XMLDocument xml; tinyxml2::XMLDocument xml;
xml.LoadFile(cachePath.String()); xml.LoadFile(fCachePath.String());
if (xml.FirstChildElement("feed")) if (xml.FirstChildElement("feed"))
return true; return true;
@ -184,13 +184,13 @@ Feed::IsAtom()
bool bool
Feed::IsUpdated() Feed::IsUpdated()
{ {
return lastHash != hash; return fLastHash != fHash;
} }
// Count the amount of siblings to an element of given type name // Count the amount of siblings to an element of given type name
int int
Feed::xmlCountSiblings (tinyxml2::XMLElement* xsibling, const char* sibling_name) Feed::_XmlCountSiblings (tinyxml2::XMLElement* xsibling, const char* sibling_name)
{ {
int count = 0; int count = 0;
while (xsibling) { while (xsibling) {
@ -202,27 +202,27 @@ Feed::xmlCountSiblings (tinyxml2::XMLElement* xsibling, const char* sibling_name
bool bool
Feed::AddEntry (Entry* newEntry) Feed::_AddEntry (Entry* newEntry)
{ {
entries.AddItem(newEntry); fEntries.AddItem(newEntry);
return true; return true;
} }
BObjectList<Entry> BObjectList<Entry>
Feed::GetEntries() Feed::Entries()
{ {
return entries; return fEntries;
} }
BObjectList<Entry> BObjectList<Entry>
Feed::GetNewEntries() Feed::NewEntries()
{ {
BObjectList<Entry> newEntries; BObjectList<Entry> newEntries;
for (int i = 0; i < entries.CountItems(); i++) { for (int i = 0; i < fEntries.CountItems(); i++) {
Entry* entry = entries.ItemAt(i); Entry* entry = fEntries.ItemAt(i);
if (entry->GetDate() > lastDate) if (entry->Date() > fLastDate)
newEntries.AddItem(entry); newEntries.AddItem(entry);
} }
@ -234,14 +234,14 @@ bool
Feed::SetTitle(const char* titleStr) Feed::SetTitle(const char* titleStr)
{ {
if (titleStr != NULL) if (titleStr != NULL)
title = BString(titleStr); fTitle = BString(titleStr);
else return false; else return false;
return true; return true;
} }
bool bool
Feed::SetTitle(tinyxml2::XMLElement* elem) Feed::_SetTitle(tinyxml2::XMLElement* elem)
{ {
if (elem != NULL) if (elem != NULL)
return SetTitle(elem->GetText()); return SetTitle(elem->GetText());
@ -250,76 +250,76 @@ Feed::SetTitle(tinyxml2::XMLElement* elem)
BString BString
Feed::GetTitle() Feed::Title()
{ {
return title; return fTitle;
} }
bool bool
Feed::SetXmlUrl(BUrl newUrl) Feed::SetXmlUrl(BUrl newUrl)
{ {
xmlUrl = newUrl; fXmlUrl = newUrl;
return true; return true;
} }
BUrl BUrl
Feed::GetXmlUrl() Feed::XmlUrl()
{ {
return xmlUrl; return fXmlUrl;
} }
bool bool
Feed::SetCachePath(BString path) Feed::SetCachePath(BString path)
{ {
cachePath = path; fCachePath = path;
return true; return true;
} }
BString BString
Feed::GetCachePath() Feed::CachePath()
{ {
return cachePath; return fCachePath;
} }
// Set the latest date given by feed (from entry or from root) // Set the latest date given by feed (from entry or from root)
bool bool
Feed::SetDate(BDateTime newDate) Feed::_SetDate(BDateTime newDate)
{ {
if (newDate == NULL) if (newDate == NULL)
return false; return false;
date = newDate; fDate = newDate;
return true; return true;
} }
bool bool
Feed::SetDate(const char* dateCStr) Feed::_SetDate(const char* dateCStr)
{ {
if (dateCStr == NULL) if (dateCStr == NULL)
return false; return false;
SetDate(feedDateToBDate(dateCStr)); _SetDate(feedDateToBDate(dateCStr));
return true; return true;
} }
bool bool
Feed::SetDate(tinyxml2::XMLElement* elem) Feed::_SetDate(tinyxml2::XMLElement* elem)
{ {
if (elem != NULL) if (elem != NULL)
return SetDate(elem->GetText()); return _SetDate(elem->GetText());
else return false; else return false;
} }
BDateTime BDateTime
Feed::GetDate() Feed::Date()
{ {
return date; return fDate;
} }

View File

@ -33,8 +33,8 @@ public:
virtual void Parse(); virtual void Parse();
BObjectList<Entry> GetEntries(); BObjectList<Entry> Entries();
BObjectList<Entry> GetNewEntries(); BObjectList<Entry> NewEntries();
bool Fetch(); bool Fetch();
@ -45,38 +45,37 @@ public:
bool IsAtom(); bool IsAtom();
bool IsUpdated(); bool IsUpdated();
BString GetTitle(); BString Title();
bool SetDate(BDateTime); bool SetDate(BDateTime);
BUrl GetXmlUrl(); BUrl XmlUrl();
BDateTime GetDate(); BDateTime Date();
bool SetTitle(const char*); bool SetTitle(const char*);
bool SetXmlUrl(BUrl newUrl); bool SetXmlUrl(BUrl newUrl);
bool SetCachePath(BString path); bool SetCachePath(BString path);
BString GetCachePath(); BString CachePath();
protected: protected:
bool SetTitle(tinyxml2::XMLElement*); bool _SetTitle(tinyxml2::XMLElement*);
bool SetDate(const char*); bool _SetDate(const char*);
bool SetDate(tinyxml2::XMLElement*); bool _SetDate(tinyxml2::XMLElement*);
bool _SetDate(BDateTime newDate);
bool AddEntry(Entry*); bool _AddEntry(Entry*);
int xmlCountSiblings(tinyxml2::XMLElement*, const char*); int _XmlCountSiblings(tinyxml2::XMLElement*, const char*);
BString title; BString fTitle;
BDateTime date; BDateTime fDate;
BDateTime lastDate; BDateTime fLastDate;
BUrl xmlUrl; BUrl fXmlUrl;
BString cachePath; BString fCachePath;
BString hash; BString fHash;
BString lastHash; BString fLastHash;
BObjectList<Entry> entries; BObjectList<Entry> fEntries;
bool fetched;
bool updated;
}; };

View File

@ -143,8 +143,8 @@ FeedController::_ProcessQueueItem()
send_data(fDownloadThread, 0, (void*)buffer, sizeof(Feed)); send_data(fDownloadThread, 0, (void*)buffer, sizeof(Feed));
BMessage downloadInit = BMessage(kDownloadStart); BMessage downloadInit = BMessage(kDownloadStart);
downloadInit.AddString("feed_name", buffer->GetTitle()); downloadInit.AddString("feed_name", buffer->Title());
downloadInit.AddString("feed_url", buffer->GetXmlUrl().UrlString()); downloadInit.AddString("feed_url", buffer->XmlUrl().UrlString());
((App*)be_app)->MessageReceived(&downloadInit); ((App*)be_app)->MessageReceived(&downloadInit);
} }
} }
@ -164,9 +164,9 @@ FeedController::_ReceiveStatus()
case kDownloadComplete: case kDownloadComplete:
{ {
BMessage complete = BMessage(kDownloadComplete); BMessage complete = BMessage(kDownloadComplete);
complete.AddString("feed_name", feedBuffer->GetTitle()); complete.AddString("feed_name", feedBuffer->Title());
complete.AddString("feed_url", complete.AddString("feed_url",
feedBuffer->GetXmlUrl().UrlString()); feedBuffer->XmlUrl().UrlString());
((App*)be_app)->MessageReceived(&complete); ((App*)be_app)->MessageReceived(&complete);
send_data(fParseThread, 0, (void*)feedBuffer, sizeof(Feed)); send_data(fParseThread, 0, (void*)feedBuffer, sizeof(Feed));
@ -175,9 +175,9 @@ FeedController::_ReceiveStatus()
case kDownloadFail: case kDownloadFail:
{ {
BMessage failure = BMessage(kDownloadFail); BMessage failure = BMessage(kDownloadFail);
failure.AddString("feed_name", feedBuffer->GetTitle()); failure.AddString("feed_name", feedBuffer->Title());
failure.AddString("feed_url", failure.AddString("feed_url",
feedBuffer->GetXmlUrl().UrlString()); feedBuffer->XmlUrl().UrlString());
((App*)be_app)->MessageReceived(&failure); ((App*)be_app)->MessageReceived(&failure);
_SendProgress(); _SendProgress();
break; break;
@ -185,8 +185,8 @@ FeedController::_ReceiveStatus()
case kParseFail: case kParseFail:
{ {
BMessage failure = BMessage(kParseFail); BMessage failure = BMessage(kParseFail);
failure.AddString("feed_name", feedBuffer->GetTitle()); failure.AddString("feed_name", feedBuffer->Title());
failure.AddString("feed_url", feedBuffer->GetXmlUrl().UrlString()); failure.AddString("feed_url", feedBuffer->XmlUrl().UrlString());
((App*)be_app)->MessageReceived(&failure); ((App*)be_app)->MessageReceived(&failure);
_SendProgress(); _SendProgress();
break; break;
@ -194,8 +194,8 @@ FeedController::_ReceiveStatus()
// If parse was successful, the code is the amount of new entries // If parse was successful, the code is the amount of new entries
default: default:
BMessage complete = BMessage(kParseComplete); BMessage complete = BMessage(kParseComplete);
complete.AddString("feed_name", feedBuffer->GetTitle()); complete.AddString("feed_name", feedBuffer->Title());
complete.AddString("feed_url", feedBuffer->GetXmlUrl().UrlString()); complete.AddString("feed_url", feedBuffer->XmlUrl().UrlString());
complete.AddInt32("entry_count", code); complete.AddInt32("entry_count", code);
((App*)be_app)->MessageReceived(&complete); ((App*)be_app)->MessageReceived(&complete);
_SendProgress(); _SendProgress();
@ -217,7 +217,7 @@ FeedController::_DownloadLoop(void* data)
receive_data(&sender, (void*)feedBuffer, sizeof(Feed)); receive_data(&sender, (void*)feedBuffer, sizeof(Feed));
std::cout << "Downloading feed from " std::cout << "Downloading feed from "
<< feedBuffer->GetXmlUrl().UrlString() << "\n"; << feedBuffer->XmlUrl().UrlString() << "\n";
if (feedBuffer->Fetch()) { if (feedBuffer->Fetch()) {
send_data(main, kDownloadComplete, (void*)feedBuffer, sizeof(Feed)); send_data(main, kDownloadComplete, (void*)feedBuffer, sizeof(Feed));
@ -244,15 +244,15 @@ FeedController::_ParseLoop(void* data)
BObjectList<Entry> entries; BObjectList<Entry> entries;
int32 entriesCount = 0; int32 entriesCount = 0;
BString feedTitle; BString feedTitle;
BUrl feedUrl = feedBuffer->GetXmlUrl(); BUrl feedUrl = feedBuffer->XmlUrl();
BDirectory outDir = BDirectory(((App*)be_app)->fPreferences->EntryDir()); BDirectory outDir = BDirectory(((App*)be_app)->fPreferences->EntryDir());
if (feedBuffer->IsAtom() && feedBuffer->IsUpdated()) { if (feedBuffer->IsAtom() && feedBuffer->IsUpdated()) {
AtomFeed feed(feedBuffer); AtomFeed feed(feedBuffer);
feed.Parse(); feed.Parse();
entries = feed.GetNewEntries(); entries = feed.NewEntries();
entriesCount = entries.CountItems(); entriesCount = entries.CountItems();
feedTitle = feed.GetTitle(); feedTitle = feed.Title();
for (int i = 0; i < entriesCount; i++) for (int i = 0; i < entriesCount; i++)
entries.ItemAt(i)->Filetize(outDir); entries.ItemAt(i)->Filetize(outDir);
@ -261,9 +261,9 @@ FeedController::_ParseLoop(void* data)
else if (feedBuffer->IsRss() && feedBuffer->IsUpdated()) { else if (feedBuffer->IsRss() && feedBuffer->IsUpdated()) {
RssFeed feed(feedBuffer); RssFeed feed(feedBuffer);
feed.Parse(); feed.Parse();
entries = feed.GetNewEntries(); entries = feed.NewEntries();
entriesCount = entries.CountItems(); entriesCount = entries.CountItems();
feedTitle = feed.GetTitle(); feedTitle = feed.Title();
for (int i = 0; i < entriesCount; i++) for (int i = 0; i < entriesCount; i++)
entries.ItemAt(i)->Filetize(outDir); entries.ItemAt(i)->Filetize(outDir);

View File

@ -39,8 +39,8 @@ FeedEditWindow::FeedEditWindow(BEntry feedEntry)
SetTitle("Edit Feed"); SetTitle("Edit Feed");
fFeed = Feed(feedEntry); fFeed = Feed(feedEntry);
fFeedNameText->SetText(fFeed.GetTitle().String()); fFeedNameText->SetText(fFeed.Title().String());
fFeedUrlText->SetText(fFeed.GetXmlUrl().UrlString().String()); fFeedUrlText->SetText(fFeed.XmlUrl().UrlString().String());
fDeleteButton->SetEnabled(true); fDeleteButton->SetEnabled(true);
} }
@ -48,7 +48,7 @@ FeedEditWindow::FeedEditWindow(BEntry feedEntry)
FeedEditWindow::FeedEditWindow(FeedListItem* feedItem) FeedEditWindow::FeedEditWindow(FeedListItem* feedItem)
: :
FeedEditWindow(BEntry(feedItem->GetFeedPath())) FeedEditWindow(BEntry(feedItem->FeedPath()))
{ {
} }
@ -161,7 +161,7 @@ FeedEditWindow::_SaveFeed()
filename = BString(title); filename = BString(title);
subPath.Append(filename); subPath.Append(filename);
if (fFeed.GetCachePath().IsEmpty()) if (fFeed.CachePath().IsEmpty())
fFeed.SetCachePath(BString(subPath.Path())); fFeed.SetCachePath(BString(subPath.Path()));
if (!title.IsEmpty()) if (!title.IsEmpty())
@ -171,7 +171,7 @@ FeedEditWindow::_SaveFeed()
BMessage edited(kFeedsEdited); BMessage edited(kFeedsEdited);
BMessage enqueueUpdated(kEnqueueFeed); BMessage enqueueUpdated(kEnqueueFeed);
enqueueUpdated.AddString("feedPaths", fFeed.GetCachePath()); enqueueUpdated.AddString("feedPaths", fFeed.CachePath());
((App*)be_app)->MessageReceived(&enqueueUpdated); ((App*)be_app)->MessageReceived(&enqueueUpdated);
((App*)be_app)->PostMessage(&edited); ((App*)be_app)->PostMessage(&edited);

View File

@ -13,10 +13,10 @@
FeedListItem::FeedListItem(Feed* feed) FeedListItem::FeedListItem(Feed* feed)
: :
BStringItem(feed->GetTitle().String(), 0, false), BStringItem(feed->Title().String(), 0, false),
fStatus(kClearStatus), fStatus(kClearStatus),
fFeedUrl(feed->GetXmlUrl()), fFeedUrl(feed->XmlUrl()),
fFeedPath(feed->GetCachePath()) fFeedPath(feed->CachePath())
{ {
} }
@ -52,14 +52,14 @@ FeedListItem::DrawItem(BView* owner, BRect frame, bool complete)
BString BString
FeedListItem::GetFeedPath() FeedListItem::FeedPath()
{ {
return fFeedPath; return fFeedPath;
} }
BUrl BUrl
FeedListItem::GetFeedUrl() FeedListItem::FeedUrl()
{ {
return fFeedUrl; return fFeedUrl;
} }

View File

@ -28,8 +28,8 @@ public:
void DrawItem(BView* owner, BRect frame, bool complete); void DrawItem(BView* owner, BRect frame, bool complete);
BUrl GetFeedUrl(); BUrl FeedUrl();
BString GetFeedPath(); BString FeedPath();
void SetStatus(int8 status); void SetStatus(int8 status);

View File

@ -175,7 +175,7 @@ FeedsView::_RemoveSelectedFeed()
{ {
int32 selIndex = fFeedsListView->CurrentSelection(); int32 selIndex = fFeedsListView->CurrentSelection();
FeedListItem* selected = (FeedListItem*)fFeedsListView->ItemAt(selIndex); FeedListItem* selected = (FeedListItem*)fFeedsListView->ItemAt(selIndex);
Feed delFeed = Feed(BEntry(selected->GetFeedPath())); Feed delFeed = Feed(BEntry(selected->FeedPath()));
delFeed.Unfiletize(); delFeed.Unfiletize();
} }
@ -219,7 +219,7 @@ FeedsView::_UpdateProgress(BMessage* msg, int8 status)
for (int i = 0; i < fFeedsListView->CountItems(); i++) { for (int i = 0; i < fFeedsListView->CountItems(); i++) {
FeedListItem* item = (FeedListItem*)fFeedsListView->ItemAt(i); FeedListItem* item = (FeedListItem*)fFeedsListView->ItemAt(i);
if (item->GetFeedUrl().UrlString() == feedUrl) { if (item->FeedUrl().UrlString() == feedUrl) {
item->SetStatus(status); item->SetStatus(status);
fFeedsListView->InvalidateItem(i); fFeedsListView->InvalidateItem(i);
} }

View File

@ -14,16 +14,16 @@
RssFeed::RssFeed() RssFeed::RssFeed()
{ {
title = BString("Untitled Feed"); fTitle = BString("Untitled Feed");
xmlUrl = BString(""); fXmlUrl = BString("");
} }
RssFeed::RssFeed(Feed* feed) RssFeed::RssFeed(Feed* feed)
: RssFeed::RssFeed() : RssFeed::RssFeed()
{ {
SetXmlUrl(feed->GetXmlUrl()); SetXmlUrl(feed->XmlUrl());
SetCachePath(feed->GetCachePath()); SetCachePath(feed->CachePath());
} }
@ -31,11 +31,11 @@ void
RssFeed::Parse() RssFeed::Parse()
{ {
tinyxml2::XMLDocument xml; tinyxml2::XMLDocument xml;
entries = BObjectList<Entry>(5, true); fEntries = BObjectList<Entry>(5, true);
Feed::Parse(); Feed::Parse();
xml.LoadFile(GetCachePath().String()); xml.LoadFile(CachePath().String());
tinyxml2::XMLElement* xchan = xml.FirstChildElement("rss")->FirstChildElement("channel"); tinyxml2::XMLElement* xchan = xml.FirstChildElement("rss")->FirstChildElement("channel");
RootParse(xchan); RootParse(xchan);
@ -48,10 +48,10 @@ RssFeed::Parse()
void void
RssFeed::RootParse(tinyxml2::XMLElement* xchan) RssFeed::RootParse(tinyxml2::XMLElement* xchan)
{ {
SetTitle(xchan->FirstChildElement("title")); _SetTitle(xchan->FirstChildElement("title"));
SetDate(xchan->FirstChildElement("lastBuildDate")); _SetDate(xchan->FirstChildElement("lastBuildDate"));
std::cout << "Channel '" << title.String() << "' at '" << xmlUrl.UrlString() std::cout << "Channel '" << fTitle.String() << "' at '" << fXmlUrl.UrlString()
<< ":\n"; << ":\n";
} }
@ -62,16 +62,16 @@ RssFeed::EntryParse(tinyxml2::XMLElement* xitem)
Entry* newEntry = new Entry(); Entry* newEntry = new Entry();
newEntry->SetTitle(xitem->FirstChildElement("title")); newEntry->SetTitle(xitem->FirstChildElement("title"));
newEntry->SetDesc(xitem->FirstChildElement("description")); newEntry->SetDescription(xitem->FirstChildElement("description"));
newEntry->SetDate(xitem->FirstChildElement("pubDate")); newEntry->SetDate(xitem->FirstChildElement("pubDate"));
newEntry->SetPostUrl(xitem->FirstChildElement("link")); newEntry->SetPostUrl(xitem->FirstChildElement("link"));
newEntry->SetContent(xitem->FirstChildElement("content:encoded")); newEntry->SetContent(xitem->FirstChildElement("content:encoded"));
newEntry->SetFeedTitle(title); newEntry->SetFeedTitle(fTitle);
if (date == NULL || date < newEntry->GetDate()) if (fDate == NULL || fDate < newEntry->Date())
date = newEntry->date; fDate = newEntry->Date();
AddEntry(newEntry); _AddEntry(newEntry);
} }
@ -82,8 +82,8 @@ RssFeed::ParseEntries(tinyxml2::XMLElement* xchan)
xitem = xchan->FirstChildElement("item"); xitem = xchan->FirstChildElement("item");
int entryCount = xmlCountSiblings(xitem, "item"); int entryCount = _XmlCountSiblings(xitem, "item");
entries = BObjectList<Entry>(entryCount, true); fEntries = BObjectList<Entry>(entryCount, true);
std::cout << "\t-" << entryCount << " entries-\n"; std::cout << "\t-" << entryCount << " entries-\n";