diff options
-rw-r--r-- | Database.go | 6 | ||||
-rw-r--r-- | activityPubStruct.go | 2 | ||||
-rw-r--r-- | main.go | 17 | ||||
-rw-r--r-- | outboxGet.go | 3 |
4 files changed, 19 insertions, 9 deletions
diff --git a/Database.go b/Database.go index d0f6892..f79bf50 100644 --- a/Database.go +++ b/Database.go @@ -290,8 +290,11 @@ func WritePreviewToDB(db *sql.DB, obj NestedObjectBase) { func GetActivityFromDB(db *sql.DB, id string) Collection { var nColl Collection + var nActor Actor var result []ObjectBase + nColl.Actor = &nActor + query := `select actor, id, name, content, type, published, updated, attributedto, attachment, preview, actor from activitystream where id=$1 order by updated asc` rows, err := db.Query(query, id) @@ -305,7 +308,8 @@ func GetActivityFromDB(db *sql.DB, id string) Collection { var attachID string var previewID string - err = rows.Scan(&nColl.Actor, &post.Id, &post.Name, &post.Content, &post.Type, &post.Published, &post.Updated, &post.AttributedTo, &attachID, &previewID, &actor.Id) + + err = rows.Scan(&nColl.Actor.Id, &post.Id, &post.Name, &post.Content, &post.Type, &post.Published, &post.Updated, &post.AttributedTo, &attachID, &previewID, &actor.Id) CheckError(err, "error scan object into post struct") diff --git a/activityPubStruct.go b/activityPubStruct.go index d200f64..f145a01 100644 --- a/activityPubStruct.go +++ b/activityPubStruct.go @@ -176,7 +176,7 @@ type NestedObjectBase struct { } type CollectionBase struct { - Actor string `json:"actor,omitempty"` + Actor *Actor `json:"actor,omitempty"` Summary string `json:"summary,omitempty"` Type string `json:"type,omitempty"` TotalItems int `json:"totalItems,omitempty"` @@ -271,8 +271,6 @@ func main() { return } - - actor := GetActorFromPath(db, id, "/") if !HasAuth(db, auth[1], actor.Id) { @@ -280,7 +278,7 @@ func main() { w.Write([]byte("")) return } - + reported := DeleteReportActivity(db, id) if reported { w.Write([]byte("")) @@ -709,7 +707,10 @@ func GetActor(id string) Actor { resp, err := http.DefaultClient.Do(req) - CheckError(err, "error with getting actor resp") + if err != nil { + fmt.Println("error with getting actor resp") + return respActor + } defer resp.Body.Close() @@ -910,7 +911,7 @@ func ReportActivity(db *sql.DB, id string) bool { } if count < 1 { - query = fmt.Sprintf("insert into reported (id, count, board) values ('%s', %d, '%s')", id, 1, actor.Actor) + query = fmt.Sprintf("insert into reported (id, count, board) values ('%s', %d, '%s')", id, 1, actor.Actor.Id) _, err := db.Exec(query) @@ -966,16 +967,20 @@ func GetActorReported(w http.ResponseWriter, r *http.Request, db *sql.DB, id str func MakeActivityRequest(activity Activity) { j, _ := json.MarshalIndent(activity, "", "\t") + for _, e := range activity.To { + actor := GetActor(e) + if actor.Inbox != "" { req, err := http.NewRequest("POST", actor.Inbox, bytes.NewBuffer(j)) CheckError(err, "error with sending activity req to") _, err = http.DefaultClient.Do(req) - CheckError(err, "error with sending activity resp to") + CheckError(err, "error with sending activity resp to") + } } } diff --git a/outboxGet.go b/outboxGet.go index 7aaf70f..dbd0fa9 100644 --- a/outboxGet.go +++ b/outboxGet.go @@ -13,7 +13,8 @@ func GetActorOutbox(w http.ResponseWriter, r *http.Request, db *sql.DB) { collection.OrderedItems = GetObjectFromDB(db, actor).OrderedItems collection.AtContext.Context = "https://www.w3.org/ns/activitystreams" - collection.Actor = actor.Id + collection.Actor = &actor + collection.Actor.AtContext.Context = "" collection.TotalItems = GetObjectPostsTotalDB(db, actor) collection.TotalImgs = GetObjectImgsTotalDB(db, actor) |