Advertisement
Guest User

DatFromHtml20170421

a guest
Apr 23rd, 2017
986
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function GetVersion()
  2. {
  3.     return '.net用スクリプト20170421';
  4. }
  5.  
  6. function BeforeRequest(request_uri, cache_count) {
  7.     var match = request_uri.match(/^(https?:\/\/[^\/]+)\/([^\/]+)\/dat\/(\d+)\.dat$/);
  8.     var html_uri = match[1] + '/test/read.cgi/' + match[2] + '/' + match[3] + '/';
  9.     if (cache_count > 0) {
  10.         html_uri += cache_count + '-';
  11.     }
  12.     use_byte_range = false;
  13.     return html_uri;
  14. }
  15.  
  16. function AfterRequest() {
  17.     return JSON.stringify({
  18.         func: [
  19.             {   pattern: '<div class="topmenu">',
  20.                 DispatchPattern: 'DispatchPatternV6'
  21.             },
  22.             {   pattern: '<ul class="topmenu">',
  23.                 DispatchPattern: 'DispatchPatternPink'
  24.             },
  25.             {   pattern: '<div class="topmenu centered">',
  26.                 DispatchPattern: 'DispatchPatternV7'
  27.             }
  28.         ]
  29.     });
  30. }
  31.  
  32. function DispatchPattern() {
  33.     return JSON.stringify(
  34.         {
  35.             title: {    pattern: '<title>(.*?) ?</title>',
  36.                         extract: '$1\t'
  37.                 },
  38.             res: {      pattern: '<dt>(\\d+) :(?:<a href="mailto:([^"]*)">(.*?)</a>|<font color=green>(.*?)</font>):(.*?)<dd>(.*)<br><br>',
  39.                         extract: '$1<>$2<>$3$4<>$5<>$6'
  40.                 },
  41.             mail: [{    pattern: '',
  42.                         replace: ''
  43.                 }],
  44.             name: [{    pattern: '^<b>(.*)</b>$',
  45.                         replace: '$1'
  46.                 }],
  47.             date: [{    pattern: '<a href="javascript:be\\((\\d+)\\);">\\?([^<]+)</a>',
  48.                         replace: 'BE:$1-$2'
  49.                 }],
  50.             message: [{ pattern: '<a [^>]*>(https?://[^<]*)</a>',
  51.                         replace: '$1'
  52.                     },{ pattern: '(<br> )(?=<br>)',
  53.                         replace: '$1 '
  54.                     },{ pattern: '<img src="http(://[^"]+)">',
  55.                         replace: 'sssp$1'
  56.                     }],
  57.             drop: {     pattern: 'このスレッドは過去ログ倉庫に格納されています'
  58.                 }
  59.         }
  60.     );
  61. }
  62.  
  63. function DispatchPatternV6() {
  64.     return JSON.stringify(
  65.         {
  66.             title: {    pattern: '<title>(.*?)\\n</title>',
  67.                         extract: '$1\t'
  68.                 },
  69.             res: {      pattern: '<div class="post"[^>]*><div class="number">(?!0)(\\d+) : </div><div class="name"><b>(?:<a href="mailto:([^"]*)">)?(.*?)(?:</a>)?</b></div><div class="date">(.*?)</div><div class="message">(.*?)</div></div>',
  70.                         extract: '$1<>$2<>$3<>$4<>$5'
  71.                 },
  72.             mail: [{    pattern: '',
  73.                         replace: ''
  74.                 }],
  75.             name: [{    pattern: '',
  76.                         replace: ''
  77.                 }],
  78.             date: [{    pattern: '</div><div class="be [^"]+"><a href="http://be\\.2ch\\.net/user/(\\d+)"[^>]*>\\?([^<]+)</a>',
  79.                         replace: ' BE:$1-$2'
  80.                 }],
  81.             message: [{ pattern: '<a [^>]*>(https?://[^<]*)</a>',
  82.                         replace: '$1'
  83.                     },{ pattern: '(<br> )(?=<br>)',
  84.                         replace: '$1 '
  85.                     },{ pattern: '<img src="(//[^"]+)">',
  86.                         replace: 'sssp:$1'
  87.                     }],
  88.             drop: {     pattern: 'このスレッドは過去ログ倉庫に格納されています'
  89.                 }
  90.         }
  91.     );
  92. }
  93.  
  94. function DispatchPatternPink() {
  95.     return JSON.stringify(
  96.         {
  97.             title: {    pattern: '<title>(.*?)\\n</title>',
  98.                         extract: '$1'
  99.                 },
  100.             res: {      pattern: '<dl class="post"[^>]*><dt class=""><span class="number">(?!0)(\\d+) : </span><span class="name"><b>(?:<a href="mailto:([^"]*)">(.*?)</a>|<font color="green">(.*?)</font>)</b></span><span class="date">(.*?)</(?:span|div)></dt><dd class="thread_in">(.*?)</dd></dl>',
  101.                         extract: '$1<>$2<>$3$4<>$5<>$6'
  102.                 },
  103.             mail: [{    pattern: '',
  104.                         replace: ''
  105.                 }],
  106.             name: [{    pattern: '',
  107.                         replace: ''
  108.                 }],
  109.             date: [{    pattern: '</span><div class="be [^"]+"><a href="https://be\\.2ch\\.net/user/(\\d+)"[^>]*>\\?([^<]+)</a>',
  110.                         replace: ' BE:$1-$2'
  111.                 }],
  112.             message: [{ pattern: '<a [^>]*>(https?://[^<]*)</a>',
  113.                         replace: '$1'
  114.                     },{ pattern: '(<br> )(?=<br>)',
  115.                         replace: '$1 '
  116.                     },{ pattern: '<img src="http(://[^"]+)">',
  117.                         replace: 'sssp$1'
  118.                     }],
  119.             drop: {     pattern: 'このスレッドは過去ログ倉庫に格納されています'
  120.                 }
  121.         }
  122.     );
  123. }
  124.  
  125. function DispatchPatternV7() {
  126.     return JSON.stringify(
  127.         {
  128.             title: {    pattern: '<title>(.*?)\\n</title>',
  129.                         extract: '$1\t'
  130.                 },
  131.             res: {      pattern: '<div class="post"[^>]*><div class="meta"><span class="number">0*(\\d+)</span><span class="name"><b>(?:<a href="mailto:([^"]*)">)?(.*?)(?:</a>)?</b></span><span class="date">(.*?)</span></div><div class="message"><span class="escaped">(.*?)</span></div></div>',
  132.                         extract: '$1<>$2<>$3<>$4<>$5'
  133.                 },
  134.             mail: [{    pattern: '',
  135.                         replace: ''
  136.                 }],
  137.             name: [{    pattern: '',
  138.                         replace: ''
  139.                 }],
  140.             date: [{    pattern: '</span><span class="be [^"]+"><a href="http://be\\.2ch\\.net/user/(\\d+)"[^>]*>\\?([^<]+)</a>',
  141.                         replace: ' BE:$1-$2'
  142.                 }],
  143.             message: [{ pattern: '<a [^>]*>(https?://[^<]*)</a>',
  144.                         replace: '$1'
  145.                     },{ pattern: '(<br> )(?=<br>)',
  146.                         replace: '$1 '
  147.                     },{ pattern: '<img src="(//[^"]+)">',
  148.                         replace: 'sssp:$1'
  149.                     }],
  150.             drop: {     pattern: 'このスレッドは過去ログ倉庫に格納されています'
  151.                 }
  152.         }
  153.     );
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement