aboutsummaryrefslogtreecommitdiffstats
path: root/src/net
Commit message (Collapse)AuthorAge
* Implement basic Mastodon API supportConfuSomu2023-08-24
Implement support for OAuth 2.0 code entry, which is then used to retrieve a token that is stored in the application's settings. Authentification allowed the implementation of a basic "get post from URL" feature mostly made for testing.
ef='#n26'>26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
#pragma once

#include "apactor.h"
#include "apbase.h"
#include "apobject.h"
#include "../types.h"
#include <QDateTime>

enum struct APActivityType {CREATE, ANNOUNCE, UNKNOWN};

struct APActivityFields {
    QString by_actor;
    QStringList to_actors;
    QStringList cc_actors;
    QString object_url; // maps to "id", represents the Activity, *not* the URL of the object it contains
    QString published;
    APObject* object; // will generally be a APPost or APReblog
    StatusType visibility;
    APActivityType type = APActivityType::UNKNOWN;
};

class APActivity : APBase {
public:
    APActivity();

    // An Activity that can easily be constructed from an ActivityStreams JSON Activity. Make sure to pass the APObject.
    APActivity(APActivityFields fields);
    ~APActivity();

    APObject* object = nullptr; // the object that's manipulated by this Activity, use APPost for something useful and "manually" create it

    QString get_html_render(HtmlRenderDetails render_info);

private:
    APActorList to_actors;
    APActorList cc_actors;
    APActor by_actor; // the Actor who did this Activity, maps to "actor"

    APActivityType type;
    StatusType visibility;

    //QString object_url; // activity's URL, maps to "id"

    QDateTime published;
};