diff options
author | dgreen | 2009-12-04 16:53:48 +0000 |
---|---|---|
committer | dgreen | 2009-12-04 16:53:48 +0000 |
commit | 42a57c60624fdac5989723ccc70d2238fb517a7a (patch) | |
tree | 505b8f3e5be7b51bf182e7baab5c5542ab02f880 | |
parent | ded6aded9d3aecd29174c4a770b836b6d44a09a1 (diff) | |
download | org.eclipse.mylyn.tasks-42a57c60624fdac5989723ccc70d2238fb517a7a.tar.gz org.eclipse.mylyn.tasks-42a57c60624fdac5989723ccc70d2238fb517a7a.tar.xz org.eclipse.mylyn.tasks-42a57c60624fdac5989723ccc70d2238fb517a7a.zip |
NEW - bug 294991: Update MediaWikiImageFetcher task to use MediaWiki API to determine image URLs
https://bugs.eclipse.org/bugs/show_bug.cgi?id=294991
4 files changed, 5 insertions, 166 deletions
diff --git a/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF index 2c190d0c7..dde7fcf3a 100644 --- a/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF +++ b/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF @@ -13,5 +13,4 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)";resolution:=optional, org.apache.ant;bundle-version="1.7.0";resolution:=optional Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Export-Package: org.eclipse.mylyn.internal.help.ui.anttask;x-internal:=true Bundle-Localization: plugin diff --git a/org.eclipse.mylyn.help.ui/build-helper.xml b/org.eclipse.mylyn.help.ui/build-helper.xml index 20b760fee..4d554b823 100644 --- a/org.eclipse.mylyn.help.ui/build-helper.xml +++ b/org.eclipse.mylyn.help.ui/build-helper.xml @@ -28,7 +28,7 @@ <pathelement location="../org.eclipse.mylyn.wikitext.mediawiki.core/bin_ant"/> </path> - <taskdef classpathref="tasks.classpath" resource="org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties"/> + <taskdef classpathref="wikitext.tasks.classpath" resource="org/eclipse/mylyn/internal/wikitext/mediawiki/core/tasks/tasks.properties"/> <taskdef classpathref="wikitext.tasks.classpath" resource="org/eclipse/mylyn/wikitext/core/util/anttask/tasks.properties"/> <target name="init"> @@ -45,7 +45,7 @@ <eclipse-wiki-to-help help.doc.filenamenoextension="Mylyn Reference" help.doc.url.base="${mylyn.help.doc.url.base}" - help.doc.url.html="${mylyn.help.doc.url.base}/Mylyn/User_Guide" + help.doc.pageName="Mylyn/User_Guide" help.doc.url.xml="${mylyn.help.doc.url.base}/Special:Export/Mylyn/User_Guide" help.imagefolder="${imageFolder}" targetfolder="userguide" @@ -58,19 +58,17 @@ <macrodef name="eclipse-wiki-to-help"> <attribute name="help.doc.url.base"/> <attribute name="wiki.url.base"/> - <attribute name="help.doc.url.html"/> + <attribute name="help.doc.pageName"/> <attribute name="help.doc.url.xml"/> <attribute name="help.doc.filenameNoExtension"/> <attribute name="help.imageFolder"/> <attribute name="targetFolder"/> <sequential> <get dest="tmp/help.doc.xml" src="@{help.doc.url.xml}"/> - <get dest="tmp/help.doc.html" src="@{help.doc.url.html}"/> - <copy todir="tmp"> <fileset dir="images"/> </copy> - <mediawiki-fetch-images src="tmp/help.doc.html" dest="tmp" base="@{help.doc.url.base}"/> + <mediawiki-fetch-images dest="tmp" url="@{help.doc.url.base}" pageName="@{help.doc.pageName}"/> <xslt style="extract-markup.xsl" in="tmp/help.doc.xml" out="tmp/@{help.doc.filenameNoExtension}.mediawiki"/> <echo append="true" file="tmp/@{help.doc.filenameNoExtension}.mediawiki"> @@ -78,7 +76,7 @@ = Updating This Document = This document is maintained in a collaborative wiki. If you wish to update or modify this document please visit -@{help.doc.url.html} +@{help.doc.url.base}/@{help.doc.pageName} </echo> <wikitext-to-eclipse-help markupLanguage="org.eclipse.mylyn.wikitext.mediawiki.core.MediaWikiLanguage" diff --git a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java b/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java deleted file mode 100644 index 8726b813b..000000000 --- a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 David Green and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * David Green - initial API and implementation - *******************************************************************************/ - -package org.eclipse.mylyn.internal.help.ui.anttask; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.Task; -import org.apache.tools.ant.taskdefs.Get; - -/** - * Fetch images from a MediaWiki-generated HTML page source - * - * @author David Green - */ -public class MediaWikiImageFetcher extends Task { - - private String base; - - private File dest; - - private File src; - - @Override - public void execute() throws BuildException { - if (dest == null) { - throw new BuildException("Must specify @dest"); //$NON-NLS-1$ - } - if (!dest.exists()) { - throw new BuildException("@dest does not exist: " + dest); //$NON-NLS-1$ - } - if (!dest.isDirectory()) { - throw new BuildException("@dest is not a directory: " + dest); //$NON-NLS-1$ - } - if (src == null) { - throw new BuildException("Must specify @src"); //$NON-NLS-1$ - } - if (!src.exists()) { - throw new BuildException("@src does not exist: " + src); //$NON-NLS-1$ - } - if (!src.isFile()) { - throw new BuildException("@src is not a file: " + src); //$NON-NLS-1$ - } - if (base == null) { - throw new BuildException("Must specify @base"); //$NON-NLS-1$ - } - if (base.endsWith("/")) { //$NON-NLS-1$ - base = base.substring(0, base.length() - 1); - } - Pattern fragmentUrlPattern = Pattern.compile("src=\"([^\"]+)\""); //$NON-NLS-1$ - Pattern imagePattern = Pattern.compile("alt=\"Image:([^\"]*)\"([^>]+)", Pattern.MULTILINE); //$NON-NLS-1$ - String htmlSrc; - try { - htmlSrc = readSrc(); - } catch (IOException e) { - throw new BuildException("Cannot read src: " + src + ": " + e.getMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$ - } - log("Parsing " + src, Project.MSG_INFO); //$NON-NLS-1$ - int fileCount = 0; - Matcher imagePatternMatcher = imagePattern.matcher(htmlSrc); - while (imagePatternMatcher.find()) { - String alt = imagePatternMatcher.group(1); - String imageFragment = imagePatternMatcher.group(2); - if (imageFragment != null) { - Matcher fragmentUrlMatcher = fragmentUrlPattern.matcher(imageFragment); - if (fragmentUrlMatcher.find()) { - String url = fragmentUrlMatcher.group(1); - String qualifiedUrl = base + url; - log("Fetching " + qualifiedUrl, Project.MSG_INFO); //$NON-NLS-1$ - Get get = new Get(); - get.setProject(getProject()); - get.setLocation(getLocation()); - try { - get.setSrc(new URL(qualifiedUrl)); - } catch (MalformedURLException e) { - log("Skipping " + url + ": " + e.getMessage(), Project.MSG_WARN); //$NON-NLS-1$ //$NON-NLS-2$ - continue; - } - // note: we use the alt text for the name since for some files there is a case-difference between - // the server URL and the text used in the image src of the markup - String name = alt == null ? url.substring(url.lastIndexOf('/')) : alt; - get.setDest(new File(dest, name)); - get.execute(); - ++fileCount; - } - } - } - log("Fetched " + fileCount + " image files for " + src, Project.MSG_INFO); //$NON-NLS-1$ //$NON-NLS-2$ - } - - public String getBase() { - return base; - } - - public File getDest() { - return dest; - } - - public File getSrc() { - return src; - } - - private String readSrc() throws IOException { - StringBuilder buf = new StringBuilder((int) src.length()); - Reader reader = new BufferedReader(new FileReader(src)); - try { - int i; - while ((i = reader.read()) != -1) { - buf.append((char) i); - } - } finally { - reader.close(); - } - return buf.toString(); - } - - public void setBase(String base) { - this.base = base; - } - - public void setDest(File dest) { - this.dest = dest; - } - - public void setSrc(File src) { - this.src = src; - } - -} diff --git a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties b/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties deleted file mode 100644 index 33848771c..000000000 --- a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties +++ /dev/null @@ -1,11 +0,0 @@ -############################################################################### -# Copyright (c) 2009 Tasktop Technologies and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# Tasktop Technologies - initial API and implementation -############################################################################### -mediawiki-fetch-images=org.eclipse.mylyn.internal.help.ui.anttask.MediaWikiImageFetcher |