QString FacebookPostsDatabase::attachmentDescription(const SocialPost::ConstPtr &post)
{
    if (post.isNull()) {
        return QString();
    }
    return post->extra().value(ATTACHMENT_DESCRIPTION_KEY).toString();
}
QString FacebookPostsDatabase::attachmentUrl(const SocialPost::ConstPtr &post)
{
    if (post.isNull()) {
        return QString();
    }
    return post->extra().value(ATTACHMENT_URL_KEY).toString();
}
QString FacebookPostsDatabase::clientId(const SocialPost::ConstPtr &post)
{
    if (post.isNull()) {
        return QString();
    }
    return post->extra().value(CLIENT_ID_KEY).toString();
}
bool FacebookPostsDatabase::allowComment(const SocialPost::ConstPtr &post)
{
    if (post.isNull()) {
        return false;
    }
    return post->extra().value(ALLOW_COMMENT_KEY).toBool();
}
QString TwitterPostsDatabase::consumerSecret(const SocialPost::ConstPtr &post)
{
    if (post.isNull()) {
        return QString();
    }
    return post->extra().value(CONSUMER_SECRET_KEY).toString();
}
QString TwitterPostsDatabase::retweeter(const SocialPost::ConstPtr &post)
{
    if (post.isNull()) {
        return QString();
    }
    return post->extra().value(RETWEETER_KEY).toString();
}
QString TwitterPostsDatabase::screenName(const SocialPost::ConstPtr &post)
{
    if (post.isNull()) {
        return QString();
    }
    return post->extra().value(SCREEN_NAME_KEY).toString();
}