Posts Extractor: Aplikasi Qt dan API WordPress

Mari belajar Qt lagi. Contoh program Qt kali ini memanfaatkan REST API dari WordPress, yakni Posts API. Yang ini adalah API publik, kita tidak perlu otentikasi OAuth untuk mengaksesnya. Query yang dikirim adalah HTTP GET dan memberikan hasil data JSON.

Nah, contoh aplikasi Qt kali ini akan mengolah data JSON tersebut menjadi HTML atau teks biasa. Kelas-kelas penting yang dibutuhkan antara lain:

  1. QJsonDocument dan lainnya
  2. QWebView untuk menampilkan HTML
  3. QDateTime untuk manipulasi tanggal
  4. QListView untuk menampilkan daftar file dalam folder
  5. dll.

Beginilah tampilan aplikasinya:

wp post extractor
Tampilan aplikasi WP Post Extractor. (bukan windows 8 lho) 🙂

Program ini membutuhkan Qt 5 karena menggunakan kelas QJsonDocument. Cuplikan kodenya:

void PostExtractor::listview_clicked(const QModelIndex &index)
{
    QString jalurFile = ramban->fileInfo(index).absoluteFilePath();
    QFile file(jalurFile);
    jalurSimpan->setText(jalurFile.replace(".json",".html"));
    file.open(QIODevice::ReadOnly | QIODevice::Text);
    QByteArray isiJson = file.readAll();

    QJsonParseError err;
    QJsonDocument doc = QJsonDocument::fromJson(isiJson,&err);
    QJsonObject objek = doc.object();
    if(!objek.value("found").isNull()){
        QJsonValue posting = objek.value("posts");
        QJsonArray isiPos = posting.toArray();

        QString html;
        ui->statusBar->showMessage("Loading....");
        for(int i = isiPos.size(); i-- > 0;){
            QJsonObject isi = isiPos.at(i).toObject();
            QDateTime tanggal = QDateTime::fromString(isi.value("date").toString(),Qt::ISODate);
            QString tanggalPos = tanggal.toString("<p>dd MMMM yyyy hh:mm</p>");

            html.append("<h2>"+isi.value("title").toString()+"</h2>\n");
            html.append(tanggalPos);
            html.append("<p>"+isi.value("short_URL").toString()+"</p>");
            html.append(isi.value("content").toString());
        }
        tampilHtml->setHtml(html);
        ui->statusBar->showMessage("Selesai.");
    }
    else
    {
        tampilHtml->setHtml("<h2>Bukan file yang dimaksud</h2>");
    }
    file.close();

}

Program ini tidak mengunduh langsung data JSON dari API WordPress. Jadi, unduh sendiri, misalnya postingan dari blog ini dengan alamat:

https://public-api.wordpress.com/rest/v1.1/sites/bokunokeiken.wordpress.com/posts/?pretty=1&number=10

lalu simpan sebagai file .json. Pada program, Open folder dan arahkan ke folder tempat menyimpan file tersebut. Klik file-nya dan pilih salah satu tombol simpan.

Kode sumber dapat diunduh dari repository git pada Github: https://github.com/baddwin/wp-post-extractor

Semoga bermanfaat.

Advertisements

Published by

Badwi

A Muslim, sober, a Javanese

5 thoughts on “Posts Extractor: Aplikasi Qt dan API WordPress”

Share your idea here (markdown enabled)

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s