Merge branch 'Branch_ff51da8c3a3e21a38a8250fc2acd72c17ba6e744'

This commit is contained in:
Nokita Kaze 2014-11-22 15:15:43 +03:00
commit ae7b78ac16
7 changed files with 183 additions and 79 deletions

View file

@ -75,13 +75,19 @@
"message": "NSFW content filtering" "message": "NSFW content filtering"
}, },
"option_nsfw_hide_posts":{ "option_nsfw_hide_posts":{
"message": "Hide entire posts with `nsfw` tag" "message": "Hide posts with `nsfw` tag from feed"
}, },
"option_nsfw_blur": { "option_nsfw_blur_posts_images": {
"message": "Blurring" "message": "Blur images in nsfw posts"
}, },
"option_nsfw_blur_comments": { "option_nsfw_blur_posts_entire": {
"message": "Blur comments too" "message": "Blur entire nsfw posts"
},
"option_nsfw_blur_comments_images": {
"message": "Blur images in comments in nsfw posts"
},
"option_nsfw_blur_comments_entire": {
"message": "Blur entire comments in nsfw posts"
}, },
"option_ctrl_enter": { "option_ctrl_enter": {
"message": "Send post and comments by CTRL+Enter (deprecated)" "message": "Send post and comments by CTRL+Enter (deprecated)"

View file

@ -75,13 +75,19 @@
"message": "Фильтрация NSFW-контента" "message": "Фильтрация NSFW-контента"
}, },
"option_nsfw_hide_posts":{ "option_nsfw_hide_posts":{
"message": "Скрывать NSFW-посты полностью" "message": "Скрывать NSFW-посты из ленты сообщений"
}, },
"option_nsfw_blur": { "option_nsfw_blur_posts_images": {
"message": "Размытие небезопасных постов" "message": "Размытие картинок в небезопасных постах"
}, },
"option_nsfw_blur_comments": { "option_nsfw_blur_posts_entire": {
"message": "Размытие комментариев" "message": "Размытие небезопасных постов полностью"
},
"option_nsfw_blur_comments_images": {
"message": "Размытие картинок в каментариях небезопасных постов"
},
"option_nsfw_blur_comments_entire": {
"message": "Размытие ВСЕХ комментариев в небезопасных постах"
}, },
"option_ctrl_enter": { "option_ctrl_enter": {
"message": "Отправлять текст по CTRL+Enter (устарело)" "message": "Отправлять текст по CTRL+Enter (устарело)"

View file

@ -174,35 +174,31 @@ div#markItUpText-input {
/* Labels in post */ /* Labels in post */
.post .post-id a .cn.changed_background{ .post .post-id a .cn.changed_background{
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAANdJREFUOMvN069OgmEUBvAfSCUxNicFKTQ3bkCLyRvwDrgHZ5Q7MFlobAY3G9UrsOi0iIGNBIGgG00o53PvCMAHBJ7thPecPc/5+3IoKKKDIeZrbIi74CiFQBs3eMTbmmRnuMUID5nzG90cFXcxyEqHU3zlEBigkQoUor9N8Recf4Gdpr8XgV+Uc/DK+Ekdz/hAcwNyE594Sp0NTJYOZobriB/FjUwjNkE9m36GKq5wHO9zXOICtch4j1f0Q2QlSnjBGL10dXlQxXvSVmWbTZ3E/5ijtRxcAIj4MflVC0WJAAAAAElFTkSuQmCC") no-repeat 2px 1px;
padding-left: 20px;
} }
.post .post-id a .authors_unique_count, .post .post-id a .recomendation_count { .post .post-id a .authors_unique_count, .post .post-id a .recommendation_count {
padding: 0 .5em; padding: 0 .5em;
font-weight: normal; font-weight: normal;
color: #35587c; color: #35587c;
background: #f2f2eb; background-color: #f2f2eb;
} }
.post .post-id a .recomendation_count { .post .post-id a .recommendation_count {
margin-left: 0.2em; margin-left: 0.2em;
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAAXNSR0IArs4c6QAAAMRJREFUGBmtwbsuQ2EAAOCPX6LlKSRGD2E0YCKRGDqLQReDSVhIjI1r49bRdiZJn0GIQcPSxFO4HPHLOe1J2rpMvo//MaMl1batZNSWtlTLrK4JL5qqTqQO1aTqqppeTcrtexRklkTRskzw4Eju1rmOIIqCjrp7uRsNhQWLCmfu5C48Kxk05MmV3JR3xwatiaZ1rYg29Zr34VSPHdG6wpw3iaDPnmhDpiKVKPtmV7Sq4tOlET86EEUNw34RJK4Ffxgzrs8XpvA41+ECiwcAAAAASUVORK5CYII=") no-repeat 2px 1px;
background-color: #f2eceb; background-color: #f2eceb;
padding-left: 20px;
} }
/* NSFW-content */ /* NSFW-content */
.post-tag-nsfw.hide-nsfw a.postimg img, .post-tag-nsfw.blur-nsfw-images a.postimg img,
.post-tag-сиськи.hide-nsfw a.postimg img, .post-tag-сиськи.blur-nsfw-images a.postimg img,
#comments.hide-nsfw a.postimg img{ #comments.blur-nsfw-images a.postimg img{
margin-top: 5px; margin-top: 5px;
-webkit-filter: blur(30px); -webkit-filter: blur(30px);
} }
.post-tag-nsfw.hide-nsfw a.postimg:hover img, .post-tag-nsfw.blur-nsfw-images a.postimg:hover img,
.post-tag-сиськи.hide-nsfw a.postimg:hover img, .post-tag-сиськи.blur-nsfw-images a.postimg:hover img,
#comments.hide-nsfw a.postimg:hover img{ #comments.blur-nsfw-images a.postimg:hover img{
-webkit-filter: none; -webkit-filter: none;
} }
@ -211,3 +207,26 @@ div#markItUpText-input {
display: none; display: none;
} }
.post-tag-nsfw.blur-nsfw-entire .post-content .text,
.post-tag-сиськи.blur-nsfw-entire .post-content .text,
#comments.blur-nsfw-entire .post-content .text{
-webkit-filter: blur(30px);
}
/* point-plus-debug */
.point-plus-debug{
position: absolute;
padding: 10px 20px;
top: 60px;
left: 20px;
border-radius: 3px;
border: 1px solid #333;/* @todo Сделать не такой галимый */
background-color: #ddd;/* @todo Аналогично */
z-index: 11;
}
.post-tag-nsfw.hide-nsfw-posts,
.post-tag-сиськи.hide-nsfw-posts{
display: none;
}

View file

@ -28,9 +28,11 @@ var ppOptions = [
'option_nsfw', 'option_nsfw',
'option_nsfw_hide_posts', 'option_nsfw_hide_posts',
// Blured pictures // Blured pictures
'option_nsfw_blur', 'option_nsfw_blur_posts_images',
'option_nsfw_blur_posts_entire',
// Blur comments too // Blur comments too
'option_nsfw_blur_comments', 'option_nsfw_blur_comments_images',
'option_nsfw_blur_comments_entire',
// CTRL+Enter // CTRL+Enter
'option_ctrl_enter', 'option_ctrl_enter',
// Fluid layout // Fluid layout
@ -78,8 +80,10 @@ function pp_save_options() {
ppOptions.option_embedding_pleercom_nokita_server = $('#option-embedding-pleercom-nokita-server').prop('checked'); ppOptions.option_embedding_pleercom_nokita_server = $('#option-embedding-pleercom-nokita-server').prop('checked');
ppOptions.option_nsfw = $('#option-nsfw').prop('checked'); ppOptions.option_nsfw = $('#option-nsfw').prop('checked');
ppOptions.option_nsfw_hide_posts = $('#option-nsfw-hide-posts').prop('checked'); ppOptions.option_nsfw_hide_posts = $('#option-nsfw-hide-posts').prop('checked');
ppOptions.option_nsfw_blur = $('#option-nsfw-blur').prop('checked'); ppOptions.option_nsfw_blur_posts_images = $('#option-nsfw-blur-posts-images').prop('checked');
ppOptions.option_nsfw_blur_comments = $('#option-nsfw-blur-comments').prop('checked'); ppOptions.option_nsfw_blur_posts_entire = $('#option-nsfw-blur-posts-entire').prop('checked');
ppOptions.option_nsfw_blur_comments_images = $('#option-nsfw-blur-comments-images').prop('checked');
ppOptions.option_nsfw_blur_comments_entire = $('#option-nsfw-blur-comments-entire').prop('checked');
ppOptions.option_visual_editor_post = $('#option-visual-editor-post').prop('checked'); ppOptions.option_visual_editor_post = $('#option-visual-editor-post').prop('checked');
ppOptions.checkbox_search_with_google = $('#option-search-with-google').prop('checked'); ppOptions.checkbox_search_with_google = $('#option-search-with-google').prop('checked');
ppOptions.option_ws = $('#option-ws').prop('checked'); ppOptions.option_ws = $('#option-ws').prop('checked');

View file

@ -1,9 +1,22 @@
$(document).ready(function () { $(document).ready(function () {
// Grouping console log // Grouping console log
console.group('point-plus'); console.group('point-plus');
console.info('Point+ %s', getVersion()); console.info('Point+ %s', getVersion());
// Проверяем, загрузились ли мы
var point_plus_debug=$('.point-plus-debug');
if (point_plus_debug.length>0){
console.info('Point+ already loaded, version: %s', point_plus_debug.attr('data-point-plus-version'));
return;
}
point_plus_debug=null;
var new_div=document.createElement('div');
document.body.appendChild(new_div);
$(new_div).attr({
'data-point-plus-version':getVersion()
}).addClass('point-plus-debug').html('Point+ v'+getVersion()+' loading...');
new_div=null;
// Loading options // Loading options
chrome.storage.sync.get(ppOptions, function (options) { chrome.storage.sync.get(ppOptions, function (options) {
// Options debug // Options debug
@ -11,7 +24,6 @@ $(document).ready(function () {
create_tag_system(); create_tag_system();
// Embedding // Embedding
if (options.option_embedding == true) { if (options.option_embedding == true) {
// Load pictures from Booru, Tumblr and some other sites // Load pictures from Booru, Tumblr and some other sites
@ -90,38 +102,44 @@ $(document).ready(function () {
}); });
} }
// Правим хинт в FancyBox // Правим хинт в FancyBox
$('.post').each(function(){ $('.post').each(function () {
var all_post_images=$(this).find('.postimg'); var all_post_images = $(this).find('.postimg');
if (all_post_images.length==0){return;} if (all_post_images.length == 0) {
return;
}
var tags = $(this).find('div.tags a.tag'); var tags = $(this).find('div.tags a.tag');
var hint_text = '';// Текст для хинта в FancyBox var hint_text = '';// Текст для хинта в FancyBox
// Сначала теги // Сначала теги
for (var i = 0; i < tags.length; i++) { for (var i = 0; i < tags.length; i++) {
var tag_name = $(tags[i]).html().toLowerCase(); var tag_name = $(tags[i]).html().toLowerCase();
hint_text+=' '+tag_name; hint_text += ' ' + tag_name;
} }
// Потом текст // Потом текст
var textcontent=$(this).find('.text-content'); var textcontent = $(this).find('.text-content');
if (textcontent.length>0){ if (textcontent.length > 0) {
textcontent=textcontent[0]; textcontent = textcontent[0];
for(var i=0;i<textcontent.childNodes.length;i++){ for (var i = 0; i < textcontent.childNodes.length; i++) {
var current_child_node=textcontent.childNodes[i]; var current_child_node = textcontent.childNodes[i];
if((current_child_node.nodeName!=='P')&&(current_child_node.nodeName!=='#text')){continue;} if ((current_child_node.nodeName !== 'P') && (current_child_node.nodeName !== '#text')) {
var a=$(current_child_node).find('a.postimg'); continue;
if (a.length>0){continue;} }
var a = $(current_child_node).find('a.postimg');
if (a.length > 0) {
continue;
}
var tmp_str=current_child_node.textContent.replace(/(\n(\r)?)/g, ' '); var tmp_str = current_child_node.textContent.replace(/(\n(\r)?)/g, ' ');
tmp_str =tmp_str.replace("\t", " "); tmp_str = tmp_str.replace("\t", " ");
hint_text+=' '+tmp_str; hint_text += ' ' + tmp_str;
} }
} }
// Режем // Режем
hint_text=hint_text.replace(new RegExp(' {2,}'), ' ').replace(new RegExp(' +$'), '').substr(1); hint_text = hint_text.replace(new RegExp(' {2,}'), ' ').replace(new RegExp(' +$'), '').substr(1);
if (hint_text.length>140){ if (hint_text.length > 140) {
hint_text=hint_text.substr(0,140-3)+'...'; hint_text = hint_text.substr(0, 140 - 3) + '...';
} }
all_post_images.attr('data-fancybox-title', hint_text); all_post_images.attr('data-fancybox-title', hint_text);
@ -155,23 +173,30 @@ $(document).ready(function () {
$('.post-tag-nsfw,.post-tag-сиськи').find('a.postimg:not(.youtube)').attr('data-fancybox-group', 'hidden-images'); $('.post-tag-nsfw,.post-tag-сиськи').find('a.postimg:not(.youtube)').attr('data-fancybox-group', 'hidden-images');
if (options.option_nsfw_hide_posts == true) { if (options.option_nsfw_hide_posts == true) {
if ($('#comments').length==0) { if ($('#comments').length == 0) {
// @hint Поведение "галка нажата, а внутри постов НЕ блюрится, даже если нажаты все три галки" - не баг console.log('Hide NSFW posts in feed');
console.log('Hide NSFW posts');
$('.post').addClass('hide-nsfw-posts'); $('.post').addClass('hide-nsfw-posts');
} }
} else { } else {
// Blurred posts // Blurred posts
if (options.option_nsfw_blur == true) { if (options.option_nsfw_blur_posts_entire == true) {
console.log('Bluring NSFW posts'); console.log('Bluring NSFW posts');
$('.post').addClass('hide-nsfw'); $('.post').addClass('blur-nsfw-entire');
} else if (options.option_nsfw_blur_posts_images == true) {
console.log('Bluring images in NSFW posts');
$('.post').addClass('blur-nsfw-images');
}
}
// Blurred comments // Blurred comments
if ((options.option_nsfw_blur_comments == true) && ( if ($('.post').hasClass('post-tag-nsfw') || $('.post').hasClass('post-tag-сиськи')) {
($('.post').hasClass('post-tag-nsfw'))) || ($('.post').hasClass('post-tag-сиськи')) if (options.option_nsfw_blur_comments_entire == true) {
) { console.log('Bluring comments');
$('#comments').addClass('hide-nsfw'); $('#comments').addClass('blur-nsfw-entire');
} } else if (options.option_nsfw_blur_comments_images == true) {
// @hint Никита Ветров официально складывает с себя все претензии, если у кого-то от этого говна упадёт драйвер видео-карты
console.log('Bluring images in comments');
$('#comments').addClass('blur-nsfw-images');
} }
} }
} }
@ -474,11 +499,12 @@ $(document).ready(function () {
if (options.option_other_show_recommendation_count == true) { if (options.option_other_show_recommendation_count == true) {
set_posts_count_label(); set_posts_count_label();
} }
// `Space` key scroll handler
if (options.option_other_scroll_space_key == true){ if (options.option_other_scroll_space_key == true){
set_space_key_skip_handler(); set_space_key_skip_handler();
} }
$('.point-plus-debug').fadeOut(500);
}); });
// Showing page action // Showing page action
@ -502,7 +528,6 @@ var months = [
]; ];
/* Nokita's functions */
// Картинки с бурятников // Картинки с бурятников
var booru_picture_count = 0; var booru_picture_count = 0;
function load_all_booru_images() { function load_all_booru_images() {
@ -591,7 +616,7 @@ function create_image(domain, id, additional) {
return a; return a;
} }
/* point */ // Помечаем непрочитанные посты более видимо чем каким-то баджем
// Эта часть написана @RainbowSpike // Эта часть написана @RainbowSpike
function mark_unread_post() { function mark_unread_post() {
var divs = $(".post"); // массив постов var divs = $(".post"); // массив постов
@ -639,7 +664,7 @@ function parse_all_videos() {
var href = obj.href; var href = obj.href;
var n = null; var n = null;
if (n = href.match(new RegExp('\\.(webm|avi|mp4)(\\?.+)?$', 'i'))) { if (n = href.match(new RegExp('\\.(webm|avi|mp4|mpg|mpeg)(\\?.+)?$', 'i'))) {
var player = document.createElement('video'); var player = document.createElement('video');
var mime = video_extension_to_mime(n[1]); var mime = video_extension_to_mime(n[1]);
$(player).html('<source src="' + href + '" type=\'' + mime + '"\' />').attr('controls', 'controls').css({ $(player).html('<source src="' + href + '" type=\'' + mime + '"\' />').attr('controls', 'controls').css({
@ -655,13 +680,14 @@ function parse_all_videos() {
function video_extension_to_mime(extension) { function video_extension_to_mime(extension) {
switch(extension){ switch(extension){
case 'webm':return 'video/webm; codecs="vp8, vorbis'; case 'webm':return 'video/webm; codecs="vp8, vorbis';
case 'avi' :return 'video/avi;';// @hint Хотя сомнительно case 'avi' :return 'video/avi;';
case 'mp4' :return 'video/mp4;'; case 'mp4' :return 'video/mp4;';
case 'mpg' :return 'video/mp4;';
case 'mpeg':return 'video/mp4;';
} }
} }
// Плашки у постов // Плашки у постов
function set_posts_count_label() { function set_posts_count_label() {
var ids = []; var ids = [];
@ -697,7 +723,7 @@ function set_posts_count_label() {
postid.appendChild(e1); postid.appendChild(e1);
var e2 = document.createElement('span'); var e2 = document.createElement('span');
$(e2).addClass('recomendation_count').html('~' + answer.list[id].count_recommendation).attr('title', 'Количество рекомендаций. Работает криво, спасибо @arts\'у за это'); $(e2).addClass('recommendation_count').html('~' + answer.list[id].count_recommendation).attr('title', 'Количество рекомендаций. Работает криво, спасибо @arts\'у за это');
postid.appendChild(e2); postid.appendChild(e2);
}); });
} }
@ -813,17 +839,52 @@ function set_space_key_skip_handler(){
}); });
} }
function space_key_event(){ }
var scroll_current =$('body').scrollTop();
var scroll_step_size=0;
var scroll_real =Math.max(scroll_current-scroll_step_size,0);
var posts=$('.post'); // Проставляем теги у постов
for(var i=0;i<posts.length;i++){ function create_tag_system() {
var this_top_px=$(posts[i]).offset().top; $('.post').each(function () {
if (this_top_px>scroll_real){ var tags = $(this).find('div.tags a.tag');
for (var i = 0; i < tags.length; i++) {
var tag_name = $(tags[i]).html().toLowerCase();
$(this).addClass('post-tag-' + tag_name);
}
});
}
// Скролл по пробелу
function set_space_key_skip_handler() {
if ($('#comments').length > 0) {
return;
}
// @todo Свериться с Best-practice биндинга функций. Мб там on или bind
$(document.body).keydown(function (e) {
// @todo Я хотел по отпусканию кнопки, но там уже скролл срабатывает
// проверяем фокус
if ($(':focus').length > 0) {
return;
}
var k = event.keyCode;
if (k == 32) {
space_key_event();
return false;
}
});
}
function space_key_event() {
var scroll_current = $('body').scrollTop();
var scroll_step_size = 0;
var scroll_real = Math.max(scroll_current - scroll_step_size, 0);
var posts = $('.post');
for (var i = 0; i < posts.length; i++) {
var this_top_px = $(posts[i]).offset().top;
if (this_top_px > scroll_real) {
$('body').animate({ $('body').animate({
'scrollTop':this_top_px 'scrollTop': this_top_px
}, 200); }, 200);
return; return;
} }

View file

@ -1,7 +1,7 @@
{ {
"manifest_version": 2, "manifest_version": 2,
"name": "Point+", "name": "Point+",
"version": "1.14.1", "version": "1.14.2",
"default_locale": "ru", "default_locale": "ru",
"author": "__MSG_ext_author__", "author": "__MSG_ext_author__",
"homepage_url": "https://bitbucket.org/skobkin/chrome_point_plus", "homepage_url": "https://bitbucket.org/skobkin/chrome_point_plus",

View file

@ -82,10 +82,18 @@
</div> </div>
<div class="option"> <div class="option">
<input type="checkbox" id="option-nsfw-blur"><label for="option-nsfw-blur" data-i18n="option_nsfw_blur"></label> <input type="checkbox" id="option-nsfw-blur-posts-images"><label for="option-nsfw-blur-posts-images" data-i18n="option_nsfw_blur_posts_images"></label>
<div class="option"> <div class="option">
<input type="checkbox" id="option-nsfw-blur-comments"><label for="option-nsfw-blur-comments" data-i18n="option_nsfw_blur_comments"></label> <input type="checkbox" id="option-nsfw-blur-posts-entire"><label for="option-nsfw-blur-posts-entire" data-i18n="option_nsfw_blur_posts_entire"></label>
</div>
</div>
<div class="option">
<input type="checkbox" id="option-nsfw-blur-comments-images"><label for="option-nsfw-blur-comments-images" data-i18n="option_nsfw_blur_comments_images"></label>
<div class="option">
<input type="checkbox" id="option-nsfw-blur-comments-entire"><label for="option-nsfw-blur-comments-entire" data-i18n="option_nsfw_blur_comments_entire"></label>
</div> </div>
</div> </div>
</div> </div>