Looks basically good.

One note, though:  This is going to grab the blacklist page on a
per-wiki basis, rather than being global.  You'll want to specific a
wiki id in there to grab from the hub (primary) wiki.

-p

On Thu, Jul 15, 2010 at 5:03 PM, Sean Robinson <seankrobin...@gmail.com> wrote:
> On Sat, Jul 10, 2010 at 4:01 PM, Ryan Tucker <rtuc...@gmail.com> wrote:
>>
>> On Sat, Jul 10, 2010 at 5:06 PM, Sean Robinson <seankrobin...@gmail.com>
>> wrote:
>> >   After looking at blacklist.py (but not running it), it appears that
>> > the list of restricted URLs are hard coded into the source file.  Is anyone
>> > interested in making this use a wiki page for the list of URLs?
>>
>> If someone's looking for inspiration on how to retrieve the list from
>> a wiki page, the spell-checking code does this.  There's probably some
>> good room for code reuse (or modularization!) there, for sure.  -rt
>>
>
>   The following is an attempt at a new blacklist.py.  I am seeking comments
> and criticism to see if I understood what I was reading in the spell check
> code and whether I am using PageEditor correctly, etc.  This is an early
> draft of non-working code, but I would appreciate feedback about my
> approach.
>
> # -*- coding: utf-8 -*-
> # blacklist against wiki spammers
>
> # WikiSpot admins can add a URL to 'Global Blacklist Page' to disallow an
> # edit which contains that URL.
>
> import re, types
> from Sycamore import config
> from Sycamore.PageEditor import PageEditor
> from Sycamore.request import RequestDummy
> from Sycamore.security import Permissions
>
> # get the global blacklist page contents
> request = RequestDummy()
> blacklist_page = PageEditor(config.global_blacklist_page, request)
> if blacklist_page:
>     blacklist = blacklist_page.get_raw_body()
>     self.blacklist_re = "|".join(map(lambda s: "%s" % s.strip(),
> blacklist.strip().split("\n")))
>     self.blacklist_re = re.compile(self.blacklist_re)
>
> class SecurityPolicy(Permissions):
>     def save(self, editor, newtext, datestamp, **kw):
>         match = blacklist_re.search(newtext)
>         if match:
>             print "blacklist match: %s" % match.group()
>         return match == None
>
>
> --
> Sean Robinson
> WiFi Radar - http://wifi-radar.berlios.de
> Python WiFi - http://pythonwifi.wikispot.org
>
>
> _______________________________________________
> Sycamore-Dev mailing list
> sycamore-...@wikispot.org
> http://www.projectsycamore.org/
> https://tools.cernio.com/pipermail/sycamore-dev/
> https://tools.cernio.com/mailman/listinfo/sycamore-dev
>
>

_______________________________________________
Sycamore-Dev mailing list
sycamore-...@wikispot.org
http://www.projectsycamore.org/
https://tools.cernio.com/pipermail/sycamore-dev/
https://tools.cernio.com/mailman/listinfo/sycamore-dev

Reply via email to