// ==UserScript== // @name 3DM 帖子列表内容提取 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 提取帖子列表内容到剪切板 // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.slim.min.js // @author feirnova // @license MIT // @match *://bbs.3dmgame.com/forum-* // @match *://bbs.3dmgame.com/forum.php?mod=guide* // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC0klEQVR4nJ1TS0hUYRT+/nuvd2Z0nMbRrpPpTJozoZliQmEFFkT0QlwIRWlUi4jIaFGLqE0ELlsEElGrGCKimhaVVmhW9CBSy5ohk/I1pvO66R3nOt7X30IxoyTog8OBc/i+83EOB1gEoRP8Yq3fQP5WvHxqW7kkKfkmXgx+D3PCmjLLuPYmNXyotevfAud9XhQEHZtLKpe3uAozS+12MyRJRTSc7O7tCp9uOPe0Y1GBGAUeXdiyc8vuIr8gmHgQgFACSgwQg0L8oWtP7w3s2Z/vvKse9v0pcLup3FpWV97v8S5xElBMz2hgGIKRgQRcRZmYljVEo4r45E5gVVmtMNH3UC3ifvOfZ693OC3OB50jUFRAkjTIsoqjB7xo7YhgaERChpU4isuXHUsNs+Km7Y5K8rl1L2/PHld8gSFUa6V+r6TXhWMzMNW4EArFQCMRGNMywLFgLOnIXZoD0/PIuHXfSnvUwHUuqTNdJJFvW5+WfSs3z7TVnJiB25WJyXQNjpwl0LJXQVM4ECLDYorDXWJDPM/qzPJmYaxbjHBQlFfFlc4jqZRyyr3aDgYABYXJXIFl6esAws7vm1IFRvIteOktDB0IDYg9zMfP4ZbhwamUp2SWDBBQvhhsxgYQwoEBAQOAAQVD0sBaN0JPc6O/XwoyRk4bE+tLGmJUluSkDk2nSKVUwLIGhC48EQFAQOYyNa99FUiMVQ1Vt8kkPhHnfCd3OYXCjKYCj+0gz0Oo2nEGhDHNEX7BAKAbFIFnzxsrdzb5AIDJsmWh8eK9cUvDjrOv28dqCEsGDarOTgLmwwCgaho+vHx5M3i1+ca8N0opBwDJxAzux9/hffMlW3WF7cqKQk+9RXCBsCx0g079+BpgRjv9Zvtqwb31eHtooQADALquYzQmom/yGnofqzb3txe1kw6PKEOYoBmsbKaKmVeT6SNJ9kvPp68xv98v//FZ/4OfGzYzfKjarqcAAAAASUVORK5CYII= // @grant none // @downloadURL none // ==/UserScript== (function($) { 'use strict'; const _$=$.noConflict() const copy_tbl_data=()=>{ const tbl_el=$('#threadlist>.bm_c>table>tbody,#threadlisttableid>tbody') const is_personal=!tbl_el.parent().attr('id') const headers =['链接地址','标题','回复数量','作者','最后发表','发帖时间'] const join_strs=[headers.join('\t')] tbl_el.each((i,_e)=>{ const bel=_$(_e) const burl=bel.find('.common>a:last') const url = `https://bbs.3dmgame.com/${burl.attr('href')}` const title=burl.text() if(title==''){ return } const num =bel.find('.num>a').text() const author=is_personal?bel.find('.by:eq(1)>cite>a').text():bel.find('.by:first>cite>a').text() const replyer=is_personal?bel.find('.by:eq(2)>cite>a').text():bel.find('.by:eq(1)>cite>a').text() const create_time=is_personal?bel.find('.by:eq(1)>em>span').text():bel.find('.by:first>em>span').text() const content_str=[url,title,num,author,replyer,create_time].join('\t') join_strs.push(content_str) }) console.log(join_strs.join('\n')) var $temp = $("