go colly 爬虫博客到wordpress https://www.aispider.cc
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
2.8 KiB

package wordpress
import "github.com/go-basic/uuid"
type Post struct {
BlogID int
PostContent
}
type PostContent struct {
PostType string `xmlrpc:"post_type"`
PostStatus string `xmlrpc:"post_status"`
PostTitle string `xmlrpc:"post_title"`
PostAuthor int `xmlrpc:"post_author"`
PostExcerpt string `xmlrpc:"post_excerpt"`
PostContent string `xmlrpc:"post_content"`
PostDate string `xmlrpc:"post_date"`
PostFormat string `xmlrpc:"post_format"`
PostName string `xmlrpc:"post_name"`
PostPassword string `xmlrpc:"post_password"`
CommentStatus string `xmlrpc:"comment_status"`
PingStatus string `xmlrpc:"ping_status"`
Sticky int `xmlrpc:"sticky"`
PostThumbnail int `xmlrpc:"post_thumbnail"`
PostParent int `xmlrpc:"post_parent"`
// Terms Terms `xmlrpc:"terms"`
TermsNames TermsNames `xmlrpc:"terms_names"`
Enclosure Enclosure `xmlrpc:"enclosure"`
}
type Terms struct {
TermID string `xmlrpc:"term_id"`
TermGroup string `xmlrpc:"term_group"`
Taxonomy string `xmlrpc:"taxonomy"`
TermTaxonomyID int `xmlrpc:"term_taxonomy_id"`
Name string `xmlrpc:"name"`
Slug string `xmlrpc:"slug"`
Description string `xmlrpc:"description"`
Parent string `xmlrpc:"parent"`
Count int `xmlrpc:"count"`
}
type TermsNames struct {
PostCategory []string `xmlrpc:"category"`
TagsInput []string `xmlrpc:"post_tag"`
}
type Enclosure struct {
Url string `xmlrpc:"url"`
Length int `xmlrpc:"length"`
Type string `xmlrpc:"type"`
}
func (p Post) GetMethord() string {
return `wp.newPost`
}
func (p Post) GetArgs(user string, pwd string) interface{} {
args := make([]interface{}, 4)
args = append(args, p.BlogID, user, pwd, p.PostContent)
return args
}
func NewPost(title string, content string, postDate string, tags []string, cate []string) (p Post) {
p.PostContent = PostContent{
PostType: `post`,
PostStatus: `publish`,
PostTitle: title,
PostName: uuid.New(),
PostContent: content,
PostDate: postDate,
//PostDate: time.Now().Format(`2006-01-02 15:04:05`),
TermsNames: TermsNames{
PostCategory: cate,
TagsInput: tags,
},
}
return p
}
func NewPostAuthor(title string, content string, postDate string, postAuthor int, tags []string, cate []string) (p Post) {
p.PostContent = PostContent{
PostType: `post`,
PostStatus: `publish`,
PostTitle: title,
PostContent: content,
PostAuthor: postAuthor,
PostDate: postDate,
//PostDate: time.Now().Format(`2006-01-02 15:04:05`),
TermsNames: TermsNames{
PostCategory: cate,
TagsInput: tags,
},
}
return p
}
// NewSpecificPost Customize various values by yourself
func NewSpecificPost(content PostContent) (p Post) {
p.PostContent = content
return p
}