1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-03 17:59:37 +02:00

Add ability for instances to follow any actor

This commit is contained in:
Chocobozzz 2021-07-20 14:15:15 +02:00
parent 7f28f2ddba
commit 4d029ef8ec
No known key found for this signature in database
GPG key ID: 583A612D890159BE
45 changed files with 884 additions and 528 deletions

View file

@ -4,7 +4,7 @@ import { catchError, map } from 'rxjs/operators'
import { HttpClient, HttpParams } from '@angular/common/http'
import { Injectable } from '@angular/core'
import { RestExtractor, RestPagination, RestService } from '@app/core'
import { ActivityPubActorType, ActorFollow, FollowState, ResultList } from '@shared/models'
import { ActivityPubActorType, ActorFollow, FollowState, ResultList, ServerFollowCreate } from '@shared/models'
import { environment } from '../../../environments/environment'
@Injectable()
@ -64,9 +64,10 @@ export class InstanceFollowService {
)
}
follow (notEmptyHosts: string[]) {
const body = {
hosts: notEmptyHosts
follow (hostsOrHandles: string[]) {
const body: ServerFollowCreate = {
handles: hostsOrHandles.filter(v => v.includes('@')),
hosts: hostsOrHandles.filter(v => !v.includes('@'))
}
return this.authHttp.post(InstanceFollowService.BASE_APPLICATION_URL + '/following', body)
@ -77,7 +78,9 @@ export class InstanceFollowService {
}
unfollow (follow: ActorFollow) {
return this.authHttp.delete(InstanceFollowService.BASE_APPLICATION_URL + '/following/' + follow.following.host)
const handle = follow.following.name + '@' + follow.following.host
return this.authHttp.delete(InstanceFollowService.BASE_APPLICATION_URL + '/following/' + handle)
.pipe(
map(this.restExtractor.extractDataBool),
catchError(res => this.restExtractor.handleError(res))