Пример #1
0
    def main(self,wf):
        self.gateway = WowheadGateway(wf)
        
        search_result = self.gateway.search(self.args)

        sorted_result = sorted(search_result, key = lambda x: (x['type_id'], x['name']))
        
        self._show_result(sorted_result)
Пример #2
0
class Main(Base):
    def main(self,wf):
        self.gateway = WowheadGateway(wf)
        
        search_result = self.gateway.search(self.args)

        sorted_result = sorted(search_result, key = lambda x: (x['type_id'], x['name']))
        
        self._show_result(sorted_result)

    @show
    def _show_result(self, result):
        if not result:
            self.wf.add_item(
                'search ' + self.args + ' in wowhead.com',
                arg=self._generate_arg({
                    'name':self.args,
                    'type':None,
                    'id':None,
                }),
                valid=True)

        for item in result:
            if item['type'] == 'title':
                item['name'] = item['name'].replace('%s', '<name>')
            
            self.wf.add_item(
                item['name'],
                subtitle=self._generate_subtitle(item),
                modifier_subtitles={
                    'cmd':'Search ' + item['name'],
                    'shift':'Search ' + self.args},
                arg=self._generate_arg(item),
                autocomplete=item['name'],
                valid=True,
                icon=self.gateway.get_image_cache(item['image'], default_icon)
            )
    
    def _generate_subtitle(self, item):
        subtitle = ''
        if item['quality']:
            subtitle = item['quality'].capitalize() + " "
        subtitle += item['type_desc']
        return subtitle

    def _generate_arg(self, item):
        return self._generate_item_url(item) \
            + arg_separator + self._generate_search_url(item['name']) \
            + arg_separator + self._generate_search_url(self.args)
    def _generate_item_url(self, item):
        if item['type'] and item['id']:
            path = '%s=%s' %(item['type'], item['id'])
            query = ''
            return urlunsplit((scheme, netloc, path, query, fragment))
        else:
            return ''

    def _generate_search_url(self, query):
        _, param = self.gateway.generate_search_url(query, json=False)
        path = 'search'
        query = urlencode(param, doseq=True)
        return urlunsplit((scheme, netloc, path, query, fragment))