Pre Bot

By Gecko321 on Apr 06, 2012

This script accesses www.orlydb.com and pulls the newest Scene Releases and posts them on the channel.

After loading set a timer to call /pre every couple seconds so that it will check the website.

alias -l DoTime {
  if (!$1) { tokenize 32 $Ctime }
  else { Return $AscTime($1,hh:nn:ss tt) }
}

alias -l striphtml {
  IF ($1) {
    VAR %strip,%opt = <> $remove($1-,> <,><,$chr(9)) <>,%n = 2
    WHILE ($gettok($gettok(%opt,%n,62),1,60)) {
      %strip = %strip $ifmatch
      INC %n
    }
    RETURN %strip
  }
}

alias pre {
  if ($1) { %chan = $1 }
  if ($sock(pre)) { sockclose pre }
  sockopen pre www.orlydb.com 80
}

on *:sockopen:pre: {
  %PreOld = %PreNew
  if ($sockerr > 0) return
  sockwrite -n $sockname GET / HTTP/1.0
  sockwrite -n $sockname Host: www.orlydb.com $+ $crlf
  sockwrite -n $sockname $crlf
  %temp = 0
}

on *:sockread:pre:{
  if ($sockerr) { return }
  var %tvdata
  sockread %tvdata
  if ($striphtml(%tvdata) != $null) {

    if (%Temp < 4) {
      if ("info" isin %tvdata) { %file = $striphtml($mid(%tvdata,$calc($pos(%tvdata,>,2) + 1),$pos(%tvdata,</,1))) }
      if (%time && %section && %release && %temp = 3) {
        %PreNew = %time %section %release %file
        %temp = 5
      }
      if ("timestamp" isin %tvdata) { %time = $striphtml($mid(%tvdata,$calc($pos(%tvdata,>,1) + 1),$pos(%tvdata,</,1))) | inc %temp }
      if ("section" isin %tvdata) { %section = $striphtml($mid(%tvdata,$calc($pos(%tvdata,>,2) + 1),$pos(%tvdata,</,1))) | inc %temp }
      if ("release" isin %tvdata) { %release = $striphtml($mid(%tvdata,$calc($pos(%tvdata,>,1) + 1),$pos(%tvdata,</,1))) | inc %temp }
    }

    if (<a href="/toggleheader"> isin %tvdata) { 
      %Temp = 0 
      tokenize 32 %tvdata 
      %ServerTime = $2-3
      var %a = $calc(($Ctime(%ServerTime) - $Ctime) / 3600)
      var %b = $Round(%a,0)
      %TimeDif = $calc(%b * 3600)
      tokenize 32 %PreNew
      if (%PreNew != %PreOld) {
        $iif(%chan,msg %chan,echo -a) (PRE) $1 $dotime($Calc($Ctime($1-2) - %TimeDif))) ( $+ $3 $+ ) $mid($4,1,$Calc($pos($4,-,$pos($4,-,0))-1)) $iif($5,( $+ $5 $+ )) $replace($7,f,$chr(32) $+ File $+ $iif($remove($7,f) > 1,s)) ( $+ $mid($4,$calc($pos($4,-,$pos($4,-,0)) +1 )) $+ )
      }
      sockclose pre
      unset %time %section %release %file %ServerTime %temp2 %temp %chan
    }
  }
}

Comments

Sign in to comment.
JWOLFF   -  Aug 31, 2015

Since orlydb.com no longer is a viable source, I was trying to update this script to PreDB.me. I'm getting parsing errors that I hope someone can help with..

!pretest Mr. Robot returns this

[PreDB.mePreDB.me33 releasesCategoriesMoviesSDHDDiscsTVSDHDDiscsMusicAudioVideosDiscsGamesPCXboxPlaystationNintendoAppsWindowsLinux</a]
 14:05  @BoT             • [>MacMobileBookseBooksAudio BooksXXXVideosImagesDoxUnknownMr Robot11.7 daysTVHDMr.Robot.S01E09.DIRFIX.1080p.HDTV.x264-TASTETV11.7 daysTVHDMr..Robot.S01E09.1080p.HDTV.x264-TASTETV11.7 daysTVSDMr.Robot.S01E09.HDTV.x264-DEFiNE18.7 days</]
 14:05  @BoT             • [>MacMobileBookseBooksAudio BooksXXXVideosImagesDoxUnknownMr Robot11.7 daysTVHDMr.Robot.S01E09.DIRFIX.1080p.HDTV.x264-TASTETV11.7 daysTVHDMr..Robot.S01E09.1080p.HDTV.x264-TASTETV11.7 daysTVSDMr.Robot.S01E09.HDTV.x264-DEFiNE18.7 days</]
alias pre { 
  unset %pre.nn %pre.release %pre.type %pre.data 
  sockclose pre 
  set %prel 0 
  sockopen pre predb.me 80 
} 

on *:sockopen:pre:{ 
  if ($sockerr) { echo >> Error Connecting... | halt } 
  else { 
    sockwrite -n $sockname GET  %pre.q HTTP/1.1 
    sockwrite -n $sockname User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    sockwrite -n $sockname Host: predb.me 
    sockwrite -n $sockname $crlf 
  } 
} 
on *:sockread:pre:{ 
  if ($sockerr > 0) return 
  sockread %read 
  ;echo -a %read 
  if (class="data isin %read) { set %pre.data 1[ $+ ?14 $+ $striphtml(%read) $+ 1] } 
  if (class="tl-term isin %read) { set %pre.type 1[10 $+ $striphtml(%read) $+ 1] } 
  ;if (class="p-title isin %read) { set %pre.release 5 $+ $striphtml(%read) 
  msg %pre.chan %pre.type %pre.release %pre.data 
  inc %pre.nn 
} 
if (%pre.nn >= 5) { sockclose pre } 
} 

alias striphtml { 
  noop $regsub($1-,/(<(?:.+?)>)/g,$null,%string) 
  return %string 
} 

on *:text:!pretest*:#:{ 

  set %pre.chan $chan 
  unset %pre.q 
  set %pre.q /?search= $+ $replace($2-,$chr(32),+) 
  pre 
} 

on *:input:*:{ 
  if (.pre == $1) { 
    set %pre.chan $active 
    unset %pre.q 
    set %pre.q /?q= $+ $replace($2-,$chr(32),+) 
    pre 
  } 
}
 Respond  
JWOLFF   -  Aug 31, 2015

Since orlydb.com no longer is a viable source, I was trying to update this script to PreDB.me. I'm getting parsing errors that I hope someone can help with..

!pretest Mr. Robot returns this

[PreDB.mePreDB.me33 releasesCategoriesMoviesSDHDDiscsTVSDHDDiscsMusicAudioVideosDiscsGamesPCXboxPlaystationNintendoAppsWindowsLinux</a]
 14:05  @BoT             • [>MacMobileBookseBooksAudio BooksXXXVideosImagesDoxUnknownMr Robot11.7 daysTVHDMr.Robot.S01E09.DIRFIX.1080p.HDTV.x264-TASTETV11.7 daysTVHDMr..Robot.S01E09.1080p.HDTV.x264-TASTETV11.7 daysTVSDMr.Robot.S01E09.HDTV.x264-DEFiNE18.7 days</]
 14:05  @BoT             • [>MacMobileBookseBooksAudio BooksXXXVideosImagesDoxUnknownMr Robot11.7 daysTVHDMr.Robot.S01E09.DIRFIX.1080p.HDTV.x264-TASTETV11.7 daysTVHDMr..Robot.S01E09.1080p.HDTV.x264-TASTETV11.7 daysTVSDMr.Robot.S01E09.HDTV.x264-DEFiNE18.7 days</]
alias pre { 
  unset %pre.nn %pre.release %pre.type %pre.data 
  sockclose pre 
  set %prel 0 
  sockopen pre predb.me 80 
} 

on *:sockopen:pre:{ 
  if ($sockerr) { echo >> Error Connecting... | halt } 
  else { 
    sockwrite -n $sockname GET  %pre.q HTTP/1.1 
    sockwrite -n $sockname User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    sockwrite -n $sockname Host: predb.me 
    sockwrite -n $sockname $crlf 
  } 
} 
on *:sockread:pre:{ 
  if ($sockerr > 0) return 
  sockread %read 
  ;echo -a %read 
  if (class="data isin %read) { set %pre.data 1[ $+ ?14 $+ $striphtml(%read) $+ 1] } 
  if (class="tl-term isin %read) { set %pre.type 1[10 $+ $striphtml(%read) $+ 1] } 
  ;if (class="p-title isin %read) { set %pre.release 5 $+ $striphtml(%read) 
  msg %pre.chan %pre.type %pre.release %pre.data 
  inc %pre.nn 
} 
if (%pre.nn >= 5) { sockclose pre } 
} 

alias striphtml { 
  noop $regsub($1-,/(<(?:.+?)>)/g,$null,%string) 
  return %string 
} 

on *:text:!pretest*:#:{ 

  set %pre.chan $chan 
  unset %pre.q 
  set %pre.q /?search= $+ $replace($2-,$chr(32),+) 
  pre 
} 

on *:input:*:{ 
  if (.pre == $1) { 
    set %pre.chan $active 
    unset %pre.q 
    set %pre.q /?q= $+ $replace($2-,$chr(32),+) 
    pre 
  } 
}
 Respond  
Froggaard   -  Feb 22, 2014
on *:join:#pre: {
  .timerpre1 0 5 /pre
  .timerpre 0 5 /msg #Pre $pre
}
alias -l DoTime {
  if (!$1) { tokenize 32 $Ctime }
  else { Return $AscTime($1,hh:nn:ss tt) }
}

alias -l striphtml {
  IF ($1) {
    VAR %strip,%opt = <> $remove($1-,> <,><,$chr(9)) <>,%n = 2
    WHILE ($gettok($gettok(%opt,%n,62),1,60)) {
      %strip = %strip $ifmatch
      INC %n
    }
    RETURN %strip
  }
}

alias pre {
  if ($1) { %chan = $1 }
  if ($sock(pre)) { sockclose pre }
  sockopen pre www.orlydb.com 80
}

on *:sockopen:pre: {
  %PreOld = %PreNew
  if ($sockerr > 0) return
  sockwrite -n $sockname GET / HTTP/1.0
  sockwrite -n $sockname Host: www.orlydb.com $+ $crlf
  sockwrite -n $sockname $crlf
  %temp = 0
}

on *:sockread:pre:{
  if ($sockerr) { return }
  var %tvdata
  sockread %tvdata
  if ($striphtml(%tvdata) != $null) {

    if (%Temp < 4) {
      if ("info" isin %tvdata) { %file = $striphtml($mid(%tvdata,$calc($pos(%tvdata,>,2) + 1),$pos(%tvdata,</,1))) }
      if (%time && %section && %release && %temp = 3) {
        %PreNew = %time %section %release %file
        %temp = 5
      }
      if ("timestamp" isin %tvdata) { %time = $striphtml($mid(%tvdata,$calc($pos(%tvdata,>,1) + 1),$pos(%tvdata,</,1))) | inc %temp }
      if ("section" isin %tvdata) { %section = $striphtml($mid(%tvdata,$calc($pos(%tvdata,>,2) + 1),$pos(%tvdata,</,1))) | inc %temp }
      if ("release" isin %tvdata) { %release = $striphtml($mid(%tvdata,$calc($pos(%tvdata,>,1) + 1),$pos(%tvdata,</,1))) | inc %temp }
    }

    if (<a href="/toggleheader"> isin %tvdata) { 
      %Temp = 0 
      tokenize 32 %tvdata 
      %ServerTime = $2-3
      var %a = $calc(($Ctime(%ServerTime) - $Ctime) / 3600)
      var %b = $Round(%a,0)
      %TimeDif = $calc(%b * 0)
      tokenize 32 %PreNew
      if (%PreNew != %PreOld) {
        ;$iif(%chan,msg %chan,echo -a) (7PRE) (9 $+ $3 $+ ) $4-
        msg #Pre (7PRE) (9 $+ $3 $+ ) $4-
      }
      sockclose pre
      unset %time %section %release %file %ServerTime %temp2 %temp %chan
    }
  }
}
 Respond  
Froggaard   -  Jan 07, 2014

How to write to channel and not echo?
And, how to make a Timer script?

^^ Got it

 Respond  
ulquiorra4   -  Apr 07, 2012

thx :D

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.