Changeset 92:c307d90395db

Show
Ignore:
Timestamp:
05/28/07 15:49:13 (17 months ago)
Author:
Tarek Ziad?? <tarek@…>
Message:

overall fix

Files:
4 added
11 modified

Legend:

Unmodified
Added
Removed
  • RuPy/examples/test_division.py

    r81 r92  
    55 
    66     def test_one(self): 
    7          self.assertEquals(division(4, 2) , 3) 
     7         self.assertEquals(division(4, 2) , 2) 
    88 
    99     def test_two(self): 
  • RuPy/slides.txt

    r81 r92  
    515515==================== 
    516516 
    517 XXX 
     517- punctuation signs to underline sections 
     518- text enhancements 
     519 
     520  - ``*emphasis*`` 
     521  - ``**strong emphasis**`` 
     522  - ```interpreted text``` 
     523  - ````inline literal text```` 
     524 
     525reST syntax overview 
     526==================== 
     527 
     528- bullet list: use +, * or - 
     529- enumerated list: use n. (1., 2., etc.) or #. (automatic) 
    518530 
    519531Part 2 
  • atomisator/doc/filters.txt

    r87 r92  
    3939 
    4040    >>> from filters import levenshtein 
    41     >>> all = entries.select_entries() 
     41    >>> all = entries 
    4242 
    4343Text 2 should be blocked because a similar entry is in:: 
  • atomisator/doc/outputs.txt

    r91 r92  
    1616 
    1717    >>> from outputs import write_output 
    18     >>> write_output('rss', entries) 
     18    >>> print write_output('rss', entries) 
     19    <?xml version="1.0" encoding="utf-8"?> 
     20    ... 
    1921 
    2022 
    21  
  • atomisator/entries.py

    r85 r92  
    2424""" 
    2525from datetime import datetime 
     26from time import strftime 
    2627from sqlalchemy import * 
     28from sqlalchemy.exceptions import * 
    2729 
    2830_connector = None 
     31TIME_FMT = '%Y-%m-%d %H:%M:%S' 
    2932 
    3033class Entries(object): 
     
    3235    def __init__(self, sqluri): 
    3336        self._mapper = self._getEntriesMapper(sqluri) 
    34         self._mapper.create() 
     37        try: 
     38            self._mapper.create() 
     39        except SQLError: 
     40            pass # already there 
    3541 
    3642    def getConnector(self): 
     
    5056                     Column('creation_date', DateTime)) 
    5157 
    52     def insert_entry(self, url, title, content, date=datetime.now(), 
    53                      creation_date=datetime.now()): 
     58    def insert_entry(self, url, title, content, date=strftime(TIME_FMT), 
     59                     creation_date=strftime(TIME_FMT)): 
    5460        """inserts entry""" 
    5561        inserter = self._mapper.insert() 
    5662        inserter.execute(url=url, title=title, content=content, date=date, 
    5763                         creation_date=creation_date) 
     64 
     65    def insert_entries(self, entries): 
     66        """insert entries""" 
     67        for entry in entries: 
     68            if 'url' in entry: 
     69                url = entry['url'] 
     70            else: 
     71                url = entry['link'] 
     72 
     73            if 'creation_date' not in entry: 
     74                entry['creation_date'] = strftime(TIME_FMT) 
     75 
     76            content = entry['content'] 
     77 
     78            entry_date = entry['date'] 
     79            if isinstance(entry_date, basestring): 
     80                try: 
     81                    entry_date = datetime.strptime(entry_date, 
     82                                                   '%Y-%m-%dT%H:%M:%S+00:00') 
     83                    strftime(TIME_FMT, entry_date.timetuple()) 
     84                except ValueError: 
     85                    pass 
     86 
     87            self.insert_entry(url, entry['title'], content, 
     88                              entry_date, entry['creation_date']) 
     89 
    5890 
    5991    def select_entries(self, *args): 
  • atomisator/filters/__init__.py

    r88 r92  
     1from filtering import run_filters 
     2 
    13from levenshtein import levenshtein 
    24 
  • atomisator/filters/levenshtein.py

    r88 r92  
    3232    """ 
    3333    content = entry['content'] 
    34     for stored_entry in entries: 
     34    for stored_entry in entries.select_entries(): 
    3535        if ratio(content, stored_entry.content) > 0.7: 
    3636            return False 
  • atomisator/outputs/outputing.py

    r91 r92  
    3131def write_output(type_, entries): 
    3232    """Returns entries from all sources""" 
    33     _outputs[type_](entries) 
     33    return _outputs[type_](entries) 
    3434 
  • atomisator/outputs/rss.py

    r91 r92  
    6767 
    6868    for item in entries: 
    69         if 'link' in item: 
     69        if 'link' in item.keys(): 
    7070            url = escape(item['link']) 
     71        elif 'url' in item.keys(): 
     72            url = escape(item['url']) 
    7173        else: 
    7274            url = 'no link' 
    7375 
    7476        header_text += RSS_ITEM_LI % {'item_id': url} 
    75         if 'modified_parsed' in item: 
     77        if 'modified_parsed' in item.keys(): 
    7678            item_time = item['modified_parsed'] 
    7779        else: 
     
    9496                    summary = summary[:i] 
    9597                summary += '...' 
     98        elif 'description' in item.keys(): 
     99            summary = item['description'] 
     100        elif 'content' in item.keys(): 
     101            summary = item['content'] 
    96102        else: 
    97103            summary = '?' 
    98104 
    99         if 'title' in item: 
     105        if 'title' in item.keys(): 
    100106            title = item['title'] 
    101107        else: 
  • atomisator/sources/__init__.py

    r89 r92  
     1from sourcing import get_entries 
    12 
    23import rss 
  • atomisator/sources/rss.py

    r89 r92  
    3131    for entry in entries: 
    3232        if 'content' not in entry: 
    33             entry['content'] = entry['summary'] 
     33            if 'summary' in entry: 
     34                entry['content'] = entry['summary'] 
     35            elif 'title_detail' in entry: 
     36                entry['content'] = entry['title_detail']['value'] 
     37            else: 
     38                entry['content'] = u'' 
     39 
     40        content = entry['content'] 
     41 
     42        # better parsiong to be done here 
     43        if isinstance(content, list): 
     44            content = content[0] 
     45 
     46        if not isinstance(content, basestring): 
     47            if isinstance(content, dict) and 'value' in content: 
     48                entry['content'] = content['value'] 
     49            else: 
     50                entry['content'] = u'' 
     51 
    3452    return entries 
    3553