24 #include "blogpost_p.h"
30 #include <kcal/journal.h>
32 #include <QStringList>
37 : d_ptr( new BlogPostPrivate )
41 d_ptr->mPostId = post.
postId();
42 d_ptr->mTitle = post.
title();
43 d_ptr->mContent = post.
content();
45 d_ptr->mWpSlug = post.
slug();
47 d_ptr->mTags = post.
tags();
48 d_ptr->mMood = post.
mood();
50 d_ptr->mSummary = post.
summary();
51 d_ptr->mLink = post.
link();
52 d_ptr->mMusic = post.
music();
55 d_ptr->mError = post.
error();
57 d_ptr->mStatus = post.
status();
63 : d_ptr( new BlogPostPrivate )
66 d_ptr->mPrivate =
false;
72 : d_ptr( new BlogPostPrivate )
75 d_ptr->mPrivate =
false;
76 d_ptr->mPostId = journal.customProperty(
"KBLOG",
"ID" );
77 d_ptr->mJournalId = journal.uid();
79 d_ptr->mTitle = journal.summary();
80 if ( journal.descriptionIsRich() ) {
81 d_ptr->mContent = d_ptr->cleanRichText( journal.description() );
83 d_ptr->mContent = journal.description();
85 d_ptr->mCategories = journal.categories();
86 d_ptr->mCreationDateTime = journal.dtStart();
110 QString url = blog.
url().url();
112 QString blogId = blog.
blogId();
114 QString
id =
"kblog-" + url +
'-' + blogId +
'-' + username +
115 '-' + d_ptr->mPostId;
116 KCal::Journal *
journal =
new KCal::Journal();
117 journal->setUid(
id );
118 journal->setSummary( d_ptr->mTitle );
119 journal->setCategories( d_ptr->mCategories );
120 journal->setDescription( d_ptr->mContent,
true );
121 journal->setDtStart( d_ptr->mCreationDateTime );
122 journal->setCustomProperty(
"KBLOG",
"URL", url );
123 journal->setCustomProperty(
"KBLOG",
"USER", blog.
username() );
124 journal->setCustomProperty(
"KBLOG",
"BLOG", blogId );
125 journal->setCustomProperty(
"KBLOG",
"ID", d_ptr->mPostId );
131 return d_ptr->mJournalId;
136 return d_ptr->mPrivate;
141 d_ptr->mPrivate = privatePost;
146 return d_ptr->mPostId;
156 return d_ptr->mTitle;
161 d_ptr->mTitle =
title;
166 return d_ptr->mContent;
188 return d_ptr->mAdditionalContent;
198 return d_ptr->mWpSlug;
203 d_ptr->mWpSlug =
slug;
218 return d_ptr->mPermaLink;
223 d_ptr->mPermaLink = permalink;
228 return d_ptr->mCommentAllowed;
233 d_ptr->mCommentAllowed = commentAllowed;
238 return d_ptr->mCommentAllowed;
243 d_ptr->mTrackBackAllowed = allowTrackBacks;
248 return d_ptr->mSummary;
290 return d_ptr->mMusic;
295 d_ptr->mMusic =
music;
300 return d_ptr->mCategories;
310 return d_ptr->mCreationDateTime;
315 d_ptr->mCreationDateTime = datetime;
320 return d_ptr->mModificationDateTime;
325 d_ptr->mModificationDateTime = datetime;
330 return d_ptr->mStatus;
340 return d_ptr->mError;
345 d_ptr->mError =
error;
355 QString BlogPostPrivate::cleanRichText( QString richText )
const
357 QRegExp getBodyContents(
"<body[^>]*>(.*)</body>" );
358 if ( getBodyContents.indexIn( richText ) ) {
360 richText = getBodyContents.cap( 1 );
362 richText.remove( QRegExp(
"^\\s+" ) );
365 richText.replace( QRegExp(
"<p style=\"[^\"]*\">" ),
"<p>" );
368 if ( richText ==
"<p></p>" ) {