diff options
Diffstat (limited to 'client/src/app/shared/user-subscription')
3 files changed, 17 insertions, 16 deletions
diff --git a/client/src/app/shared/user-subscription/remote-subscribe.component.ts b/client/src/app/shared/user-subscription/remote-subscribe.component.ts index ba2a45df1..63e7cd5d9 100644 --- a/client/src/app/shared/user-subscription/remote-subscribe.component.ts +++ b/client/src/app/shared/user-subscription/remote-subscribe.component.ts | |||
@@ -11,7 +11,7 @@ import { | |||
11 | styleUrls: ['./remote-subscribe.component.scss'] | 11 | styleUrls: ['./remote-subscribe.component.scss'] |
12 | }) | 12 | }) |
13 | export class RemoteSubscribeComponent extends FormReactive implements OnInit { | 13 | export class RemoteSubscribeComponent extends FormReactive implements OnInit { |
14 | @Input() account: string | 14 | @Input() uri: string |
15 | @Input() interact = false | 15 | @Input() interact = false |
16 | @Input() showHelp = false | 16 | @Input() showHelp = false |
17 | 17 | ||
@@ -42,19 +42,20 @@ export class RemoteSubscribeComponent extends FormReactive implements OnInit { | |||
42 | fetch(`https://${hostname}/.well-known/webfinger?resource=acct:${username}@${hostname}`) | 42 | fetch(`https://${hostname}/.well-known/webfinger?resource=acct:${username}@${hostname}`) |
43 | .then(response => response.json()) | 43 | .then(response => response.json()) |
44 | .then(data => new Promise((resolve, reject) => { | 44 | .then(data => new Promise((resolve, reject) => { |
45 | console.log(data) | ||
46 | |||
45 | if (data && Array.isArray(data.links)) { | 47 | if (data && Array.isArray(data.links)) { |
46 | const link: { | 48 | const link: { template: string } = data.links.find((link: any) => { |
47 | template: string | 49 | return link && typeof link.template === 'string' && link.rel === 'http://ostatus.org/schema/1.0/subscribe' |
48 | } = data.links.find((link: any) => | 50 | }) |
49 | link && typeof link.template === 'string' && link.rel === 'http://ostatus.org/schema/1.0/subscribe') | ||
50 | 51 | ||
51 | if (link && link.template.includes('{uri}')) { | 52 | if (link && link.template.includes('{uri}')) { |
52 | resolve(link.template.replace('{uri}', `acct:${this.account}`)) | 53 | resolve(link.template.replace('{uri}', encodeURIComponent(this.uri))) |
53 | } | 54 | } |
54 | } | 55 | } |
55 | reject() | 56 | reject() |
56 | })) | 57 | })) |
57 | .then(window.open) | 58 | .then(window.open) |
58 | .catch(() => window.open(`https://${hostname}/authorize_interaction?acct=${this.account}`)) | 59 | .catch(err => console.error(err)) |
59 | } | 60 | } |
60 | } | 61 | } |
diff --git a/client/src/app/shared/user-subscription/subscribe-button.component.html b/client/src/app/shared/user-subscription/subscribe-button.component.html index dbf6a34f0..d32647b42 100644 --- a/client/src/app/shared/user-subscription/subscribe-button.component.html +++ b/client/src/app/shared/user-subscription/subscribe-button.component.html | |||
@@ -41,7 +41,7 @@ | |||
41 | </button> | 41 | </button> |
42 | 42 | ||
43 | <button class="dropdown-item" i18n>Subscribe with a Mastodon account:</button> | 43 | <button class="dropdown-item" i18n>Subscribe with a Mastodon account:</button> |
44 | <my-remote-subscribe showHelp="true" account="{{ uriAccount }}"></my-remote-subscribe> | 44 | <my-remote-subscribe showHelp="true" [uri]="channelUri"></my-remote-subscribe> |
45 | 45 | ||
46 | <div class="dropdown-divider"></div> | 46 | <div class="dropdown-divider"></div> |
47 | 47 | ||
@@ -50,4 +50,4 @@ | |||
50 | 50 | ||
51 | </div> | 51 | </div> |
52 | </div> | 52 | </div> |
53 | </div> \ No newline at end of file | 53 | </div> |
diff --git a/client/src/app/shared/user-subscription/subscribe-button.component.ts b/client/src/app/shared/user-subscription/subscribe-button.component.ts index ef470ee44..25515f6ea 100644 --- a/client/src/app/shared/user-subscription/subscribe-button.component.ts +++ b/client/src/app/shared/user-subscription/subscribe-button.component.ts | |||
@@ -28,19 +28,19 @@ export class SubscribeButtonComponent implements OnInit { | |||
28 | private videoService: VideoService | 28 | private videoService: VideoService |
29 | ) { } | 29 | ) { } |
30 | 30 | ||
31 | get uri () { | 31 | get channelHandle () { |
32 | return this.videoChannel.name + '@' + this.videoChannel.host | 32 | return this.videoChannel.name + '@' + this.videoChannel.host |
33 | } | 33 | } |
34 | 34 | ||
35 | get uriAccount () { | 35 | get channelUri () { |
36 | return this.videoChannel.ownerAccount.name + '@' + this.videoChannel.host | 36 | return this.videoChannel.url |
37 | } | 37 | } |
38 | 38 | ||
39 | ngOnInit () { | 39 | ngOnInit () { |
40 | if (this.isUserLoggedIn()) { | 40 | if (this.isUserLoggedIn()) { |
41 | this.userSubscriptionService.doesSubscriptionExist(this.uri) | 41 | this.userSubscriptionService.doesSubscriptionExist(this.channelHandle) |
42 | .subscribe( | 42 | .subscribe( |
43 | res => this.subscribed = res[this.uri], | 43 | res => this.subscribed = res[this.channelHandle], |
44 | 44 | ||
45 | err => this.notifier.error(err.message) | 45 | err => this.notifier.error(err.message) |
46 | ) | 46 | ) |
@@ -56,7 +56,7 @@ export class SubscribeButtonComponent implements OnInit { | |||
56 | } | 56 | } |
57 | 57 | ||
58 | localSubscribe () { | 58 | localSubscribe () { |
59 | this.userSubscriptionService.addSubscription(this.uri) | 59 | this.userSubscriptionService.addSubscription(this.channelHandle) |
60 | .subscribe( | 60 | .subscribe( |
61 | () => { | 61 | () => { |
62 | this.subscribed = true | 62 | this.subscribed = true |
@@ -78,7 +78,7 @@ export class SubscribeButtonComponent implements OnInit { | |||
78 | } | 78 | } |
79 | 79 | ||
80 | localUnsubscribe () { | 80 | localUnsubscribe () { |
81 | this.userSubscriptionService.deleteSubscription(this.uri) | 81 | this.userSubscriptionService.deleteSubscription(this.channelHandle) |
82 | .subscribe( | 82 | .subscribe( |
83 | () => { | 83 | () => { |
84 | this.subscribed = false | 84 | this.subscribed = false |