Previous | Next | WireHose Developers Guide |
In addition to using whatever categories were specified for an item in its RSS feed, the Hello World crawler will also assign tags based on the feed's categories.
static void tagItemsForFeed(EOEditingContext ec, NSArray items, RSSFeed feed) { // use this to get a tagpath without "Feeds/" at the beginning // for example, "Consumer/Gardening" instead of "Feeds/Consumer/Gardening" WHTag feedAncestor = WHTag.tagForPath(ec, "Feeds", false); NSMutableArray tags = new NSMutableArray(); String path; WHTag tag; // iterate through the feed's tags // and build an array of tags to assign to items for (int i=0, count=feed.tags().count(); i<count; i++) { tag = (WHTag)feed.tags().objectAtIndex(i); // get a tagpath that starts with "Content/" instead of "Feeds/" // e.g., "Content/Consumer/Gardening" path = "Content/"+tag.tagPath(feedAncestor, "/"); // add a tag for that path tags.addObject(WHTag.tagForPath(ec, path, true)); // and add a tag for that path, plus the feed's name // e.g., "Consumer/Gardening/About.com Botany" tags.addObject(WHTag.tagForPath(ec, path+"/"+feed.name(), true)); } RSSItem item; // iterate through items for (int i=0, count=items.count(); i<count; i++) { item = (RSSItem)items.objectAtIndex(i); // associate the item with the feed item.addObjectToBothSidesOfRelationshipWithKey(feed, "feed"); // and add tags to the item WHTag.addTags(item, tags); } }
Copyright ©2000-2003 Gary Teter. All rights reserved. WireHose is a trademark of Gary Teter.