/* * WPCleaner: A tool to help on Wikipedia maintenance tasks. * Copyright (C) 2013 Nicolas Vervelle * * See README.txt file for licensing information. */ package org.wikipediacleaner.api.request.query.prop; import java.util.Collection; import java.util.List; import java.util.Map; import org.wikipediacleaner.api.APIException; import org.wikipediacleaner.api.constants.EnumWikipedia; import org.wikipediacleaner.api.data.Page; /** * MediaWiki information requests. */ public class ApiInfoRequest extends ApiPropertiesRequest { // ========================================================================== // API properties // ========================================================================== /** * Property for Properties. */ public final static String PROPERTY_PROPERTIES = "inprop"; /** * Property value for Properties / Pre load. */ public final static String PROPERTY_PROPERTIES_PRELOAD = "preload"; /** * Property value for Properties / Protection. */ public final static String PROPERTY_PROPERTIES_PROTECTION = "protection"; /** * Property value for Properties / Subject Id. */ public final static String PROPERTY_PROPERTIES_SUBJECTID = "subjectid"; /** * Property value for Properties / Talk id. */ public final static String PROPERTY_PROPERTIES_TALKID = "talkid"; /** * Property value for Properties / URL. */ public final static String PROPERTY_PROPERTIES_URL = "url"; /** * Property value for Properties / Watched. */ public final static String PROPERTY_PROPERTIES_WATCHED = "watched"; /** * Property for Token. */ public final static String PROPERTY_TOKEN = "intoken"; /** * Property value for Token / Delete. */ public final static String PROPERTY_TOKEN_DELETE = "delete"; /** * Property value for Token / Edit. */ public final static String PROPERTY_TOKEN_EDIT = "edit"; /** * Property value for Token / Move. */ public final static String PROPERTY_TOKEN_MOVE = "move"; // ========================================================================== // Request management // ========================================================================== private final ApiInfoResult result; /** * @param wiki Wiki. * @param result Parser for result depending on chosen format. */ public ApiInfoRequest(EnumWikipedia wiki, ApiInfoResult result) { super(wiki); this.result = result; } /** * Load informations of a list of pages. * * @param pages List of pages. * @throws APIException */ public void loadInformations(Collection<Page> pages) throws APIException { Map<String, String> properties = getProperties(ACTION_QUERY, result.getFormat()); properties.put( PROPERTY_PROP, PROPERTY_PROP_REVISIONS + "|" + PROPERTY_PROP_INFO); properties.put(PROPERTY_CONTINUE, PROPERTY_CONTINUE_DEFAULT); List<Collection<Page>> tmpPages = splitListPages(pages, MAX_PAGES_PER_QUERY); for (Collection<Page> tmpPages2 : tmpPages) { properties.put(PROPERTY_TITLES, constructListTitles(tmpPages2)); while (result.executeInformations(properties, tmpPages2)) { // } } } }