Fixing Bugs & Adding subtitle to feeds
This commit is contained in:
21
RSXML/RSAtomParser.m
Normal file → Executable file
21
RSXML/RSAtomParser.m
Normal file → Executable file
@@ -31,6 +31,7 @@
|
||||
@property (nonatomic) NSMutableString *xhtmlString;
|
||||
@property (nonatomic) NSString *link;
|
||||
@property (nonatomic) NSString *title;
|
||||
@property (nonatomic) NSString *subtitle;
|
||||
@property (nonatomic) NSMutableArray *articles;
|
||||
@property (nonatomic) NSDate *dateParsed;
|
||||
@property (nonatomic) RSSAXParser *parser;
|
||||
@@ -110,6 +111,7 @@
|
||||
[self parse];
|
||||
|
||||
RSParsedFeed *parsedFeed = [[RSParsedFeed alloc] initWithURLString:self.urlString title:self.title link:self.link articles:self.articles];
|
||||
parsedFeed.subtitle = self.subtitle;
|
||||
|
||||
return parsedFeed;
|
||||
}
|
||||
@@ -141,6 +143,9 @@ static const NSInteger kIDLength = 3;
|
||||
static const char *kTitle = "title";
|
||||
static const NSInteger kTitleLength = 6;
|
||||
|
||||
static const char *kSubtitle = "subtitle";
|
||||
static const NSInteger kSubtitleLength = 9;
|
||||
|
||||
static const char *kContent = "content";
|
||||
static const NSInteger kContentLength = 8;
|
||||
|
||||
@@ -274,6 +279,13 @@ static const NSInteger kSelfLength = 5;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)addFeedSubtitle {
|
||||
|
||||
if (self.subtitle.length < 1) {
|
||||
self.subtitle = self.parser.currentStringWithTrimmedWhitespace;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)addLink {
|
||||
|
||||
NSString *urlString = self.currentAttributes[kHrefKey];
|
||||
@@ -498,8 +510,13 @@ static const NSInteger kSelfLength = 5;
|
||||
self.parsingSource = NO;
|
||||
}
|
||||
|
||||
else if (!self.parsingArticle && !self.parsingSource && RSSAXEqualTags(localName, kTitle, kTitleLength)) {
|
||||
[self addFeedTitle];
|
||||
else if (!self.parsingArticle && !self.parsingSource) {
|
||||
if (RSSAXEqualTags(localName, kTitle, kTitleLength)) {
|
||||
[self addFeedTitle];
|
||||
}
|
||||
else if (RSSAXEqualTags(localName, kSubtitle, kSubtitleLength)) {
|
||||
[self addFeedSubtitle];
|
||||
}
|
||||
}
|
||||
[self.attributesStack removeLastObject];
|
||||
}
|
||||
|
||||
4
RSXML/RSParsedArticle.m
Normal file → Executable file
4
RSXML/RSParsedArticle.m
Normal file → Executable file
@@ -97,5 +97,9 @@
|
||||
(void)self.articleID;
|
||||
}
|
||||
|
||||
- (NSString*)description {
|
||||
return [NSString stringWithFormat:@"{%@ '%@', guid: %@}", [self class], self.title, self.guid];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
1
RSXML/RSParsedFeed.h
Normal file → Executable file
1
RSXML/RSParsedFeed.h
Normal file → Executable file
@@ -17,6 +17,7 @@
|
||||
@property (nonatomic, readonly, nonnull) NSString *urlString;
|
||||
@property (nonatomic, readonly, nullable) NSString *title;
|
||||
@property (nonatomic, readonly, nullable) NSString *link;
|
||||
@property (nonatomic, nullable) NSString *subtitle;
|
||||
@property (nonatomic, readonly, nonnull) NSSet <RSParsedArticle *>*articles;
|
||||
|
||||
@end
|
||||
|
||||
4
RSXML/RSParsedFeed.m
Normal file → Executable file
4
RSXML/RSParsedFeed.m
Normal file → Executable file
@@ -25,5 +25,9 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSString*)description {
|
||||
return [NSString stringWithFormat:@"{%@ (%@), title: '%@', subtitle: '%@', entries: %@}",
|
||||
[self class], _link, _title, _subtitle, _articles];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
6
RSXML/RSRSSParser.m
Normal file → Executable file
6
RSXML/RSRSSParser.m
Normal file → Executable file
@@ -31,6 +31,7 @@
|
||||
@property (nonatomic) BOOL endRSSFound;
|
||||
@property (nonatomic) NSString *link;
|
||||
@property (nonatomic) NSString *title;
|
||||
@property (nonatomic) NSString *subtitle;
|
||||
@property (nonatomic) NSDate *dateParsed;
|
||||
|
||||
@end
|
||||
@@ -105,6 +106,7 @@
|
||||
[self parse];
|
||||
|
||||
RSParsedFeed *parsedFeed = [[RSParsedFeed alloc] initWithURLString:self.urlString title:self.title link:self.link articles:self.articles];
|
||||
parsedFeed.subtitle = self.subtitle;
|
||||
|
||||
return parsedFeed;
|
||||
}
|
||||
@@ -236,6 +238,10 @@ static const NSInteger kTrueLength = 5;
|
||||
else if (RSSAXEqualTags(localName, kTitle, kTitleLength)) {
|
||||
self.title = self.parser.currentStringWithTrimmedWhitespace;
|
||||
}
|
||||
|
||||
else if (RSSAXEqualTags(localName, kDescription, kDescriptionLength)) {
|
||||
self.subtitle = self.parser.currentStringWithTrimmedWhitespace;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
#import <libxml/tree.h>
|
||||
#import <libxml/xmlstring.h>
|
||||
#import <libxml/parser.h>
|
||||
#import "RSSAXParser.h"
|
||||
#import "RSXMLInternal.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user