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();
}
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) {
//
}
}
}
}
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();
}
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;
}
}
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);
}
Aggregations