Alex Thomassen revised this gist 4 years ago. Go to revision
1 file changed, 5 insertions
README.md
| @@ -14,6 +14,11 @@ This script does not work with URLs that are on the Twitch "channel pages" (`htt | |||
| 14 | 14 | 1. Install a userscript extension (such as [Tampermonkey](https://www.tampermonkey.net/)). | |
| 15 | 15 | 2. Click on [this link](https://gist.github.com/Decicus/ec4745e680e06cfff5b1fa0a53fcff72/raw/twitch-clips-datetime.user.js) when Tampermonkey is installed, and it will prompt you to install the userscript. | |
| 16 | 16 | ||
| 17 | + | ## Changelog | |
| 18 | + | ||
| 19 | + | - v0.4.0 - 2021-08-29 | |
| 20 | + | - Date/time placement was adjusted due to changes in the page on Twitch's end. See [screenshots](#screenshots). | |
| 21 | + | ||
| 17 | 22 | ## Screenshots: | |
| 18 | 23 | ||
| 19 | 24 | As of v0.4.0, the timestamp shows up a bit different compared to earlier versions. | |
Alex Thomassen revised this gist 4 years ago. Go to revision
1 file changed, 45 insertions, 9 deletions
twitch-clips-datetime.user.js
| @@ -1,17 +1,19 @@ | |||
| 1 | 1 | // ==UserScript== | |
| 2 | 2 | // @name Twitch Clips - Show date & time | |
| 3 | - | // @version 0.3.0 | |
| 3 | + | // @version 0.4.0 | |
| 4 | + | // @namespace https://github.com/Decicus | |
| 4 | 5 | // @description Displays the actual date & time of when a clip was created, instead of the useless "xxx days/months/weeks ago" | |
| 5 | 6 | // @author Decicus | |
| 6 | 7 | // @updateURL https://gist.github.com/Decicus/ec4745e680e06cfff5b1fa0a53fcff72/raw/twitch-clips-datetime.user.js | |
| 7 | 8 | // @downloadURL https://gist.github.com/Decicus/ec4745e680e06cfff5b1fa0a53fcff72/raw/twitch-clips-datetime.user.js | |
| 9 | + | // @homepageURL https://gist.github.com/Decicus/ec4745e680e06cfff5b1fa0a53fcff72 | |
| 10 | + | // @icon https://i.alex.lol/2021-08-29_PmO4zo.png | |
| 8 | 11 | // @match https://clips.twitch.tv/* | |
| 12 | + | // @license MIT | |
| 9 | 13 | // ==/UserScript== | |
| 10 | 14 | ||
| 11 | - | (async function() { | |
| 12 | - | 'use strict'; | |
| 13 | - | ||
| 14 | - | const slug = window.location.href.match(/https\:\/\/clips\.twitch\.tv\/([A-z0-9-]+)/m)[1]; | |
| 15 | + | async function fetchClip() { | |
| 16 | + | const slug = window.location.href.match(/https\:\/\/clips\.twitch\.tv\/([A-z0-9-_]+)/m)[1]; | |
| 15 | 17 | ||
| 16 | 18 | if (!slug) { | |
| 17 | 19 | return; | |
| @@ -33,9 +35,43 @@ | |||
| 33 | 35 | const created = new Date(data.created_at); | |
| 34 | 36 | const dateAndTime = created.toLocaleString(); | |
| 35 | 37 | ||
| 36 | - | const box = document.getElementsByClassName('clips-chat-info tw-align-items-start tw-flex tw-flex-column tw-flex-grow-1 tw-flex-shrink-1 tw-justify-content-center tw-lg-mg-y-2 tw-mg-t-1'); | |
| 38 | + | const box = document.querySelector('.clips-sidebar-info'); | |
| 39 | + | const layoutClass = box.classList[0]; | |
| 40 | + | ||
| 41 | + | const textElement = document.querySelector('span[class*="CoreText"]'); | |
| 42 | + | const textClass = textElement.classList[0]; | |
| 43 | + | ||
| 37 | 44 | const element = document.createElement('div'); | |
| 38 | - | element.innerHTML = `<span class="tw-font-size-5 tw-strong">Clip created:</span><br /><span>${dateAndTime}</span>`; | |
| 45 | + | element.className = layoutClass; | |
| 46 | + | element.setAttribute('style', 'text-align: center; margin-top: 1em;'); | |
| 47 | + | element.innerHTML = `<span class="${textClass}"><strong>Clip created:</strong> ${dateAndTime}</span>`; | |
| 48 | + | ||
| 49 | + | box.insertAdjacentElement('afterbegin', element); | |
| 50 | + | } | |
| 51 | + | ||
| 52 | + | /** | |
| 53 | + | * Observe the DOM until we find the element we're interested in. | |
| 54 | + | * Once complete, disconnect the observer and call the `fetchClip()` function which actually inserts the | |
| 55 | + | * timestamp into the DOM. | |
| 56 | + | */ | |
| 57 | + | function observerHandler(mutations, observer) | |
| 58 | + | { | |
| 59 | + | const textElement = document.querySelector('span[class*="CoreText"]'); | |
| 60 | + | ||
| 61 | + | if (!textElement) { | |
| 62 | + | return; | |
| 63 | + | } | |
| 64 | + | ||
| 65 | + | fetchClip(); | |
| 66 | + | observer.disconnect(); | |
| 67 | + | } | |
| 39 | 68 | ||
| 40 | - | box[0].appendChild(element); | |
| 41 | - | })(); | |
| 69 | + | window.addEventListener('DOMContentLoaded', function() { | |
| 70 | + | const observer = new MutationObserver(observerHandler); | |
| 71 | + | observer.observe(document, { | |
| 72 | + | attributes: false, | |
| 73 | + | childList: true, | |
| 74 | + | characterData: false, | |
| 75 | + | subtree: true, | |
| 76 | + | }); | |
| 77 | + | }); | |
Alex Thomassen revised this gist 4 years ago. Go to revision
1 file changed, 13 insertions, 3 deletions
README.md
| @@ -1,10 +1,12 @@ | |||
| 1 | 1 | # Twitch clip datetime userscript | |
| 2 | 2 | ||
| 3 | - | A userscript for displaying the actual date & time (relative to local time) of when a Twitch clip was created. | |
| 3 | + | A userscript for displaying the actual date & time (relative to **local time**) of when a Twitch clip was created. | |
| 4 | 4 | ||
| 5 | 5 | **FYI**: It only works on URLs that start with `https://clips.twitch.tv/`. | |
| 6 | 6 | This script does not work with URLs that are on the Twitch "channel pages" (`https://www.twitch.tv/CHANNEL_NAME_HERE/clip/...`). | |
| 7 | 7 | ||
| 8 | + | "Under the hood" the script uses [`Date.toLocaleString()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString) to format the date. The format of the date & time may differ from the screenshots below. | |
| 9 | + | ||
| 8 | 10 | ## Requirements: | |
| 9 | 11 | - Something like the [Tampermonkey](https://www.tampermonkey.net/) extension installed for your browser. | |
| 10 | 12 | ||
| @@ -12,6 +14,14 @@ This script does not work with URLs that are on the Twitch "channel pages" (`htt | |||
| 12 | 14 | 1. Install a userscript extension (such as [Tampermonkey](https://www.tampermonkey.net/)). | |
| 13 | 15 | 2. Click on [this link](https://gist.github.com/Decicus/ec4745e680e06cfff5b1fa0a53fcff72/raw/twitch-clips-datetime.user.js) when Tampermonkey is installed, and it will prompt you to install the userscript. | |
| 14 | 16 | ||
| 15 | - | ## Screenshot: | |
| 17 | + | ## Screenshots: | |
| 18 | + | ||
| 19 | + | As of v0.4.0, the timestamp shows up a bit different compared to earlier versions. | |
| 20 | + | ||
| 21 | + | ### Without chat (beginning of clip) | |
| 22 | + | ||
| 23 | + |  | |
| 24 | + | ||
| 25 | + | ### With chat | |
| 16 | 26 | ||
| 17 | - |  | |
| 27 | + |  | |
Alex Thomassen revised this gist 4 years ago. Go to revision
1 file changed, 3 insertions, 1 deletion
twitch-clips-datetime.user.js
| @@ -1,8 +1,10 @@ | |||
| 1 | 1 | // ==UserScript== | |
| 2 | 2 | // @name Twitch Clips - Show date & time | |
| 3 | - | // @version 0.3 | |
| 3 | + | // @version 0.3.0 | |
| 4 | 4 | // @description Displays the actual date & time of when a clip was created, instead of the useless "xxx days/months/weeks ago" | |
| 5 | 5 | // @author Decicus | |
| 6 | + | // @updateURL https://gist.github.com/Decicus/ec4745e680e06cfff5b1fa0a53fcff72/raw/twitch-clips-datetime.user.js | |
| 7 | + | // @downloadURL https://gist.github.com/Decicus/ec4745e680e06cfff5b1fa0a53fcff72/raw/twitch-clips-datetime.user.js | |
| 6 | 8 | // @match https://clips.twitch.tv/* | |
| 7 | 9 | // ==/UserScript== | |
| 8 | 10 | ||
Alex Thomassen revised this gist 4 years ago. Go to revision
1 file changed, 2 insertions, 2 deletions
twitch-clips-datetime.user.js
| @@ -1,6 +1,6 @@ | |||
| 1 | 1 | // ==UserScript== | |
| 2 | 2 | // @name Twitch Clips - Show date & time | |
| 3 | - | // @version 0.2 | |
| 3 | + | // @version 0.3 | |
| 4 | 4 | // @description Displays the actual date & time of when a clip was created, instead of the useless "xxx days/months/weeks ago" | |
| 5 | 5 | // @author Decicus | |
| 6 | 6 | // @match https://clips.twitch.tv/* | |
| @@ -9,7 +9,7 @@ | |||
| 9 | 9 | (async function() { | |
| 10 | 10 | 'use strict'; | |
| 11 | 11 | ||
| 12 | - | const slug = window.location.href.match(/https\:\/\/clips\.twitch\.tv\/([A-z0-9]+)/m)[1]; | |
| 12 | + | const slug = window.location.href.match(/https\:\/\/clips\.twitch\.tv\/([A-z0-9-]+)/m)[1]; | |
| 13 | 13 | ||
| 14 | 14 | if (!slug) { | |
| 15 | 15 | return; | |
Alex Thomassen revised this gist 5 years ago. Go to revision
1 file changed, 3 insertions
README.md
| @@ -2,6 +2,9 @@ | |||
| 2 | 2 | ||
| 3 | 3 | A userscript for displaying the actual date & time (relative to local time) of when a Twitch clip was created. | |
| 4 | 4 | ||
| 5 | + | **FYI**: It only works on URLs that start with `https://clips.twitch.tv/`. | |
| 6 | + | This script does not work with URLs that are on the Twitch "channel pages" (`https://www.twitch.tv/CHANNEL_NAME_HERE/clip/...`). | |
| 7 | + | ||
| 5 | 8 | ## Requirements: | |
| 6 | 9 | - Something like the [Tampermonkey](https://www.tampermonkey.net/) extension installed for your browser. | |
| 7 | 10 | ||
Alex Thomassen revised this gist 6 years ago. Go to revision
No changes
Alex Thomassen revised this gist 6 years ago. Go to revision
1 file changed, 1 insertion, 1 deletion
README.md
| @@ -7,7 +7,7 @@ A userscript for displaying the actual date & time (relative to local time) of w | |||
| 7 | 7 | ||
| 8 | 8 | ## Installation: | |
| 9 | 9 | 1. Install a userscript extension (such as [Tampermonkey](https://www.tampermonkey.net/)). | |
| 10 | - | 2. Click on the ['Raw' button](https://gist.github.com/Decicus/ec4745e680e06cfff5b1fa0a53fcff72/raw/twitch-clips-datetime.user.js) top-right when Tampermonkey is installed, and it will prompt you to install the userscript. | |
| 10 | + | 2. Click on [this link](https://gist.github.com/Decicus/ec4745e680e06cfff5b1fa0a53fcff72/raw/twitch-clips-datetime.user.js) when Tampermonkey is installed, and it will prompt you to install the userscript. | |
| 11 | 11 | ||
| 12 | 12 | ## Screenshot: | |
| 13 | 13 | ||
Alex Thomassen revised this gist 6 years ago. Go to revision
1 file changed, 1 insertion, 1 deletion
README.md
| @@ -1,4 +1,4 @@ | |||
| 1 | - | # Userscript for displaying the date & time for when a Twitch clip was created. | |
| 1 | + | # Twitch clip datetime userscript | |
| 2 | 2 | ||
| 3 | 3 | A userscript for displaying the actual date & time (relative to local time) of when a Twitch clip was created. | |
| 4 | 4 | ||
Alex Thomassen revised this gist 6 years ago. Go to revision
1 file changed, 1 insertion, 1 deletion
README.md
| @@ -11,4 +11,4 @@ A userscript for displaying the actual date & time (relative to local time) of w | |||
| 11 | 11 | ||
| 12 | 12 | ## Screenshot: | |
| 13 | 13 | ||
| 14 | - |  | |
| 14 | + |  | |