Changeset 31 for sitemap-plugin/trunk


Ignore:
Timestamp:
04/06/07 13:14:12 (5 years ago)
Author:
christian
Message:
  • Fixed base url error by adding a configurable option
  • Finished option handling UI
  • Improved readme and installation instructions
  • Downgraded embedded trac environment to sqlite2
  • Improved eclipse setup
Location:
sitemap-plugin/trunk
Files:
2 added
13 edited

Legend:

Unmodified
Added
Removed
  • sitemap-plugin/trunk/.pydevproject

    r30 r31  
    88</pydev_pathproperty> 
    99<pydev_pathproperty name="org.python.pydev.PROJECT_EXTERNAL_SOURCE_PATH"> 
    10 <path/> 
     10<path>/Users/christian/xxx/trac-0.10.3.1</path> 
    1111</pydev_pathproperty> 
    1212</pydev_project> 
  • sitemap-plugin/trunk/.settings/org.eclipse.ltk.core.refactoring.prefs

    r30 r31  
    1 #Mon Feb 19 21:45:00 CET 2007 
     1#Fri Mar 30 14:45:57 CEST 2007 
    22eclipse.preferences.version=1 
    3 org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false 
     3org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=true 
  • sitemap-plugin/trunk/.settings/org.eclipse.wst.validation.prefs

    r30 r31  
    1 #Sat Feb 24 08:15:12 CET 2007 
    2 DELEGATES_PREFERENCE=delegateValidatorListorg.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator\=org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator\=org.eclipse.wst.wsdl.validation.internal.eclipse.Validator; 
    3 USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.html.internal.validation.HTMLValidator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator; 
    4 USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.html.internal.validation.HTMLValidator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator; 
     1#Fri Mar 30 14:45:57 CEST 2007 
     2DELEGATES_PREFERENCE=delegateValidatorListorg.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator\=org.eclipse.wst.wsdl.validation.internal.eclipse.Validator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator\=org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator; 
     3USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.html.internal.validation.HTMLValidator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator; 
     4USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.html.internal.validation.HTMLValidator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator; 
    55USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationtrueversion1.1.3.v200702021430 
    66eclipse.preferences.version=1 
  • sitemap-plugin/trunk/env/README

    r30 r31  
    11This directory contains a Trac environment. 
    22Visit http://trac.edgewall.org/ for more information. 
    3  
    4 Admin username: 
    5  
    6 u:admin 
    7 p:admin 
  • sitemap-plugin/trunk/env/conf/trac.ini

    r30 r31  
    7070 
    7171[sitemap] 
    72 base_url =  
    73 confirmationpage = asdcf 
     72base_url = http://localhost:8080 
     73confirmationpage = googleeb3689b3689b3689.html 
     74# ticket_autoupdate = <set in global trac.ini> 
     75ticket_priority = 0.4 
     76wiki_autoupdate = True 
    7477wiki_exclude_default = false 
     78wiki_frequency = never 
     79wiki_priority = 0.7 
    7580 
    7681[ticket] 
  • sitemap-plugin/trunk/src

    • Property svn:ignore set to
      sitemap.egg-info
  • sitemap-plugin/trunk/src/setup.py

    r30 r31  
    1010        author_email = 'christian@wilde-welt.de', 
    1111        url = 'http://voidblog.de/wiki/GoogleSitemap', 
    12         description = 'Various sitemap generators', 
     12        description = 'Dynamic sitemap generation for the Google sitemap service', 
    1313        license='BSD', 
    1414        packages = ['sitemap'], 
  • sitemap-plugin/trunk/src/sitemap/__init__.py

    r30 r31  
    11import api 
    22import wiki 
    3 import ticket 
     3# import ticket 
    44try: 
    55    from admin_ui import * 
  • sitemap-plugin/trunk/src/sitemap/api.py

    r30 r31  
    154154    def send_ping(self): 
    155155        """Ping Google sitemaps to indicate that an updated sitemap is available""" 
    156         href = Href(self.env.abs_href) 
     156        href = self.base_url + '/sitemap.xml' 
    157157        url = 'http://www.google.com/webmasters/sitemaps/ping?' + \ 
    158158              urlencode({'sitemap' : href}) 
    159159        self.env.log.info('Sending ping to Google: %s ' % url) 
    160         urllib2.urlopen(url) 
     160        # urllib2.urlopen(url) 
     161 
     162 
     163class RessourceFactory: 
     164   """Convenience base class for content implementations, eg. wiki or ticket data converters""" 
     165    
     166   def set_option(self, req, name, default=''): 
     167      tmp = default 
     168      if name in req.args: 
     169         tmp = req.args[name] 
    161170          
     171      if self.env.config.get('sitemap', name) != tmp: 
     172         self.env.config.set('sitemap', name, tmp) 
     173             
     174   def set_bool_option(self, req, name, default=None): 
     175      tmp = default 
     176      self.env.log.debug(req.args) 
     177      if name in req.args: 
     178         tmp = req.args[name] == '1' 
     179         self.env.log.debug('Value of ' + name + ' is ' + req.args[name]) 
     180          
     181      if self.env.config.getbool('sitemap', name) != tmp: 
     182         self.env.config.set('sitemap', name, tmp) 
     183             
  • sitemap-plugin/trunk/src/sitemap/templates/sitemap_admin.cs

    r30 r31  
    22<h2>Google Sitemap&trade; settings</h2> 
    33  <div class="field"> 
    4    <label>Google page name:<br /> 
    5     <input size="30" type="text" name="confirmationpage" value="<?cs var:sitemap.confirmationpage ?>" /> e.g. <em>googleeb3689b3689b3689.html</em> 
     4   <label>Google page name: <em>e.g. googleeb3689b3689b3689.html</em><br /> 
     5    <input size="30" type="text" name="confirmationpage" value="<?cs var:sitemap.confirmationpage ?>" /> 
    66   </label> 
    77  </div> 
    88  <div class="field"> 
    9    <label>Base url:<br /> 
     9   <label>Base url: <em>will be extended with /sitemap.xml</em><br /> 
    1010    <input size="60" type="text" name="base_url" value="<?cs var:sitemap.base_url ?>" style="width:100%" /> 
    1111   </label> 
     
    3030                <?cs each:item = sitemap.data ?> 
    3131                <tr> 
    32                         <td align="center"><input type="checkbox" name="handle_<?cs name:item ?>" value="1" <?cs 
    33                         if:item.handle ?> checked="checked" <?cs /if ?> /></td> 
     32                        <td align="center"><input type="checkbox" name="<?cs name:item ?>_autoupdate" value="1" <?cs 
     33                        if:item.autoupdate == 1 ?> checked="checked" <?cs /if ?> /></td> 
    3434                        <td><strong><?cs var:item.title ?></strong></td> 
    3535                        <td><select name="<?cs name:item ?>_priority"> 
  • sitemap-plugin/trunk/src/sitemap/ticket.py

    r30 r31  
    1 from api import SitemapController 
     1from api import * 
    22from trac.config import BoolOption 
    33import datetime 
     
    55from trac.core import Component 
    66from trac.core import implements 
     7from trac.ticket.api import ITicketChangeListener 
     8from trac.ticket.model import Ticket 
    79from trac.web.href import Href 
    8 from trac.wiki.model import WikiPage 
    9 from trac.wiki.api import WikiSystem 
    1010from api import ISitemapContributor 
    1111from api import RessourceData 
    1212 
    13 class TicketData(Component): 
     13class TicketData(Component, RessourceFactory): 
    1414     
    15     implements(ISitemapContributor) 
     15    implements(ISitemapContributor, ITicketChangeListener) 
    1616 
    1717    auto_update = BoolOption('sitemap', 'ticket_autoupdate', 'True', 
     
    2222       """Default change frequency for tickets""") 
    2323     
     24    def _check_update(self): 
     25        if self.auto_update == True: 
     26            s = SitemapController(self.env) 
     27            s.send_ping() 
     28 
    2429    #ISitemapContributor methods 
    2530    def get_name(self): 
     
    3338        """ 
    3439        return { 
     40            'autoupdate' : self.auto_update, 
    3541            'priority' : self.priority, 
    3642            'frequency' : self.frequency 
     
    3945    def set_configuration(self, req): 
    4046        """Update config to new values""" 
     47        self.set_bool_option(req, 'ticket_autoupdate') 
     48        self.set_option(req, 'ticket_priority') 
     49        self.set_option(req, 'ticket_frequency') 
    4150         
    4251     
     
    4655        wiki = WikiSystem(self.env) 
    4756        d = [] 
    48         href = Href(self.env.base_url) 
    49         for pagename in wiki.get_pages(): 
    50             page = WikiPage(self.env, pagename) 
    51              
    52             version, post_time, author, comment, ipnr = page.get_history().next() #@UnusedVariable 
    53             if self.exclude_default: 
    54                 if author == 'trac': 
    55                     continue 
    56             entry_time = datetime.datetime.utcfromtimestamp(post_time) 
    57             d.append(RessourceData( 
    58                                   href.wiki(pagename), 
    59                                   entry_time.strftime("%Y-%m-%dT%H:%M:%SZ"), 
    60                                   self.frequency, 
    61                                   self.priority 
    62                                   )) 
    6357        return d 
    6458         
     59     #ITicketChangeListener methods 
     60    def ticket_created(ticket): 
     61        """Called when a ticket is created.""" 
     62        self._check_update() 
     63 
     64    def ticket_changed(ticket, comment, author, old_values): 
     65        """Called when a ticket is modified. 
     66         
     67        `old_values` is a dictionary containing the previous values of the 
     68        fields that have changed. 
     69        """ 
     70        self._check_update() 
     71 
     72    def ticket_deleted(ticket): 
     73        """Called when a ticket is deleted.""" 
     74        self._check_update() 
     75 
     76      
  • sitemap-plugin/trunk/src/sitemap/wiki.py

    r30 r31  
    1 from api import SitemapController 
     1from api import * 
    22from trac.wiki.api import IWikiChangeListener 
    33from trac.config import BoolOption 
     
    1212from api import RessourceData 
    1313 
    14 class WikiData(Component): 
     14class WikiData(Component, RessourceFactory): 
    1515     
    1616    implements(ISitemapContributor, IWikiChangeListener) 
     
    4141        """ 
    4242        return { 
     43            'autoupdate' : self.auto_update, 
    4344            'priority' : self.priority, 
    44             'frequency' : self.frequency 
     45            'frequency' : self.frequency, 
     46            'exclude_default' : self.exclude_default 
    4547        } 
    4648         
    4749    def set_configuration(self, req): 
    4850        """Update config to new values""" 
    49          
     51        self.set_bool_option(req, 'wiki_autoupdate') 
     52        self.set_option(req, 'wiki_priority') 
     53        self.set_option(req, 'wiki_frequency') 
    5054     
    5155    def get_data(self, req): 
Note: See TracChangeset for help on using the changeset viewer.