Skip to content

Commit

Permalink
Webext 3.0.0 - added button in toolbar for YouTube
Browse files Browse the repository at this point in the history
  • Loading branch information
dirkjanm committed Nov 9, 2017
1 parent bb085ac commit 6dc75e6
Show file tree
Hide file tree
Showing 8 changed files with 107 additions and 109 deletions.
16 changes: 16 additions & 0 deletions webextension/data/img/kodi_logo_only.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions webextension/data/popup.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<div class="panel" style="min-width:100px;">
<div class="panel-section panel-section-list" id="serverlist">

</div>
<div class="panel-section panel-section-separator"></div>
<div class="panel-section panel-section-list">
<div id="editservers" class="panel-list-item">Manage servers</div>
</div>
</div>
<script src="popup.js"></script>
</body>
</html>
21 changes: 21 additions & 0 deletions webextension/data/popup.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
let srvget = browser.storage.local.get('servers');
srvget.then(function(settings){
let servers = settings['servers'];
slist = document.getElementById('serverlist');
servers.forEach(function (server) {
let ndiv = document.createElement('div');
ndiv.className = 'panel-list-item';
ndiv.appendChild(document.createTextNode(server.label));
ndiv.onclick = function(){
browser.tabs.query({active: true, currentWindow: true}).then((tabs) => {
for (let tab of tabs) {
let page = browser.extension.getBackgroundPage();
page.parseUrlPlay(tab.url, '', server);
window.close();
}
});
}
slist.appendChild(ndiv);
});
});
document.getElementById('editservers').onclick = browser.extension.getBackgroundPage().openSettings;
8 changes: 6 additions & 2 deletions webextension/data/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,12 @@ function updatePage() {
});
browser.storage.local.set({'servers':servers});
var page = browser.extension.getBackgroundPage();
page.removeSendToServers(page.sdata);
page.sdata = page.addSendToServers(servers);
if (typeof page.sdata == 'undefined') {
page.createMenus();
} else {
page.removeSendToServers(page.sdata);
page.sdata = page.addSendToServers(servers);
}
if ($('#serverlist tr').length === 0) {
$('#noservers').removeClass('hidden');
} else {
Expand Down
106 changes: 0 additions & 106 deletions webextension/data/youtube.js

This file was deleted.

39 changes: 39 additions & 0 deletions webextension/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -194,5 +194,44 @@ function handleComplete(resp) {
}
}

function setupButton(){
var gettingAllTabs = browser.tabs.query({url:'*://www.youtube.com/watch*'});
gettingAllTabs.then((tabs) => {
for (let tab of tabs) {
browser.pageAction.show(tab.id);
}
});
browser.tabs.onUpdated.addListener(displayButton);
browser.pageAction.onClicked.addListener(buttonClick);
}

function displayButton(tabId, changeInfo, tabInfo) {
var regExp = /^.*(youtube.com\/watch.*[\?\&]v=)([^#\&\?]*).*/;
if (tabInfo.url.match(regExp)) {
browser.pageAction.show(tabId);
}
}

function buttonClick(tab){
// If more than one server, show popup
if(window.sdata && window.sdata.size > 1) {
browser.pageAction.setPopup({tabId: tab.id, popup: "data/popup.html"});
browser.pageAction.openPopup();
} else {
// Else, get server data
let srvget = browser.storage.local.get('servers');
srvget.then(function(settings){
let servers = settings['servers'];
// No servers?
if(typeof servers == 'undefined' || servers.length == 0){
openSettings();
}else{
parseUrlPlay(tab.url, '', servers[0]);
}
});
}
}

// Main
createMenus();
setupButton();
8 changes: 7 additions & 1 deletion webextension/manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Send to Kodi",
"version": "3.0.0b1",
"version": "3.0.0",
"applications": {
"gecko": {
"id": "jid0-YCM0p5WlCGjvBJcZhAusQ5h26wM@jetpack"
Expand All @@ -12,6 +12,7 @@
"notifications",
"menus",
"webRequest",
"tabs",
"<all_urls>"
],
"background": {
Expand All @@ -21,5 +22,10 @@
"page": "data/preferences.html",
"open_in_tab": true,
"browser_style": false
},
"page_action": {
"browser_style": true,
"default_icon": "data/img/kodi_logo_only.svg",
"default_title": "Send to Kodi"
}
}
Binary file not shown.

0 comments on commit 6dc75e6

Please sign in to comment.