Search in sources :

Example 11 with Page

use of org.wikipediacleaner.api.data.Page in project wpcleaner by WPCleaner.

the class MainWindow method actionCategoryMembers.

/**
 * Action called when Category Members button is pressed.
 */
public void actionCategoryMembers() {
    String pageName = checkPagename(GT._T("You must input a page name for retrieving the list of category members"));
    if (pageName == null) {
        return;
    }
    Configuration config = Configuration.getConfiguration();
    config.setString(null, ConfigurationValueString.PAGE_NAME, pageName);
    config.save();
    String title = getWikipedia().getWikiConfiguration().getPageTitle(Namespace.CATEGORY, pageName);
    Page page = DataManager.getPage(getWikipedia(), title, null, null, null);
    new PageListWorker(getWikipedia(), this, page, Collections.singletonList(title), PageListWorker.Mode.CATEGORY_MEMBERS, false, GT._T("Category members of {0}", title)).start();
}
Also used : PageListWorker(org.wikipediacleaner.gui.swing.pagelist.PageListWorker) WPCConfiguration(org.wikipediacleaner.api.configuration.WPCConfiguration) Configuration(org.wikipediacleaner.utils.Configuration) WikiConfiguration(org.wikipediacleaner.api.configuration.WikiConfiguration) EnumQueryPage(org.wikipediacleaner.api.constants.EnumQueryPage) Page(org.wikipediacleaner.api.data.Page) ConfigurationValueString(org.wikipediacleaner.utils.ConfigurationValueString)

Example 12 with Page

use of org.wikipediacleaner.api.data.Page in project wpcleaner by WPCleaner.

the class MainWindow method actionLoadList.

/**
 * Action called when Load List button is pressed.
 */
public void actionLoadList() {
    EnumWikipedia wikipedia = getWikipedia();
    if (wikipedia == null) {
        return;
    }
    // Ask which file should be loaded
    JFileChooser chooser = new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter("Text files", "txt");
    chooser.setFileFilter(filter);
    int returnVal = chooser.showOpenDialog(this.getParentComponent());
    if (returnVal != JFileChooser.APPROVE_OPTION) {
        return;
    }
    File chosenFile = chooser.getSelectedFile();
    if ((chosenFile == null) || !chosenFile.isFile() || !chosenFile.canRead()) {
        return;
    }
    // Ask in which format the file is
    String[] values = { GT._T("Unformatted list of page names"), GT._T("Internal links in a formatted list") };
    String message = GT._T("The file must be encoded in UTF-8 to be read correctly.") + "\n" + GT._T("In which format is the file?");
    String value = Utilities.askForValue(getParentComponent(), message, values, true, values[0], (StringChecker) null);
    if (value == null) {
        return;
    }
    int choice = 0;
    for (int i = 0; i < values.length; i++) {
        if (value.equals(values[i])) {
            choice = i;
        }
    }
    // Read file
    List<String> pages = new ArrayList<>();
    BufferedReader reader = null;
    String line = null;
    try {
        reader = new BufferedReader(new InputStreamReader(new FileInputStream(chosenFile), "UTF8"));
        switch(choice) {
            case // Unformatted list
            0:
                while ((line = reader.readLine()) != null) {
                    if (line.trim().length() > 0) {
                        pages.add(line);
                    }
                }
                break;
            case // Formatted list with internal links
            1:
                StringBuilder buffer = new StringBuilder();
                while ((line = reader.readLine()) != null) {
                    if (buffer.length() > 0) {
                        buffer.append('\n');
                    }
                    buffer.append(line);
                }
                Page tmpPage = DataManager.getPage(getWiki(), chosenFile.getName(), null, null, null);
                String contents = buffer.toString();
                tmpPage.setContents(contents);
                PageAnalysis analysis = tmpPage.getAnalysis(contents, false);
                List<PageElementInternalLink> links = analysis.getInternalLinks();
                for (PageElementInternalLink link : links) {
                    String target = link.getLink();
                    if (target.startsWith(":")) {
                        target = target.substring(1);
                    }
                    if (!pages.contains(target)) {
                        pages.add(target);
                    }
                }
                break;
        }
        new PageListWorker(wikipedia, this, null, pages, PageListWorker.Mode.DIRECT, true, GT._T("List")).start();
    } catch (IOException e) {
    // 
    } finally {
        if (reader != null) {
            try {
                reader.close();
            } catch (Exception e) {
            // 
            }
        }
    }
}
Also used : PageElementInternalLink(org.wikipediacleaner.api.data.PageElementInternalLink) PageListWorker(org.wikipediacleaner.gui.swing.pagelist.PageListWorker) InputStreamReader(java.io.InputStreamReader) ArrayList(java.util.ArrayList) PageAnalysis(org.wikipediacleaner.api.data.analysis.PageAnalysis) EnumQueryPage(org.wikipediacleaner.api.constants.EnumQueryPage) Page(org.wikipediacleaner.api.data.Page) ConfigurationValueString(org.wikipediacleaner.utils.ConfigurationValueString) IOException(java.io.IOException) FileNameExtensionFilter(javax.swing.filechooser.FileNameExtensionFilter) FileInputStream(java.io.FileInputStream) APIException(org.wikipediacleaner.api.APIException) IOException(java.io.IOException) JFileChooser(javax.swing.JFileChooser) BufferedReader(java.io.BufferedReader) EnumWikipedia(org.wikipediacleaner.api.constants.EnumWikipedia) File(java.io.File)

Example 13 with Page

use of org.wikipediacleaner.api.data.Page in project wpcleaner by WPCleaner.

the class MainWindow method actionBackLinks.

/**
 * Action called when Back links button is pressed.
 */
public void actionBackLinks() {
    String pageName = checkPagename(GT._T("You must input a page name for retrieving the list of backlinks"));
    if (pageName == null) {
        return;
    }
    Configuration config = Configuration.getConfiguration();
    config.setString(null, ConfigurationValueString.PAGE_NAME, pageName);
    config.save();
    Page page = DataManager.getPage(getWikipedia(), pageName, null, null, null);
    new PageListWorker(getWikipedia(), this, page, Collections.singletonList(pageName), PageListWorker.Mode.BACKLINKS, false, GT._T("Links to {0}", pageName)).start();
}
Also used : PageListWorker(org.wikipediacleaner.gui.swing.pagelist.PageListWorker) WPCConfiguration(org.wikipediacleaner.api.configuration.WPCConfiguration) Configuration(org.wikipediacleaner.utils.Configuration) WikiConfiguration(org.wikipediacleaner.api.configuration.WikiConfiguration) EnumQueryPage(org.wikipediacleaner.api.constants.EnumQueryPage) Page(org.wikipediacleaner.api.data.Page) ConfigurationValueString(org.wikipediacleaner.utils.ConfigurationValueString)

Example 14 with Page

use of org.wikipediacleaner.api.data.Page in project wpcleaner by WPCleaner.

the class ActionFullAnalysis method actionPerformed.

/**
 * Analyze a page.
 *
 * @param e Event triggering this call.
 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
 */
@Override
public void actionPerformed(ActionEvent e) {
    if ((e == null) || (wiki == null)) {
        return;
    }
    // Analyze a list of selected pages
    if (list != null) {
        List<? extends Object> selection = list.getSelectedValuesList();
        List<Page> pages = new ArrayList<>();
        if (selection != null) {
            for (Object object : selection) {
                if (object instanceof Page) {
                    pages.add((Page) object);
                } else if (object instanceof CheckErrorPage) {
                    pages.add(((CheckErrorPage) object).getPage());
                }
            }
        }
        Controller.runFullAnalysis(parent, pages, knownPages, wiki);
        return;
    }
    // Analyze a single page
    if ((text != null) || (combo != null)) {
        String tmp = null;
        if (text != null) {
            tmp = text.getText();
        } else {
            Object select = combo.getSelectedItem();
            if (select != null) {
                tmp = select.toString();
            }
        }
        if ((tmp == null) || (tmp.trim().length() == 0)) {
            Utilities.displayWarning(parent, GT._T("You must input a page name for running a full analysis"), (text != null) ? text : combo);
            return;
        }
        tmp = tmp.trim();
        Configuration config = Configuration.getConfiguration();
        config.setString(null, ConfigurationValueString.PAGE_NAME, tmp);
        config.save();
        Controller.runFullAnalysis(tmp, null, wiki);
        return;
    }
    // Analyze a single page
    if (title != null) {
        Controller.runFullAnalysis(title, null, wiki);
        return;
    }
}
Also used : Configuration(org.wikipediacleaner.utils.Configuration) ArrayList(java.util.ArrayList) Page(org.wikipediacleaner.api.data.Page) CheckErrorPage(org.wikipediacleaner.api.check.CheckErrorPage) CheckErrorPage(org.wikipediacleaner.api.check.CheckErrorPage) ConfigurationValueString(org.wikipediacleaner.utils.ConfigurationValueString)

Example 15 with Page

use of org.wikipediacleaner.api.data.Page in project wpcleaner by WPCleaner.

the class ActionCheckArticle method checkArticles.

/**
 * @param pages List of pages.
 * @param wiki Wiki.
 */
private static void checkArticles(List<Page> pages, EnumWikipedia wiki) {
    CheckArticleTools tools = new CheckArticleTools(wiki);
    try {
        for (Page page : pages) {
            tools.checkArticle(page, null);
        }
    } catch (APIException e) {
        return;
    }
    String report = tools.getReport();
    InformationWindow.createInformationWindow(GT._T("Analysis"), report, false, wiki);
}
Also used : CheckArticleTools(org.wikipediacleaner.gui.swing.worker.CheckArticleTools) APIException(org.wikipediacleaner.api.APIException) Page(org.wikipediacleaner.api.data.Page)

Aggregations

Page (org.wikipediacleaner.api.data.Page)205 APIException (org.wikipediacleaner.api.APIException)71 ArrayList (java.util.ArrayList)66 API (org.wikipediacleaner.api.API)47 WPCConfigurationString (org.wikipediacleaner.api.configuration.WPCConfigurationString)39 ConfigurationValueString (org.wikipediacleaner.utils.ConfigurationValueString)32 WPCConfiguration (org.wikipediacleaner.api.configuration.WPCConfiguration)30 EnumQueryPage (org.wikipediacleaner.api.constants.EnumQueryPage)29 EnumWikipedia (org.wikipediacleaner.api.constants.EnumWikipedia)29 Configuration (org.wikipediacleaner.utils.Configuration)26 Element (org.jdom2.Element)25 JDOMException (org.jdom2.JDOMException)21 HashMap (java.util.HashMap)15 CheckErrorPage (org.wikipediacleaner.api.check.CheckErrorPage)15 PageAnalysis (org.wikipediacleaner.api.data.analysis.PageAnalysis)13 List (java.util.List)12 MediaWiki (org.wikipediacleaner.api.MediaWiki)12 JMenu (javax.swing.JMenu)10 PageElementTemplate (org.wikipediacleaner.api.data.PageElementTemplate)10 ActionWatchPage (org.wikipediacleaner.gui.swing.action.ActionWatchPage)10