Add matomo plugin

This commit is contained in:
Chocobozzz 2019-07-26 09:43:20 +02:00
parent 73a0294104
commit 9c37c5e7f6
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
4 changed files with 99 additions and 0 deletions

View File

@ -0,0 +1,3 @@
# Hello World plugin
Just a PeerTube plugin example, that says "Hello world".

View File

@ -0,0 +1,46 @@
function register ({ registerHook, peertubeHelpers }) {
initMatomo(registerHook, peertubeHelpers)
.catch(err => console.error('Cannot initialize Matomo', err))
}
export {
register
}
function initMatomo (registerHook, peertubeHelpers) {
return peertubeHelpers.getSettings()
.then(s => {
if (!s || !s['site-id'] || !s['url']) {
console.error('Matomo settings are not set.')
return
}
const matomoUrl = s['url']
const siteId = s['site-id']
window._paq = window._paq || [];
window._paq.push(['trackPageView']);
window._paq.push(['enableLinkTracking']);
(function() {
var u = matomoUrl + '/';
window._paq.push(['setTrackerUrl', u+'matomo.php']);
window._paq.push(['setSiteId', siteId]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
window._paq.push(['setDocumentTitle', window.document.title]);
window._paq.push(['setCustomUrl', '/' + window.location.hash.substr(1)]);
window._paq.push(['trackPageView']);
registerHook({
target: 'action:router.navigation-end',
handler: function (params) {
window._paq.push(['setDocumentTitle', window.document.title]);
window._paq.push(['setCustomUrl', params.path]);
window._paq.push(['trackPageView']);
}
})
})
}

View File

@ -0,0 +1,26 @@
async function register ({ registerHook, registerSetting, settingsManager, storageManager }) {
registerSetting({
name: 'url',
label: 'Matomo Url',
type: 'input',
private: false
})
registerSetting({
name: 'site-id',
label: 'Site id',
type: 'input',
private: false
})
}
async function unregister () {
return
}
module.exports = {
register,
unregister
}
// ############################################################################

View File

@ -0,0 +1,24 @@
{
"name": "peertube-plugin-matomo",
"version": "0.0.1",
"description": "Hello world PeerTube plugin example",
"engine": {
"peertube": ">=1.3.0"
},
"keywords": [
"peertube",
"plugin"
],
"homepage": "https://framagit.org/framasoft/peertube/official-plugins/tree/master/peertube-plugin-matomo",
"author": "Chocobozzz",
"bugs": "https://framagit.org/framasoft/peertube/official-plugins/issues",
"library": "./main.js",
"staticDirs": {},
"css": [],
"clientScripts": [
{
"script": "client/common-client-plugin.js",
"scopes": [ "common" ]
}
]
}