@Tenno-Seremel

Тег scriptish в блоге Tenno-Seremel

Tenno-Seremel

LOR_remarks 1.4: позволяет давать пользователям описания на ЛОРе. Нужно затем, что встроенных в ЛОР 255 символов мне мало. Поскольку всё хранится в самом браузере и только в нём, вряд ли кому пригодится. Со встроенными в ЛОР описаниями интеграции нет.

Экспорт в JSON в буфер обмена.

Импорт из JSON есть, но он медленный, такая же ерунда с удалением всех описаний. Даже 500 описаний занимают довольно ощутимое время (не в минутах, к счастью), во время которого браузер превращается в тыкву. Не знаю уж, быть может Greasemonkey на каждую запись в свою sqlite базу делает sync или ещё что-нибудь «вредное».

https://github.com/tenno-seremel/scriptish-scripts

#ovnuqp 10
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

Слоупоки проснулись и узнали, что Greasemonkey нынче хранит значения, сохраняемые GM_setValue, в отдельной базе для каждого скрипта. Пора расчехлять тот юзерскрипт для пользовательских описаний на ЛОРе и проверить, а то я в 255 символов не укладываюсь, которые ЛОР под это отводит.

#ovyqvo
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

point-customizer теперь всегда переносит теги наверх, т.к. всем пофиг и никто не умеет пользоваться заголовками :}

В общем, скрипты у меня теперь в Greasemonkey, см пост #ovrmss. Но работать всё равно и так будет.

https://github.com/tenno-seremel/scriptish-scripts

#ovrfwj 13
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

Надоели жумлоадминовские нередактируемые поля картинок для материалов. Пора применять тяжёлое вооружение. Ширина поля, правда, не очень, но над этим я как-нибудь потом подумаю.

(function()
{
    'use strict';
    function on_dom_load()
    {
        var els = ['jform_images_image_intro', 'jform_images_image_fulltext'];
        for (var i = 0, len = els.length; i < len; ++i) {
            var input = document.getElementById(els[i]);
            if (input) {
                input.removeAttribute('readonly');
            }
        }
    }
    document.addEventListener('DOMContentLoaded', on_dom_load, false);
})();
#ovrbwx
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

Мне таки удалось победить лень и поменять Sriptish обратно на GreaseMonkey, раз уж всё равно непонятно, кто их них зомби. Скрипты на гитхабе, впрочем, пока не изменены, т.к. изменений в них всё равно нет. Правда там теперь будет namespace, так что если их добавлять, то старые автоматически не заменятся… Впрочем, это решается копипастом или удалением дублей.

Правильным было бы переименовать тег теперь в userjs, дабы не морочить голову, но на пойнте такой фишки нет, а руками это ж на каждый пост надо теги менять… %)

#ovrmss 2
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

Какой-то Scriptish не очень живой, greasemonkey живее, но так лень…

#ovqwyv 4
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

TSConfig: https://github.com/tenno-seremel/tsconfig

Что, кто там хотел? Не то хотели? Ну, чем богаты! :} Вот она, жуткая морда для конфигурялки в юзерскриптах. Ничего не сохраняет и не читает, именно морда. Генерируется по указанным данным. При сохранении вызывает указанную функцию, которой передаёт информацию об изменённых настройках.

Что плохо:

  • Стили прямо в коде. Про юзерскрипты, вроде, говорили, классы пихать как-то не хотелось, мало ли.
  • Расширять всё же неудобно.
  • Никаких радиобаттонов, комбобоксы во все поля.
  • Флоатимся. Ну, а что делать. Группируйте опции.

P.S. scriptish в тегах просто потому что искать потом как-то надо. Сам он тут не при делах, но может как-нибудь воспользуюсь в скриптах к нему.

#ovysgb 19
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

scriptish-scripts пополнился очередным пойнто-костылём: point-image-popup.

Показывает картинку, на которую ссылается ссылка-превью на текущей странице в point.im, попапом. Хватает только то, что оканчивается на .png, .jpg и .gif и имеет внутри картинку. Или надо было все ссылки хватать? Впрочем, мне уже лень менять %)

Для закрытия надо клацнуть мышью. Если сумели открыть клавой, то ещё один энтер спасёт отца русской демократии. Только tab не нажимайте, а то обратно на элемент пока вернётесь :} По хорошему, конечно, тут надо обрабатывать ESC, но это на всю страницу обработчик вешать.

Не ресайзится, так что появляются скроллбары если оно не влезает в экран. Не знаю, как уж оно должно быть. Мне показалось, что так нормально %)

#tbrfl 12
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

Раз уж Point всё ещё не осиливает "//" вместо указания протокола и иногда рандомно лажает… Ещё один велосипед в scriptish-scripts: force-https.user.js.

Для страниц, указанных в \@include, принудительно редиректит на https версию (она должна существовать), а все ссылки (a\@href) и картинки (img\@src) на открытой странице, что ведут на этот же сервер, меняются с http на https. Костыль.

inb4 есть же расширение. Есть, ну и что? :3 Можно бы ещё добавить всякие iframe, например, но мне пока не нужно.

#tuwll
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

Ну, раз уж юзерскриптсорк не очень-то жив, то скрипты будут теперь там: https://github.com/tenno-seremel/scriptish-scripts

#tbngv 7
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

Пока мы не получили новый дизайн, в котором всё будет быстрее, выше и веселее, пилю себе скрипт. Переход по иконке в левом верхнем углу в /all и перенос тегов в начало поста (либо после первого заголовка первого уровня, если таковой есть в тексте).

http://pastebin.com/tEmpTFg3

#nwuvd 16
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

Хорошая новость: у меня есть юзерскрипт, который может сохранять описания о лоровцах через GM_setValue (стандартные на сайте слишком короткие и контролируются сайтом). Плохая новость: оно сохраняется туда же, где Firefox хранит все остальные свои настройки. Т.е. оно, конечно, ставит свой префикс, но количество описанных пользователей имеет обыкновение только расти. Думаю что делать.

#oaxq
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

http://userscripts.org/users/661902/scripts

Все юзерскрипты теперь там. Будем надеяться, что в процессе загрузки ничего не сломалось :}

#ojtj
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

Юзерскрипт скрывает картинки «nsfw» и «18+» постов пустой рамкой. Для отображения нужно клацнуть мышкой. В комментариях к посту (и самом посте) скрываются вообще все картинки. Если этого не нужно, можно вызов hide_in_comments() закомментировать.

// ==UserScript==
// @id             point-nsfw-hider
// @name           Point NSFW hider
// @version        1.0
// @namespace      
// @author         Tenno Seremel
// @description    
// @include        http://point.im/*
// @include        https://point.im/*
// @include        http://*.point.im/*
// @include        https://*.point.im/*
// @run-at         document-end
// ==/UserScript==
(function(){
    var HIDE_TAGS = ['nsfw', '18+'];
    var placeholder = document.createElement('span');
    placeholder.setAttribute(
        'style',
        'background: #FFF; outline: 1px dashed #ccc; position: absolute; left: 0; top: 0; width: 100%; height: 100%; cursor: pointer;z-index: 1;'
    );
    placeholder.setAttribute('title', 'Показать.');
    function insert_cover(post_el)
    {
        var image_block = post_el.querySelector('.text .postimg');
        if (image_block) {
            image_block.style.position = 'relative';
            var new_cover = placeholder.cloneNode(true);
            new_cover.addEventListener('click', remove_cover, false);
            image_block.appendChild(new_cover);
        }
    }
    function remove_cover(ev)
    {
        ev.preventDefault();
        ev.stopPropagation();
        var target = ev.target;
        target.parentNode.removeChild(target);
    }
    function hide_in_list()
    {
        var posts = document.querySelectorAll('#content .post');
        for (var i = 0, len = posts.length; i < len; i++) {
            var current = posts[i];
            var tag_els = current.querySelectorAll('.tag');
            for (var j = 0, len2 = tag_els.length; j < len2; j++) {
                var current_tag = tag_els[j].textContent.trim().toLowerCase();
                if (HIDE_TAGS.indexOf(current_tag) !== -1) {
                    insert_cover(current);
                    break;
                }
            }
        }
    }
    function hide_in_comments(top_post_el)
    {
        var tag_els = top_post_el.querySelectorAll('.tag');
        for (var i = 0, len = tag_els.length; i < len; i++) {
            var current_tag = tag_els[i].textContent.trim().toLowerCase();
            if (HIDE_TAGS.indexOf(current_tag) !== -1) {
                var posts = document.querySelectorAll('#content .post');
                for (var i = 0, len = posts.length; i < len; i++) {
                    insert_cover(posts[i]);
                }
                return;
            }
        }
    }
    var top_post_el = document.getElementById('top-post');
    if (top_post_el) {
        hide_in_comments(top_post_el);
    } else {
        hide_in_list();
    }
})();
#mjj 17
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

А вот и он, скрипт для Scriptish в Firefox для скрытия сообщений из /all Point'а по тегам/пользователям (задаётся внутри). tag_black_list и user_black_list меняйте на свои, во избежание :)

http://pastebin.com/6AF8kTYN

#cqmt 79
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

Наконец-то дошли руки скрыть все прикреплённые темы на ЛОРе. Скриптом т.к. ! (selector subject) из CSS4 ещё не реализовано.

// ==UserScript==
// @id             lor-fixer
// @name           LOR fixer
// @version        1.0
// @namespace      
// @author         Tenno Seremel
// @description    
// @include        http://www.linux.org.ru/forum/*
// @include        https://www.linux.org.ru/forum/*
// @run-at         document-start
// ==/UserScript==
(function(){
    function on_load()
    {
        var pinned_posts = document.querySelectorAll('.message-table img[alt="Прикреплено"]');
        for(i = 0, len = pinned_posts.length; i < len; i++) {
            pinned_posts[i].parentNode.parentNode.style.display = "none";
        }
    }

    document.addEventListener("DOMContentLoaded", on_load, false)
})();

Исключения в // @exclude url_тут

#ahpa
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

Больше никаких unload/beforeunload :3

// ==UserScript==
// @id             block-unload-events
// @name           Block unload events
// @version        1.0
// @namespace      
// @author         Tenno Seremel
// @description    
// @include        *
// @run-at         document-start
// ==/UserScript==
(function(){
    function eat_event(e){
        e.stopImmediatePropagation();
    }
    window.addEventListener("beforeunload", eat_event, true);
    window.addEventListener("unload", eat_event, true);
})();
#aheg 6
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Tenno-Seremel

http://pastebin.com/PcfHu6Gy

Переходим по link@rel ссылкам в шапке страницы по хоткеям. «Вешается» на все страницы, но не вызывается, когда текущий элемент input (кроме submit) или textarea. Ctrl+вправо — next, ctrl+влево — prev/previous, ctrl+вверх — up, ctrl+shift+вправо — last, ctrl+shift+влево — first. Если элемента для действия не указано — ничего не происходит.

Где не работает — почти везде, потому что мало кто указывает :} Где работает — на различных картинкосвалках (вроде sankaku channel или anime-pictures.net) или LOR (правда в нём свой такой скрипт есть… там это не нужно, кроме случаев, когда скрипты блокируются).

UI — никакого.

#ahcn
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.