Esempio n. 1
0
    def show_unread(self, rssid):
        t = Template()
        t.load(os.path.join(Globals.workpath, 'plugins/rssreader/unread_message.py'), 'python')

        RssDb.init(Globals.rss_dbfile)

        feed = RssDb.Feed.get(rssid)
        data = RssDb.Data.select(RssDb.and_(RssDb.Data.c.feed_id==rssid, RssDb.Data.c.read==False), order_by=[RssDb.desc(RssDb.Data.c.pubDate)])
        x = dict4ini.DictIni()
        x.html.chanel_title = feed.title
        x.html.chanel_url = feed.link
        x.html.chanel_image_url = feed.imagelink
        x.html.newsletter = []
        for i in data:
            v = dict4ini.DictIni()
            v.title = i.title
            v.link = i.link
            v.description = i.description
            v.date = i.pubDate.strftime("%Y-%m-%d %H:%M:%S")
            v.comments = i.comments
            v.comments_gif = ('file:///' + os.path.join(Globals.workpath, 'plugins/rssreader/comments.png').replace(':', '|')).replace('\\', '/')
            x.html.newsletter.append(v)

        text = t.value('html', x.dict(), encoding='utf-8')
        filename = os.path.join(tempfile.gettempdir(), 'rssreader.html')
        file(filename, 'w').write(text)

        self.publisher.sendMessage('change_html', filename)
Esempio n. 2
0
def get_newest_ini():
    global _ini
    if _fmtime and _ini:
        if _fmtime < os.path.getmtime(_ini_filename):
            _ini = dict4ini.DictIni(_ini_filename)
    else:
        _ini = dict4ini.DictIni(_ini_filename)
    return _ini
def call_lexer(win, oldfilename, filename, language):
    i = get_inputassistant_obj(win)
    #    i.install_acp(win, win.languagename)

    files = []
    objs = i.get_acp(win.languagename)
    if objs:
        files = [obj.filename for obj in objs]

    b = glob.glob(os.path.join(Globals.workpath, '*.acp')) + glob.glob(
        os.path.join(Globals.confpath, '*.acp'))
    afiles = set(b)
    afiles.difference_update(files)
    afiles = list(afiles)
    afiles.sort()

    prjfile = common.getProjectFile(filename)
    ini = dict4ini.DictIni(prjfile)
    ext = os.path.splitext(filename)[1]

    acps = ini.acp[ext]
    if acps:
        if isinstance(acps, str):
            acps = [acps]

        for f in acps:
            for acpf in afiles:
                if os.path.basename(acpf) == f:
                    win.custom_assistant.append(i.get_assistant(acpf))

    i.install_acp(win, win.languagename)
Esempio n. 4
0
def OnSearchJumpDef(win, event):
    global _mlist

    word = getword(win)
    from modules import ctags

    flag = False
    prjfile = common.getProjectFile(win.document.getFilename())
    if prjfile:
        path = os.path.dirname(prjfile)
        ini = dict4ini.DictIni(prjfile)
        s = []
        for c in ini.ctags.values():
            c = os.path.join(path, c)
            p = os.path.dirname(c)
            try:
                s.extend(ctags.get_def(c, word, p))
            except:
                error.traceback()
        if len(s) == 1:
            d, f, m = s[0]
            win.editctrl.new(f)
            flag = jump_to_file(win, d, f, m)
        elif len(s) > 1:
            text = []
            _mlist = {}
            for i, v in enumerate(s):
                d, f, m = v
                key = str(i + 1) + '|' + d + '|' + os.path.basename(f)
                text.append(key)
                _mlist[key] = (d, f, m)
            win.document.UserListShow(2, " ".join(text))
            flag = True
    if not flag:
        win.document.callplugin('on_jump_definition', win.document, word)
Esempio n. 5
0
def get_global_ignore():
    v = GLOBAL_IGNORES
    if wx.Platform == '__WXMSW__':
        from modules import winreg
        try:
            _key = winreg.Key(winreg.HKCU,
                              r'Software\Tigris.org\Subversion\Config')
            if 'miscellany' not in _key:
                key = _key.add('miscellany')
            else:
                key = _key['miscellany']
        except:
            common.warn(
                tr("Maybe your subversion doesn't be installed or installed uncorrectly."
                   ))
            raise
        if 'global-ignores' in key.values:
            v = key.values['global-ignores'].getvalue()

    else:
        path = os.path.join(common.getHomeDir(), '.subversion')
        if os.path.exists(path):
            config = os.path.join(path, 'config')
            servers = os.path.join(path, 'servers')
            if os.path.exists(config) and os.path.exists(servers):
                ini = dict4ini.DictIni(config, normal=True)
                v = ini.miscellany.get('global-ignores', GLOBAL_IGNORES)
    return v
Esempio n. 6
0
    def load(self):
        if self.stxfile and os.path.exists(self.stxfile):
            from modules import dict4ini
            ini = dict4ini.DictIni(self.stxfile)

            #load keywords
            self.keywords = ini.keywords.get('keywords', self.keywords)

            #load file extensions
            self.wildchar = ini.common.get('extension', self.wildchar)

            #load preview code
            self.preview_code = ini.common.get('previewcode', '')
            if self.preview_code:
                self.preview_code = self.preview_code.replace(r'\n', '\n')

            for name, item in self._syntaxitems.items():
                stylestring = ini.styleitems.get(name, '')
                if stylestring:
                    item.style.setStyleString(stylestring)

        if not self.keywords:
            self.keywords = self.loadDefaultKeywords()

        if not self.preview_code:
            self.preview_code = self.loadPreviewCode()
Esempio n. 7
0
 def get_assistant(self, filename):
     obj = assistant_objs.get(filename, None)
     if obj:
         if os.path.getmtime(obj.filename) > obj.ftime:
             del assistant_objs[filename]
             return self.get_assistant(filename)
         else:
             return assistant_objs[filename]
     else:
         obj = DUMY_CLASS()
         obj.ini = dict4ini.DictIni(filename,
                                    encoding='utf-8',
                                    onelevel=True)
         obj.filename = filename
         obj.ftime = os.path.getmtime(filename)
         #autostring is used to replace
         obj.autostring = self.install_keylist(
             obj.ini.ordereditems(obj.ini.autostring, ['autostring']),
             False)
         #autostring_append is used to append
         obj.autostring_append = self.install_keylist(
             obj.ini.ordereditems(obj.ini.autostring_append,
                                  ['autostring_append']), False)
         #autore is used to replace
         obj.autore = self.install_keylist(
             obj.ini.ordereditems(obj.ini.autore, ['autore']), True)
         #autore_replace is used to append
         obj.autore_append = self.install_keylist(
             obj.ini.ordereditems(obj.ini.autore_append, ['autore_append']),
             True)
         obj.projectname = obj.ini.default.get('projectname', '')
         assistant_objs[filename] = obj
         return obj
def call_lexer(win, oldfilename, filename, language):

    #    if oldfilename == filename and filename:
    #        return
    lexer_obj = None
    flag = False
    for lexer in win.mainframe.lexers.lexobjs:
        prjfile = common.getProjectFile(filename)
        ini = dict4ini.DictIni(prjfile)
        ext = os.path.splitext(filename)[1]
        lexname = ini.highlight[ext]

        if lexname and lexname == lexer.name:  #find acp option
            if not hasattr(win, 'lexer') or lexname != win.lexer.name:
                lexer_obj = lexer
                flag = True
                break

        if not lexname and (language and language == lexer.name
                            or lexer.matchfile(filename)):
            if not hasattr(win, 'lexer') or lexer.name != win.lexer.name:
                lexer_obj = lexer
                flag = True
                break

    else:
        #        if filename:
        #            win.mainframe.lexers.getNamedLexer('text').colourize(win)
        #        else:
        if not hasattr(win, 'lexer'):
            lexer_obj = Globals.mainframe.lexers.getDefaultLexer()
            flag = True
    if flag:
        lexer_obj.colourize(win)
        wx.CallAfter(Globals.mainframe.editctrl.switch, win)
Esempio n. 9
0
def get_config_file_obj(*args, **kwargs):
#    global _config_ini
    
#    if not _config_ini:
    from modules import dict4ini
    _config_ini = dict4ini.DictIni(get_config_file(), *args, **kwargs)
        
    return _config_ini
Esempio n. 10
0
def getCurrentPathProjectName(filename):
    path = getCurrentPathProjectHome(filename)
    #found _project
    from modules import dict4ini
    ini = dict4ini.DictIni(os.path.join(os.path.join(path, '_project')))
    name = ini.default.get('projectname', [])
    if not isinstance(name, list):
        name = [name]
    return name
Esempio n. 11
0
    def _addNode(self, root, wizfile):
        from modules import dict4ini

        x = dict4ini.DictIni(wizfile, encoding='utf-8')
        obj = self.tree.AppendItem(root, x.options.name)
        self.items[self.ids] = x
        self.tree.SetPyData(obj, self.ids)
        self.ids += 1
        return obj
Esempio n. 12
0
    def OnSetProject(self, event=None):
        item = self.tree.GetSelection()
        from modules import dict4ini
        filename = self.get_node_filename(item)
        proj_file = os.path.join(filename, '_project')
        name = []
        if os.path.exists(proj_file):
            ini = dict4ini.DictIni(proj_file)
            name = ini.default.get('projectname', [])
        dialog = [
            ('multi', 'project_name', name, tr('Project Names'),
             self.project_names),
        ]
        from modules.EasyGuider import EasyDialog
        dlg = EasyDialog.EasyDialog(self.mainframe,
                                    title=tr("Project Setting"),
                                    elements=dialog)
        values = None
        if dlg.ShowModal() == wx.ID_OK:
            values = dlg.GetValue()
        dlg.Destroy()
        if values is not None:
            filename = self.get_node_filename(item)
            proj_file = os.path.join(filename, '_project')
            ini = dict4ini.DictIni(proj_file)
            ini.default.projectname = values['project_name']
            self.callplugin('remove_project', ini,
                            list(set(name) - set(values['project_name'])))
            self.callplugin('set_project', ini, values['project_name'])
            ini.save()

            old_project_name = name
            new_project_name = ini.default.projectname
            #add check project plugin call point
            path = filename
            project_names = common.getCurrentPathProjectName(path)
            self.callplugin(
                'project_end', self,
                list(set(old_project_name) - set(new_project_name)), path)
            self.callplugin(
                'project_begin', self,
                list(set(new_project_name) - set(old_project_name)), path)
Esempio n. 13
0
def show_modules_info(win):
    files = glob.glob(os.path.join(win.workpath, 'plugins/*/*.pin'))
    plugins = []
    for f in files:
        key = os.path.basename(os.path.dirname(f))
        x = dict4ini.DictIni(f)
        tr_color = '#CCFFFF'
        platform = x.info.get('platform', '')
        platform = platform.upper()
        p = {
            'name': key,
            'desc': x.info.get('description', ''),
            'homepage': x.info.get('homepage', ''),
            'author': x.info.get('author', ''),
            'date': x.info.get('date', ''),
            'platform': platform,
            'version': x.info.get('version', ''),
            'tr_color': tr_color
        }
        plugins.append(p)
        m = []
        for j, k in enumerate(x.modules.values()):
            i = x.get(k)
            if j % 2:
                t_color = '#FFFFFF'
            else:
                t_color = '#66FF00'
            m.append({
                'name': x[k].get('name', ''),
                'homepage': x[k].get('homepage', ''),
                'download': x[k].get('download', ''),
                'description': x[k].get('description', ''),
                'version': x[k].get('version', ''),
                't_color': t_color
            })
        p['modules'] = m

    from modules.meteor import Template

    template = Template()
    import T_modulesinfo
    template.load(T_modulesinfo, 'python')

    f = os.path.join(win.app.userpath, 'modulesinfo.html')
    try:
        fout = file(f, "w")
        fout.write(template.value('html', {'body': plugins}))
        fout.close()
        common.webopen(f)
    except:
        error.traceback()
        common.showerror(win, tr("Output modules information error!"))
Esempio n. 14
0
    def save(self):
        if self.stxfile:
            from modules import dict4ini
            ini = dict4ini.DictIni(self.stxfile)

            ini.common.extension = self.wildchar
            ini.keywords.keywords = self.keywords
            if self.preview_code:
                ini.common.previewcode = self.preview_code.replace('\n', r'\n')
            else:
                ini.common.previewcode = ''
            for name, item in self._syntaxitems.items():
                ini.styleitems[name] = item.style.getStyleString()
            ini.save()
Esempio n. 15
0
 def getdata(self, filename):
     s = []
     ini = dict4ini.DictIni(filename)
     for k, v in ini.default.items():
         _commands[k] = dict(
             zip(['target', 'caption', 'shortcut', 'impact', 'func'], v))
     for k, v in ini.commands.items():
         _commands[k] = dict(
             zip(['caption', 'commands', 'impact'],
                 [v[0], v[1].split('|'), v[2]]))
     for k, v in _commands.items():
         s.append((v['caption'], v['shortcut'], v['impact'], k))
         if v['impact']:
             self.impacts[v['impact']] = k
     return s
Esempio n. 16
0
 def getdata(self):
     s = self.plugins.keys()
     s.sort()
     for i, name in enumerate(s):
         ini = dict4ini.DictIni(self.plugins[name])
         description = ini.info.description or ''
         author = ini.info.author or ''
         version = ini.info.version or ''
         date = ini.info.date or ''
         yield ([
             unicode(name, 'utf-8'),
             unicode(description, 'utf-8'),
             unicode(author, 'utf-8'),
             unicode(version, 'utf-8'),
             unicode(date, 'utf-8')
         ], self.state[name])
Esempio n. 17
0
def OnDocbookEnclose(editor):
    #find the docbook.acp file
    docbookini = common.getConfigPathFile('docbook_xml.ini')
    from modules import dict4ini
    x = dict4ini.DictIni(docbookini)
    taglist = x.default.taglist
    taglist.sort()
    #popup a selection win
    if taglist:
        from modules.EasyGuider import EasyDialog
        dialog = [
            ('single', 'tagname', taglist[0], tr('Select a tag:'), taglist),
        ]
        dlg = EasyDialog.EasyDialog(editor,
                                    tr('Select a DocBook Element Name'),
                                    dialog)
        values = None
        if dlg.ShowModal() == wx.ID_OK:
            values = dlg.GetValue()
        dlg.Destroy()
        if values:
            tagname = values['tagname']
            text = editor.GetSelectedText()
            editor.BeginUndoAction()
            if text:
                editor.ReplaceSelection('')
            if x.tag_values.has_key(tagname):
                settext(editor, [x.tag_values[tagname]])
            else:
                editor.AddText('<%s>%s</%s>' % (tagname, text, tagname))
                pos = editor.GetCurrentPos() - len(values['tagname']) - 3
                editor.GotoPos(pos)
            editor.EndUndoAction()
    else:
        common.showerror(
            editor, tr("There are not tags defined in conf/docbook_xml.ini."))
Esempio n. 18
0
    def _save_info(self):
        v = self.sizer.GetValue()
        self.pref.svn_proxy_server = v['server']
        self.pref.svn_proxy_port = v['port']
        self.pref.svn_proxy_password = v['password']
        self.pref.svn_proxy_username = v['username']
        self.pref.svn_proxy_timeout = v['timeout']
        self.pref.save()

        if wx.Platform == '__WXMSW__':
            from modules import winreg
            try:
                _key = winreg.Key(winreg.HKCU,
                                  r'Software\Tigris.org\Subversion\Config')
                if 'miscellany' not in _key:
                    key = _key.add('miscellany')
                else:
                    key = _key['miscellany']
            except:
                common.warn(
                    tr("Maybe your subversion doesn't be installed or installed uncorrectly."
                       ))
                raise
            key.values.set('global-ignores', v['svn_global_ignores'])

            try:
                key = winreg.Key(
                    winreg.HKCU,
                    r'Software\Tigris.org\Subversion\Servers\global')
            except:
                common.warn(
                    tr("Maybe your subversion doesn't be installed or installed uncorrectly."
                       ))
                raise

            if v['proxy']:
                key.values.set('http-proxy-host', v['server'])
                key.values.set('http-proxy-port', str(v['port']))
                key.values.set('http-proxy-username', v['username'])
                key.values.set('http-proxy-password', v['password'])
                key.values.set('http-proxy-timeout', str(v['timeout']))
            else:
                for i in range(len(key.values) - 1, -1, -1):
                    key.values[i].delete()
        else:
            path = os.path.join(common.getHomeDir(), '.subversion')
            if os.path.exists(path):
                config = os.path.join(path, 'config')
                servers = os.path.join(path, 'servers')
                if os.path.exists(config) and os.path.exists(servers):
                    ini = dict4ini.DictIni(config, normal=True)
                    ini.miscellany['global-ignores'] = v['svn_global_ignores']
                    ini.save()
                    ini = dict4ini.DictIni(servers, normal=True)
                    if v['proxy']:
                        ini['global']['http-proxy-host'] = v['server']
                        ini['global']['http-proxy-port'] = v['port']
                        ini['global']['http-proxy-username'] = v['username']
                        ini['global']['http-proxy-password'] = v['password']
                        ini.save()
                    else:
                        ini['global'] = {}
                        ini.save()
            else:
                common.warn(
                    tr("Maybe your subversion doesn't be installed or installed uncorrectly."
                       ))
Esempio n. 19
0
    def _get_info(self):
        v = {}
        v['proxy'] = False
        v['server'] = self.pref.svn_proxy_server
        v['port'] = self.pref.svn_proxy_port
        v['password'] = self.pref.svn_proxy_password
        v['timeout'] = self.pref.svn_proxy_timeout
        v['username'] = self.pref.svn_proxy_username

        if wx.Platform == '__WXMSW__':
            from modules import winreg
            try:
                _key = winreg.Key(winreg.HKCU,
                                  r'Software\Tigris.org\Subversion\Config')
                if 'miscellany' not in _key:
                    key = _key.add('miscellany')
                else:
                    key = _key['miscellany']
            except:
                common.warn(
                    tr("Maybe your subversion doesn't be installed or installed uncorrectly."
                       ))
                raise
            if 'global-ignores' in key.values:
                v['svn_global_ignores'] = key.values[
                    'global-ignores'].getvalue()
            else:
                key.values.set('global-ignores', GLOBAL_IGNORES)
                v['svn_global_ignores'] = key.values[
                    'global-ignores'].getvalue()

            try:
                key = winreg.Key(
                    winreg.HKCU,
                    r'Software\Tigris.org\Subversion\Servers\global')
            except:
                common.warn(
                    tr("Maybe your subversion doesn't be installed or installed uncorrectly."
                       ))
                raise

            if 'http-proxy-host' in key.values:
                v['proxy'] = True
                self.pref.svn_proxy_server = v['server'] = key.values[
                    'http-proxy-host'].getvalue()
                self.pref.svn_proxy_port = v['port'] = int(
                    key.values['http-proxy-port'].getvalue())
                self.pref.svn_proxy_password = v['password'] = key.values[
                    'http-proxy-password'].getvalue()
                self.pref.svn_proxy_timeout = v['timeout'] = int(
                    key.values['http-proxy-timeout'].getvalue())
                self.pref.svn_proxy_username = v['username'] = key.values[
                    'http-proxy-username'].getvalue()
                self.pref.save()

        else:
            path = os.path.join(common.getHomeDir(), '.subversion')
            if os.path.exists(path):
                config = os.path.join(path, 'config')
                servers = os.path.join(path, 'servers')
                if os.path.exists(config) and os.path.exists(servers):
                    ini = dict4ini.DictIni(config, normal=True)
                    v['svn_global_ignores'] = ini.miscellany.get(
                        'global-ignores', GLOBAL_IGNORES)
                    ini = dict4ini.DictIni(servers, normal=True)
                    if ini['global']:
                        v['proxy'] = True
                        self.pref.svn_proxy_server = v['server'] = ini[
                            'global'].get('http-proxy-host', '')
                        self.pref.svn_proxy_port = v['port'] = int(
                            ini['global'].get('http-proxy-port', 0))
                        self.pref.svn_proxy_password = v['password'] = ini[
                            'global'].get('http-proxy-password', '')
                        self.pref.svn_proxy_username = v['username'] = ini[
                            'global'].get('http-proxy-username', '')
                        self.pref.save()

        return v