Changeset 10939

Show
Ignore:
Timestamp:
05/02/08 17:06:43 (5 years ago)
Author:
drry
Message:
  • added 2 filters.
    • "Twitter - Remove insistent username prefixes and body text"
    • "Remove bodies same as its title"
  • fixed 2 filters.
    • "CR LF TO BR"
    • "Trim spaces"
  • et cetera.
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/userscripts/ldrprefav.user.js

    r10432 r10939  
    2424        const filters = { 
    2525                "FeedBurner - Unburn, raw feeds" : function(f) { 
    26                         var re = /<a(?: [^>]+?)? href="\s*http:\/\/[^\/]+\/~\w\/[^>]+>[\s\S]+?<\/a>|<img(?: [^>]+?)? src="\s*http:\/\/[^\/]+\/~\w\/[^>]+>(?:<\/img>)?/g; 
     26                        var re = /<a(?: [^>]+?)? href="[ \t\r\n]*http:\/\/[^\/]+\/~\w\/[^>]+>[\s\S]+?<\/a>|<img(?: [^>]+?)? src="[ \t\r\n]*http:\/\/[^\/]+\/~\w\/[^>]+>(?:<\/img>)?/g; 
    2727                        if (! /^http:\/\/feeds\.feedburner\.(?:com|jp)\//.test(f.channel.feedlink) && 
    2828                            ! (f.items[0] && 
     
    3333                        foreach(f.items, function(i) { 
    3434                                i.body = i.body.replace(re, ""); 
    35                                 if ((PREFILTER & 8) < 1 || ! truePermalinks[i.link]) return; 
     35                                if ((PREFILTER & 1 << 3) < 1 || ! truePermalinks[i.link]) return; 
    3636                                var link = i.link; 
    3737                                i.link = truePermalinks[i.link]; 
     
    4646 
    4747                        filter(f.items, function(i) { return i.title.indexOf("AD: ") != 0 }); 
    48                         var re = /<img(?: [^>]+?)? src="\s*http:\/\/www\.pheedo\.jp\/(?:img\.phdo|feeds\/tracker\.php)\?[^>]+>(?:<\/img>)?/g; 
     48                        var re = /<img(?: [^>]+?)? src="[ \t\r\n]*http:\/\/www\.pheedo\.jp\/(?:img\.phdo|feeds\/tracker\.php)\?[^>]+>(?:<\/img>)?/g; 
    4949                        foreach(f.items, function(i) { 
    5050                                i.body = i.body.replace(re, ""); 
    51                                 if ((PREFILTER & 16) < 1 || ! truePermalinks[i.link]) return; 
     51                                if ((PREFILTER & 1 << 4) < 1 || ! truePermalinks[i.link]) return; 
    5252                                var link = i.link; 
    5353                                i.link = truePermalinks[i.link]; 
     
    5858                        //filter(f.items, function(i) { return i.author != "rssad.jp" }); 
    5959                        filter(f.items, function(i) { return i.title.indexOf("PR: ") != 0 }); 
    60                         var re = /<a(?: [^>]+?)? href="\s*http:\/\/rss\.rssad\.jp\/[^>]+>[\s\S]+?<\/a>|<img(?: [^>]+?)? src="\s*http:\/\/rss\.rssad\.jp\/[^>]+>(?:<\/img>)?/g; 
     60                        var re = /<a(?: [^>]+?)? href="[ \t\r\n]*http:\/\/rss\.rssad\.jp\/[^>]+>[\s\S]+?<\/a>|<img(?: [^>]+?)? src="[ \t\r\n]*http:\/\/rss\.rssad\.jp\/[^>]+>(?:<\/img>)?/g; 
    6161                        foreach(f.items, function(i) { 
    6262                                i.body = i.body.replace(re, ""); 
    63                                 if ((PREFILTER & 32) < 1 || ! truePermalinks[i.link]) return; 
     63                                if ((PREFILTER & 1 << 5) < 1 || ! truePermalinks[i.link]) return; 
    6464                                var link = i.link; 
    6565                                i.link = truePermalinks[i.link]; 
     
    7575                        if (f.channel.link != "http://news.nationalgeographic.com") return; 
    7676 
    77                         var RE_THMB = /(?=(<img)(?: [^>]+?)?( src="\s*http:\/\/news\.nationalgeographic\.com\/news\/)(images\/)thumbs\/([^"]+?_)\d+x\d+(\.jpg")[^>]*(>(?:<\/img>)?))/; 
     77                        var RE_THMB = /(?=(<img)(?: [^>]+?)?( src="[ \t\r\n]*http:\/\/news\.nationalgeographic\.com\/news\/)(images\/)thumbs\/([^"]+?_)\d+x\d+(\.jpg")[^>]*(>(?:<\/img>)?))/; 
    7878                        foreach(f.items, function(i) { 
    7979                                if (i.title.indexOf("VIDEO: ") == 0 || i.title.indexOf("PHOTOS:") > -1) return; 
     
    115115                        if (! /^http:\/\/[^.]+\.blogspot\.com\//.test(f.channel.link)) return; 
    116116 
    117                         var re1 = /(<img(?: [^>]+?)? src="\s*http:\/\/bp\d\.blogger\.com\/_[^"]+?\/s)\d{1,4}(?=\/[^"]+?\.(?:jpe?g|gif|png)")/ig; 
     117                        var re1 = /(<img(?: [^>]+?)? src="[ \t\r\n]*http:\/\/bp\d\.blogger\.com\/_[^"]+?\/s)\d{1,4}(?=\/[^"]+?\.(?:jpe?g|gif|png)")/ig; 
    118118                        var re2 = /(<img(?: [^>]+?)?) (?:width|height)="\d+"/g; 
    119119                        foreach(f.items, function(i) { 
     
    148148                }, 
    149149                "TinyURL - UnTinyURL" : function(f) { 
    150                         if ((PREFILTER & 64) < 1) return; 
     150                        if ((PREFILTER & 1 << 6) < 1) return; 
    151151 
    152152                        var re = /http:\/\/(?:preview\.)?tinyurl\.com\/[a-z0-9]+/g; 
     
    179179 
    180180                        var re1 = /\/(?:B(?=log\/)|L(?=ists\/))/g; 
    181                         var re2 = /<img(?: [^>]+?)? src="\s*http:\/\/c\.(?:services\.spaces\.)?live.com\/(?:CollectionWebService\/)?c\.gif\?[^"]+"[^>]*>(?:<\/img>)?/g; 
     181                        var re2 = /<img(?: [^>]+?)? src="[ \t\r\n]*http:\/\/c\.(?:services\.spaces\.)?live.com\/(?:CollectionWebService\/)?c\.gif\?[^"]+"[^>]*>(?:<\/img>)?/g; 
    182182                        foreach(f.items, function(i) { 
    183183                                i.link = i.link.replace(re1, function(m) { return m.toLowerCase() }); 
     
    185185                        }); 
    186186                }, 
     187                "Twitter - Remove insistent username prefixes and body text" : function(f) { 
     188                        var re1 = /^\w+:/; 
     189                        if (f.channel.feedlink.indexOf("http://twitter.com/statuses/user_timeline/") != 0 || 
     190                            ! f.items[0] || ! re1.test(f.items[0].title)) return; 
     191 
     192                        var re2 = /https?:\/\/[-\w!#$%&'()*+,.\/:;=?@~]+/g; 
     193                        foreach(f.items, function(i) { 
     194                                var body = i.body; 
     195                                i.title = i.title.replace(re1, ""); 
     196                                i.body = ""; 
     197                                while (re2.test(body)) { 
     198                                        i.body += '<a href="' + RegExp.lastMatch + '">' + RegExp.lastMatch + "</a> "; 
     199                                } 
     200                        }); 
     201                }, 
     202                "Remove bodies same as its title" : function(f) { 
     203                        foreach(f.items, function(i) { if (i.body == i.title) i.body = ""; }); 
     204                }, 
    187205                "CR LF TO BR" : function(f) { 
    188206                        if (! f.items[0] || /<(?:p|br)[> ]/.test(f.items[0].body)) return; 
    189207 
    190                         var re = /(?=\r?\n|\r)/g; 
    191                         foreach(f.items, function(i) { 
    192                                 i.body = "<p>" + i.body.replace(re, "<p>"); 
     208                        var re = /(?:\r?\n|\r)+/g; 
     209                        foreach(f.items, function(i) { 
     210                                i.body = "<p>" + i.body.replace(re, "</p><p>") + "</p>"; 
    193211                        }); 
    194212                }, 
     
    205223                                //i.body = i.body.replace(/<br(?: [^>]+)?>(?:<\/br>)?\s*(?=<br(?: [^>]+)?>(?:<\/br>)?)|(^|<[ap](?: [^>]+)?>|<\/p>)(?:\s+|<br(?: [^>]+)?>(?:<\/br>)?)+|(?:\s+|<br(?: [^>]+)?>(?:<\/br>)?)+(?=$|<\/[ap]>|<p(?: [^>]+)?>)|<a(?: [^>]+)?>(?:\s+|<br(?: [^>]+)?>(?:<\/br>)?)*<\/a>/g, "$1") // BUG? hanged up... 
    206224                                i.body = i.body.replace(/<br(?: [^>]+)?>(?:<\/br>)?\s*(?=<br(?: [^>]+)?>(?:<\/br>)?)|(^|<[ap](?: [^>]+)?>|<\/p>)(?:\s|<br(?: [^>]+)?>(?:<\/br>)?)+|(?:\s|<br(?: [^>]+)?>(?:<\/br>)?)+(?=$|<\/[ap]>|<p(?: [^>]+)?>)|<a(?: [^>]+)?>(?:\s+|<br(?: [^>]+)?>(?:<\/br>)?)*<\/a>/g, "$1") 
    207                                                .replace(/<(p(?:re)?)(?: [^>]+)?>(?:\s|<br(?: [^>]+)?>(?:<\/br>)?)*<\/\1>/g, ""); 
     225                                               .replace(/<(p(?:re)?|div)(?: [^>]+)?>(?:\s|<br(?: [^>]+)?>(?:<\/br>)?)*<\/\1>/g, ""); 
    208226                        }); 
    209227                } 
     
    213231                "FeedBurner - Resolve permalink" : function(f) { 
    214232                        var re = /^http:\/\/[^\/]+\/~r\/[^~]+?\/~\d\//; 
    215                         if ((PREFILTER & 8) < 1 || 
     233                        if ((PREFILTER & 1 << 3) < 1 || 
    216234                            ! (f.items[0] && re.test(f.items[0].link))) return; 
    217235 
     
    219237                }, 
    220238                "Pheedo - Resolve permalink" : function(f) { 
    221                         if ((PREFILTER & 16) < 1) return; 
     239                        if ((PREFILTER & 1 << 4) < 1) return; 
    222240                        var item; 
    223241                        for (var i = 0; item = f.items[i++];) 
     
    231249                }, 
    232250                "RSS Ad - Resolve permalink" : function(f) { 
    233                         if ((PREFILTER & 32) < 1) return; 
     251                        if ((PREFILTER & 1 << 5) < 1) return; 
    234252                        var item; 
    235253                        for (var i = 0; item = f.items[i++];) 
     
    243261                }, 
    244262                "TinyURL - Resolve" : function(f) { 
    245                         if ((PREFILTER & 64) < 1) return; 
     263                        if ((PREFILTER & 1 << 6) < 1) return; 
    246264 
    247265                        foreach(f.items, function(i) { 
     
    251269                }, 
    252270                "Flickr - Prefetch thumbnails" : function(f) { // http://userscripts.org/scripts/show/14809 
    253                         if ((PREFILTER & 1) < 1 || 
     271                        if ((PREFILTER & 1 << 0) < 1 || 
    254272                            ! /^http:\/\/(?:api|www)\.flickr\.com\//.test(f.channel.feedlink)) return; 
    255273 
     
    260278                }, 
    261279                "4U - Prefetch thumbnails" : function(f) { 
    262                         if ((PREFILTER & 2) < 1 || 
     280                        if ((PREFILTER & 1 << 1) < 1 || 
    263281                            f.channel.feedlink != "http://4u.straightline.jp/rss") return; 
    264282 
     
    269287                }, 
    270288                "Prefetch Images from secure sites" : function(f) { 
    271                         if ((PREFILTER & 4) < 1) return; 
     289                        if ((PREFILTER & 1 << 2) < 1) return; 
    272290                        var link = f.channel.link; 
    273291                        if (link.indexOf("http://ffffound.com/") != 0 &&