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
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
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
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)
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')
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
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