@@ -0,0 +1,2975 @@
+%0A/*%0A%0ACopyright (c) 2000-2019 Board of Trustees of Leland Stanford Jr. University,%0Aall rights reserved.%0A%0APermission is hereby granted, free of charge, to any person obtaining a copy%0Aof this software and associated documentation files (the %22Software%22), to deal%0Ain the Software without restriction, including without limitation the rights%0Ato use, copy, modify, merge, publish, distribute, sublicense, and/or sell%0Acopies of the Software, and to permit persons to whom the Software is%0Afurnished to do so, subject to the following conditions:%0A%0AThe above copyright notice and this permission notice shall be included in%0Aall copies or substantial portions of the Software.%0A%0ATHE SOFTWARE IS PROVIDED %22AS IS%22, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR%0AIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,%0AFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL%0ASTANFORD UNIVERSITY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,%0AWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR%0AIN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.%0A%0AExcept as contained in this notice, the name of Stanford University shall not%0Abe used in advertising or otherwise to promote the sale, use or other dealings%0Ain this Software without prior written authorization from Stanford University.%0A%0A*/%0A%0Apackage org.lockss.plugin.americanmathematicalsociety;%0A%0Aimport java.io.InputStream;%0A%0Aimport org.htmlparser.NodeFilter;%0Aimport org.htmlparser.filters.*;%0Aimport org.lockss.daemon.PluginException;%0Aimport org.lockss.filter.html.*;%0Aimport org.lockss.plugin.*;%0A%0A%0Apublic class AmsHtmlCrawlFilterFactory implements FilterFactory %7B%0A%0A  /*%0A   * Because the crawl rules explicitly exclude all volumes but this one, this %0A   * shouldn't be necessary. But there are some links in references to the alternate%0A   * (previous) form of volume page%0A   * http://www.ams.org/ert/2005-009-02/%0A   * which is in some cases serving a 403 which breaks the crawl.%0A   * We can't exlcude the url pattern because it used to be the only volume%0A   * page format.%0A   * So instead, just exclude the references that were serving it. %0A   * See page:%0A   * http://www.ams.org/journals/ert/2005-009-20/S1088-4165-05-00296-7/%0A   * though they might have fixed the 403 problem in the mean time.%0A   * %0A   */%0A%09%0A  @Override%0A  public InputStream createFilteredInputStream(ArchivalUnit au,%0A                                               InputStream in,%0A                                               String encoding)%0A      throws PluginException %7B%0A    NodeFilter%5B%5D filters = new NodeFilter%5B%5D %7B%0A      %0A    %09%09// references with links to journal page and alternate form of volume page%0A    %09     HtmlNodeFilters.tagWithAttribute(%22div%22, %22id%22, %22EnhancedReferences%22),%0A      %0A    %7D;%0A    return new HtmlFilterInputStream(in,%0A                                     encoding,%0A                                     HtmlNodeFilterTransform.exclude(new OrFilter(filters)));%0A  %7D%0A%0A%7D%0A

add crawl filter to block references