diff --git a/fetched.txt b/fetched.txt index 805fb92..47a63e3 100644 --- a/fetched.txt +++ b/fetched.txt @@ -1,223 +1,85 @@ - 第一章 煉氣五千年 + 第一千四百二十七章 命中注定 - 華夏西北部的山區就像個原始地區,沒有公路,沒有汽車,連人影也少見。 - -在群山環繞之間,坐落著一間孤零零的草房。草房外的空地種著不少草藥,藥香四溢。 - -草房內空間不大,只有一張床和書桌,書桌上擺滿了書籍和各種草紙。 - -此時,床上躺著一位須發皆白的老者,他雙眼緊閉,面色安詳。 - -一位看起來只有十七八歲的少年,坐在床邊。 - -“夏,我真羨慕你啊,才活了八十一年,就可以安然逝去。”方羽看著床上剛剛去世不久的老者,面帶微笑地自語道。 - -“唉,我就慘了,不知道還要活多少年才是個頭。”方羽嘆了口氣,眼神中有痛苦,更多的是無奈。 - -從他踏入修煉之路開始,至今已將近五千年。 - -這段漫長的歲月里,方羽無法死去,境界也始終無法再往前一步。 - -修煉了將近五千年的他,仍然還在煉氣期! - -沒錯,煉氣期!修煉之路最基礎的境界! - -按照嚴格標準,煉氣期甚至不能算是一個境界,只能算是一個煉體的時期。 - -只有築基之後,才能真正算踏入修仙之路。 - -但方羽,偏偏就一直卡在煉氣期這個階段,死活無法前進一步。 - -幾千年來,築基丹他都吞了上萬顆,卻一點作用都沒有。 - -前一千年的時候,方羽的師父還安慰他,說是因為他的靈根比任何人都要強大,所以才要在煉氣期待久一點。 - -但一千年過去了,方羽仍然無法突破到築基期。 - -這時候,他師父也覺得是不是搞錯了,方羽其實只是一個毫無靈根的凡人? - -可是一介凡人,怎麼可能活上千年,連衰老的跡象都沒有? - -後來,方羽的師父渡劫成功,飛升成仙,離開了地球。 - -在那以後,就再沒有人關心方羽的境界。 - -隨著時間的流逝,地球上的靈氣資源越來越稀薄。 - -如今的地球,即便方羽能突破境界,也注定無法渡劫成仙。 - -但方羽也從未想過要渡劫成仙,他只想突破這該死的煉氣期! - -這是他的執念。 - -到今天,他已經修煉到煉氣期第九千八百三十二層。而一般的修士,只要修煉到十二層,就能夠突破到築基期。 - -一想到修煉的事,方羽心情就有點郁悶。 - -他深吸一口氣,站起身來,看著書桌上那些寫滿了各種藥方的草紙。 - -“早知道你會成為這麼一個藥痴,當年就不該教你醫術!”方羽輕輕搖頭,無奈道。 - -依照夏的遺願,他要把這些藥方整理好帶走。 - -他才剛開始整理沒多久,就听到了一些嘈雜的腳步聲,立即抬起頭,看向草房窗外的一個方向。 - -夏都把草房建在這種地方了,居然還能被人找到? - -方羽微微皺眉。 - -過了十分鐘,一行人來到草房前。 - -一共七人,其中有兩名年輕男女,一名坐在輪椅上的老者,還有四名西裝革履,身材健壯的男人,一看就是保鏢。 - -看到坐在輪椅上散發著死氣的老者,方羽就知道,這群人肯定是來求醫的。 - -“夏藥神,您好,我叫唐楓,我們來自江南唐家,我們想請您給我……”那名俊朗的年輕男人走上前,大聲說道。 - -方羽推開門,打斷了他的話。 - -“你們來晚了,夏修之剛去世不久。” - -什麼!? - -在場所有人臉色皆是一變。 - -他們苦苦找尋的藥神夏修之……居然去世了!? - -“怎,怎麼會……”唐楓臉色蒼白,呆呆地看著方羽。 - -為了只好唐老爺子身上的重疾,他們動用整個家族的資源,花費了大量的人力物力,才打听到避世將近二十年的藥神夏修之的所在位置。 - -歷經千辛萬苦,他們終于找到夏修之居住的草房,可沒想,得到的卻是這個消息! - -“怎麼會這麼巧?我們才剛找到……不對,夏藥神肯定沒有去世,他只是避世,不想見我們而已!”長相精致的年輕女孩美眸泛紅,激動地說道。 - -“對!藥神肯定還在草房里面!”唐楓眼中泛著希望的亮光,直接踏步走進了草房。 - -然後,他就看到躺在床上,雙眼緊閉的夏修之。 - -唐楓認真地觀察,發現床上的老者果然已經沒有呼吸了。 - -“怎,怎麼會這樣……”唐楓只感覺希望破滅,渾身都失去了力量。 - -“我說了,夏修之已經去世了,你們可以回去了。”方羽微微皺眉,對于唐楓闖入草房的舉動有點不滿。 - -唐楓突然想到什麼,轉頭看向方羽,問道︰“你是藥神的徒弟吧?你肯定也傳承了藥神的醫術,你給我們爺爺治病吧,只要能治好,無論多少錢我們都願意付!” - -方羽搖了搖頭,說道︰“我不是他徒弟……我只是他一個老朋友罷了。” - -其實嚴格來說,方羽算是夏修之的師父。 - -當年只有十五歲的夏修之,就是在方羽的引導下才走上醫道之路的。當然,這些話沒必要說出來,說出來也不會有人相信。 - -不過,即便是老朋友這個說法,也顯得奇怪。 - -方羽看起來二十歲不到,而夏修之都八十多歲了,兩人完全不在一個年齡階層,怎麼能稱作老朋友? - -不過,此時也沒人細想,一行人都沉浸在希望破滅的絕望之中。 - -坐在輪椅上的唐老爺子在听到夏修之去世的消息後,徹底失去了生氣,眼神一片灰敗。 - -天意如此!他的命數已到!沒必要再掙扎了! - -年輕女孩看到爺爺如此,傷心不已,眼淚止不住往下流。 - -方羽眉頭微皺,看著唐老爺子,突然開口道︰“你已經活了七十三年了,應該活夠了吧,為什麼還想活下去?” - -听到這句話,所有人皆是一愣,好奇方羽怎麼會知道唐老爺子的年齡。 - -但听到方羽後面的話,他們臉色變了。 - -活夠了? - -這世界哪里有人會活夠了? - -這句話是什麼意思!? - -挑釁?譏諷? - -“你個王八蛋,你什麼意思!?”唐楓臉色鐵青,一拳朝方羽的胸口砸去。 - -方羽眼神微動,身體不動。 - -“砰!” - -唐楓的拳頭還未踫到方羽,自身反倒遭受到一股巨力的撞擊,整個人往後飛去,摔倒在地。 - -在場其他人臉色大變,震驚不已。 - -明明是唐楓出拳,這少年連動都沒動,怎麼唐楓反而倒地了? - -“哥!”漂亮女孩尖叫。 - -那四名保鏢反應過來,立即往前幾步,走到方羽的身前。 - -“不準動手!”坐在輪椅上的唐老爺子用嘶啞的聲音命令道。 - -四名保鏢立即停住腳步。 - -唐楓捂著胸口,從地上爬起來,用驚駭的眼神看著方羽。 - -“兄弟,我們失禮了,請問你叫什麼名字?”唐老爺子問道。 - -“方羽。”方羽答道。 - -唐老爺子微微頷首,開口道︰“剛才兄弟你問我為什麼還想活下去,我可以回答一番。” - -“因為,我還想繼續陪伴家人,我想看著孫子孫女們長大,看著他們成家立業,看著他們生下後代……人不都是這樣嗎?一代接一代的守望。”唐老爺子微笑著說道。 - -“爺爺……”听到唐老爺子的話,一旁的女孩哭得更加傷心了。 - -家人…… - -方羽眼神微動。 - -對于他來說,家人已經是很久遠的事情了,但對于凡人來說,家人卻是一直存在的,一代接一代。 - -而絕大多數凡人,誰會不願意活久一點呢? - -“你是肺癌晚期吧,還有三個月不到的壽命,好好享受人生最後一段時光吧。”方羽說著,轉身回到草房,並且關上了門。 - -而唐家一行人,則是愣住了。 - -方羽怎麼一眼就看出唐老爺子得了肺癌?而且還跟那些醫生說的一樣,唐老爺子只剩下三個月不到的壽命? - -他,果然是藥神的徒弟! - -反應過來後,唐楓再次敲響草房的門,喊道︰“方先生,你絕對是藥神的徒弟吧?求求你給我爺爺治病吧,我們……” - -“生死有命。你們立即離開這里,否則別怪我不客氣。”草房內傳來方羽平靜的聲音。 - -“醫者仁心,你怎麼能見死不救……”唐楓帶著怒意說道。 - -“楓兒,回來。”唐老爺子開口道。 - -“爺爺!”唐楓雙眼發紅,轉頭看著唐老爺子。 - -“兄弟說的沒錯,生死有命,老天要我死,我怎能不死?我們走吧。”唐老爺子說道。 - -“兄弟,我無比尊敬夏老先生,沒想到夏老先生已經仙逝……今天我們的到來打擾到了夏老先生,非常抱歉,希望夏老先生在天之靈不要怪責才好。”唐老爺子又真誠地說道。 - -說完,他就招呼一行人轉身離去。 - -唐楓雖然不甘心,但既然唐老爺子命令,他也只好跟著離開。 - -回去的路上,所有人都一言不發,氣氛很陰郁。 - -唐楓注意到一旁的妹妹若有所思,皺眉問道︰“柔,你在想什麼事情?” - -唐柔黛眉微蹙,喃喃道︰“我總感覺……這個方羽有點眼熟,好像在哪里見過。” - -“這怎麼可能?我們這是第一次來到西北地區,你怎麼可能跟這個方羽見過?”唐楓說道。 - -“也對……可是,我真的感覺有點眼熟。”唐柔揉了揉太陽穴,說道。 - -唐楓心情不佳,不再理會唐柔,只當她是認錯人了。 - -可是,又走了幾步路後,唐柔突然停住腳步。 - -“我,我想起來了,我在學校見過他!” - -() + 不管這是幻覺還是現實。 +總之,方羽可以確定,如今站在他面前的……就是冷尋雙! +冷尋雙輕輕觸摸著方羽的發絲,把每一根白發都挑出來看。 +在這個過程中,方羽並未動彈。 +已有很多年,沒有人如此親近地接觸他了。 +而此刻,冷尋雙就像當年一樣,沒有任何的局促與生分,就好像她從未離開過一樣。 +她的發絲,垂落在方羽的面前。 +方羽能夠聞到淡淡的清香。 +“怎麼會有白發呢?”冷尋雙黛眉蹙起,語氣疑惑地問道。 +方羽沒有說話。 +“你不應該有白發,這樣顯老了。”冷尋雙挑著方羽的白發,繼續自語道,“你是不是有什麼煩惱?可以說給我听。” +方羽還是沒有說話。 +冷尋雙黛眉蹙得更緊,低眼看向方羽,問道︰“呆子,你怎麼不說話?” +方羽看著面前的冷尋雙,問道︰“我只是在想……你是不是真實的存在。” +“你覺得呢?”冷尋雙輕輕側頭,俏皮地問道。 +“我覺得……不是。”方羽說道。 +“那你……希望是真的嗎?”冷尋雙眨了眨眼,雙眸清亮,又問道。 +方羽眼神微動,說道︰“不抱希望,就不會失望。” +“……唉。”冷尋雙低下頭,無奈地輕嘆一口氣,然後輕輕俯身,伸出白皙的右手,掐了掐方羽臉頰上的肉,說道,“你果然沒變,一直都是個呆子!” +這番話,讓方羽心頭一顫。 +“你別傻坐著,不相信我是真實存在的話……你就摸摸我的臉,看看我是不是真實存在的。”冷尋雙說道。 +方羽仍然無法接受現實,並沒有動彈。 +冷尋雙只好強行抓著方羽的手,往自己的臉上湊。 +“怎麼樣?感覺到溫度了吧?”冷尋雙輕笑著,問道。 +方羽確實能夠感受到她臉頰上的溫度。 +但實際的情況是,他還是沒法接受……眼前的現實。 +他總感覺他正處于幻境當中。 +至于是何時,為何會進入這個幻境,他不清楚。 +“傻瓜……你到底在想什麼?你想這麼多干什麼!?”冷尋雙似乎有點生氣了,問道。 +“我……”方羽正想說話。 +“就算你把現在當成一場夢,難道你就沒什麼想對我說的?”冷尋雙往後一步,雙手抱于胸前,故生氣地問道。 +听到這句話,方羽終于是清醒過來。 +的確。 +哪怕這就是一場幻境,那也是時隔多年之後,他再一次見到冷尋雙。 +方羽站起身來,看著面前的冷尋雙,說道︰“我想說……對不起。” +“嗯……你哪里對不起我了?”冷尋雙問道。 +“很多,很多……”方羽怔怔地說道。 +當初他若正面反抗正道聯盟的要求,一次就把紫炎宮滅掉,冷尋雙就不會為守護天道門而死。 +“你啊,真是……呆子。” +冷尋雙往前兩步,張開雙臂,抱住方羽。 +“你沒有對不起我……你從來沒有對不起我,不要內疚。”冷尋雙把臉貼在方羽的胸前。 +這時,她能夠听到方羽的心跳聲,還能感受到溫暖。 +方羽不由自主地抬起手,將冷尋雙也抱在懷中。 +兩人相擁而無語。 +但在這一刻,方羽的內心卻在發生巨大的變化。 +就像冰封多年的雪原,忽然開始大面積融化。 +“哼哼,算你有點改變,以前你都不讓我主動抱你呢,更別說還主動伸手……”冷尋雙緊貼著方羽的胸膛,輕哼道。 +“不同了,一切都不同了。”方羽說道。 +“有什麼不同,我覺得你沒有變化。”冷尋雙仰起頭,說道。 +“相比起當年,我又多活了幾千年,人總是會變的。”方羽微笑道。 +此刻,他已經不在意眼前是真實還是幻境。 +他確實很想與冷尋雙聊一聊。 +哪怕是在夢中。 +方羽松開手,正想往後退兩步。 +“多抱一會兒。”冷尋雙說道,“你這麼急著松手干嘛?” +“我想跟你好好談談。”方羽說道。 +“抱著也可以好好談。”冷尋雙淡淡地說道。 +“好吧。”方羽無奈地答道。 +就跟當年一樣,在說話這方面,方羽永遠不是冷尋雙的對手。 +冷尋雙總能讓方羽啞口無言。 +“我想問你……你還記得當年發生的事情嗎?”方羽微微眯眼,開口問道。 +冷尋雙沉默了一會兒,說道︰“記得。” +“當時你應該已經……”方羽說道。 +“羽,當年的事情確實發生了,而我現在……確實也在跟你交談。”冷尋雙仰頭說道,“但如果你問我為何還能與你相見……至少現在,我還不能回答你這個問題。” +听到這句話,方羽眼神微動。 +“總之,我還是冷尋雙,你……就是方羽。”冷尋雙說著,雙眸忽然笑成月牙,“你還是我的小羽羽。” +話語間,她又抬起雙手,掐著方羽臉上的肉。 +“能再次見到你,真是太好了,太好了……”冷尋雙一邊揉著方羽的臉,一邊說道。 +方羽任由冷尋雙的動,沒有阻攔。 +“羽,你的肉怎麼硬了這麼多?是不是你臉皮變厚了?”冷尋雙又笑道。 +“我臉皮一直都很厚。”方羽說道,“你又不是第一天認識我。” +“也是,你就是被老林帶壞了。”冷尋雙皺了皺鼻子,說道,“如果沒認識老林,你肯定不會這麼厚臉皮。” +“這麼說你臉皮也挺厚,我們後來的幾次行動,你可是也有參與。”方羽眉頭一挑,說道。 +“我當然臉皮厚啊,我不臉皮厚,主動一點……你這個呆子眼里怎麼會有我?”冷尋雙輕笑道。 +說著,冷尋雙忽然想到什麼,又問道︰“對了,老林之後順利飛升了嗎?” +“……當然,以他的天賦,怎麼可能不飛升。”方羽答道,“我之前還見到了他留在地球上的意志。” +“真的!?”冷尋雙驚訝地問道。 +“嗯,跟他相處了幾天,帶他到現在的世界逛了逛,直到意志之力耗盡。”方羽說道,“他還留了一道玄然氣給我。” +“真好……這麼多年之後,還能再見一面。”冷尋雙輕嘆一口氣,說道。 +“是的,跟他見面純屬巧合,但偏偏就是遇到了。”方羽說道,“回想起來,確實挺難得。” +“這也許……就是命中注定吧。”冷尋雙說道。 \ No newline at end of file diff --git a/novelfetch/main.py b/novelfetch/main.py index 699bde1..619ecbe 100644 --- a/novelfetch/main.py +++ b/novelfetch/main.py @@ -1,8 +1,9 @@ from bs4 import BeautifulSoup import requests import re +import win32clipboard, win32con -first_page = 'https://tw.piaotian.cc/read/285398/66476921.html' +first_page = 'https://tw.piaotian.cc/read/285398/98006676.html' domain = re.search('https://.+?/', first_page).group() if domain[-1:] != "/": @@ -21,9 +22,17 @@ if nextPageTag[:1] == "/": nextPageTag = nextPageTag[1:] nextPageLink = domain+nextPageTag -print(nextPageLink) modifiedContent = novelContent.text.replace("    ", "") +print(modifiedContent) + +print(nextPageLink) +win32clipboard.OpenClipboard() +win32clipboard.EmptyClipboard() +win32clipboard.SetClipboardData(win32con.CF_UNICODETEXT, nextPageLink) +win32clipboard.CloseClipboard() + + # print(novelTitle) # print(novelContent.contents) with open("fetched.txt", "w", encoding='utf-8') as f: diff --git a/novelfetch/ref/My Novel Reader.user.js b/novelfetch/ref/My Novel Reader.user.js new file mode 100644 index 0000000..f596753 --- /dev/null +++ b/novelfetch/ref/My Novel Reader.user.js @@ -0,0 +1,6803 @@ +/* This script build by rollup. */ +(function (Vue) { +'use strict'; + +function __$styleInject ( css ) { + if(!css) return ; + + if(typeof(window) == 'undefined') return ; + let style = document.createElement('style'); + style.setAttribute('media', 'screen'); + style.setAttribute('class', 'noRemove'); + + style.innerHTML = css; + document.head.appendChild(style); + return css; +} + +Vue = Vue && Vue.hasOwnProperty('default') ? Vue['default'] : Vue; + +// ==UserScript== +// @id mynovelreader@ywzhaiqi@gmail.com +// @name My Novel Reader +// @name:zh-CN 小说阅读脚本 +// @name:zh-TW 小說閱讀腳本 +// @version 6.3.6 +// @namespace https://github.com/ywzhaiqi +// @author ywzhaiqi +// @contributor Roger Au, shyangs, JixunMoe、akiba9527 及其他网友 +// @description 小说阅读脚本,统一阅读样式,内容去广告、修正拼音字、段落整理,自动下一页 +// @description:zh-CN 小说阅读脚本,统一阅读样式,内容去广告、修正拼音字、段落整理,自动下一页 +// @description:zh-TW 小說閱讀腳本,統一閱讀樣式,內容去廣告、修正拼音字、段落整理,自動下一頁 +// @license GPL version 3 +// @grant GM_xmlhttpRequest +// @grant GM_addStyle +// @grant GM_getValue +// @grant GM_setValue +// @grant GM_getResourceURL +// @grant GM_openInTab +// @grant GM_setClipboard +// @grant GM_registerMenuCommand +// @grant GM_info +// @grant unsafeWindow +// @homepageURL https://greasyfork.org/scripts/292/ +// @require https://cdn.staticfile.org/vue/2.2.6/vue.min.js +// @require https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js +// @require https://cdn.staticfile.org/underscore.js/1.7.0/underscore-min.js +// @require https://cdn.staticfile.org/keymaster/1.6.1/keymaster.min.js +// @require https://greasyfork.org/scripts/2672-meihua-cn2tw/code/Meihua_cn2tw.js?version=7375 + +// @connect * +// @connect *://*.qidian.com/ + +// @include *://read.qidian.com/*,*.aspx +// @include *://readbook.qidian.com/bookreader/*,*.html +// @include *://read.qidian.com/BookReaderOld/*,*.aspx +// @include *://read.qidian.com/BookReader/*,*.aspx +// @exclude http://read.qidian.com/BookReader/vol,*,*.aspx +// @include *://wwwploy.qidian.com/BookReader/*,*.aspx +// @include *://free.qidian.com/Free/ReadChapter.aspx?* +// @include *://vipreader.qidian.com/chapter/*/* +// @include *://www.qdmm.com/BookReader/*,*.aspx +// @include *://www.qdwenxue.com/BookReader/*,*.aspx +// @include *://chuangshi.qq.com/read/bookreader/*.html* +// @include *://chuangshi.qq.com/*bk/*/*-r-*.html* +// @include *://yunqi.qq.com/*bk/*/*.html +// @include *://dushu.qq.com/read.html?bid=* +// @include *://www.jjwxc.net/onebook.php?novelid=* +// @include *://my.jjwxc.net/onebook_vip.php?novelid=*&chapterid=* +// @include *://book.zongheng.com/chapter/*/*.html +// @include *://www.xxsy.net/chapter/*.html +// @include *://book.zhulang.com/*/*.html +// @include *://www.17k.com/chapter/*/*.html +// @include *://mm.17k.com/chapter/*/*.html +// @include *://www.kanxia.net/k/*/*/*.html +// @include *://www.qingdi.com/files/article/html/*/*/*.html +// @include *://www.xkzw.org/*/*.html +// @include *://shouda8.com/*/*.html +// @include *://novel.hongxiu.com/*/*/*.shtml +// @include *://www.readnovel.com/novel/*.html +// http://www.tianyabook.com/*/*.htm + +// @include *://tieba.baidu.com/p/* +// @include *://booklink.me/* +// @include *://2.booklink.me/* + +// booklink.me +// @include *://www.shumil.co/*/*.html +// @include *://www.wcxiaoshuo.com/wcxs-*-*/ +// @include *://www.xiaoshuoz.com/wcxs-*-*/ +// @include *://www.quledu.com/wcxs-*-*/ +// @include *://www.ranwen.cc/*/*/*/*.html +// @include *://www.ranwen.net/files/article/*/*/*.html +// @include *://www.ranwena.com/files/article/*/*/*.html +// @include *://www.64mi.com/*/*/*/*.html +// @include *://www.bxs.cc/*/*.html* +// @include *://www.laishuwu.com/html/*/*/*.html +// @include *://www.binhuo.com/html/*/*/*.html +// @include *://www.haoqi99.com/haoqi99/*/*/*.shtml +// @include *://www.shuhe.cc/*/*/ +// @include *://www.dudukan.net/html/*/*/*.html +// @include *://www.hahawx.com/*/*/*.htm +// @include *://www.zhuzhudao.com/txt/*/*/ +// @include *://www.zhuzhudao.cc/txt/*/*/ +// @include *://www.dahaomen.net/txt/*/*/ +// @include *://www.tadu.com/book/*/*/ +// @exclude *://www.tadu.com/book/*/toc/ +// @include *://www.aishoucang.com/*/*.html +// @include *://www.wanshuba.com/Html/*/*/*.html +// @include *://www.zhuishu.net/files/article/html/*/*/*.html +// @include *://www.sqsxs.com/*/*/*.html* +// @include *://www.caiwei.tw/html/*/*.html +// @include *://www.hotsk.com/Html/Book/*/*/*.shtml +// @include *://www.92to.com/*/*/*.html +// @include *://www.qirexs.com/read-*-chapter-*.html +// @include *://www.du00.com/read/*/*/*.html +// @include *://www.qishuwu.com/*/*/ +// @include *://www.wandoou.com/book/*/*.html +// @include *://www.6yzw.org/*/*.html +// @include *://www.6yzw.com/*/*.html +// @include *://www.daomengren.com/*/*.html +// @include *://muyuge.com/*/*.html +// @include *://www.muyuge.net/*/*.html +// @include *://bbs.vyming.com/novel-read-*-*.html +// @include *://www.9imw.com/novel-read-*-*.html +// @include *://www.23zw.com/olread/*/*/*.html +// @include *://www.50zw.com/book_*/*.html +// @include *://www.xiangcunxiaoshuo.com/shu/*/*.html +// @include *://www.lwxs520.com/books/*/*/*.html +// @include *://m.lwxs520.com/books/*/*/*.html +// @include *://www.lwxiaoshuo.com/*/*/*.html +// @include *://www.zashu.net/books/*/*/*.html +// @include *://www.yunlaige.com/html/*/*/*.html +// @include *://www.cfwx.net/files/article/html/*/*/*.html +// @include *://www.qiuwu.net/html/*/*/*.html +// @include *://www.fengwu.org/html/*/*/*.html +// @include *://www.wenxue8.org/html/*/*/*.html + +// @include *://www.xs84.com/*_*/* +// @include *://www.geiliwx.com/GeiLi/*/*/*.shtml* +// @include *://www.123yq.com/read/*/*/*.shtml +// @include *://www.123yq.org/read/*/*/*.shtml +// @include *://www.dhzw.com/book/*/*/*.html +// *://www.du00.cc/read/*/*/*.html +// @include *://www.aszw.com/book/*/*/*.html +// @include *://www.xsbashi.com/*_*/ +// @include *://www.vodtw.com/Html/Book/*/*/*.html +// @include *://www.fhxs.com/read/*/*/*.shtml +// @include *://www.snwx.com/book/*/*/*.html + +// www.sodu.so +// @include *://www.jiaodu8.com/*/*/*/*.html +// @include *://www.fktxt.com/book/*/*.html +// @include *://www.186s.cn/files/article/html/*/*/*.html +// @include *://www.6xs.cn/xs/*/*/*.html +// @include *://www.chaojiqiangbing.com/book/*/*/*.html +// @include *://book.moka123.com/book/*/*/*.html +// @include *://www.suimeng.com/files/article/html/*/*/*.html +// @include *://www.hao662.com/haoshu/*/*/*.html + +//www.verydu.net +// http://www.yawen8.com/*/*/*.html +// @include *://www.tsxs.cc/files/article/html/*/*/*.html +// @include *://www.ziyuge.com/*/*/*/*/*.html + +// 其它网站 +// @include *://book.sfacg.com/Novel/*/*/*/ +// @include *://www.7dsw.com/book/*/*/*.html +// @include *://www.d586.com/*/*/ +// @include *://www.bookgew.com/Html/Book/*/*/*.htm +// @include *://read.shuhaha.com/Html/Book/*/*/*.html +// @include *://www.shuhaha.com/Html/Book/*/*/*.html +// @include *://www.biqi.me/files/article/html/*/*/*.html +// @include *://www.ttzw.com/book/*/*.html +// @include *://www.uukanshu.com/*/*/*.html +// @include *://www.uukanshu.net/*/*/*.html +// @include *://www.173ed.com/read/*/*.html +// @include *://www.a240.com/read/*/*.html +// @include *://www.zhuishu.com/*/*.html +// @include *://www.shuangde.cc/*/*.html +// @include *://www.shenmaxiaoshuo.com/ml-*-*/ +// @include *://www.86kankan.com/read/*/*.html +// @include *://www.fkzww.com/*/*/*.shtml +// @include *://www.151kan.com/*/*/*/*.html +// @include *://www.bookabc.net/*/*/*.html +// @include *://www.xshuotxt.com/*/*/*/*.html +// @include *://www.doulaidu.com/*/*/*.html +// @include *://www.d586.com/*/*/ +// @include *://www.kanshu.la/book/*/*html +// @include *://www.wtcxs.com/files/article/html/*/*/*.html +// @include *://www.5du5.com/book/*/*/*.html +// @include *://book.kanunu.org/*/*/*.html +// @include *://www.kanunu8.com/book*/*.html +// @include *://paitxt.com/*/*/*.html +// @include *://www.shunong.com/yuedu/*/*/*.html +// @include *://book.yayacms.com/*/book_*_*.html +// @include *://www.yqhhy.cc/*/*/*.html +// @include *://www.nuoqiu.com/static/*/*.html +// @include *://www.17yue.com/*/*/*.html +// @include *://dukeba.com/book/*/*/*.shtml +// @include *://www.wenchangshuyuan.com/html/*/*/*.html +// @include *://www.pofeng.net/xiaoshuo/*/*.html +// @include *://www.epzww.com/book/*/* +// @include *://*.xiaoshuokan.com/haokan/*/*.html +// @include *://www.wobudu.com/*/*.html +// @include *://www.qb5.com/xiaoshuo/*/*/*.html +// @include *://www.x23us.com/html/*/*/*.html +// @include *://www.23us.com/html/*/*/*.html +// @include *://www.23us.cc/html/*/*/*.html +// @include *://www.23wx.com/html/*/*/*.html +// @include *://www.xs222.com/html/*/*/*.html +// @include *://www.bixiage.com/*/*/*/*.html +// @include *://www.ranwenxiaoshuo.com/files/article/html/*/*/*.html +// @include *://www.ranwenxiaoshuo.com/*/*-*-*.html +// @include *://www.bjxiaoshuo.com/bjxs-*-*/ +// @include *://www.59shuku.com/xiaoshuo/*/*.htm +// @include *://www.16kbook.org/Html/Book/*/*/*.shtml +// @include *://www.dixiaoshuo.com/Html/*/*.html +// @include *://www.nieshu.com/Book/*/*/*.shtml +// @include *://www.tlxsw.com/files/article/html/*/*/*.html +// @include *://www.1kanshu.com/files/article/html/*/*/*.html +// @include *://www.uutxt.org/book/*/*/*.html +// @include *://www.5800.cc/*/*/*/*.html +// @include *://www.biquge.com/*/*.html +// @include *://www.biqudu.com/*/*.html +// @include *://www.biquge.la/book/*/*.html +// @include *://www.biquge.com.tw/*/*.html +// @include *://www.biquge.tw/*_*/*.html +// @include *://www.biquge.tv/*/*.html +// @include *://www.biquge5200.com/*/*.html +// @include *://www.biqugezw.com/*/*.html +// @include *://www.bequgezw.com/*/*/*.html +// @include *://www.biquzi.com/*_*/*.html +// @include *://www.biquge.cc/html/*/*/*.html +// @include *://www.biqubao.com/book/*/*.html +// @include *://www.biquwu.cc/biquge/*/*.html +// @include *://www.qududu.com/book/*/*/*.html +// @include *://www.free97.cn/book/*/*/*.html +// @include *://www.122s.com/book/*/*.html +// @include *://www.123du.net/dudu-*/*/*.html +// @include *://www.123du.cc/dudu-*/*/*.html +// @include *://www.123du.net/book/*/*.html +// @include *://www.hwafa.com/*/*.html +// @include *://www.qmshu.com/html/*/*/*.html +// @include *://dlzw.cc/article-*-*.html +// @include *://www.shushu5.com/read/*/*.html +// @include *://www.xiaoyanwenxue.com/files/article/html/*/*/*.html +// @include *://www.3gsc.com.cn/bookcon/*_*_* +// @include *://www.bj-ibook.cn/book/*/*/*.htm +// @include *://www.baoliny.com/*/*.html +// @include *://www.dajiadu.net/files/article/html/*/*/*.html +// @include *://www.yankuai.com/files/article/html/*/*/*.html +// @include *://www.docin.net/*/*.html +// @include *://www.dushuge.net/html/*/*/*.html +// @include *://www.xunshu.org/xunshu/*/*/*.html +// @include *://www.moneyren.com/book/*/*/*.shtml +// @include *://wemaxfilipino.com/*/*/*.html +// @include *://www.85618892.cn/xiaoshuo/*/*/*.shtml +// @include *://www.bookba.net/Html/Book/*/*/*.html +// @include *://www.moksos.com/*/*/*.html +// @include *://dudu8.net/novel/*/*/*.html +// @include *://www.dawenxue.net/html/*/*/*.html +// @include *://www.yanmoxuan.org/book/*/*/*.html +// @include *://www.duyidu.com/xiaoshuo/*/*/*.html +// @include *://www.69zw.com/xiaoshuo/*/*/*.html +// @include *://www.kan7.com/xiaoshuo/*/*/*.html +// @include *://www.laishu.com/book/*/*/*.shtml +// @include *://www.bxwx.org/b/*/*/*.html +// @include *://www.bxzw.org/*/*/*/*.shtml +// @include *://www.360118.com/html/*/*/*.html +// @include *://www.59to.com/files/article/xiaoshuo/*/*/*.html +// @include *://www.dyzww.com/cn/*/*/*.html +// @include *://www.9wh.net/*/*/*.html +// @include *://www.luoqiu.net/html/*/*/*.html +// @include *://www.luoqiu.com/html/*/*/*.html +// @include *://www.epzw.com/files/article/html/*/*/*.html +// @include *://www.dashubao.co/book/*/*/*.html +// @include *://b.faloo.com/p/*/*.html +// @include *://www.baikv.com/*/*.html +// @include *://www.66721.com/*/*/*.html +// @include *://www.3dllc.com/html/*/*/*.html +// @include *://www.xstxt.com/*/*/ +// @include *://www.zzzcn.com/3z*/*/ +// @include *://www.zzzcn.com/modules/article/App.php* +// @include *://www.nilongdao.com/book/*/*/*.html +// @include *://xs321.net/*/*/ +// @include *://read.guanhuaju.com/files/article/html/*/*/*.html +// @include *://www.book108.com/*/*/*.html +// @include *://5ycn.com/*/*/*.html +// @include *://www.zhaoxiaoshuo.com/chapter-*-*-*/ +// @include *://*zbzw.com/*/*.html +// @include *://manghuangji.cc/*/*.html +// @include *://www.aiqis.com/*/*.html +// @include *://www.fftxt.net/book/*/*.html +// @include *://www.5kwx.com/book/*/*/*.html +// @include *://www.uuxiaoshuo.net/html/*/*/*.html +// @include *://www.sanyyo.org/*.html +// @include *://www.chinaisbn.com/*/*/*.html +// @include *://www.caihongwenxue.com/Html/Book/*/*/*.html +// @include *://www.shushuw.cn/shu/*/*.html +// @include *://www.78xs.com/article/*/*/*.shtml +// @include *://www.woaixiaoshuo.com/xiaoshuo/*/*/*.html +// @include *://www.ty2016.com/book/*/*.html +// @include *://wx.ty2016.com/*/*/*.html +// @include *://www.my285.com/*/*/*/*.htm +// @include *://www.5858xs.com/html/*/*/*.html +// @include *://book.58xs.com/html/*/*/*.html +// @include *://book.mihua.net/*/*/*/*.html +// @include *://www.hjwzw.com/Book/Read/*,* +// @include *://www.hjwzw.com/Book/Read/*_* +// @include *://www.365essay.com/*/*.htm +// @include *://www.gengxin8.com/read/*/*.html +// @include *://www.365xs.org/books/*/*/*.html +// @include *://www.wuruo.com/files/article/html/*/*/*.html +// @include *://*.8shuw.net/book/*/*.html +// @include *://www.pashuw.com/BookReader/*/*.html +// @include *://read.shanwen.com/html/*/*/*.html +// @include *://www.qqxs.cc/xs/*/*/*.html +// @include *://www.69shu.com/txt/*/* +// @include *://www.e8zw.com/book/*/*/*.html +// @include *://www.8535.org/*/*/*.html* +// @include *://www.yfzww.com/books/*/*/*.htm +// @include *://www.lewen8.com/lw*/*.html +// @include *://www.pinwenba.com/read/*/*.html +// @include *://down1.qidian.com/bookall/*.htm* +// @include *://www.77nt.com/*/*.html +// @include *://www.quanbenba.com/yuedu/*/*/*.html +// @include *://www.sto.cc/book-*-*.html +// @include *://www.151xs.com/wuxiazuoxiong/*/chapter/*/ +// @include *://www.qududu.net/book/*/*/*.html +// @include *://www.qingdou.cc/chapter* +// @include *://www.shuyuewu.com/kan* +// @include *://www.1553.net/*/* +// @include *://www.269s.com/*/*/* +// @include *://www.33yq.com/read/*/*/*.shtml +// @include *://233yq.com/xiaoshuo/*.html +// @include *://www.50zw.co/book_*/*.html +// @include *://www.bqg5200.com/xiaoshuo/*/*/*.html +// @include *://www.50zw.la/book_*/*.html +// @include *://www.qu.la/book/*/*.html +// @include *://www.luoqiu.com/read/*/*.html +// @include *://www.54tushu.com/book_library/chaptershow/theId/*.html +// @include *://www.snwx8.com/book/*/*/*.html +// @include *://read.qidian.com/chapter/* +// @include *://www.23zw.me/olread/*/*/*.html +// @include *://www.ptwxz.com/html/*/*/*.html +// @include *://www.dhzw.org/book/*/*/*.html +// @include *://www.biqiuge.com/book/*/*.html +// @include *://www.baquge.com/files/article/html/*/*/*.html +// @include *://www.baquge.tw/files/article/html/*/*/*.html +// @include *://www.qu.la/book/*/*.html +// @include *://www.bxwx9.org/b/*/*/*.html +// @include *://www.miaobige.com/*/*/*.html +// @include *://www.52dsm.com/chapter/*/*.html +// @include *://www.banfusheng.com/chapter/*/*.html +// @include *://www.remenxs.com/du_*/*/ +// @include *://www.shuhai.com/read/*/*.html +// @include *://www.hbooker.com/chapter/* +// @include *://www.mht.la/*/*/*.html +// @include *://www.paomov.com/*/*/*.html +// @include *://www.moyuanwenxue.com/xiaoshuo/*/*/*.htm +// @include *://www.ggdown.com/modules/article/reader.php?aid=* +// @include *://www.daizhuzai.com/*/*.html +// @include *://www.mywenxue.com/xiaoshuo/*/*/*.htm +// @include *://www.yueduyue.com/*/*.html +// @include *://www.67shu.com/*/*/*.html +// @include *://www.wangshu.la/books/*/*/*.html +// @include *://www.23sw.net/*/*/*.html +// @include *://www.ybdu.com/xiaoshuo/*/*/*.html +// @include *://www.shudaizi.org/book/*/*.html +// @include *://www.ymoxuan.com/book/*/*/*.html +// @include *://www.67shu.com/*/*/*.html +// @include *://www.bookxuan.com/*/*.html +// @include *://www.2kxs.com/xiaoshuo/*/*.html +// @include *://www.88dushu.com/xiaoshuo/*/*/*.html +// @include *://www.wutuxs.com/html/*/*/*.html +// @include *://www.23qb.com/book/*/*.html +// @include *://www.biqu6.com/*/*.html +// @include *://www.niepo.net/html/*/*/*.html +// @include *://www.booktxt.net/*/*.html +// @include *://www.aszw.org/book/*/*/*.html +// @include *://www.xiashu.cc/*/*.html +// @include *://www.lewenxiaoshuo.com/books/*/*.html +// @include *://www.heihei66.com/*/*/*.html +// @include *://www.111bz.net/*/*.html +// @include *://www.biqukan.com/*_*/*.html +// @include *://www.4xiaoshuo.com/*/*/*.html +// @include *://www.woquge.com/*/*.html +// @include *://www.lianzaishu.com/*/*.html +// @include *://www.lucifer-club.com/chapter-*-*.html +// @include *://www.011bz.com/*/*.html +// @include *://www.quanben.io/*/*/*.html +// @include *://www.b5200.org/*/*.html +// @include *://www.b5200.net/*/*.html +// @include *://www.cangqionglongqi.com/*/*.html +// @include *://www.daocaorenshuwu.com/book/*/*.html +// @include https://xhhread.com/read/read*.jhtml?chapterid=* +// @include *://www.shubao4.com/read/*/*.html +// @include *://www.gxwztv.com/*/*/*.html +// @include *://novel.tingroom.com/*/*/*.html +// @include *://www.xxbiquge.com/*/*.html +// @include *://www.liewen.cc/b/*/*/*.html +// @include *://www.pbtxt.com/*/*.html +// @include *://www.dingdiann.com/*/*.html +// @include *://www.uctxt.com/book/*/*/*.html +// @include *://www.mytxt.cc/read/*/*.html +// @include *://yd.baidu.com/view/*?cn=* +// @include *://www.88dus.com/xiaoshuo/*/*/*.html +// @include *://m.yushuwu.com/novel/*/*.html +// @include *://www.sbkk88.com/*/*/*.html +// @include *://www.ciweimao.com/chapter/* +// @include *://www.xinshubao.net/*/*/*.html +// @include *://www.okdd.net/html/*/*/*.shtml +// @include *://www.aixs.org/xs/*/*/*.html + +// 移动版 +// @include *://wap.yc.ireader.com.cn/book/*/*/ +// @include *://m.jjwxc.net/book2/*/* +// @include *://m.jjwxc.com/book2/*/* +// @include *://wap.jjwxc.net/book2/*/* +// @include *://wap.jjwxc.com/book2/*/* +// @include *://wap.jjwxc.com/vip/*/*?ctime=* +// @include *://wap.jjwxc.com/vip/*/* +// @include *://wap.jjwxc.net/vip/*/* +// @include *://m.jjwxc.net/vip/*/* +// @include *://m.jjwxc.com/vip/*/* + +// @exclude */List.htm +// @exclude */List.html +// @exclude */List.shtml +// @exclude */index.htm +// @exclude */index.html +// @exclude */index.shtml +// @exclude */Default.htm +// @exclude */Default.html +// @exclude */Default.shtml + +// @run-at document-end +// ==/UserScript== + +// 其它设置 +const config = { + lang: 'zh-CN', + + soduso: false, // www.sodu.so 跳转 + // content_replacements: true, // 小说屏蔽字修复 + fixImageFloats: true, // 图片居中修正 + paragraphBlank: true, // 统一段落开头的空格为 2个全角空格 + end_color: "#666666", // 最后一页的链接颜色 + PRELOADER: true, // 提前预读下一页 + + xhr_time: 15 * 1000, + download_delay: 0, // 毫秒。0 毫秒下载起点 vip 限时免费章节会被封 + dumpContentMinLength: 3, // 检测重复内容的最小行数 +}; + +var uiTrans = { + "将小说网页文本转换为繁体。\n\n注意:内置的繁简转换表,只收录了简单的单字转换,启用本功能后,如有错误转换的情形,请利用脚本的自订字词取代规则来修正。\n例如:「千里之外」,会错误转换成「千里之外」,你可以加入规则「千里之外=千里之外」来自行修正。": "將小說網頁文字轉換為繁體。\n\n注意:內建的繁簡轉換表,只收錄了簡單的單字轉換,啟用本功能後,如有錯誤轉換的情形,請利用腳本的自訂字詞取代規則來修正。\n例如:「千里之外」,會錯誤轉換成「千裡之外」,你可以加入規則「千裡之外=千里之外」來自行修正。", + "图片章节用夜间模式没法看,这个选项在启动时会自动切换到缺省皮肤": "圖片章節無法以夜間模式觀看,這個選項在啟動時會自動切換到預設佈景", + "通过快捷键切换或在 Greasemonkey 用户脚本命令处打开设置窗口": "通過熱鍵切換或在 Greasemonkey 使用者腳本命令處開啟設定視窗", + "隐藏后通过快捷键或 Greasemonkey 用户脚本命令处调用": "隱藏後通過熱鍵或 Greasemonkey 使用者腳本命令處調用", + "一行一个,每行第一个 = 为分隔符\n需要刷新页面生效": "一行一條規則,每一行第一個 = 為分隔符\n(需重新載入頁面才能生效)", + "错误:没有找到下一页的内容,使用右键翻到下一页": "錯誤:沒有找到下一頁的內容,使用右鍵翻到下一頁", + "左键滚动,中键打开链接(无阅读模式)": "左鍵捲動畫面至該章節,中鍵開啟連結(無閱讀模式)", + "请输入切换左侧章节列表的快捷键:": "請輸入切換左側章節列表的熱鍵:", + "详见脚本代码的 Rule.specialSite": "詳見腳本代碼的 Rule.specialSite", + "booklink.me 点击的网站强制启用": "booklink.me 點擊的網站強制啟用", + "部分选项需要刷新页面才能生效": "部份選項需重新載入頁面才能生效", + "取消本次设定,所有选项还原": "取消本次設定,所有選項還原", + "不影响 booklink.me 的启用": "不影響 booklink.me 的啟用", + "请输入打开设置的快捷键:": "請輸入開啟設定視窗的熱鍵:", + "微软雅黑,宋体,黑体,楷体": "Microsoft YaHei,新細明體,PMingLiU,MingLiU,細明體,標楷體", + "夜间模式的图片章节检测": "夜間模式的圖片章節檢測", + "点击显示隐藏章节列表": "點此以顯示或隱藏章節列表", + "添加下一页到历史记录": "加入下一頁到歷史記錄", + "booklink 自动启用": "booklink 自動啟用", + "Enter 键打开目录": "Enter 鍵開啟目錄", + "隐藏左侧章节列表": "隱藏左側章節列表", + "小说阅读脚本设置":"小說閱讀腳本設定", + "已到达最后一页": "已到達最後一頁", + "正在载入下一页": "正在載入下一頁", + "通过快捷键切换": "通過熱鍵切換", + "隐藏底部导航栏": "隱藏底部導航列", + "隐藏左侧导航条": "隱藏左側章節列表彈出鈕", + "主页链接没有找到": "未找到主頁連結", + "自定义站点规则": "自訂網站規則", + "自定义替换规则": "自訂字詞取代規則", + "网页:转繁体": "網頁:轉繁體", + "双击暂停翻页": "雙擊暫停翻頁", + "隐藏设置按钮": "隱藏設定按鈕", + "强制手动启用": "強制手動啟用", + "调用阅读器": "調用閱讀器", + "自定义样式": "自訂樣式", + "界面语言": "介面語言", + "打开目录": "開啟本書目錄頁", + "自动翻页": "自動翻頁", + "缺省皮肤": "預設佈景", + "暗色皮肤": "暗色佈景", + "夜间模式": "夜間模式", + "夜间模式1": "夜間模式1", + "夜间模式2": "夜間模式2", + "橙色背景": "橙色背景", + "绿色背景": "綠色背景", + "绿色背景2": "綠色背景2", + "蓝色背景": "藍色背景", + "棕黄背景": "棕黃背景", + "经典皮肤": "經典背景", + "阅读模式": "閱讀模式", + "调试模式": "偵錯模式", + "反馈地址": "反饋與討論", + "安静模式": "安靜模式", + "√ 确认": "√ 確定", + "X 取消": "X 取消", + "上一页": "上一頁", + "下一页": "下一頁", + "状态": "狀態", + "已经": "已經", + "暂停": "暫停", + "启用": "啟用", + "退出": "離開", + "测试": "測試", + "距离": "距離", + "加载": "載入", + "字体": "字型", + "行高": "行距", + "行宽": "版面寬度", + "目录": "目錄" +}; + +if(!String.prototype.uiTrans){ + Object.defineProperty(String.prototype, 'uiTrans', { + value: function(){ + var _this = this.valueOf(), key, regexp; + if(config.lang !== 'zh-TW') return _this; + + if(uiTrans.hasOwnProperty(_this)) return uiTrans[_this]; + + for (key in uiTrans) { + regexp = new RegExp(key, 'g'); + _this = _this.replace(regexp, uiTrans[key]); + } + return _this; + }, + enumerable: false + }); +} + +// 参考 https://github.com/madrobby/zepto/blob/master/src/detect.js + +const ua = navigator.userAgent; +const platform = navigator.platform; + +const isFirefox = ua.match(/Firefox\/([\d.]+)/); + +const isChrome = ua.match(/Chrome\/([\d.]+)/) || ua.match(/CriOS\/([\d.]+)/); + +const isWindows = /Win\d{2}|Windows/.test(platform); + +//------------------- 辅助函数 ---------------------------------------- +var nullFn = function() {}; + +// @require https://greasyfork.org/scripts/2599-gm-2-port-function-override-helper/code/GM%202%20port%20-%20Function%20Override%20Helper.js?version=184155 +// Check if is GM 2.x +if (typeof window.exportFunction == 'undefined') { + // For GM 1.x backward compatibility, should work. + window.exportFunction = (function(foo, scope, defAs) { + scope[defAs.defineAs] = foo; + }).bind(unsafeWindow); +} + +var C; + +function toggleConsole(debug) { + if (debug) { + C = console; + } else { + C = { + log: nullFn, + debug: nullFn, + error: nullFn, + group: nullFn, + groupCollapsed: nullFn, + groupEnd: nullFn, + time: nullFn, + timeEnd: nullFn, + }; + } +} + +function L_getValue(key) { // 个别用户禁用本地存储会报错 + try { + return localStorage.getItem(key); + } catch (e) {} +} + +function L_setValue(key, value) { + try { + localStorage.setItem(key, value); + } catch (e) {} +} + +function L_removeValue(key) { + try { + localStorage.removeItem(key); + } catch (e) {} +} + + +function parseHTML(str) { + var doc; + try { + // firefox and chrome 30+,Opera 12 会报错 + doc = new DOMParser().parseFromString(str, "text/html"); + } catch (ex) {} + + if (!doc) { + doc = document.implementation.createHTMLDocument(""); + doc.querySelector("html").innerHTML = str; + } + return doc; +} + +function toRE(obj, flag) { + if (obj instanceof RegExp) { + return obj; + } else { + return new RegExp(obj, (flag || 'ig')); + } +} + +function toReStr(str) { // 处理字符串,否则可能会无法用正则替换 + return str.replace(/[()\[\]{}|+.,^$?\\*]/g, "\\$&"); +} + +function wildcardToRegExpStr(urlstr) { + if (urlstr.source) return urlstr.source; + var reg = urlstr.replace(/[()\[\]{}|+.,^$?\\]/g, "\\$&").replace(/\*+/g, function(str){ + return str === "*" ? ".*" : "[^/]*"; + }); + return "^" + reg + "$"; +} + +function getUrlHost(url) { + var a = document.createElement('a'); + a.href = url; + return a.host; +} + +// 模板 +$.nano = function(template, data) { + return template.replace(/\{([\w\.]*)\}/g, function(str, key) { + var keys = key.split("."), + v = data[keys.shift()]; + try { + for (var i = 0, l = keys.length; i < l; i++) v = v[keys[i]]; + } catch (e) {} + return (typeof v !== "undefined" && v !== null) ? v : ""; + }); +}; + +// jQuery text 完全匹配. e.g. a:econtains('最新章节') +$.expr[":"].econtains = function(obj, index, meta, stack) { + return (obj.textContent || obj.innerText || $(obj).text() || "").toLowerCase() == meta[3].toLowerCase(); +}; + +/* jshint ignore: start */ + +function $x(aXPath, aContext) { + var nodes = []; + var doc = document; + aContext = aContext || doc; + + try { + var results = doc.evaluate(aXPath, aContext, null, + XPathResult.ANY_TYPE, null); + var node; + while (node = results.iterateNext()) { + nodes.push(node); + } + } catch (ex) {} + + return nodes; +} + +if (typeof String.prototype.startsWith != 'function') { + String.prototype.startsWith = function(str) { + return this.slice(0, str.length) == str; + }; +} + +if (typeof String.prototype.endsWith != 'function') { + String.prototype.endsWith = function(str) { + return this.slice(-str.length) == str; + }; +} + +if (!String.prototype.includes) { + String.prototype.includes = function(search, start) { + 'use strict'; + if (typeof start !== 'number') { + start = 0; + } + if (start + search.length > this.length) { + return false; + } else { + return this.indexOf(search, start) !== -1; + } + }; +} + + +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + */ +jQuery.easing.jswing=jQuery.easing.swing,jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(a,b,c,d,e){return jQuery.easing[jQuery.easing.def](a,b,c,d,e)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b+c:d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b+c:-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return 0==b?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){return 0==b?c:b==e?c+d:(b/=e/2)<1?d/2*Math.pow(2,10*(b-1))+c:d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){return(b/=e/2)<1?-d/2*(Math.sqrt(1-b*b)-1)+c:d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;return 0==b?c:1==(b/=e)?c+d:(g||(g=.3*e),hb?-.5*h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g)+c:.5*h*Math.pow(2,-10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g)+d+c)},easeInBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*(b/=e)*b*((f+1)*b-f)+c},easeOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),d*((b=b/e-1)*b*((f+1)*b+f)+1)+c},easeInOutBack:function(a,b,c,d,e,f){return void 0==f&&(f=1.70158),(b/=e/2)<1?d/2*b*b*(((f*=1.525)+1)*b-f)+c:d/2*((b-=2)*b*(((f*=1.525)+1)*b+f)+2)+c},easeInBounce:function(a,b,c,d,e){return d-jQuery.easing.easeOutBounce(a,e-b,0,d,e)+c},easeOutBounce:function(a,b,c,d,e){return(b/=e)<1/2.75?d*7.5625*b*b+c:2/2.75>b?d*(7.5625*(b-=1.5/2.75)*b+.75)+c:2.5/2.75>b?d*(7.5625*(b-=2.25/2.75)*b+.9375)+c:d*(7.5625*(b-=2.625/2.75)*b+.984375)+c},easeInOutBounce:function(a,b,c,d,e){return e/2>b?.5*jQuery.easing.easeInBounce(a,2*b,0,d,e)+c:.5*jQuery.easing.easeOutBounce(a,2*b-e,0,d,e)+.5*d+c}}); + +/* jshint ignore: end */ + +// ===== 自定义站点规则 ===== + +const sites = [ + // 详细版规则示例。注:该网站已无法访问。 + {siteName: "泡书吧", // 站点名字... (可选) + url: "^https?://www\\.paoshu8\\.net/Html/\\S+\\.shtm$", // // 站点正则... (~~必须~~) + + // 获取标题 + titleReg: /(.*?)最新章节 [-_\\\/](.*?)[-_\/].*/, // 书籍标题、章节标题正则 (可选) + titlePos: 0, // 书籍标题位置:0 或 1 (可选,默认为 0) + titleSelector: "#title h1", + + indexSelector: "a:contains('回目录')", // 首页链接 jQuery 选择器 (不填则尝试自动搜索) + prevSelector: "a:contains('翻上页')", // 上一页链接 jQuery 选择器 (不填则尝试自动搜索) + nextSelector: "a:contains('翻下页')", // 下一页链接 jQuery 选择器 (不填则尝试自动搜索) + + // nDelay: 500, // 延迟0.5秒加载下一页 + // style: '', // 站点样式 + + // 获取内容 + contentSelector: "#BookText", // 内容 jQuery 选择器 (不填则尝试自动搜索) + useiframe: false, // (可选)下一页加载是否使用 iframe + // mutationSelector: "#chaptercontainer", // (可选)内容生成监视器 + // 对内容的处理 + contentHandle: false, // (可选)是否对内容进行特殊处理,诸如拼音字修复等,诸如起点等网站可禁用 + fixImage: true, // (可选),图片居中,不分大小 + contentReplace: /(\*W|(w|\(w).{10,25}(吧\*|)|\))|看小说就上|本书首发|泡.{1,6}吧|百度搜索阅读最新最全的小说|http:\/\/www.paoshu8.com\/|无弹窗/g, // 需要移除的内容正则 (可选) + contentPatch: function(fakeStub){ // (可选)内容补丁。解决翻页是脚本的情况 + var $next = fakeStub.find('#LinkMenu'); + $next.html($next.html().replace(/