您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Disable narou's new auto siori function and add a float siori button on page.
- // ==UserScript==
- // @name Narou Siori Button
- // @name:ja なろうしおりボタン
- // @namespace https://greasyfork.org/en/users/1264733
- // @version 2024-08-30
- // @description Disable narou's new auto siori function and add a float siori button on page.
- // @description:ja なろうの自動しおり機能を無効化、ページにフロート・しおり・ボタンを追加。
- // @author LE37
- // @license MIT
- // @match *://ncode.syosetu.com/*/*
- // @match *://novel18.syosetu.com/*/*
- // @grant none
- // @require https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
- // ==/UserScript==
- (()=>{
- 'use strict';
- // 自動しおり無効化
- // Install ublock origin or adblockplus then block narou's auto siori api below:
- // ||syosetu.com/favnovelmain/shioriupdateapi/
- // ||syosetu.com/favnovelmain18/shioriupdateapi/
- // Check current page doesn't have siori
- if (!$('.js-add_bookmark').length && !$('.js-siori').hasClass('is-active')) {
- // Create & append a float siori button
- $("body").append(`<button type="button" class="siori_btn">📌</button>`);
- const as_btn = $(".siori_btn");
- // Button style
- as_btn.css({ 'position': 'fixed', 'width': '44px', 'height': '44px', 'z-index': '9999', 'font-size': '200%', 'opacity': '50%', 'cursor': 'pointer', 'border': 'none', 'padding': 'unset', 'right': '2em', 'bottom': '2em' });
- // Check current page doesn't have siori info
- if (!$('input[name="siori_url"]').length) {
- const npath = location.host.startsWith("ncode") ? "favnovelmain/ichiupdateajax/useridfavncode" : "favnovelmain18/ichiupdateajax/xidfavncode";
- let userid;
- if ($('input[name="auto_siori"]').length) {
- userid = $('input[name="auto_siori"]').data('primary').split('_')[0];
- //console.log(userid);
- }
- const ninfo = $(".js-bookmark_updateconf_url").val();
- const novelid = ninfo.split('/')[6];
- const episode = ninfo.split('/')[8];
- const token = $('input[name="token"]').val();
- as_btn.append(`
- <input name="siori_url" type="hidden" value="https://syosetu.com/${npath}/${userid}_${novelid}/no/${episode}/?token=${token}">
- `);
- }
- // Button event
- as_btn.on('click' ,function() {
- let siori_url = $('input[name="siori_url"]').val();
- siori_url += '&callback=?';
- $.ajax({
- type:'get',
- url: siori_url,
- cache: false,
- dataType : 'jsonp',
- async:false,
- success: function(data, textStatus) {
- if (data.result == true) {
- //console.log('===V0===');
- $('.js-siori').addClass('is-active');
- // Hide siori button after success
- as_btn.css({ 'opacity': '0', 'cursor': 'auto' });
- }else{
- //console.log('===X1===');
- }
- },
- error: function(jqXHR, textStatus, errorThrown){
- //console.log('===X2===');
- }
- });
- });
- }
- })();