Beispiel #1
0
  def callback(self, handle, arg):
    """Standard callback function. Defines default commands to be used by typing them into chat."""

    host = arg.source()
    user = irclib.nm_to_n(host)
    args = arg.arguments()[0]
    chan = arg.target()
    
    for f****t in faggots:
        if re.search(f****t, host):
          return

    if "!help" in args:
      self.server.privmsg(user, self.help(user))

      """ Useless faggotry
    elif "!checkem" in args:
      output = checkem.checkem( user )

      if output:
        self.server.notice(user, output )

    elif "!tlnote" in args:
      tlnote._open()
      tlnote._create()

      note = tlnote.tlnote()

      if note:
        self.server.notice(chan, note)

      tlnote._close()

    elif ".tlnote" in args:

      arguments = args.split(" ")

      if len(arguments) < 2:
        return

      note = " ".join( arguments[1:] )

      tlnote._open()
      tlnote._create()

      tlnote.add( user, note )
      self.server.privmsg( user, "Added: {}".format( note ) )

      tlnote._close()
      """

    elif "!thread" in args:
      if chan == "#infinite-stratos":
        thread = "http://boards.4chan.org/a/res/%s" % self.thread
        self.server.notice(chan, "Current thread: %s" % thread)

    elif re.search("^(!eightball|!8ball)", args):       # To have the ^ wildcard working in regexp we need to strip args from ['] first.
      self.server.notice( user, eightball.eightball( user ) )

    elif re.search( "^!loli", args):

      #Open db and create if needed
      loli.open()
      loli.create()

      #Execute command and return output
      output = loli.loli( user )

      if output:
        self.server.notice(user, output )

      #Close db
      loli.save()

    elif re.search( "^!steal", args):

      arguments = args.split(" ")

      #Only wrote !steal
      if len( arguments ) < 2:
        return;

      target = arguments[1]

      logging.debug("%s is attempting to steal lolis from %s" % ( user, target ))

      if user == target:
        return

      #Little protection for gangrape
      if target == self.steal_lastperson:
        return

      self.steal_lastperson = target
      
      """
      if target in mods: #Because I can
        self.server.privmsg(chan, "NOPE.exe")
        return
      """

      #Open db
      loli.open()
      loli.create()

      #Execute command and return output
      output = loli.steal( user, target )

      if output:
        self.server.notice( "%s,%s" % (user, target), output )

      #Close db
      loli.save()

    elif re.search( "^!top5", args):
      print args
      print user

      loli.open()
      loli.create()

      data = loli.top5()
      
      print data

      if data:
        _i = 1

        for user in data:
          print user
          out = "%s. - %s with %s lolis" % ( _i, user[0], user[1], ) 
          print out
          self.server.privmsg(chan, out)
          _i += 1

      loli.save()

    elif re.search( "^!google", args ):

      arguments = args.split(" ")

      if len(arguments) < 2:
        return

      _query = arguments[1:]

      self.server.notice( user, google.search( user, " ".join( _query ) ) )

    elif re.search( "^!moon", args ):

      arguments = args.split(" ")

      if len(arguments) < 2:
        return

      text = " ".join( arguments[1:] )
      tl   = gtranslate._translate( text.decode('utf8') )

      self.server.notice( user, "%s, moon >> engrish :: %s" % ( user, tl.encode('utf8') ) )

    elif re.search("^!gelbooru", args):

      arguments = args.split(" ")

      if len(arguments) < 2:
        return

      _query = arguments[1:]

      self.server.notice( user, gelbooru.open( " ".join( _query ) ) )

    elif re.search( "^!timeleft", args ):
      if chan == "#infinite-stratos":
        self.server.privmsg(chan, timeleft.timeleft( user ))

    elif re.search("^POMF =3", args):

      #Stop spamming that shit
      if ( int(time.time()) - self.pomfdown ) > 5:
        self.server.privmsg(chan, "Wah!")

        self.pomfdown = int(time.time())

    elif re.search("^Wah!", args):

      #Stop spamming that shit
      if ( int(time.time()) - self.pomfdown ) > 5:
        self.server.privmsg(chan, "What are we gonna do on the bed?")

        self.pomfdown = int(time.time())

    elif re.search("^;_;", args):

      if ( int(time.time()) - self.baww ) > 5:
        self.server.privmsg(chan, ";_;")

        self.baww = int(time.time())

    elif re.search("UNTZ", args):

      if ( int(time.time()) - self.untz ) > 5:
        self.server.privmsg(chan, "UNTZ UNTZ UNTZ UTNZ UTNZ UNTZ")

        self.untz = int(time.time())

    # NOW I'VE LOST IT
    elif re.search("A NIGHT SKY FULL OF CRIES", args, re.IGNORECASE):
      self.server.privmsg(chan, "HEARTS FILLED WITH LIES")
    elif re.search("HEARTS FILLED WITH LIES", args, re.IGNORECASE):
      self.server.privmsg(chan, "THE CONTRACT, IS IT WORTH THE PRICE?")
    elif re.search("THE CONTRACT. IS IT WORTH THE PRICE.", args, re.IGNORECASE):
      self.server.privmsg(chan, "A SOUL PLEDGED TO THE DARKNESS")
    elif re.search("A SOUL PLEDGED TO THE DARKNESS", args, re.IGNORECASE):
      self.server.privmsg(chan, "NOW I'VE LOST IT")
    elif re.search("NOW I'VE LOST IT", args, re.IGNORECASE):
      self.server.privmsg(chan, "I KNOW I CAN KILL")
    elif re.search("I KNOW I CAN KILL", args, re.IGNORECASE):
      self.server.privmsg(chan, "THE TRUTH EXISTS BEYOND THE GATE")
    elif re.search("THE TRUTH (EXISTS|LIES|IS) BEYOND THE GATE", args, re.IGNORECASE):
      self.server.privmsg(chan, "*guitar riff*")

    elif re.search("(X|x|:|;|=)(P|D|\)|\(|\/|\\\)|((>|<|\*|O|o|\^)(\.*|_*|-*)(>|<|\*|O|o|\^))", args) and not self.gaia:

      if chan == "#madoka": #Derp
        return

      if not random.randint(0,4): #25%
        self.server.notice(user, "{}, gb2 >>>/gaia/".format(user))

    elif re.search("^!gsearch", args):
      arguments = args.split(" ")

      if len(arguments) < 2:
        return

      _query = arguments[1:]

      self.server.notice( user, str(gelboorus.search( " ".join( _query ) ) ) )

    else:
      mentioned = 0
      public    = self.public
      nickname  = self.server.nickname

      output = chat.parse( user, args, nickname, public )

      if output != None:
        self.server.privmsg( chan, output )

      return
print "recursively finding all to files"
for dir in toPaths:
    for folder, subs, fs in os.walk(dir):
        for file in fs:
            toFiles.append(getPath(folder, file))
print "we have " + str(len(toFiles)) + " to files"

print "recursively finding all from files"
for dir in fromPaths:
    for folder, subs, fs in os.walk(dir):
        for file in fs:
            fromFiles.append(getPath(folder, file))
print "we have " + str(len(fromFiles)) + " from files"

status = timeleft(len(fromFiles) + len(toFiles))

hashes = dict()
for file in toFiles:
    md5 = computeMd5(file)
    dupeFiles = hashes.get(md5)
    if dupeFiles == None:
        dupeFiles = []
        hashes[md5] = dupeFiles
    dupeFiles.append(file)
    status.complete_unit()
    stdout.write("\r" + status.pretty_string() + "               ")
    stdout.flush()


for file in fromFiles: