Update url-preview.vue

This commit is contained in:
Acid Chicken (硫酸鶏) 2018-08-09 04:21:25 +09:00 committed by GitHub
parent ebf0479ecc
commit 6a92c19227
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -67,13 +67,20 @@ export default Vue.extend({
if (url.hostname == 'www.youtube.com') { if (url.hostname == 'www.youtube.com') {
this.youtubeId = url.searchParams.get('v'); this.youtubeId = url.searchParams.get('v');
return;
} else if (url.hostname == 'youtu.be') { } else if (url.hostname == 'youtu.be') {
this.youtubeId = url.pathname; this.youtubeId = url.pathname;
return;
} else if (url.hostname == 'open.spotify.com') { } else if (url.hostname == 'open.spotify.com') {
this.spotifyId = url.pathname.split('/').reverse().filter(x => x !== '')[0]; this.spotifyId = url.pathname.split('/').reverse().filter(x => x !== '')[0];
return;
} else if (['nicovideo.jp', 'www.nicovideo.jp', 'nico.ms'].includes(url.hostname)) { } else if (['nicovideo.jp', 'www.nicovideo.jp', 'nico.ms'].includes(url.hostname)) {
this.nicovideoId = url.pathname.split('/').reverse().filter(x => x !== '')[0]; const id = url.pathname.split('/').reverse().filter(x => x !== '')[0];
this.position = url.searchParams.get('from'); if (['sm', 'nm', 'ax', 'ca', 'cd', 'cw', 'fx', 'ig', 'na', 'om', 'sd', 'sk', 'yk', 'yo', 'za', 'zb', 'zc', 'zd', 'ze', 'nl', 'so', ...Array(10).keys()].some(x => id.startsWith(x)) {
this.nicovideoId = id;
this.position = url.searchParams.get('from');
return;
}
} else if (this.detail && url.hostname == 'twitter.com' && /^\/.+\/status(es)?\/\d+/.test(url.pathname)) { } else if (this.detail && url.hostname == 'twitter.com' && /^\/.+\/status(es)?\/\d+/.test(url.pathname)) {
this.tweetUrl = url; this.tweetUrl = url;
const twttr = (window as any).twttr || {}; const twttr = (window as any).twttr || {};
@ -93,19 +100,19 @@ export default Vue.extend({
twttr.ready = loadTweet; twttr.ready = loadTweet;
(window as any).twttr = twttr; (window as any).twttr = twttr;
} }
} else { return;
fetch('/url?url=' + encodeURIComponent(this.url)).then(res => {
res.json().then(info => {
this.title = info.title;
this.description = info.description;
this.thumbnail = info.thumbnail;
this.icon = info.icon;
this.sitename = info.sitename;
this.fetching = false;
});
});
} }
fetch('/url?url=' + encodeURIComponent(this.url)).then(res => {
res.json().then(info => {
this.title = info.title;
this.description = info.description;
this.thumbnail = info.thumbnail;
this.icon = info.icon;
this.sitename = info.sitename;
this.fetching = false;
});
});
} }
}); });
</script> </script>