Greasy Fork is available in English.

FanFictionNavigator

Mark and hide fanfics or authors

< Feedback on FanFictionNavigator

Review: Good - script works

§
Posted:

Fixes for AO3 and request for shortcut feature.

Thank you for sharing this script.

I made two fixes for AO3 and have one future request.

Fix for AO3: In author page, FanFictionNavigator doesn't add div.newlikeactions.

case "archiveofourown.org":
    // in list
    //ffn$("ol.work.index.group > li").each(function(){
    ffn$(".blurb").each(function(){
        var story = new Story({ namespace: app.namespace, instance: this });
        app.collection.push(story);
    });

Fix for AO3: FanFictionNavigator fails in a story by Anonymous users.

    a["archiveofourown.org"] = {
        $author: _this.find('a[href^="/users/"]:first'),
        $fic: _this.find('a[href^="/works/"]:first'),
        authorId: function() {
            //return this.$author.attr('href').split('/')[2];
            if (this.$author.length === 0) {
                return 0;
            } else {
                return this.$author.attr('href').split('/')[2];
            }
        },

Future request: a toggle option for shortcut key.

const SHORTCUT = true;

// Adding action links and navigation shortcuts to pages
switch(window.location.hostname){
case "www.fanfiction.net":
    if (SHORTCUT) {
        // adding hotkeys
        document.addEventListener('keydown', function(e){
            switch (e.keyCode)
            {
                case 37:
                    var Prev = ffn$("a:contains('« Prev')");
                    if (typeof(Prev[0])!=='undefined') {window.location.href = Prev[0];}
                break;
                case 39:
                    var Next = ffn$("a:contains('Next »')");
                    if (typeof(Next[0])!=='undefined') {window.location.href = Next[0];}
                break;
            }
        }, false);
    }
}

Andy ScullAuthor
§
Posted:

Hi, added that functionality, seems to be working, please tell me if it breaks anything. Arrow key shortcuts toggle is per-site, I think by default the shortcuts will be off, I added a toggle link in hide/show line, seems to be working too.

§
Posted:

Thank you for your prompt response.

Shortcut Toggle feature works fine. But It seems that FFN and AO3 changed the code of prev and next tags. I deleted parts of hotkeys manually every time there was an update, so I didn't notice the change.

Fixed version

case "www.fanfiction.net":
    // adding hotkeys
    // added toggle option, suggested by Vannius
    if (app.options("enable_hotkeys")) {
        document.addEventListener('keydown', function(e){
            switch (e.keyCode)
            {
                case 37:
                    var Prev = ffn$("button:contains('< Prev')");
                    if (typeof(Prev[0])!=='undefined') {window.location.href = Prev[0];}
                    break;
                case 39:
                    var Next = ffn$("button:contains('Next >')");
                    if (typeof(Next[0])!=='undefined') {window.location.href = Next[0];}
                    break;
            }
        }, false);
    }
case "archiveofourown.org":
    // adding hotkeys
    if (app.options("enable_hotkeys")) {
        document.addEventListener('keydown', function(e){
            switch (e.keyCode)
            {
                case 37:
                    var Prev = ffn$("a:contains('← Previous Chapter')");
                    if (typeof(Prev[0])!=='undefined') {window.location.href = Prev[0];}
                    break;
                case 39:
                    var Next = ffn$("a:contains('Next Chapter →')");
                    if (typeof(Next[0])!=='undefined') {window.location.href = Next[0];}
                    break;
            }
        }, false);
    }
Andy ScullAuthor
§
Posted:
Edited:

That's because I implemented hotkeys only on lists pages, not on reading pages. :) In past I used one of other FFN scripts and didn't like those hotkeys while reading - quite often I mistakenly pressed them instead of pgup/dn In lists mode hotkeys are helpful for quick paging without pinpointing 'next' links with mouse

§
Posted:

Oh, I'm sorry. I didn't bother reading the description of FanFictionNavigator and went to code directly. Anyway, all is well, thank you for prompt support.

§
Posted:

@"Andy Scull" написал: That's because I implemented hotkeys only on lists pages, not on reading pages. :) In past I used one of other FFN scripts and didn't like those hotkeys while reading - quite often I mistakenly pressed them instead of pgup/dn In lists mode hotkeys are helpful for quick paging without pinpointing 'next' links with mouse

Хм, а вот для Фикбука можно тоже сделать переход на следующую главу по нажатию кнопки? Возможно, по двойному нажатию - т.е. дважды нажать "вправо" и тогда загрузка следующей главы? Ctrl+"вправо" не надо, потому что в Опере уже так настроен переход по истории вкладки вперед. А Ctrl+"влево" - назад, т.е. по сути, нужен только переход на следующую главу - и всё. Во всех хромиумах, наверное, такое. И в списках/сборниках/у авторов не надо, это просто не нужно с уже имеющимся функционалом пометок прочитанным ли, нравящимся и т.д. Ну а читая фанфик, вперед на следующую главу через клавиатуру переходить, однозначно пригодилось бы. Или у них там всё череж ж сделано и все глухо? Я глянул, цифры в ссылках самого фанфика и следующей главы (ну, глав вообще) как-то тупо сделаны, вообще без системы. Но в коде элемента вот этой вот большой кнопки значится "class="btn-next-part btn btn-default"" - может, как-то связать с действием? Замечательный скрипт! Разве что кофе не варит, а так здорово облегчает взаимодействие с упомянутыми сайтами, особенно фикбуком.

Andy ScullAuthor
§
Posted:
Edited:

@"Иван «Хомяк» Хомяков" написал: Хм, а вот для Фикбука можно тоже сделать переход на следующую главу по нажатию кнопки? Возможно, по двойному нажатию - т.е. дважды нажать "вправо" и тогда загрузка следующей главы? Тут дело в том, что я специально не прикручивал стрелки на страницы чтения, только на страницы списков. При пользовании в прошлом каким-то похожим скриптом, там были такие хоткеи и я часто нажимал стрелки по ошибке вместо pgup/pgdn. Очень раздражало потом возвращаться назад... Могу в принципе сделать, только сложность в том, как переключатель в настройки присобачить. Уже слишком много "опционального" получается, строчка становится длиннее и длиннее. Пока сделаю только для фикбука, неотключаемые хоткеи, по идее мне мешать не должно - я все равно скачиваю на комп и там читаю На досуге порыскаю как сделать нормальную страницу настроек, чтоб можно было больше опций добавить

п.с. для списков стрелки я прикручивал, т.к. дико удобно для меня, в целях быстрого пролистывания и поиска нескрытых фиков. Это вместо того, чтобы пролистывать вниз и/или мышкой тыкать по ссылке Next, которая ещё в некоторых случаях не всегда находится на одном и том же месте

§
Posted:

Andy Scull Спасибо! Работает отлично. Думаю, беспокоиться тут просто не о чем (в случае Фикбука, по крайней мере). На нём влево-вправо незадействованы, какого-то безумного форматирования, чтобы возникала полоса прокрутки внизу, я вроде бы вообще не видел. А вот поглавно переходить по кнопкам - отлично. И если по ошибке нажмешь раз в месяц - ну и что? Потом - сейчас браузеры не тупые, возврат назад происходит прям на то место на странице, откуда перешел. Короче, сейчас всё отлично со всех сторон. По моему скромному мнению, конечно.

Пока сделаю только для фикбука, неотключаемые хоткеи, по идее мне мешать не должно - я все равно скачиваю на комп и там читаю Ага, Алридер бьет все другие варианты по удобству просто по умолчанию. Хотя сейчас и удобство самого Фикбука приближается к приличному - цвета, размеры, выравнивание. Ну а с тех пор, как я нашел скрипт, устанавливающий гарнитуру шрифта, и сменил дефолтный - так вообще главки обновлений удобнее прочитывать прям с сайта. На досуге порыскаю как сделать нормальную страницу настроек, чтоб можно было больше опций добавить Было бы просто замечательно. Надеюсь (уверен, не я один!).

п.с. для списков стрелки я прикручивал, т.к. дико удобно для меня, в целях быстрого пролистывания и поиска нескрытых фиков. Это вместо того, чтобы пролистывать вниз и/или мышкой тыкать по ссылке Next, которая ещё в некоторых случаях не всегда находится на одном и том же месте А я просто их все прочитанными помечаю. Все прям потоком подряд. Часть, конечно, идет в сборники, ну а бред всякий просто помечается там же. То есть фактически у меня в списках всегда новые. А для ФФ.нет уже лет 5 использую рсс-фидер, очень удобно и расширенно все помечается. Сами-то фанфики оттуда читать вообще невозможно, только скачивание, только Алридер. Короче, еще раз спасибо, ваш скрипт - это просто нечто. Еще бы кофе варил, так вообще) Всех плюсов!

Andy ScullAuthor
§
Posted:
Edited:

В итоге, кое-как умудрился сделать отдельный выпадающий div с настройками, в нем сейчас две разных галки - на стрелки в списках и на стрелки в режиме чтения. Надо включить нужную, по умолчанию они обе должны быть отключены. Галочки скрытия дублируют функционал ссылок "Hide/Show xxx", ссылки я пока не убирал, т.к. они как бы быстрые действия.

In the end, I made a rough implementation of options window. Checkboxes in options currently duplicate functionality of 'Hide/Show xxx' links, I don't see any reason to remove the links since they work like quick actions. Also split previous hotkey options into two - in lists and while reading. Should work on all sites, but maybe I missed some rare circumstances. By default, hotkeys should be disabled to not mess up with people, you should enable whichever option you want.

Post reply

Sign in to post a reply.