Skip to content

Instantly share code, notes, and snippets.

@yazdipour
Created March 26, 2019 10:47
Show Gist options
  • Save yazdipour/dc4a5ca3781e22c28a5a37a2a0b6ed68 to your computer and use it in GitHub Desktop.
Save yazdipour/dc4a5ca3781e22c28a5a37a2a0b6ed68 to your computer and use it in GitHub Desktop.
var config={
homeURL:'https://www.dideo.ir',
updatePageURL: 'http://blog.dideo.ir/?p=629',
installURL:'http://blog.dideo.ir/?p=218'
};
var enable = kango.storage.getItem('enable');
if (enable == undefined){
enable = true;
kango.storage.setItem('enable', true);
}
setIcon(enable);
function status(){
return {'enable': enable, 'homeURL': homeURL};
}
var blockSites = [
{"abbr": "yt", "embed_url": "\/\/www.youtube.com\/embed\/", "watch_url": "\/\/www.youtube.com\/watch"},
];
var openCountries = [
'IR', 'Iran'
];
var homeURL = config.homeURL;
var updatePageURL = config.updatePageURL;
chrome.runtime.setUninstallURL(homeURL + '/extension/uninstalled');
function getInfo(){
var url = 'http://freegeoip.net/json/';
var isOpen = true;
var details = {
url: url,
method: 'GET',
async: false,
contentType: 'text'
};
var request = kango.xhr.getXMLHttpRequest();
request.open('GET', url, false);
try{
request.send(null);
if (request.status == 200) {
var content = request.responseText;
var info = JSON.parse(content);
isOpen = openCountries.includes(info.country_code);
}
}catch(err){
isOpen = true;
}
return {'isOpen': isOpen, 'blockSites': blockSites};
}
function changeStatus(){
var text;
var icon;
if(enable){
text = 'دیدئو - غیرفعال'
icon = 'disable';
}else{
text = 'دیدئو - فعال'
icon = 'enable';
}
enable = !enable;
kango.storage.setItem('enable', enable);
kango.ui.browserButton.setTooltipText(text);
kango.ui.browserButton.setIcon('icons/' + icon + '.png');
return enable;
}
function setIcon(enabled){
if(!enabled){
text = 'دیدئو - غیرفعال'
icon = 'disable';
}else{
text = 'دیدئو - فعال'
icon = 'enable';
}
kango.ui.browserButton.setTooltipText(text);
kango.ui.browserButton.setIcon('icons/' + icon + '.png');
}
function getEmbedLink(abbr, url){
var p = {url: url, abbr: abbr};
var link;
var details = {
url: homeURL +'/extension/embed',
method: 'GET',
async: false,
params:p,
contentType: 'text'
};
kango.xhr.send(details, function(data) {
var content = data.response;
var info = JSON.parse(content);
link = info;
});
return link;
}
function MyExtension() {
var self = this;
checkInstall();
kango.ui.browserButton.addEventListener(kango.ui.browserButton.event.COMMAND, function() {
self._onCommand();
});
}
function checkInstall(){
var seen = kango.storage.getItem('seen');
if (seen == undefined ) {
kango.storage.setItem('seen', true);
kango.browser.tabs.create({url:config.installURL});
kango.storage.setItem('enable', true);
// send request for count
var details = {
url: homeURL +'/extension/installed',
method: 'GET',
async: true,
contentType: 'text',
params:{'browser': 'chrome'}
};
if(chrome.runtime.id != 'hjfdehobejconpkfgoldlpiidddkmbkm'){
kango.xhr.send(details, function(data) {
});
}
//end sending request
enable = true;
kango.ui.browserButton.setIcon('icons/enable.png');
}
}
function checkUpdate(){
var old_version = kango.storage.getItem('version');
var info = kango.getExtensionInfo();
var curr_version = info.version;
if (old_version != undefined && curr_version != old_version) {
kango.browser.tabs.create({url: updatePageURL});
}
kango.storage.setItem('version', curr_version);
return "done";
}
checkUpdate();
MyExtension.prototype = {
_onCommand: function() {
var text;
var icon;
if(enable){
text = 'دیدئو - غیرفعال'
icon = 'disable';
}else{
text = 'دیدئو - فعال'
icon = 'enable';
}
enable = !enable;
kango.storage.setItem('enable', enable);
kango.ui.browserButton.setTooltipText(text);
kango.ui.browserButton.setIcon('icons/' + icon + '.png');
}
};
var extension = new MyExtension();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment