Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Article history (revisions), search, etc. #18

Open
ghost opened this issue Jul 7, 2014 · 6 comments
Open

Article history (revisions), search, etc. #18

ghost opened this issue Jul 7, 2014 · 6 comments

Comments

@ghost
Copy link

ghost commented Jul 7, 2014

Hi again!

As you library seems to be the only available library for Java (there are one or two apart, but those are not being updated more) when we talk about MediaWiki API (i.e., not through database dump), I did keep testing you library.

Are you thinking to introduce a way to work with the revisions?

Search for Wikitext in various pages? Seems that now they introduced the CirrusSearch and its able to do search with regular expressions (see http://www.mediawiki.org/wiki/Thread:Help_talk:CirrusSearch/Regular_expressions), but I don't known ifs available through the rest API.

Those features would be interesting for example, in the area of anti-vandalism.

@eldur
Copy link
Owner

eldur commented Jul 8, 2014

Hi guiwp,

good point, but actually I have a few other plans instead of adding search entities, but if you want to help it seems not very difficult. (Else I have to schedule this task for later.)

See:
https://www.mediawiki.org/wiki/API:Search
http://www.mediawiki.org/w/api.php (search for "Perform a full text search.")

Maybe like this:

public class Search extends TitleQuery<SearchResult> {
...
Get searchRequest = new ApiRequestBuilder().action("query") //
        .formatJson() //
        .paramNewContinue(mediaWikiVersion) //
        .param("list", "search") //
        .param("srsearch", "wikipedia") //
        .param("srbackend", "CirrusSearch") // or LuceneSearch
// http://www.mediawiki.org/w/api.php?action=query&list=search
// &srsearch=wikipedia&srbackend=CirrusSearch&format=json&continue=-||
...

public class SearchResult {
  final int namespace;
  final String title;
  final String snippet;
  ...
}

At JsonMapperTest.java you can find an example how to map any json response.

@ghost
Copy link
Author

ghost commented Jul 8, 2014

Good answer, I found very simple and effective to start testing adding stuff into the code. But anyway, I feel that I can wait (as you said Else I have to schedule this task for later).

Thank you again :)

@eldur eldur added this to the 3.1 milestone Jul 8, 2014
@fhocutt
Copy link
Contributor

fhocutt commented Aug 1, 2014

I'm interested in adding a search function as described here.

@eldur eldur modified the milestones: 3.1, 3.2 Dec 7, 2014
eldur pushed a commit that referenced this issue Dec 7, 2014
eldur added a commit that referenced this issue Dec 7, 2014
eldur added a commit that referenced this issue Dec 7, 2014
@eldur
Copy link
Owner

eldur commented Dec 13, 2014

@guiwp have you tried gerhardgossen implementation? Actual without a toggle for srbackend but maybe enough?

@ZeroOne3010
Copy link
Contributor

@eldur What's the status on getting old revisions of an article? I suppose it should be implemented by adding a support for rvendid and rvstartid API request parameters into the GetRevision -- or perhaps by adding a similar class dedicated only to getting specific revisions (i.e. having a List<SimpleArticle> as its primary return type). The query itself seems to look like this: /api.php?action=query&prop=revisions&titles=TitleOfTheArticle&rvprop=timestamp|user|comment|content&rvendid=OLDER_REVISION&rvstartid=NEWER_REVISION (switching the older and newer revisions if rvdir=newer is given as well).

@eldur
Copy link
Owner

eldur commented Jul 24, 2019

@ZeroOne3010 if something is missing here send a pull request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants