mirror of
https://bitbucket.org/skobkin/chrome_point_plus.git
synced 2024-12-28 17:24:20 +00:00
Merged in fix_injection (pull request #24) Dynamic JS/CSS loading and some external lib fixes.
This commit is contained in:
commit
e894e2756b
27
chrome_point_plus/css/fancybox/style.css
Normal file
27
chrome_point_plus/css/fancybox/style.css
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
Created on : Jan 7, 2015, 8:58:42 AM
|
||||
Author : skobkin
|
||||
*/
|
||||
|
||||
/* Fancybox fix */
|
||||
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
|
||||
background-image: url('chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/fancybox_sprite.png');
|
||||
}
|
||||
|
||||
#fancybox-loading div {
|
||||
background-image: url('chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/fancybox_loading.gif');
|
||||
}
|
||||
|
||||
.fancybox-overlay {
|
||||
background-image: url('chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/fancybox_overlay.png');
|
||||
}
|
||||
|
||||
@media only screen and (min-device-pixel-ratio: 1.5) {
|
||||
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
|
||||
background-image: url('chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/fancybox_sprite@2x.png');
|
||||
}
|
||||
|
||||
#fancybox-loading div {
|
||||
background-image: url('chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/fancybox_loading@2x.gif');
|
||||
}
|
||||
}
|
|
@ -1,147 +1,36 @@
|
|||
/* -------------------------------------------------------------------
|
||||
// markItUp! Universal MarkUp Engine, JQuery plugin
|
||||
// By Jay Salvat - http://markitup.jaysalvat.com/
|
||||
// ------------------------------------------------------------------*/
|
||||
.markItUp * {
|
||||
margin:0px; padding:0px;
|
||||
outline:none;
|
||||
}
|
||||
.markItUp a:link,
|
||||
.markItUp a:visited {
|
||||
color:#000;
|
||||
text-decoration:none;
|
||||
}
|
||||
.markItUp {
|
||||
width:700px;
|
||||
margin:5px 0 5px 0;
|
||||
border:5px solid #F5F5F5;
|
||||
}
|
||||
.markItUpContainer {
|
||||
border:1px solid #3C769D;
|
||||
background:#FFF url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-container.png) repeat-x top left;
|
||||
padding:5px 5px 2px 5px;
|
||||
font:11px Verdana, Arial, Helvetica, sans-serif;
|
||||
background-image: url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-container.png);
|
||||
}
|
||||
.markItUpEditor {
|
||||
font:12px 'Courier New', Courier, monospace;
|
||||
padding:5px 5px 5px 5px/*35px*/;
|
||||
border:3px solid #3C769D;
|
||||
width:643px;
|
||||
height:320px;
|
||||
/*background:#FFF url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-editor.png) no-repeat;*/
|
||||
clear:both;
|
||||
line-height:18px;
|
||||
overflow:auto;
|
||||
}
|
||||
.markItUpPreviewFrame {
|
||||
overflow:auto;
|
||||
background-color:#FFFFFF;
|
||||
border:1px solid #3C769D;
|
||||
width:99.9%;
|
||||
height:300px;
|
||||
margin:5px 0;
|
||||
}
|
||||
.markItUpFooter {
|
||||
width:100%;
|
||||
cursor:n-resize;
|
||||
background: none;
|
||||
/* Padding fix */
|
||||
padding-left: 10px;
|
||||
}
|
||||
.markItUpResizeHandle {
|
||||
overflow:hidden;
|
||||
width:22px; height:5px;
|
||||
margin-left:auto;
|
||||
margin-right:auto;
|
||||
background-image:url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/handle.png);
|
||||
cursor:n-resize;
|
||||
background-image:url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/handle.png);
|
||||
}
|
||||
/***************************************************************************************/
|
||||
/* first row of buttons */
|
||||
.markItUpHeader ul li {
|
||||
list-style:none;
|
||||
float:left;
|
||||
position:relative;
|
||||
}
|
||||
.markItUpHeader ul li ul{
|
||||
display:none;
|
||||
}
|
||||
.markItUpHeader ul li:hover > ul{
|
||||
display:block;
|
||||
}
|
||||
.markItUpHeader ul .markItUpDropMenu {
|
||||
background:transparent url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/menu.png) no-repeat 115% 50%;
|
||||
margin-right:5px;
|
||||
}
|
||||
.markItUpHeader ul .markItUpDropMenu li {
|
||||
margin-right:0px;
|
||||
}
|
||||
.markItUpHeader ul .markItUpSeparator {
|
||||
margin:0 10px;
|
||||
width:1px;
|
||||
height:16px;
|
||||
overflow:hidden;
|
||||
background-color:#CCC;
|
||||
}
|
||||
.markItUpHeader ul ul .markItUpSeparator {
|
||||
width:auto; height:1px;
|
||||
margin:0px;
|
||||
}
|
||||
/* next rows of buttons */
|
||||
.markItUpHeader ul ul {
|
||||
display:none;
|
||||
position:absolute;
|
||||
top:18px; left:0px;
|
||||
background:#F5F5F5;
|
||||
border:1px solid #3C769D;
|
||||
height:inherit;
|
||||
}
|
||||
.markItUpHeader ul ul li {
|
||||
float:none;
|
||||
border-bottom:1px solid #3C769D;
|
||||
background-image: url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/menu.png);
|
||||
}
|
||||
.markItUpHeader ul ul .markItUpDropMenu {
|
||||
background:#F5F5F5 url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/submenu.png) no-repeat 100% 50%;
|
||||
}
|
||||
/* next rows of buttons */
|
||||
.markItUpHeader ul ul ul {
|
||||
position:absolute;
|
||||
top:-1px; left:150px;
|
||||
}
|
||||
.markItUpHeader ul ul ul li {
|
||||
float:none;
|
||||
}
|
||||
.markItUpHeader ul a {
|
||||
display:block;
|
||||
width:16px; height:16px;
|
||||
text-indent:-10000px;
|
||||
background-repeat:no-repeat;
|
||||
padding:3px;
|
||||
margin:0px;
|
||||
}
|
||||
.markItUpHeader ul ul a {
|
||||
display:block;
|
||||
padding-left:0px;
|
||||
text-indent:0;
|
||||
width:120px;
|
||||
padding:5px 5px 5px 25px;
|
||||
background-position:2px 50%;
|
||||
}
|
||||
.markItUpHeader ul ul a:hover {
|
||||
color:#FFF;
|
||||
background-color:#3C769D;
|
||||
background-image: url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/submenu.png);
|
||||
}
|
||||
/***************************************************************************************/
|
||||
.html .markItUpEditor {
|
||||
background-image:url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-editor-html.png);
|
||||
background-image: url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-editor-html.png);
|
||||
}
|
||||
.markdown .markItUpEditor {
|
||||
background-image:url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-editor-markdown.png);
|
||||
background-image: url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-editor-markdown.png);
|
||||
}
|
||||
.textile .markItUpEditor {
|
||||
background-image:url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-editor-textile.png);
|
||||
background-image: url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-editor-textile.png);
|
||||
}
|
||||
.bbcode .markItUpEditor {
|
||||
background-image:url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-editor-bbcode.png);
|
||||
background-image: url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-editor-bbcode.png);
|
||||
}
|
||||
.wiki .markItUpEditor,
|
||||
.dotclear .markItUpEditor {
|
||||
background-image:url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-editor-wiki.png);
|
||||
background-image: url(chrome-extension://__MSG_@@extension_id__/images/markitup/skins/markitup/bg-editor-wiki.png);
|
||||
}
|
|
@ -163,34 +163,4 @@ div#markItUpText-input {
|
|||
#comments .post:hover .nesting {
|
||||
background-repeat: repeat-x;
|
||||
background-image: url('chrome-extension://__MSG_@@extension_id__/images/nesting-point.png');
|
||||
}
|
||||
|
||||
|
||||
/* Fancybox fix */
|
||||
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
|
||||
background-image: url('chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/fancybox_sprite.png');
|
||||
}
|
||||
|
||||
#fancybox-loading div {
|
||||
background: url('chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/fancybox_loading.gif') center center no-repeat;
|
||||
}
|
||||
|
||||
.fancybox-nav {
|
||||
background: transparent url('chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/blank.gif'); /* helps IE */
|
||||
}
|
||||
.fancybox-overlay {
|
||||
background: url('chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/fancybox_overlay.png');
|
||||
}
|
||||
|
||||
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||
only screen and (min--moz-device-pixel-ratio: 1.5),
|
||||
only screen and (min-device-pixel-ratio: 1.5) {
|
||||
|
||||
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
|
||||
background-image: url('chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/fancybox_sprite@2x.png');
|
||||
}
|
||||
|
||||
#fancybox-loading div {
|
||||
background-image: url('chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/chrome-extension://__MSG_@@extension_id__/vendor/fancybox/source/fancybox_loading@2x.gif');
|
||||
}
|
||||
}
|
|
@ -8,15 +8,50 @@ chrome.storage.sync.get('options_version', function(data) {
|
|||
}
|
||||
});
|
||||
|
||||
// Crutches and bikes
|
||||
/**
|
||||
* Inject several JS files
|
||||
* @param {number} tabId Unique ID of tab which requested injection
|
||||
* @param {Object[]} files Array of objects of files to inject
|
||||
* @param {function} onAllInjected allback function running when injection ends
|
||||
*/
|
||||
function injectJS(tabId, files, onAllInjected) {
|
||||
var item = files.shift();
|
||||
if (item) {
|
||||
console.log('Injecting JS "%s" to the tab #%s', item.file, tabId);
|
||||
|
||||
if ('file' in item) {
|
||||
chrome.tabs.executeScript(tabId ? tabId : null, {
|
||||
file: item.file,
|
||||
runAt: item.runAt || 'document_start'
|
||||
}, function(result) {
|
||||
console.info('"%s" injected to the tab #%s', item.file, tabId);
|
||||
|
||||
injectJS(tabId, files, onAllInjected);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
onAllInjected();
|
||||
}
|
||||
}
|
||||
|
||||
// @todo Implement injectCSS (because JS execution working always after CSS injection)
|
||||
|
||||
// Message listener
|
||||
chrome.extension.onMessage.addListener(function(message, sender) {
|
||||
console.log('Received message: %O', message);
|
||||
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
|
||||
// @todo Check if sender.tab may be undefined in some cases
|
||||
console.log('Received message from tab #%i: %O', sender.tab.id, message);
|
||||
|
||||
if (message) {
|
||||
switch (message.type) {
|
||||
case 'showPageAction':
|
||||
var tab = sender.tab;
|
||||
chrome.pageAction.show(tab.id);
|
||||
chrome.pageAction.show(sender.tab.id);
|
||||
sendResponse(true);
|
||||
|
||||
console.log('Showed pageAction for tab #%s', sender.tab.id);
|
||||
|
||||
// Fuck You, Chrome API documentation!!11
|
||||
return true;
|
||||
break;
|
||||
|
||||
case 'showNotification':
|
||||
|
@ -28,11 +63,15 @@ chrome.extension.onMessage.addListener(function(message, sender) {
|
|||
message: message.text,
|
||||
priority: 0,
|
||||
isClickable: true
|
||||
},
|
||||
function() { /* Error checking goes here */}
|
||||
}, function(notificationId) {
|
||||
console.info('Notification "%s" created', notificationId);
|
||||
|
||||
sendResponse(true);
|
||||
}
|
||||
);
|
||||
|
||||
console.log('Showing notification %s', message.notificationId);
|
||||
// Fuck You, Chrome API documentation!!11
|
||||
return true;
|
||||
break;
|
||||
|
||||
case 'listenNotificationClicks':
|
||||
|
@ -52,30 +91,95 @@ chrome.extension.onMessage.addListener(function(message, sender) {
|
|||
});
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
sendResponse(true);
|
||||
|
||||
// Fuck You, Chrome API documentation!
|
||||
return true;
|
||||
break;
|
||||
|
||||
/**
|
||||
* @deprecated since 1.19.1
|
||||
*/
|
||||
case 'injectJSFile':
|
||||
console.log('Injecting JS: %s', message.file);
|
||||
chrome.tabs.executeScript(null, {
|
||||
file: message.file
|
||||
//,runAt: 'document_end'
|
||||
console.log('Executing JS: %s', message.file);
|
||||
chrome.tabs.executeScript(sender.tab.id ? sender.tab.id : null, {
|
||||
file: message.file,
|
||||
runAt: message.runAt || 'document_start'
|
||||
}, function() {
|
||||
sendResponse(true);
|
||||
|
||||
console.info('JS file executed: "%s"', message.file);
|
||||
return true;
|
||||
});
|
||||
|
||||
// Fuck You, Chrome API documentation!
|
||||
return true;
|
||||
break;
|
||||
|
||||
// Inject several files
|
||||
case 'executeJSFiles':
|
||||
//console.debug('Received JS file list: %O', message.files);
|
||||
|
||||
if (message.files.length) {
|
||||
injectJS(sender.tab.id ? sender.tab.id : null, message.files, function() {
|
||||
// @fixme does not sending response now!
|
||||
console.info('All scripts executed');
|
||||
|
||||
sendResponse(true);
|
||||
return true;
|
||||
});
|
||||
} else {
|
||||
/*
|
||||
* May be not?
|
||||
* But I don't want to block some shit-code execution
|
||||
*/
|
||||
sendResponse(false);
|
||||
|
||||
console.warn('No scripts executed (empty script array)');
|
||||
}
|
||||
|
||||
// Fuck You, Chrome API documentation!
|
||||
return true;
|
||||
break;
|
||||
|
||||
/**
|
||||
* @deprecated since 1.19.1
|
||||
*/
|
||||
case 'injectCSSFile':
|
||||
console.log('Injecting CSS: %s', message.file);
|
||||
chrome.tabs.insertCSS(null, {
|
||||
console.log('Injecting CSS: "%s"', message.file);
|
||||
chrome.tabs.insertCSS(sender.tab.id ? sender.tab.id : null, {
|
||||
file: message.file
|
||||
}, function() {
|
||||
// @todo message response callback processing
|
||||
//sendResponse(true);
|
||||
|
||||
console.info('CSS file "%s" injected', message.file);
|
||||
});
|
||||
|
||||
// Fuck You, Chrome API documentation!
|
||||
return true;
|
||||
break;
|
||||
|
||||
case 'injectCSSCode':
|
||||
if (message.code !== undefined) {
|
||||
chrome.tabs.insertCSS(null, {
|
||||
chrome.tabs.insertCSS(sender.tab.id ? sender.tab.id : null, {
|
||||
code: message.code
|
||||
}, function() {
|
||||
// @todo message response callback processing
|
||||
//sendResponse(true);
|
||||
|
||||
console.info('CSS code injected: \n%s', message.file);
|
||||
});
|
||||
}
|
||||
|
||||
// Fuck You, Chrome API documentation!
|
||||
return true;
|
||||
break;
|
||||
|
||||
default:
|
||||
sendResponse(false);
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
// Showing page action
|
||||
chrome.extension.sendMessage({
|
||||
chrome.runtime.sendMessage({
|
||||
type: 'showPageAction'
|
||||
}, null, function(response) {
|
||||
console.debug('showPageAction response: %O', response);
|
||||
});
|
||||
|
||||
/**
|
||||
|
@ -68,7 +70,7 @@ $(document).ready(function() {
|
|||
// Options debug
|
||||
try {
|
||||
console.debug('Options loaded: %O', options.getOptions());
|
||||
}catch(e){}
|
||||
} catch(e){}
|
||||
create_tag_system();
|
||||
|
||||
// Embedding
|
||||
|
@ -94,38 +96,44 @@ $(document).ready(function() {
|
|||
|
||||
// Soundcloud
|
||||
if (options.is('option_embedding_soundcloud')) {
|
||||
// Injecting JS API
|
||||
chrome.extension.sendMessage({
|
||||
type: 'injectJSFile',
|
||||
file: 'vendor/soundcloud/soundcloud.player.api.js'
|
||||
});
|
||||
// Executing Soundcloud player JS API
|
||||
chrome.runtime.sendMessage({
|
||||
type: 'executeJSFiles',
|
||||
files: [{
|
||||
file: 'vendor/soundcloud/soundcloud.player.api.js',
|
||||
runAt: 'document_end'
|
||||
}]
|
||||
}, null, function(response) {
|
||||
console.debug('Soundcloud injection response: %O', response);
|
||||
// If scripts are executed
|
||||
if (response) {
|
||||
// Processing links
|
||||
$('.post .post-content a[href*="\\:\\/\\/soundcloud\\.com\\/"]').each(function(index) {
|
||||
console.log($(this));
|
||||
|
||||
// Processing links
|
||||
$('.post .post-content a[href*="\\:\\/\\/soundcloud\\.com\\/"]').each(function(index) {
|
||||
console.log($(this));
|
||||
// @todo: вынести в отдельный шаблон
|
||||
$player = $('<div class="pp-soundcloud">\
|
||||
<object height="81" width="100%" id="pp-soundcloud-' + index + '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">\
|
||||
<param name="movie" value="//player.soundcloud.com/player.swf?url=' + encodeURIComponent($(this).prop('href'))
|
||||
+ '&enable_api=true&object_id=pp-soundcloud-' + index + '">\
|
||||
<param name="allowscriptaccess" value="always">\
|
||||
<embed allowscriptaccess="always" height="81" src="//player.soundcloud.com/player.swf?url='
|
||||
+ encodeURIComponent($(this).prop('href')) + '&enable_api=true&object_id=pp-soundcloud-' + index
|
||||
+ '" type="application/x-shockwave-flash" width="100%" name="pp-soundcloud-' + index + '"></embed>\
|
||||
</object>\
|
||||
</div>');
|
||||
|
||||
// @todo: вынести в отдельный шаблон
|
||||
$player = $('<div class="pp-soundcloud">\
|
||||
<object height="81" width="100%" id="pp-soundcloud-' + index + '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">\
|
||||
<param name="movie" value="//player.soundcloud.com/player.swf?url=' + encodeURIComponent($(this).prop('href'))
|
||||
+ '&enable_api=true&object_id=pp-soundcloud-' + index + '">\
|
||||
<param name="allowscriptaccess" value="always">\
|
||||
<embed allowscriptaccess="always" height="81" src="//player.soundcloud.com/player.swf?url='
|
||||
+ encodeURIComponent($(this).prop('href')) + '&enable_api=true&object_id=pp-soundcloud-' + index
|
||||
+ '" type="application/x-shockwave-flash" width="100%" name="pp-soundcloud-' + index + '"></embed>\
|
||||
</object>\
|
||||
</div>');
|
||||
|
||||
// Replace or prepend
|
||||
if (options.is('option_embedding_soundcloud_orig_link')) {
|
||||
// Before
|
||||
$(this).before($player);
|
||||
} else {
|
||||
// Replace
|
||||
$(this).replaceWith($player);
|
||||
// Replace or prepend
|
||||
if (options.is('option_embedding_soundcloud_orig_link')) {
|
||||
// Before
|
||||
$(this).before($player);
|
||||
} else {
|
||||
// Replace
|
||||
$(this).replaceWith($player);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Parse pleer.com links and create audio instead
|
||||
|
@ -142,66 +150,83 @@ $(document).ready(function() {
|
|||
// Fancybox
|
||||
if (options.is('option_fancybox')) {
|
||||
// Injecting Fancybox to the page
|
||||
chrome.extension.sendMessage({
|
||||
type: 'injectJSFile',
|
||||
file: 'vendor/fancybox/source/jquery.fancybox.pack.js'
|
||||
});
|
||||
chrome.extension.sendMessage({
|
||||
type: 'injectJSFile',
|
||||
file: 'vendor/fancybox/source/helpers/jquery.fancybox-media.js'
|
||||
});
|
||||
chrome.extension.sendMessage({
|
||||
// CSS
|
||||
// @todo message response callback processing
|
||||
chrome.runtime.sendMessage({
|
||||
type: 'injectCSSFile',
|
||||
file: 'vendor/fancybox/source/jquery.fancybox.css'
|
||||
});
|
||||
|
||||
if (options.is('option_fancybox_bind_images_to_one_flow')) {
|
||||
// Linking images in posts to the galleries
|
||||
$('.post-content .text').each(function() {
|
||||
$(this).find('a.postimg:not(.youtube)').attr('data-fancybox-group', 'one_flow_gallery');
|
||||
});
|
||||
} else {
|
||||
$('.post-content .text').each(function(idxPost) {
|
||||
$(this).find('a.postimg:not(.youtube)').attr('data-fancybox-group', 'post' + idxPost);
|
||||
});
|
||||
}
|
||||
// @todo message response callback processing
|
||||
chrome.runtime.sendMessage({
|
||||
type: 'injectCSSFile',
|
||||
file: 'css/fancybox/style.css'
|
||||
});
|
||||
// JS
|
||||
chrome.runtime.sendMessage(null, {
|
||||
type: 'executeJSFiles',
|
||||
files: [{
|
||||
file: 'vendor/fancybox/source/jquery.fancybox.pack.js',
|
||||
runAt: 'document_end'
|
||||
}, {
|
||||
// @todo Move to the option_fancybox_videos section
|
||||
file: 'vendor/fancybox/source/helpers/jquery.fancybox-media.js',
|
||||
runAt: 'document_end'
|
||||
}]
|
||||
}, null, function(response) {
|
||||
// If all JS are executed
|
||||
console.debug('Fancybox injection response: %O', response);
|
||||
if (response) {
|
||||
console.log('Fancybox executed. Processing...');
|
||||
|
||||
if (options.is('option_fancybox_bind_images_to_one_flow')) {
|
||||
// Linking images in posts to the galleries
|
||||
$('.post-content .text').each(function() {
|
||||
$(this).find('a.postimg:not(.youtube)').attr('data-fancybox-group', 'one_flow_gallery');
|
||||
});
|
||||
} else {
|
||||
$('.post-content .text').each(function(idxPost) {
|
||||
$(this).find('a.postimg:not(.youtube)').attr('data-fancybox-group', 'post' + idxPost);
|
||||
});
|
||||
}
|
||||
|
||||
// Images
|
||||
if (options.is('option_fancybox_images')) {
|
||||
// Init fancybox
|
||||
$('.postimg:not(.youtube)').fancybox({
|
||||
type: 'image'
|
||||
});
|
||||
}
|
||||
// Images
|
||||
if (options.is('option_fancybox_images')) {
|
||||
// Init fancybox
|
||||
$('.postimg:not(.youtube)').fancybox({
|
||||
type: 'image'
|
||||
});
|
||||
}
|
||||
|
||||
// Правим хинты у фансибокса
|
||||
if (options.is('option_fancybox_smart_hints')) {
|
||||
fancybox_set_smart_hints();
|
||||
} else {
|
||||
$('.post .postimg').attr('data-fancybox-title', ' ');
|
||||
}
|
||||
// Правим хинты у фансибокса
|
||||
if (options.is('option_fancybox_smart_hints')) {
|
||||
fancybox_set_smart_hints();
|
||||
} else {
|
||||
$('.post .postimg').attr('data-fancybox-title', ' ');
|
||||
}
|
||||
|
||||
// Videos
|
||||
if (options.is('option_fancybox_videos')) {
|
||||
$('.postimg.youtube').addClass('fancybox-media').fancybox({
|
||||
helpers: {
|
||||
media: {
|
||||
youtube: {
|
||||
params: {
|
||||
autoplay: 1
|
||||
// Videos
|
||||
if (options.is('option_fancybox_videos')) {
|
||||
$('.postimg.youtube').addClass('fancybox-media').fancybox({
|
||||
helpers: {
|
||||
media: {
|
||||
youtube: {
|
||||
params: {
|
||||
autoplay: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
// Posts
|
||||
if (options.is('option_fancybox_posts')) {
|
||||
// Excluding some sort of piece-of-shit makeup
|
||||
$('.post-id a').not('#comments .post-id a, #top-post .post-id a').attr('data-fancybox-type', 'iframe').fancybox({
|
||||
maxWidth: 780
|
||||
});
|
||||
}
|
||||
// Posts
|
||||
if (options.is('option_fancybox_posts')) {
|
||||
// Excluding some sort of piece-of-shit makeup
|
||||
$('.post-id a').not('#comments .post-id a, #top-post .post-id a').attr('data-fancybox-type', 'iframe').fancybox({
|
||||
maxWidth: 780
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// NSFW Filtering
|
||||
|
@ -282,41 +307,55 @@ $(document).ready(function() {
|
|||
}
|
||||
// Visual editor
|
||||
if (options.is('option_visual_editor_post')) {
|
||||
// Injecting editor JS
|
||||
chrome.extension.sendMessage({
|
||||
type: 'injectJSFile',
|
||||
file: 'vendor/markitup/markitup/jquery.markitup.js'
|
||||
});
|
||||
// Getting mySettings from set.js
|
||||
chrome.extension.sendMessage({
|
||||
type: 'injectJSFile',
|
||||
file: 'js/markitup/sets/markdown/set.js'
|
||||
});
|
||||
// Add classes
|
||||
$('#new-post-form #text-input, .post-content #text-input').addClass('markitup').css('height', '20em');
|
||||
|
||||
// CSS
|
||||
chrome.extension.sendMessage({
|
||||
// @todo message response callback processing
|
||||
chrome.runtime.sendMessage({
|
||||
type: 'injectCSSFile',
|
||||
file: 'vendor/markitup/markitup/skins/markitup/style.css'
|
||||
});
|
||||
chrome.extension.sendMessage({
|
||||
// Fixes for extension
|
||||
// @todo message response callback processing
|
||||
chrome.runtime.sendMessage({
|
||||
type: 'injectCSSFile',
|
||||
file: 'css/markitup/skins/markitup/style.css'
|
||||
});
|
||||
// @todo message response callback processing
|
||||
chrome.runtime.sendMessage({
|
||||
type: 'injectCSSFile',
|
||||
file: 'css/markitup/sets/markdown/style.css'
|
||||
});
|
||||
|
||||
// Add classes
|
||||
$('#new-post-form #text-input, .post-content #text-input').addClass('markitup').css('height', '20em');
|
||||
// Init
|
||||
$('.markitup').markItUp(mySettings);
|
||||
// JS
|
||||
chrome.runtime.sendMessage({
|
||||
type: 'executeJSFiles',
|
||||
files: [{
|
||||
file: 'vendor/markitup/markitup/jquery.markitup.js',
|
||||
runAt: 'document_end'
|
||||
}, {
|
||||
file: 'js/markitup/sets/markdown/set.js',
|
||||
runAt: 'document_end'
|
||||
}]
|
||||
}, null, function(response) {
|
||||
console.debug('MarkItUp injection response: %O', response);
|
||||
// If scripts are executed
|
||||
if (response) {
|
||||
// Init MarkItUp
|
||||
$('.markitup').markItUp(mySettings);
|
||||
|
||||
// Send by CTRL+Enter
|
||||
if (options.is('option_ctrl_enter')) {
|
||||
// New post
|
||||
$('#new-post-form #text-input, .post-content #text-input').on('keydown.point_plus', function(e) {
|
||||
if (e.ctrlKey && (e.keyCode == 10 || e.keyCode == 13)) {
|
||||
e.preventDefault();
|
||||
$(this).parents('#new-post-form,#post-edit-form').submit();
|
||||
// Send by CTRL+Enter
|
||||
if (options.is('option_ctrl_enter')) {
|
||||
// New post
|
||||
$('#new-post-form #text-input, .post-content #text-input').on('keydown.point_plus', function(e) {
|
||||
if (e.ctrlKey && (e.keyCode == 10 || e.keyCode == 13)) {
|
||||
e.preventDefault();
|
||||
$(this).parents('#new-post-form,#post-edit-form').submit();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
// Google search
|
||||
if (options.is('option_search_with_google')) {
|
||||
|
@ -335,7 +374,7 @@ $(document).ready(function() {
|
|||
|
||||
// @todo: унести в опцию
|
||||
// Adding event listener for notification click
|
||||
chrome.extension.sendMessage({
|
||||
chrome.runtime.sendMessage({
|
||||
type: 'listenNotificationClicks',
|
||||
protocol: getProtocol()
|
||||
});
|
||||
|
@ -357,7 +396,7 @@ $(document).ready(function() {
|
|||
try {
|
||||
// ping :)
|
||||
if (evt.data == 'ping') {
|
||||
console.debug('ws-ping');
|
||||
console.info('ws-ping');
|
||||
} else {
|
||||
var wsMessage = JSON.parse(evt.data);
|
||||
|
||||
|
@ -491,7 +530,7 @@ $(document).ready(function() {
|
|||
// Desktop notifications
|
||||
if (options.is('option_ws_comments_notifications')) {
|
||||
console.log('Showing desktop notification');
|
||||
chrome.extension.sendMessage({
|
||||
chrome.runtime.sendMessage({
|
||||
type: 'showNotification',
|
||||
notificationId: 'comment_' + wsMessage.post_id + '#' + wsMessage.comment_id,
|
||||
avatarUrl: getProtocol() + userAvatar + '/80',
|
||||
|
@ -550,7 +589,8 @@ $(document).ready(function() {
|
|||
}
|
||||
// @ before username
|
||||
if (options.is('option_at_before_username')) {
|
||||
chrome.extension.sendMessage({
|
||||
// @todo message response callback processing
|
||||
chrome.runtime.sendMessage({
|
||||
type: 'injectCSSFile',
|
||||
file: 'css/modules/at_before_username.css'
|
||||
});
|
||||
|
@ -594,7 +634,7 @@ $(document).ready(function() {
|
|||
});
|
||||
|
||||
function getProtocol() {
|
||||
return ((location.protocol == 'http:') ? 'http:' : 'https:')
|
||||
return ((location.protocol == 'http:') ? 'http:' : 'https:');
|
||||
}
|
||||
|
||||
function escapeHtml(text) {
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
"web_accessible_resources": [
|
||||
"images/*",
|
||||
"includes/*",
|
||||
"vendor/*",
|
||||
"manifest.json"
|
||||
],
|
||||
"background": {
|
||||
|
|
Loading…
Reference in a new issue