tiny 88x31 lexicon for atproto
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

yea yea yea

+14 -7
+5 -4
db/lexicon.go
··· 208 208 209 209 func (s *Store) GetMyLikesFor(buttonuri string, buttoncid string, mydid string, ctx context.Context) ([]string, error) { 210 210 rows, err := s.pool.Query(ctx, ` 211 - SELECT uri FROM likes WHERE subject_uri = $1 AND subject_cid = $2 AND did = $3 211 + SELECT uri, cid FROM likes WHERE subject_uri = $1 AND subject_cid = $2 AND did = $3 212 212 `, buttonuri, buttoncid, mydid) 213 213 if err != nil { 214 214 return nil, err 215 215 } 216 216 var resuris []string = make([]string, 0) 217 - var resuri string 217 + var uri string 218 + var cid string 218 219 for rows.Next() { 219 - err = rows.Scan(&resuri) 220 + err = rows.Scan(&uri, &cid) 220 221 if err != nil { 221 222 return nil, err 222 223 } 223 - resuris = append(resuris, resuri) 224 + resuris = append(resuris, fmt.Sprintf("%s %s", uri, cid)) 224 225 } 225 226 if err != nil { 226 227 err = errors.New(fmt.Sprintf("error scanning like subject: %s; uri %s", err.Error(), buttonuri))
+9 -3
handler/upload.go
··· 89 89 http.Redirect(w, r, fmt.Sprintf("/button?uri=%s", uri), http.StatusSeeOther) 90 90 return 91 91 } 92 - for _, likeuri := range ll { 93 - log.Println(likeuri) 92 + for _, likeuricid := range ll { 93 + arr := strings.Split(likeuricid, " ") 94 + if len(arr) != 2 { 95 + http.Error(w, "invalid likeuricid", http.StatusInternalServerError) 96 + return 97 + } 98 + likeuri := arr[0] 99 + likecid := arr[1] 94 100 aturi, err := syntax.ParseATURI(likeuri) 95 101 if err != nil { 96 102 http.Error(w, "uri doesn't parse, don't tamper with form", http.StatusBadRequest) 97 103 return 98 104 } 99 - err = myoauth.DeleteLike(cs, aturi.RecordKey().String(), cid, r.Context()) 105 + err = myoauth.DeleteLike(cs, aturi.RecordKey().String(), likecid, r.Context()) 100 106 if err != nil { 101 107 log.Println(err) 102 108 http.Error(w, "error deleting like", http.StatusInternalServerError)