Esempio n. 1
0
 def show_list(self, image_prefix):
     self.templates_names = []
     self.sitecon = mw.get_connect(self.password)
     templates = self.sitecon.allpages(prefix=image_prefix, namespace=TEMPLATE_NAMESPACE)  # images list by prefix
     for template in templates:
         self.templates_names.append(template.page_title)
     sublime.set_timeout(lambda: sublime.active_window().show_quick_panel(self.templates_names, self.on_done), 1)
Esempio n. 2
0
 def show_list(self, image_prefix):
     if len(image_prefix) >= self.image_prefix_min_lenght:
         sitecon = mw.get_connect(self.password)
         images = sitecon.allpages(prefix=image_prefix, namespace=IMAGE_NAMESPACE)  # images list by prefix
         # self.images_names = map(self.get_page_title, images)
         self.images_names = [self.get_page_title(x) for x in images]
         sublime.set_timeout(lambda: sublime.active_window().show_quick_panel(self.images_names, self.on_done), 1)
     else:
         sublime.message_dialog('Image prefix length must be more than %s. Operation canceled.' % self.image_prefix_min_lenght)
Esempio n. 3
0
 def on_done(self, file_descr=''):
     sitecon = mw.get_connect(self.password)
     if file_descr:
         self.file_descr = file_descr
     else:
         self.file_descr = '%s as %s' % (basename(self.file_path), self.file_destname)
     try:
         with open(self.file_path, 'rb') as f:
             sitecon.upload(f, self.file_destname, self.file_descr)
         sublime.status_message('File %s successfully uploaded to wiki as %s' % (self.file_path, self.file_destname))
     except IOError as e:
         sublime.message_dialog('Upload io error: %s' % e)
     except Exception as e:
         sublime.message_dialog('Upload error: %s' % e)
Esempio n. 4
0
    def run(self, edit, title, password):
        sitecon = mw.get_connect(password)
        # selection = self.view.sel()
        # search_pre = self.view.substr(selection[0]).strip()
        selected_text = self.view.substr(self.view.sel()[0]).strip()
        title = selected_text if selected_text else title
        self.mw_get_page_langlinks(sitecon, title)

        self.lang_prefixes = []
        for lang_prefix in self.links.keys():
            self.lang_prefixes.append(lang_prefix)

        self.links_names = ['%s: %s' % (lp, self.links[lp]) for lp in self.lang_prefixes]
        if self.links_names:
            sublime.active_window().show_quick_panel(self.links_names, self.on_done)
        else:
            sublime.status_message('Unable to find laguage links for "%s"' % title)
Esempio n. 5
0
 def run(self, edit, title, password):
     is_skip_summary = mw.get_setting('mediawiker_skip_summary', False)
     sitecon = mw.get_connect(password)
     self.title = mw.get_title()
     if self.title:
         self.page = sitecon.Pages[self.title]
         if self.page.can('edit'):
             self.current_text = self.view.substr(sublime.Region(0, self.view.size()))
             if not is_skip_summary:
                 # summary_message = 'Changes summary (%s):' % mw.get_setting('mediawiki_site_active')
                 summary_message = 'Changes summary (%s):' % mw.get_view_site()
                 self.view.window().show_input_panel(summary_message, '', self.on_done, None, None)
             else:
                 self.on_done('')
         else:
             sublime.status_message('You have not rights to edit this page')
     else:
         sublime.status_message('Can\'t publish page with empty title')
         return
Esempio n. 6
0
    def run(self, edit, title, password):
        is_writable = False
        sitecon = mw.get_connect(password)
        is_writable, text = mw.get_page_text(sitecon, title)
        self.view.set_syntax_file('Packages/Mediawiker/Mediawiki.tmLanguage')
        self.view.settings().set('mediawiker_is_here', True)
        self.view.settings().set('mediawiker_wiki_instead_editor', mw.get_setting('mediawiker_wiki_instead_editor'))
        self.view.set_name(title)

        if is_writable:
            if not text:
                sublime.status_message('Wiki page %s is not exists. You can create new..' % (title))
                text = '<!-- New wiki page: Remove this with text of the new page -->'
            # insert text
            self.view.erase(edit, sublime.Region(0, self.view.size()))
            self.view.run_command('mediawiker_insert_text', {'position': 0, 'text': text})
        sublime.status_message('Page %s was opened successfully from %s.' % (title, mw.get_view_site()))
        self.view.set_scratch(True)
        # own is_changed flag instead of is_dirty for possib. to reset..
        self.view.settings().set('is_changed', False)
Esempio n. 7
0
    def on_query_completions(self, view, prefix, locations):
        if view.settings().get('mediawiker_is_here', False):
            view = sublime.active_window().active_view()

            # internal links completions
            cursor_position = view.sel()[0].begin()
            line_region = view.line(view.sel()[0])
            line_before_position = view.substr(sublime.Region(line_region.a, cursor_position))
            internal_link = ''
            if line_before_position.rfind('[[') > line_before_position.rfind(']]'):
                internal_link = line_before_position[line_before_position.rfind('[[') + 2:]

            completions = []
            if internal_link:
                word_cursor_min_len = mw.get_setting('mediawiker_page_prefix_min_length', 3)
                if len(internal_link) >= word_cursor_min_len:
                    namespaces = [ns.strip() for ns in mw.get_setting('mediawiker_search_namespaces').split(',')]
                    sitecon = mw.get_connect()
                    pages = []
                    for ns in namespaces:
                        pages = sitecon.allpages(prefix=internal_link, namespace=ns)
                        for p in pages:
                            print(p.name)
                            # name - full page name with namespace
                            # page_title - title of the page wo namespace
                            # For (Main) namespace, shows [page_title (Main)], makes [[page_title]]
                            # For other namespace, shows [page_title namespace], makes [[name|page_title]]
                            if int(ns):
                                ns_name = p.name.split(':')[0]
                                page_insert = '%s|%s' % (p.name, p.page_title)
                            else:
                                ns_name = '(Main)'
                                page_insert = p.page_title
                            page_show = '%s\t%s' % (p.page_title, ns_name)
                            completions.append((page_show, page_insert))

            return completions
Esempio n. 8
0
 def do_search(self, string_value):
     sitecon = mw.get_connect(self.password)
     namespace = mw.get_setting('mediawiker_search_namespaces')
     return sitecon.search(search=string_value, what='text', limit=self.search_limit, namespace=namespace)
Esempio n. 9
0
 def get_list_data(self, category_root):
     ''' get objects list by category name '''
     sitecon = mw.get_connect(self.password)
     return sitecon.Categories[category_root]
Esempio n. 10
0
 def run(self, edit, title, password):
     self.sitecon = mw.get_connect(password)
     self.category_root = mw.get_category(mw.get_setting('mediawiker_category_root'))[1]
     sublime.active_window().show_input_panel('Wiki root category:', self.category_root, self.get_category_menu, None, None)