aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/shared/user-subscription
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/shared/user-subscription')
-rw-r--r--client/src/app/shared/user-subscription/remote-subscribe.component.ts15
-rw-r--r--client/src/app/shared/user-subscription/subscribe-button.component.html4
-rw-r--r--client/src/app/shared/user-subscription/subscribe-button.component.ts14
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})
13export class RemoteSubscribeComponent extends FormReactive implements OnInit { 13export 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