1+ // ==UserScript==
2+ // @name Bonnae News
3+ // @namespace http://tampermonkey.net/
4+ // @version 0.1
5+ // @description for Bonnae broadcast on douban.com
6+ // @author harryhare
7+ // @match https://www.douban.com/**
8+ // @grant none
9+ // ==/UserScript==
10+
11+
12+
13+ ( function ( ) {
14+ 'use strict' ;
15+
16+ // Your code here...
17+ var targets = $ ( '.new-status[data-uid="1540691"] .status-item .mod .bd .status-saying blockquote p' ) ;
18+
19+ /*
20+ http://upaste.me/xxxxx
21+ https://slexy.org/view/xxxxx
22+ https://paste2.org/xxxxx (注意代码区分大小写)
23+ */
24+ var url_prefix = new Map ( ) ;
25+ url_prefix [ 'upaste.me' ] = 'http://upaste.me/' ;
26+ url_prefix [ 'slexy.org' ] = 'https://slexy.org/view/' ;
27+ url_prefix [ 'paste2.org' ] = 'https://paste2.org/' ;
28+ const default_prefix = 'upaste.me' ;
29+ const max_code_length = 100 ;
30+
31+ for ( let i = 0 ; i < targets . length ; i ++ ) {
32+ var t = targets [ i ] ;
33+ var content = t . textContent ;
34+ if ( content . length > max_code_length ) {
35+ continue ;
36+ }
37+ var reg = / ( [ a - z A - Z 0 - 9 ] { 4 , } ) \s * \( ( [ a - z 0 - 9 ] + .[ a - z ] + ) \) / g;
38+ var reg2 = / ( [ a - z A - Z 0 - 9 ] { 10 , } ) / g;
39+ var result = reg . exec ( content ) ;
40+ var href = '' ;
41+ var find = false ;
42+ if ( result && result . length > 2 && result [ 2 ] ) {
43+ href = url_prefix [ result [ 2 ] ] + result [ 1 ] ;
44+ find = true ;
45+ }
46+ if ( ! find ) {
47+ result = reg2 . exec ( content ) ;
48+ if ( result && result . length > 1 ) {
49+ href = url_prefix [ default_prefix ] + result [ 1 ] ;
50+ find = true ;
51+ }
52+ }
53+ if ( find ) {
54+ var n1 = document . createElement ( 'a' ) ;
55+ var n2 = document . createElement ( 'p' ) ;
56+ n2 . appendChild ( n1 ) ;
57+ //todo jsonp get the html content
58+ n1 . textContent = href ;
59+ n1 . setAttribute ( 'href' , href ) ;
60+ t . parentElement . parentElement . appendChild ( n2 ) ;
61+ }
62+ }
63+ } ) ( ) ;
0 commit comments