#include "MeeTooter.h"
#include <QDebug>
#include <qjson/serializer.h> // QJson 序列化器
#include <qjson/parser.h>     // QJson 解析器

MeeTooter::MeeTooter(QObject *parent) : QObject(parent) {
    networkManager = new QNetworkAccessManager(this);
    connect(networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onReplyFinished(QNetworkReply*)));
}

void MeeTooter::fetchPublicTimeline(const QString &url) {
    QNetworkRequest request(QUrl(url + "/api/v1/timelines/public")); // 使用 Mastodon API 获取公共时间线
    networkManager->get(request);
}

void MeeTooter::onReplyFinished(QNetworkReply *reply) {
    if (reply->error() == QNetworkReply::NoError) {
        QByteArray responseData = reply->readAll();

        // 使用 QJson 库解析 JSON 数据
        QJson::Parser parser;
        bool ok;

        QVariant result = parser.parse(responseData, &ok);

        if (ok && result.type() == QVariant::List) {
            QVariantList timeline = result.toList();

            QVariantList parsedTimeline;

            foreach (const QVariant &item, timeline) {
                QVariantMap itemMap = item.toMap();
                parsedTimeline.append(itemMap["content"]); // 假设 content 是你想显示的字段
            }

            emit timelineFetched(parsedTimeline);
        } else {
            qDebug() << "Error parsing JSON data";
        }
    } else {
        qDebug() << "Network error occurred:" << reply->errorString();
    }

    reply->deleteLater();
}
