diff options
Diffstat (limited to 'src/activitypub/apactivity.h')
-rw-r--r-- | src/activitypub/apactivity.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/activitypub/apactivity.h b/src/activitypub/apactivity.h new file mode 100644 index 0000000..fcfb86c --- /dev/null +++ b/src/activitypub/apactivity.h @@ -0,0 +1,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; +}; |