adzapper To Do list
-------------------

general
-------

-  use adzapper-latest.tgz and adzapper-latest-installer.tgz links
      instead of adzapper-0.3.0.tgz links, for example... :-)
      to keep links stable on freshmeat, etc.!

adzapper program
----------------
-  investigate why medusa's resolver doesn't work on win9x
      winsock error??

-  adzapper should set netscape & IE proxy settings automatically
      Netscape: prefs.js and liprefs.js
      IE:       registry entry, under HKEY_CURRENT_USER/Software/Microsoft/Windows/Current Version/Internet Settings/ ProxyEnable 01 00 00 00  and ProxyServer 127.0.0.1:51966

-  automatic checking of remote zaplet repositories
     for updates of new zaplets
     simple text file using name/mtime pairs
         (how to do verisioning of this file??)
     refactor zaplet_engine to use 2 zaplet directories only - cache and site_zaplets
     need tools to manage remote repository:
         script to make modtimes (done)
         script to copy zaplets to repository
         run out of crontab 1x per day

-  save zaplets to remote repository
     save zaplet using XML-RPC! use XML-RPC cgi-bin script
     save zaplet in XML format
     queue zaplets for removal by local program run out of cron
     validate locally

-  squid compatibility 
     thru squid redirector
     allows transparent proxying
     need ability to fetch filtered files-

-  minimal GUI for windows
     wxWindows...? or win32api??
     use pythonw.exe (run without console)


-  use new version of Medusa
     update license to Python license

-  better packaging script
      use Builder.py on Linux also- clearly!!

-  use CDATA sections in filters
      in literal and regex parts of zaplets
      write code to escape CDATA close tag ]]>

-  content filtering
     HTML filtering of hyperlinks, specifically
     remove any hyperlink that containst a matching block statement

-  go to one zaplet cache file??
     maybe.
     instead of many little files- easier to deal with, faster startup
     make this file a dump of in-memory zaplet cache

-  read local resolv.conf if available

-  regenerate default adzapper.conf file if missing
     in adzapper_engine, initialize all default config values

-  blocked ad list
     (like Guidescope)

-  move to sourceforge

-  use PNG instead of GIF file format for replacement graphics

-  activate/deactivate individiual zaplets (in UI)

-  investigate Connection Keep-Alive: bug
     Mozilla + jabber.org
     HTTP/1.1 compatibility...??

-  better GUI 
     Python Server Pages clone - this will help modularize UI code
     HTML widgets - this will save a lot of coding!
     PNG buttons!
     frameless interface...? use cookies or URL to maintain state?

-  convert documentation to SGML

-  anonymize Referer: header (like Squid)

-  header filtering
     for example, Content-encoding: GZIP

-  cookie filters
     perhaps use Alfajor code?
     settings: reject all cookies
               reject cookies not sent by same site as page
               reject cookies sent in certain content-types
               reject exploit cookies (starting with '...')

-  plugin architecture
     better stream filter architecture
     filters for different MIME types

-  apache-style debug flags

-  gif, png, or jpeg image manipulation
     for compositing and cutting out segments of gifs

-  correct problems in platform_dependent.py
     use MS-approved methods for determining DNS servers
     (LAN-attached or dialup)

-  use database for zaplets 
     instead of all in-memory architecture


Website
-------
-  web page for automatic submission of zaplets
     provision for multiple people to maintain the same zaplets
     administrator interface built in to GUI

-  searchable archive of zaplets

-  Python HOWTO on making cross platform applications
     put entire source tree on web