Don't like ads? PRO users don't see any ads ;-)
Guest

adblock2polipo.py

By: a guest on Jun 21st, 2012  |  syntax: Python  |  size: 1.16 KB  |  hits: 42  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/usr/bin/python
  2.  
  3. # convert adblock ruleset into polipo-forbidden format
  4.  
  5. if __name__ == "__main__":
  6.  
  7.         import os
  8.         import sys
  9.         import re
  10.  
  11.         if len(sys.argv) == 1:
  12.                 sys.exit("Usage: %s <adblockrules>" % os.path.basename(sys.argv[0]))
  13.  
  14.         if not os.path.exists(sys.argv[1]):
  15.                 sys.exit("The rules file (%s) doesn't exist" % sys.argv[1])
  16.  
  17.         fhandle = file(sys.argv[1])
  18.         lines = fhandle.readlines()
  19.         fhandle.close()
  20.  
  21.         dollar_re = re.compile("(.*?)\$.*")
  22.  
  23.         for line in lines:
  24.                 if line:
  25.                         if (line[0] in ("[", "!", "~", "#", "@") or
  26.                             line.startswith("/adverti") or
  27.                             "##" in line):
  28.                                 continue
  29.                         line = dollar_re.sub(r"\1", line)
  30. #                       line = line.replace("|http://", "")
  31.                         line = line.replace("|", "")
  32.                         line = line.replace("||", "")
  33.                         line = line.replace(".", r"\.")
  34.                         line = line.replace("*", ".*")
  35.                         line = line.replace("?", r"\?")
  36.                         line = line.replace("^", r"[\/:\.=&\?\+\-\ ]+")
  37. #                       line = line.replace("&", r"\&")
  38.                         line = line.replace("+", r"\+")
  39. #                       line = line.replace("-", r"\-")
  40. #                       line = line.replace(";", r"\;")
  41. #                       line = line.replace("=", r"\=")
  42. #                       line = line.replace("/", r"\/")
  43.                         print(line.strip())
  44.         print("")