aboutsummaryrefslogtreecommitdiffstats
path: root/src/activitypub/apreblog.h
blob: 66a63821c030d5e09b637087190753731d2d4631 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once

#include "apobject.h"
#include "apobject.h"
#include "src/types.h"
#include <QMetaType>
#include <memory>
#include <vector>

struct APReblogFields {
    QString object; // the object's URL that was reblogged
    StatusType visibility; // you can have non-public visibility of reblogs on Mastodon
};

// APReblog represents an ActivityPub Announce activity, which is a kind of object in a sense. This class is really used just for light bookeeping.
// The visibility is just the visibility (to & cc) of the APActivity it came from.
class APReblog : public APObject {
public:
    APReblog();
    // A post that will be built from strings
    APReblog(APReblogFields fields);
    ~APReblog() {};

    QString get_html_render(HtmlRenderDetails render_info);

protected:
    APObject object; // the object that was reblogged (impossible to be an APReblog)
    StatusType visibility;
};

typedef std::shared_ptr<APReblog> APReblogPtr;
Q_DECLARE_METATYPE(APReblogPtr);