001 /*
002 * Copyright 1999,2004 The Apache Software Foundation.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017 package org.apache.commons.feedparser.locate.blogservice;
018
019 import org.apache.commons.feedparser.FeedParserException;
020 import org.apache.commons.feedparser.locate.*;
021
022 /**
023 * Models the AOL Journal blog service, encapsulating whether a given weblog
024 * is this type of service and where it usually keeps its feeds.
025 *
026 * @author Brad Neuberg, bkn3@columbia.edu
027 */
028 public class AOLJournal extends BlogService {
029
030 /** Returns whether we can trust the results of this blog service's
031 * autodiscovery links. For example, TextAmerica returns invalid
032 * autodiscovery results.
033 */
034 public boolean hasValidAutoDiscovery() {
035 return true;
036 }
037
038 /** Returns whether we should follow HTTP redirects for this blog service.
039 * Some services don't implement HTTP redirects correctly, while others,
040 * like Xanga, require it.
041 */
042 public boolean followRedirects() {
043 return false;
044 }
045
046 /** Determines if the weblog at the given resource and with the given
047 * content is this blog service.
048 * @param resource A full URI to this resource, such as
049 * "http://www.codinginparadise.org".
050 * @param content The full HTML content at the resource's URL.
051 * @throws FeedParserException Thrown if an error occurs while
052 * determining the type of this weblog.
053 */
054 public boolean isThisService(String resource, String content)
055 throws FeedParserException {
056 boolean results = false;
057
058 results = containsDomain(resource, "journals.aol.com");
059
060 return results;
061 }
062
063 /**
064 * Returns an array of FeedReferences that contains information on the
065 * usual locations this blog service contains its feed. The feeds should
066 * be ordered by quality, so that higher quality feeds come before lower
067 * quality ones (i.e. you would want to have an Atom FeedReference
068 * object come before an RSS 0.91 FeedReference object in this list).
069 * @param resource A URL to the given weblog that might be used to build
070 * up where feeds are usually located.
071 * @param content The full content of the resource URL, which might
072 * be useful to determine where feeds are usually located. This can be
073 * null.
074 * @throws FeedParserException Thrown if an error occurs while trying
075 * to determine the usual locations of feeds for this service.
076 */
077 public FeedReference[] getFeedLocations(String resource,
078 String content)
079 throws FeedParserException {
080 FeedReference aolJournalLocations[] =
081 { new FeedReference("atom.xml", FeedReference.ATOM_MEDIA_TYPE),
082 new FeedReference("rss.xml", FeedReference.RSS_MEDIA_TYPE) };
083
084 return aolJournalLocations;
085 }
086 }