/
WordpressReader.groovy
47 lines (41 loc) · 1.57 KB
/
WordpressReader.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package nl.gridshore.wordpress
import groovy.net.xmlrpc.XMLRPCServerProxy
/**
* This class exposes a few methods that help in reading items from a wordpress blog. The wordpress xmlrpc api is
* used to get information from the blog. You initialize this object with the url to the xmlrpc api and the required
* username and password.
*
* @author Jettro Coenradie
*/
class WordpressReader {
private String xmlrpcUrl
private String username
private String password
private XMLRPCServerProxy serverProxy;
def WordpressReader(xmlrpcUrl, username, password) {
this.xmlrpcUrl = xmlrpcUrl
this.username = username
this.password = password
serverProxy = new XMLRPCServerProxy(xmlrpcUrl)
serverProxy.setBasicAuth(username, password)
}
def obtainMostRecentPosts(int number = 10) {
def posts = []
def foundPosts = serverProxy.metaWeblog.getRecentPosts(1, username, password, number)
foundPosts.each {post ->
def blogItem = new BlogItem()
blogItem.id = post['postid']
blogItem.link = post['permaLink']
blogItem.status = post['post_status']
blogItem.keywords = post['mt_keywords']
blogItem.title = post['title']
blogItem.createdOn = post['dateCreated']
blogItem.content = post['description']
blogItem.categories = post['categories']
blogItem.author = post['wp_author_display_name']
blogItem.slug = post['wp_slug']
posts.add(blogItem)
}
return posts
}
}