Skip to content

Commit

Permalink
Added update check which can be disabled in the settings
Browse files Browse the repository at this point in the history
  • Loading branch information
JustinBack committed Jan 18, 2021
1 parent 5687331 commit 9228397
Show file tree
Hide file tree
Showing 6 changed files with 354 additions and 323 deletions.
18 changes: 9 additions & 9 deletions build.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
#!/bin/bash

mkdir -p build; rm -rf build/*
mkdir -p dist; rm -rf dist/*
cp -r src build/firefox
cp -r src build/chrome
node mixin.js firefox/manifest.json build/firefox/manifest.json
cd build/chrome; zip -r ../../dist/chrome.zip *; cd ../..
cd build/firefox; zip -r ../../dist/firefox.xpi *; cd ../..
#!/bin/bash

mkdir -p build; rm -rf build/*
mkdir -p dist; rm -rf dist/*
cp -r src build/firefox
cp -r src build/chrome
node mixin.js firefox/manifest.json build/firefox/manifest.json
cd build/chrome; zip -r ../../dist/chrome.zip *; cd ../..
cd build/firefox; zip -r ../../dist/firefox.xpi *; cd ../..
rm -rf build
2 changes: 1 addition & 1 deletion src/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "__MSG_extensionName__",
"description": "__MSG_extensionDescription__",
"version": "3.3.7",
"version": "3.4.0",
"homepage_url": "https://tosdr.org",
"background": {
"scripts": [
Expand Down
288 changes: 153 additions & 135 deletions src/popup/js/popup.js
Original file line number Diff line number Diff line change
@@ -1,135 +1,153 @@
/* global window, $, jQuery, getLiveServiceDetails, getRatingText,
getTweetText, browser, FALLBACK_SHIELDS, log */
/* eslint-disable indent */

function escapeHTML(unsafe) {
return (`${unsafe}`)
.replace(/&(?!amp;)/g, '&')
.replace(/<(?!lt;)/g, '&lt;')
.replace(/>(?!gt;)/g, '&gt;')
.replace(/"(?!quot;)/g, '&quot;')
.replace(/'(?!#039;)/g, '&#039;');
}

jQuery(() => {
function tosdrPoint(service, dataPoint) {
let badge;
let icon;
// let sign;
if (dataPoint) {
if (dataPoint.tosdr.point === 'good') {
badge = 'badge-success';
icon = 'thumbs-up';
// sign = '+';
} else if (dataPoint.tosdr.point === 'bad') {
badge = 'badge-warning';
icon = 'thumbs-down';
// sign = '-';
} else if (dataPoint.tosdr.point === 'blocker') {
badge = 'badge-important';
icon = 'times';
// sign = '×';
} else if (dataPoint.tosdr.point === 'neutral') {
badge = 'badge-secondary';
icon = 'asterisk';
// sign = '→';
} else {
badge = '';
icon = 'question';
// sign = '?';
}
const pointText = dataPoint.description || '';

// Extract links from text
const taggedText = pointText.split(/(<\/?\w+(?:(?:\s+\w+(?:\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>)/gim);
$(`#popup-point-${service.id}-${dataPoint.id}`)
.append($('<div>', { class: dataPoint.point })
.append($('<h5>')
.append($('<span>', { class: `badge ${badge}`, title: escapeHTML(dataPoint.tosdr.point) })
.append($('<li>', { class: `fas fa-${icon}` })))
.append($('<a>', {
href: escapeHTML(dataPoint.discussion), target: '_blank', class: 'ml-2', text: dataPoint.title,
}))));

$(`#popup-point-${service.id}-${dataPoint.id}`).append($('<p>'));
if (taggedText.length > 1) {
taggedText.forEach((t) => {
$(`#popup-point-${service.id}-${dataPoint.id} p`).append(t);
});
} else {
$(`#popup-point-${service.id}-${dataPoint.id} p`).text(pointText);
}
}
}
const serviceUrl = window.location.hash.substr(1);
function updatePopup() {
$('.loading').show();
getLiveServiceDetails(serviceUrl).then((service) => {
log('service', service);
browser.storage.local.get('settings').then((items) => {
$('#service_url').attr('href', `https://tosdr.org/en/service/${service.id}`);
$('#service_class').addClass(service.class);
if (service.class !== false) {
$('#service_class').text(`Grade ${service.class}`);
$('#ratingText').text(getRatingText(service.class));
} else {
$('#service_class').text('No Grade Yet');
$('#service_class').remove();
$('#ratingText').text(getRatingText(service.class));
}

// Points
service.points.forEach((p) => {
$('.tosdr-points').append($('<li>', { id: `popup-point-${service.id}-${p}`, class: 'point' }));
tosdrPoint(service, service.pointsData[p]);
});

// links inside of the dataPoints should open in a new window
$('.tosdr-points a').attr('target', '_blank');

if (!items.settings.hideshields) {
$('#shieldimg').attr('src', `${(typeof items.settings === 'undefined' ? FALLBACK_SHIELDS : items.settings.shield_endpoint)}/${service.id}.svg`);
$('#shieldurl').val(`${(typeof items.settings === 'undefined' ? FALLBACK_SHIELDS : items.settings.shield_endpoint)}${service.id}.svg`);
$('#privacyshield').show();
}
if (items.settings.curator) {
$('#edit_url').attr('href', `https://edit.tosdr.org/services/${service.id}/edit`);
$('#add_document_url').attr('href', `https://edit.tosdr.org/documents/new?service=${service.id}`);
$('[data-visiblity="curator"]').show();
}
$('#serviceimg').attr('src', service.image).addClass('float-right');
if (getTweetText(service) !== false) {
$('#twitter_url').attr('href', encodeURI(`https://twitter.com/intent/tweet?text=${getTweetText(service)}&via=ToSDR&hashtags=ToS`));
} else {
$('#twitter_url').remove();
}

if (Object.keys(service.links).length > 0) {
$('#linksList')
.append($('<h4>', { text: 'Read the Terms' }))
.append($('<ul>', { class: 'tosback2' }));

Object.keys(service.links).forEach((d) => {
$('.tosback2').append($('<li>')
.append($('<a>', { href: escapeHTML(service.links[d].url), target: '_blank', text: service.links[d].name })));
});
}
// [x] Button
$('#closeButton,.close').click(() => {
window.close();
});

$('.loading').hide();
});
}).catch(() => {
$('#page').empty();
$('#page').append($('<div>', { class: 'modal-body' })
.append($('<div>', { class: 'tosdr-rating' })
.append($('<h4>', { text: 'This service is not rated, yet.' }))
.append($('<a>', { text: `Request ${serviceUrl} to be added`, class: 'btn btn-success btn-block', href: 'https://forum.tosdr.org/request' }))));
$('.loading').hide();
});
}

updatePopup();
});
/* global window, $, jQuery, getLiveServiceDetails, getRatingText,
getTweetText, browser, FALLBACK_SHIELDS, log, compareVersion */
/* eslint-disable indent */

function escapeHTML(unsafe) {
return (`${unsafe}`)
.replace(/&(?!amp;)/g, '&amp;')
.replace(/<(?!lt;)/g, '&lt;')
.replace(/>(?!gt;)/g, '&gt;')
.replace(/"(?!quot;)/g, '&quot;')
.replace(/'(?!#039;)/g, '&#039;');
}

jQuery(() => {
function tosdrPoint(service, dataPoint) {
let badge;
let icon;
// let sign;
if (dataPoint) {
if (dataPoint.tosdr.point === 'good') {
badge = 'badge-success';
icon = 'thumbs-up';
// sign = '+';
} else if (dataPoint.tosdr.point === 'bad') {
badge = 'badge-warning';
icon = 'thumbs-down';
// sign = '-';
} else if (dataPoint.tosdr.point === 'blocker') {
badge = 'badge-important';
icon = 'times';
// sign = '×';
} else if (dataPoint.tosdr.point === 'neutral') {
badge = 'badge-secondary';
icon = 'asterisk';
// sign = '→';
} else {
badge = '';
icon = 'question';
// sign = '?';
}
const pointText = dataPoint.description || '';

// Extract links from text
const taggedText = pointText.split(/(<\/?\w+(?:(?:\s+\w+(?:\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>)/gim);
$(`#popup-point-${service.id}-${dataPoint.id}`)
.append($('<div>', { class: dataPoint.point })
.append($('<h5>')
.append($('<span>', { class: `badge ${badge}`, title: escapeHTML(dataPoint.tosdr.point) })
.append($('<li>', { class: `fas fa-${icon}` })))
.append($('<a>', {
href: escapeHTML(dataPoint.discussion), target: '_blank', class: 'ml-2', text: dataPoint.title,
}))));

$(`#popup-point-${service.id}-${dataPoint.id}`).append($('<p>'));
if (taggedText.length > 1) {
taggedText.forEach((t) => {
$(`#popup-point-${service.id}-${dataPoint.id} p`).append(t);
});
} else {
$(`#popup-point-${service.id}-${dataPoint.id} p`).text(pointText);
}
}
}
const serviceUrl = window.location.hash.substr(1);
function updatePopup() {
$('.loading').show();
getLiveServiceDetails(serviceUrl).then((service) => {
log('service', service);
browser.storage.local.get('settings').then((items) => {
$('#service_url').attr('href', `https://tosdr.org/en/service/${service.id}`);
$('#service_class').addClass(service.class);
if (service.class !== false) {
$('#service_class').text(`Grade ${service.class}`);
$('#ratingText').text(getRatingText(service.class));
} else {
$('#service_class').text('No Grade Yet');
$('#service_class').remove();
$('#ratingText').text(getRatingText(service.class));
}

// Points
service.points.forEach((p) => {
$('.tosdr-points').append($('<li>', { id: `popup-point-${service.id}-${p}`, class: 'point' }));
tosdrPoint(service, service.pointsData[p]);
});

// links inside of the dataPoints should open in a new window
$('.tosdr-points a').attr('target', '_blank');

if (!items.settings.hideshields) {
$('#shieldimg').attr('src', `${(typeof items.settings === 'undefined' ? FALLBACK_SHIELDS : items.settings.shield_endpoint)}/${service.id}.svg`);
$('#shieldurl').val(`${(typeof items.settings === 'undefined' ? FALLBACK_SHIELDS : items.settings.shield_endpoint)}${service.id}.svg`);
$('#privacyshield').show();
}
if (items.settings.curator) {
$('#edit_url').attr('href', `https://edit.tosdr.org/services/${service.id}/edit`);
$('#add_document_url').attr('href', `https://edit.tosdr.org/documents/new?service=${service.id}`);
$('[data-visiblity="curator"]').show();
}
$('#serviceimg').attr('src', service.image).addClass('float-right');
if (getTweetText(service) !== false) {
$('#twitter_url').attr('href', encodeURI(`https://twitter.com/intent/tweet?text=${getTweetText(service)}&via=ToSDR&hashtags=ToS`));
} else {
$('#twitter_url').remove();
}

if (Object.keys(service.links).length > 0) {
$('#linksList')
.append($('<h4>', { text: 'Read the Terms' }))
.append($('<ul>', { class: 'tosback2' }));

Object.keys(service.links).forEach((d) => {
$('.tosback2').append($('<li>')
.append($('<a>', { href: escapeHTML(service.links[d].url), target: '_blank', text: service.links[d].name })));
});
}
// [x] Button
$('#closeButton,.close').click(() => {
window.close();
});

$('.loading').hide();
if (!items.settings.dontcheckforupdates) {
compareVersion().then((response) => {
if (response.parameters.compare === -1) {
$('#updatecheck').html(`You are running an unreleased version (${response.parameters.given}), bugs may occur.`);
$('#updatecheck').addClass('alert alert-warning');
} else if (response.parameters.compare === 0) {
$('#updatecheck').remove();
$('#updatecheckbottom').html('You are up to date, cool beans!');
$('#updatecheckbottom').addClass('alert alert-success');
} else {
$('#updatecheck').html(`Your version (${response.parameters.given}) is out of date! The Latest version is ${response.parameters.latest}`);
$('#updatecheck').addClass('alert alert-danger');
}
});
} else {
$('#updatecheckbottom').remove();
$('#updatecheck').remove();
}
});
}).catch(() => {
$('#page').empty();
$('#page').append($('<div>', { class: 'modal-body' })
.append($('<div>', { class: 'tosdr-rating' })
.append($('<h4>', { text: 'This service is not rated, yet.' }))
.append($('<a>', { text: `Request ${serviceUrl} to be added`, class: 'btn btn-success btn-block', href: 'https://forum.tosdr.org/request' }))));
$('.loading').hide();
});
}

updatePopup();
});
Loading

0 comments on commit 9228397

Please sign in to comment.