Exemplo n.º 1
0
    def install_keylist(self, items, re_flag=False):
        d = {}
        for key, value in items:
            for k, v in KEYS.items():
                key = key.replace(k, v)
            b = self.r_key.search(key)
            if b:
                key = b.groups()[0]
                last_key = convert_key(b.groups()[1])
            else:
                last_key = (0, ord(key[-1]))


#                key = key[:-1]
            if re_flag:
                try:
                    r = re.compile(key)
                except:
                    error.info("key=%s, value=%s" % (key, value))
                    error.traceback()
                    continue
            else:
                r = key
            if d.has_key(last_key):
                d[last_key].append((r, self.gettext(value)))
            else:
                d[last_key] = [(r, self.gettext(value))]
        return d
Exemplo n.º 2
0
    def install_keylist(self, items, re_flag=False):
        d = {}
        for key, value in items:
            for k, v in KEYS.items():
                key = key.replace(k, v)
            b = self.r_key.search(key)
            if b:
                key = b.groups()[0]
                last_key = convert_key(b.groups()[1])
            else:
                last_key = (0, ord(key[-1]))
#                key = key[:-1]
            if re_flag:
                try:
                    r = re.compile(key)
                except:
                    error.info("key=%s, value=%s" % (key,value))
                    error.traceback()
                    continue
            else:
                r = key
            if d.has_key(last_key):
                d[last_key].append((r, self.gettext(value)))
            else:
                d[last_key] =[(r, self.gettext(value))]
        return d
Exemplo n.º 3
0
 def validate(self, name, kind, value):
     if kind == 'check':
         return bool(value)
     elif kind == 'num' or kind == 'int':
         try:
             value = int(value)
         except:
             error.traceback()
             error.info((name, kind, value))
             return getattr(self.default_pref, name)
     else:
         return value
Exemplo n.º 4
0
 def validate(self, name, kind, value):
     if kind == 'check':
         return bool(value)
     elif kind == 'num' or kind == 'int':
         try:
             value = int(value)
         except:
             error.traceback()
             error.info((name, kind, value))
             return getattr(self.default_pref, name)
     else:
         return value
Exemplo n.º 5
0
 def load_from_db(self, rssid):
     RssDb.init(Globals.rss_dbfile)
     from modules.Debug import error
     error.info('load_from_db'+str(rssid))
     self.data = []
     feed = RssDb.Feed.get(rssid)
     for i, data in enumerate(RssDb.Data.get_posts(feed.id)):
         self.data.append(([data.title, data.pubDate.strftime("%Y-%m-%d %H:%M:%S")], data.read))
         self.guids[i] = data.guid
     self.title = feed.title
     editctrl = Globals.mainframe.editctrl
     wx.CallAfter(editctrl.showPageTitle, self)
     wx.CallAfter(editctrl.showTitle, self)
Exemplo n.º 6
0
 def change_feed(self, item):
     data = self.sharewin.get_node(item)
     wx.CallAfter(self.sharewin.tree.SetItemImage, item, self.get_item_image_index(item))
     from modules.Debug import error
     error.info(data)
     if data:
         if data.get('type', '') == 'rss' and data.get('level', '') == 'feed':
             editctrl = self.sharewin.parent.mainframe.editctrl
             rssid = u"rss://" + str(data['data']['id'])
             for d in editctrl.getDocuments():
                 if d.isMe(rssid, 'rssview'):
                     wx.CallAfter(editctrl.switch, d)
                     wx.CallAfter(d.openfile, rssid)
             else:
                 wx.CallAfter(editctrl.new, rssid, documenttype='rssview')
Exemplo n.º 7
0
 def change_feed(self, item):
     data = self.sharewin.get_node(item)
     wx.CallAfter(self.sharewin.tree.SetItemImage, item,
                  self.get_item_image_index(item))
     from modules.Debug import error
     error.info(data)
     if data:
         if data.get('type', '') == 'rss' and data.get('level',
                                                       '') == 'feed':
             editctrl = self.sharewin.parent.mainframe.editctrl
             rssid = u"rss://" + str(data['data']['id'])
             for d in editctrl.getDocuments():
                 if d.isMe(rssid, 'rssview'):
                     wx.CallAfter(editctrl.switch, d)
                     wx.CallAfter(d.openfile, rssid)
             else:
                 wx.CallAfter(editctrl.new, rssid, documenttype='rssview')
Exemplo n.º 8
0
def read_todos(editor):
    lang = editor.languagename
    filename = editor.filename
    #set default pattern
    pl = todo_patten.get(lang, [])
    if not isinstance(pl, (list, tuple)):
        pl = [pl]
    #first check the config.ini
    ini = common.get_config_file_obj()
    if ini.todo_pattern.has_key(lang):
        pattern = ini.todo_pattern[lang]
        if isinstance(pattern, list):
            pl = []
            for i in pattern:
                try:
                    pl.append(re.compile(i))
                except:
                    error.traceback()
                    error.info('pattern=' + i)
        else:
            pl = []
            try:
                pl.append(re.compile(pattern))
            except:
                error.traceback()
                error.info('pattern=' + pattern)
    data = []
    if pl:
        buf = StringIO.StringIO(editor.GetText())
        for i, line in enumerate(buf):
            for r in pl:
                b = r.search(line)
                if b:
                    date = ''
                    result = filter(None, b.groups())
                    if not result:
                        message = ''
                        important = ''
                    else:
                        message = result[0].rstrip()
                        important = ''
                        for n in range(len(message)-1, -1, -1):
                            if message[n] == '!':
                                important += '!'
                            else:
                                break
                        if n > 0:
                            message = message[:n+1]
                        else:
                            message = ''
                        #find duedate
                        m = r_duedate.search(message)
                        if m:
                            message = message[:m.start()] + message[m.end():]
                            date = m.group(1)
                    data.append((important, i+1, date, message, filename))
    def _cmp(x, y):
        if x[1] > y[1]:
            return -1
        elif x[1] < y[1]:
            return 1
        else:
            return cmp(x[2], y[2])
        
    data.sort(_cmp)
    return data
Exemplo n.º 9
0
def read_todos(editor):
    lang = editor.languagename
    filename = editor.filename
    #set default pattern
    pl = todo_patten.get(lang, [])
    if not isinstance(pl, (list, tuple)):
        pl = [pl]
    #first check the config.ini
    ini = common.get_config_file_obj()
    if ini.todo_pattern.has_key(lang):
        pattern = ini.todo_pattern[lang]
        if isinstance(pattern, list):
            pl = []
            for i in pattern:
                try:
                    pl.append(re.compile(i))
                except:
                    error.traceback()
                    error.info('pattern=' + i)
        else:
            pl = []
            try:
                pl.append(re.compile(pattern))
            except:
                error.traceback()
                error.info('pattern=' + pattern)
    data = []
    if pl:
        buf = StringIO.StringIO(editor.GetText())
        for i, line in enumerate(buf):
            for r in pl:
                b = r.search(line)
                if b:
                    date = ''
                    result = filter(None, b.groups())
                    if not result:
                        message = ''
                        important = ''
                    else:
                        message = result[0].rstrip()
                        important = ''
                        for n in range(len(message) - 1, -1, -1):
                            if message[n] == '!':
                                important += '!'
                            else:
                                break
                        if n > 0:
                            message = message[:n + 1]
                        else:
                            message = ''
                        #find duedate
                        m = r_duedate.search(message)
                        if m:
                            message = message[:m.start()] + message[m.end():]
                            date = m.group(1)
                    data.append((important, i + 1, date, message, filename))

    def _cmp(x, y):
        if x[1] > y[1]:
            return -1
        elif x[1] < y[1]:
            return 1
        else:
            return cmp(x[2], y[2])

    data.sort(_cmp)
    return data