2018-06-24 13:25:20 +02:00
/ *
Konstanten
* /
// CSS Pfad, der existiert, wenn die Seite mit Inhalten gefüllt wurde
2018-06-23 20:39:41 +02:00
const load _end _check _path = 'html body ytd-app div#content.style-scope.ytd-app ytd-page-manager#page-manager.style-scope.ytd-app ytd-watch.style-scope.ytd-page-manager.hide-skeleton div#top.style-scope.ytd-watch div#container.style-scope.ytd-watch div#main.style-scope.ytd-watch div#info.style-scope.ytd-watch div#info-contents.style-scope.ytd-watch ytd-video-primary-info-renderer.style-scope.ytd-watch div#container.style-scope.ytd-video-primary-info-renderer div#info.style-scope.ytd-video-primary-info-renderer div#menu-container.style-scope.ytd-video-primary-info-renderer div#menu.style-scope.ytd-video-primary-info-renderer ytd-menu-renderer.style-scope.ytd-video-primary-info-renderer div#top-level-buttons.style-scope.ytd-menu-renderer' ;
2018-06-24 13:25:20 +02:00
// CSS Pfad, der die Position der Daumen beschreibt und dessen Objekt-Inhalt durch die Stempel ersetzt wird
2018-06-24 12:44:44 +02:00
const image _container _path = 'html body ytd-app div#content.style-scope.ytd-app ytd-page-manager#page-manager.style-scope.ytd-app ytd-watch.style-scope.ytd-page-manager.hide-skeleton div#top.style-scope.ytd-watch div#container.style-scope.ytd-watch div#main.style-scope.ytd-watch div#info.style-scope.ytd-watch div#info-contents.style-scope.ytd-watch ytd-video-primary-info-renderer.style-scope.ytd-watch div#container.style-scope.ytd-video-primary-info-renderer div#info.style-scope.ytd-video-primary-info-renderer div#menu-container.style-scope.ytd-video-primary-info-renderer div#menu.style-scope.ytd-video-primary-info-renderer ytd-menu-renderer.style-scope.ytd-video-primary-info-renderer div#top-level-buttons.style-scope.ytd-menu-renderer ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button a.yt-simple-endpoint.style-scope.ytd-toggle-button-renderer yt-icon-button#button.style-scope.ytd-toggle-button-renderer button#button.style-scope.yt-icon-button yt-icon.style-scope.ytd-toggle-button-renderer' ;
2018-06-23 20:39:41 +02:00
2018-06-24 13:25:20 +02:00
// CSS Pfad, der das Objekt, das die Daumen beinhaltet, beschriebt, um den Bereicht, in dem sich die Grafiken für die Objekte ausbreiten können, zu vergößern
2018-06-24 12:44:44 +02:00
const container _path = 'html body ytd-app div#content.style-scope.ytd-app ytd-page-manager#page-manager.style-scope.ytd-app ytd-watch.style-scope.ytd-page-manager.hide-skeleton div#top.style-scope.ytd-watch div#container.style-scope.ytd-watch div#main.style-scope.ytd-watch div#info.style-scope.ytd-watch div#info-contents.style-scope.ytd-watch ytd-video-primary-info-renderer.style-scope.ytd-watch div#container.style-scope.ytd-video-primary-info-renderer div#info.style-scope.ytd-video-primary-info-renderer div#menu-container.style-scope.ytd-video-primary-info-renderer div#menu.style-scope.ytd-video-primary-info-renderer ytd-menu-renderer.style-scope.ytd-video-primary-info-renderer div#top-level-buttons.style-scope.ytd-menu-renderer ytd-toggle-button-renderer.style-scope.ytd-menu-renderer.force-icon-button a.yt-simple-endpoint.style-scope.ytd-toggle-button-renderer yt-icon-button#button.style-scope.ytd-toggle-button-renderer' ;
2018-06-23 20:39:41 +02:00
2018-06-24 13:25:20 +02:00
/ *
Hilfsfunktionen
* /
// Logfunktion zum debuggen
function log ( msg ) {
console . log ( "W!NW!: " + msg ) ;
}
2018-06-23 20:39:41 +02:00
2018-06-24 13:42:41 +02:00
function getURL ( path ) {
return chrome . runtime . getURL ( path ) || browser . runtime . getURL ( path ) ;
}
2018-06-24 13:25:20 +02:00
/ *
Grafikfunktionen
* /
// Passt die Breite des übergegebenen Objekts an
2018-06-24 12:44:44 +02:00
function resize _container ( container _object , width ) {
container _object . style . width = width ;
2018-06-23 20:39:41 +02:00
}
2018-06-24 13:25:20 +02:00
// Leer den Inhalt des übergebenen Objekts und befüllt ihn mit einer Grafik
2018-06-24 12:44:44 +02:00
function inject _image ( image _container _object , image _path ) {
2018-06-23 20:39:41 +02:00
var image = document . createElement ( 'img' ) ;
image . setAttribute ( 'src' , image _path ) ;
image . style . width = "100%" ;
2018-06-24 12:44:44 +02:00
image _container _object . innerHTML = "" ;
image _container _object . appendChild ( image ) ;
2018-06-23 20:39:41 +02:00
}
2018-06-24 13:25:20 +02:00
/ *
Hauptfunktion
* /
2018-06-23 20:39:41 +02:00
2018-06-24 13:25:20 +02:00
// Ersetzt die Daumen durch Stempel
2018-06-23 20:39:41 +02:00
function inject ( ) {
2018-06-24 12:44:44 +02:00
var container _object = document . querySelectorAll ( container _path ) ;
resize _container ( container _object [ 0 ] , "100px" ) ;
resize _container ( container _object [ 1 ] , "100px" ) ;
2018-06-24 13:25:20 +02:00
log ( "Stempelfläche vergrößert." ) ;
2018-06-24 12:44:44 +02:00
var image _container _object = document . querySelectorAll ( image _container _path ) ;
2018-06-24 13:25:20 +02:00
log ( "Packe Stempel aus..." ) ;
2018-06-24 21:59:12 +02:00
inject _image ( image _container _object [ 0 ] , getURL ( "media/stempel-witzig.png" ) ) ;
2018-06-24 13:25:20 +02:00
log ( "Witzig!" ) ;
2018-06-24 21:59:12 +02:00
inject _image ( image _container _object [ 1 ] , getURL ( "media/stempel-nicht-witzig.png" ) ) ;
2018-06-24 13:25:20 +02:00
log ( "Nicht Witzig!" ) ;
2018-06-23 20:39:41 +02:00
}
2018-06-24 13:25:20 +02:00
/ *
Ladefunktion
* /
2018-06-23 20:39:41 +02:00
2018-06-24 13:25:20 +02:00
// Die YouTube Website läd die Inhalte durch ein externes JavaScript, wenn wir von vornherein unsere eigenen Inhalte einsetzen, werden diese später von YouTube wieder überschrieben. Wir schauen also, ob ein bestimmtes Objekt, dass durch JavaScript eingefügt wird, exstiert, dann erst bringen wir unsere eigenen Inhalte ein.
2018-06-23 20:39:41 +02:00
var loaded = false ;
function loading ( ) {
loaded = document . querySelector ( load _end _check _path ) ;
if ( loaded ) {
2018-06-24 13:25:20 +02:00
log ( "Stempelfläche gefunden." ) ;
2018-06-23 20:39:41 +02:00
inject ( ) ;
}
2018-06-23 21:26:06 +02:00
else {
2018-06-24 13:25:20 +02:00
log ( "Hier nicht." ) ;
2018-06-23 20:39:41 +02:00
setTimeout ( loading , 100 ) ;
}
}
2018-06-24 13:25:20 +02:00
// Starte das Add-on
log ( "Suche Stempelfläche..." ) ;
2018-06-23 20:39:41 +02:00
loading ( ) ;