diff --git a/README.md b/README.md index 85c4578..9e94132 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ fork自 https://github.com/barrer/tampermonkey-script 修改的,并参考了 h * 只调用沪江小D查询日语,可以点击语音按钮发音 * 默认是日中查询,没有结果时自动使用中日查询,日中查询有结果有添加主动中日查询的按钮 * 有多个意思和发音时,可以点击切换 +* 可以选中段落朗读,不过要先安装tts语音,windows10在语音中添加日语即可,macOS类似,linux不知道怎么安装tts * 支持浏览器:Google Chrome、Firefox、Safari、Firefox for Android(无拖动) * 支持图标拖动 * 支持面板自动调整位置 diff --git a/tieba page.js b/tieba page.js new file mode 100644 index 0000000..b8ad0c9 --- /dev/null +++ b/tieba page.js @@ -0,0 +1,194 @@ +// ==UserScript== +// @name tieba page +// @namespace http://tampermonkey.net/ +// @version 0.4 +// @author fthvgb1 +// @match https?://tieba.baidu.com/* +// @grant unsafeWindow +// @description 显示手机版贴吧里被隐藏的楼层与翻页按钮 +// ==/UserScript== + + +function t() { + lz(); + $("ul#pblist>li").forEach(function (e) { + f(e); + var ee = $(e); + var tid = ee.attr("tid"); + var content = ee.find(".list_item_top"); + var x = ee.find('.list_item_top a.j_report_btn'); + if (x && x.length > 0) { + var kz = x[0].href.match(/tid=(\d+)\&/); + kz = kz[1]; + } + + var floor = e.getElementsByClassName('pb_floow_load'); + if (floor.length > 0) { + var text = floor[0].textContent; + var url = `https://tieba.baidu.com/t/p/${tid}`; + var num = parseInt(text.match(/\d+/)); + content.append(`
查看剩余` + num + `条回复
`); + var res = content.find('a.reply'); + var orgnum = num; + //console.log(content,res); + if (res) { + res.forEach(function (v, i) { + var page = 2; + v.addEventListener('click', function () { + var that = this; + + if (num === orgnum) { + var url = this.getAttribute('data-url'); + //console.log(); + $.get(url, function (rst) { + var dom = (new DOMParser()).parseFromString(rst, 'text/html'); + var r = dom.querySelector('.j_floor_panel'); + var lii = r.querySelectorAll('li'); + lii.forEach(function (li, index) { + //console.log(li.className) + if (index < 2) { + return; + } + + var username = li.querySelector('.left>div .user_name').outerHTML; + username = username.replace('', ':'); + var s = li.querySelector('.content span'); + s.className = 'floor_content'; + var c = li.querySelector('.content').innerHTML; + var div = ` +
+ +
`; + li.innerHTML = div; + var ll = document.createElement('li'); + ll.classList.add('list_item_floor'); + ll.classList.add('j_list_item_floor'); + ll.innerHTML = div; + //console.log(content.find('.flist')) + content.find('.flist')[0].appendChild(ll) + + }); + if (num <= 8) { + that.parentNode.removeChild(that); + } else { + num -= 8; + that.innerText = `查看剩余${num}条回复`; + } + }); + } else { + var url = `https://tieba.baidu.com/mo/q//flr?fpn=${page}&kz=${kz}&pid=${tid}&is_ajax=1&has_url_param=0&template=lzl`; + $.get(url, function (res) { + var ht = (new DOMParser()).parseFromString(res.data.floor_html, 'text/html'); + var lii = ht.querySelectorAll('li'); + lii.forEach(function (li, index) { + var username = li.querySelector('.left>div .user_name').outerHTML; + username = username.replace('', ':'); + var s = li.querySelector('.content span'); + s.className = 'floor_content'; + var c = li.querySelector('.content').innerHTML; + var div = ` +
+ +
`; + li.innerHTML = div; + var ll = document.createElement('li'); + ll.classList.add('list_item_floor'); + ll.classList.add('j_list_item_floor'); + ll.innerHTML = div; + //console.log(content.find('.flist')) + content.find('.flist')[0].appendChild(ll) + + }); + ++page; + if (num > 10) { + num -= 10; + that.innerText = `查看剩余${num}条回复`; + } else { + that.parentNode.removeChild(that); + } + }) + } + + }) + }) + } + floor[0].parentNode.removeChild(floor[0]) + } + + }); +} + +function lz() { + let lz = document.querySelector('span.poster_only'); + if (lz) { + lz.onclick = null; + let h = location.href; + let ff = 0; + if (h.indexOf('see_lz=1') > -1) { + lz.textContent = '取消只看楼主'; + h = h.replace('see_lz=1', 'see_lz=0') + ff = 1; + } + lz.addEventListener('click', evt => { + + if (ff === 0) { + h = h.indexOf('?') < 0 ? h + '?see_lz=1' : h + '&see_lz=1'; + } + location.href = h; + + }); + } +} + +function f(value) { + var dt = JSON.parse(value.getAttribute('data-info')); + if (dt) { + var fl = dt.floor_num; + var l = document.createElement('span'); + l.style.color = 'green'; + l.textContent = fl + '楼'; + if (fl === 1) { + l.textContent = '楼主'; + } else if (fl === 2) { + l.textContent = '沙发'; + } else if (fl === 3) { + l.textContent = '地板'; + } + value.querySelector('.list_item_time').parentNode.appendChild(l); + } +} + +(function () { + document.querySelectorAll('ul#pblist>li').forEach(value => { + if (value.classList.contains('class_hide_flag')) { + value.classList.remove('class_hide_flag'); + } + + }); + t(); + + [ + '.img_desc', '.father-cut-recommend-normal-box', '.father-cut-daoliu-normal-box', + '#diversBanner', '.footer_logo', '.j_footer_link' + ].forEach(value => { + let x = document.querySelector(value); + if (x) { + x.parentNode.removeChild(x) + } + }); + + document.querySelector('.father-cut-pager-class-no-page').classList.remove('father-cut-pager-class-no-page'); + + + $("#list_pager>a").on("click", function () { + setTimeout(t, 3000); + }); + + +})(); \ No newline at end of file