mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[feature] Add opt-in RSS feed for account's latest Public posts (#897)
* start adding rss functionality * add gorilla/feeds dependency * first bash at building rss feed still needs work, this is an interim commit * tidy up a bit * add publicOnly option to GetAccountLastPosted * implement rss endpoint * fix test * add initial user docs for rss * update rss logo * docs update * add rssFeed to frontend * feed -> feed.rss * enableRSS * increase rss logo size a lil bit * add rss toggle * move emojify to text package * fiddle with rss feed formatting * add Text field to test statuses * move status to rss item to typeconverter * update bun schema for enablerss * simplify 304 checking * assume account not rss * update tests * update swagger docs * allow more characters in title, trim nicer * update last posted to be more consistent
This commit is contained in:
@@ -380,6 +380,7 @@ func NewTestAccounts() map[string]*gtsmodel.Account {
|
||||
SuspendedAt: time.Time{},
|
||||
HideCollections: FalseBool(),
|
||||
SuspensionOrigin: "",
|
||||
EnableRSS: TrueBool(),
|
||||
},
|
||||
"local_account_1": {
|
||||
ID: "01F8MH1H7YV1Z7D2C8K2730QBF",
|
||||
@@ -419,6 +420,7 @@ func NewTestAccounts() map[string]*gtsmodel.Account {
|
||||
SuspendedAt: time.Time{},
|
||||
HideCollections: FalseBool(),
|
||||
SuspensionOrigin: "",
|
||||
EnableRSS: TrueBool(),
|
||||
},
|
||||
"local_account_2": {
|
||||
ID: "01F8MH5NBDF2MV7CTC4Q5128HF",
|
||||
@@ -1092,6 +1094,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||
URL: "http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||
Content: "hello world! #welcome ! first post on the instance :rainbow: !",
|
||||
Text: "hello world! #welcome ! first post on the instance :rainbow: !",
|
||||
AttachmentIDs: []string{"01F8MH6NEM8D7527KZAECTCR76"},
|
||||
TagIDs: []string{"01F8MHA1A2NF9MJ3WCCQ3K8BSZ"},
|
||||
MentionIDs: []string{},
|
||||
@@ -1120,6 +1123,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/admin/statuses/01F8MHAAY43M6RJ473VQFCVH37",
|
||||
URL: "http://localhost:8080/@admin/statuses/01F8MHAAY43M6RJ473VQFCVH37",
|
||||
Content: "🐕🐕🐕🐕🐕",
|
||||
Text: "🐕🐕🐕🐕🐕",
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:36:45Z"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:36:45Z"),
|
||||
Local: TrueBool(),
|
||||
@@ -1144,6 +1148,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0",
|
||||
URL: "http://localhost:8080/@admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0",
|
||||
Content: "hi @the_mighty_zork welcome to the instance!",
|
||||
Text: "hi @the_mighty_zork welcome to the instance!",
|
||||
CreatedAt: TimeMustParse("2021-11-20T13:32:16Z"),
|
||||
UpdatedAt: TimeMustParse("2021-11-20T13:32:16Z"),
|
||||
Local: TrueBool(),
|
||||
@@ -1170,6 +1175,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/admin/statuses/01G36SF3V6Y6V5BF9P4R7PQG7G",
|
||||
URL: "http://localhost:8080/@admin/statuses/01G36SF3V6Y6V5BF9P4R7PQG7G",
|
||||
Content: "hello everyone!",
|
||||
Text: "hello everyone!",
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:41:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:41:37+02:00"),
|
||||
Local: TrueBool(),
|
||||
@@ -1197,6 +1203,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY",
|
||||
URL: "http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY",
|
||||
Content: "hello everyone!",
|
||||
Text: "hello everyone!",
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
Local: TrueBool(),
|
||||
@@ -1221,6 +1228,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAYFKS4KMXF8K5Y1C0KRN",
|
||||
URL: "http://localhost:8080/@the_mighty_zork/statuses/01F8MHAYFKS4KMXF8K5Y1C0KRN",
|
||||
Content: "this is an unlocked local-only post that shouldn't federate, but it's still boostable, replyable, and likeable",
|
||||
Text: "this is an unlocked local-only post that shouldn't federate, but it's still boostable, replyable, and likeable",
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
Local: TrueBool(),
|
||||
@@ -1245,6 +1253,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHBBN8120SYH7D5S050MGK",
|
||||
URL: "http://localhost:8080/@the_mighty_zork/statuses/01F8MHBBN8120SYH7D5S050MGK",
|
||||
Content: "this is a very personal post that I don't want anyone to interact with at all, and i only want mutuals to see it",
|
||||
Text: "this is a very personal post that I don't want anyone to interact with at all, and i only want mutuals to see it",
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
Local: TrueBool(),
|
||||
@@ -1269,6 +1278,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/the_mighty_zork/statuses/01F8MH82FYRXD2RC6108DAJ5HB",
|
||||
URL: "http://localhost:8080/@the_mighty_zork/statuses/01F8MH82FYRXD2RC6108DAJ5HB",
|
||||
Content: "here's a little gif of trent",
|
||||
Text: "here's a little gif of trent",
|
||||
AttachmentIDs: []string{"01F8MH7TDVANYKWVE8VVKFPJTJ"},
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
@@ -1294,6 +1304,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/the_mighty_zork/statuses/01FCTA44PW9H1TB328S9AQXKDS",
|
||||
URL: "http://localhost:8080/@the_mighty_zork/statuses/01FCTA44PW9H1TB328S9AQXKDS",
|
||||
Content: "hi!",
|
||||
Text: "hi!",
|
||||
AttachmentIDs: []string{},
|
||||
CreatedAt: TimeMustParse("2022-05-20T11:37:55Z"),
|
||||
UpdatedAt: TimeMustParse("2022-05-20T11:37:55Z"),
|
||||
@@ -1319,6 +1330,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/1happyturtle/statuses/01F8MHBQCBTDKN6X5VHGMMN4MA",
|
||||
URL: "http://localhost:8080/@1happyturtle/statuses/01F8MHBQCBTDKN6X5VHGMMN4MA",
|
||||
Content: "🐢 hi everyone i post about turtles 🐢",
|
||||
Text: "🐢 hi everyone i post about turtles 🐢",
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
Local: TrueBool(),
|
||||
@@ -1343,6 +1355,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/1happyturtle/statuses/01F8MHC0H0A7XHTVH5F596ZKBM",
|
||||
URL: "http://localhost:8080/@1happyturtle/statuses/01F8MHC0H0A7XHTVH5F596ZKBM",
|
||||
Content: "🐢 this one is federated, likeable, and boostable but not replyable 🐢",
|
||||
Text: "🐢 this one is federated, likeable, and boostable but not replyable 🐢",
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
Local: TrueBool(),
|
||||
@@ -1367,6 +1380,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/1happyturtle/statuses/01F8MHC8VWDRBQR0N1BATDDEM5",
|
||||
URL: "http://localhost:8080/@1happyturtle/statuses/01F8MHC8VWDRBQR0N1BATDDEM5",
|
||||
Content: "🐢 i don't mind people sharing this one but I don't want likes or replies to it because cba🐢",
|
||||
Text: "🐢 i don't mind people sharing this one but I don't want likes or replies to it because cba🐢",
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
Local: TrueBool(),
|
||||
@@ -1391,6 +1405,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/1happyturtle/statuses/01F8MHCP5P2NWYQ416SBA0XSEV",
|
||||
URL: "http://localhost:8080/@1happyturtle/statuses/01F8MHCP5P2NWYQ416SBA0XSEV",
|
||||
Content: "🐢 this is a public status but I want it local only and not boostable 🐢",
|
||||
Text: "🐢 this is a public status but I want it local only and not boostable 🐢",
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
Local: TrueBool(),
|
||||
@@ -1416,6 +1431,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/1happyturtle/statuses/01FCQSQ667XHJ9AV9T27SJJSX5",
|
||||
URL: "http://localhost:8080/@1happyturtle/statuses/01FCQSQ667XHJ9AV9T27SJJSX5",
|
||||
Content: "🐢 @the_mighty_zork hi zork! 🐢",
|
||||
Text: "🐢 @the_mighty_zork hi zork! 🐢",
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
Local: TrueBool(),
|
||||
@@ -1443,6 +1459,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/1happyturtle/statuses/01FN3VJGFH10KR7S2PB0GFJZYG",
|
||||
URL: "http://localhost:8080/@1happyturtle/statuses/01FN3VJGFH10KR7S2PB0GFJZYG",
|
||||
Content: "🐢 @the_mighty_zork hi zork, this is a direct message, shhhhhh! 🐢",
|
||||
Text: "🐢 @the_mighty_zork hi zork, this is a direct message, shhhhhh! 🐢",
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
Local: TrueBool(),
|
||||
@@ -1470,6 +1487,7 @@ func NewTestStatuses() map[string]*gtsmodel.Status {
|
||||
URI: "http://localhost:8080/users/1happyturtle/statuses/01G20ZM733MGN8J344T4ZDDFY1",
|
||||
URL: "http://localhost:8080/@1happyturtle/statuses/01G20ZM733MGN8J344T4ZDDFY1",
|
||||
Content: "🐢 hi followers! did u know i'm a turtle? 🐢",
|
||||
Text: "🐢 hi followers! did u know i'm a turtle? 🐢",
|
||||
AttachmentIDs: []string{},
|
||||
CreatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
UpdatedAt: TimeMustParse("2021-10-20T12:40:37+02:00"),
|
||||
|
Reference in New Issue
Block a user