Changeset 10 in feed2telegram


Ignore:
Timestamp:
10/17/17 00:40:50 (7 years ago)
Author:
cheese
Message:

#1 handling exception: etag or modified is/are missed

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/feed2telegram.py

    r9 r10  
    6868        return self.request(api)
    6969
     70class Datetime:
     71    def __init__(self):
     72        self.datetime = None
     73
     74    def setRfc2822(self, value):
     75        parsed = email.utils.parsedate(value)
     76        self.datetime = datetime.datetime(*parsed[:6])
     77        return self
     78
     79    def toTimestamp(self):
     80        timetuple = self.datetime.timetuple()
     81        return time.mktime(timetuple)
     82
    7083class Feed:
    7184    def __init__(self, url):
     
    107120
    108121    def get(self):
    109         self.feed = feedparser.parse(self.url, etag=self.etag, modified=self.modified)
    110 
    111         self.etag = self.feed.etag
    112         self.modified = self.feed.modified
     122        self.feed = feedparser.parse(self.url)# , etag=self.etag, modified=self.modified)
     123
     124        try:
     125            self.etag = self.feed.etag
     126        except:
     127            self.etag = None
     128
     129        try:
     130            self.modified = self.feed.modified
     131        except:
     132            convert = lambda rfc2822: Datetime().setRfc2822(rfc2822).toTimestamp()
     133            mtimes = [convert(entry.published) for entry in self.feed.entries]
     134
     135            if len(mtimes) > 0:
     136                self.modified = self.feed.entries[mtimes.index(max(mtimes))].published
    113137
    114138        return self.feed
    115 
    116 class Datetime:
    117     def __init__(self):
    118         self.datetime = None
    119 
    120     def setRfc2822(self, value):
    121         parsed = email.utils.parsedate(value)
    122         self.datetime = datetime.datetime(*parsed[:6])
    123         return self
    124 
    125     def toTimestamp(self):
    126         timetuple = self.datetime.timetuple()
    127         return time.mktime(timetuple)
    128139
    129140class Feed2Telegram:
     
    135146                 callback_get_entries=lambda entries: entries,
    136147                 check_interval=60*60,
    137                  new_entries_only=False,
     148                 new_entries_only=True,
    138149                 send_error=True,
    139150                 continue_on_error=False,
  • trunk/implements/hikarinoakariost_feeder.py

    r9 r10  
    99              token,
    1010              chat_id,
    11               lambda entry  : entry['link'],
     11              lambda entry: entry['link'],
    1212              callback_get_entries=lambda entries: reversed(entries),
    13               new_entries_only=True,
    1413              continue_on_error=True,
    1514             ).start()
Note: See TracChangeset for help on using the changeset viewer.