Example #1
0
def resource():
    try:
        res_id = int(alfred.argv(2))
        data = fetchSingleResource(res_id)
        filter_str = alfred.argv(3)
        files = data['files']
        if filter_str:
            filter_str = filter_str.upper()
            files = filter(lambda f: filter_str in f['format'], files)
        if not data:
            alfred.exitWithFeedback(title='没有找到相关的内容')
        feedback = alfred.Feedback()
        feedback.addItem(
            title       = data['title'],
            subtitle    = '{} 个文件,可使用文件类型过滤,选择此项打开资源页面'.format(len(files)),
            arg         = 'open-url {}'.format( b64encode(getResourcePageURLByID(data['id'])) ),
            icon        = alfred.storage.getLocalIfExists(data['img'], True)
        )
        for f in files:
            f['has_emule'] = '有' if f['emule'] else '无'
            f['has_magnet'] = '有' if f['magnet'] else '无'
            subtitle = '类型: {format} 容量: {filesize} 电驴: {has_emule} 磁力链: {has_magnet}'.format(**f)
            feedback.addItem(
                title           = f['filename'],
                subtitle        = subtitle,
                valid           = False,
                autocomplete    = 'file {},{}'.format(data['id'], f['id'])
            )
        feedback.addItem(item=_fb_return_top)
        feedback.output()
    except Exception, e:
        alfred.exitWithFeedback(item=_fb_no_found_and_return_top)
Example #2
0
    def search(self):
        # 搜索字符窜
        query = []
        argv_pos = 2
        while True:
            arg = alfred.argv(argv_pos)
            if not arg:
                break
            query.append(arg)
            argv_pos += 1
        query = ' '.join(query)

        if not query:
            alfred.exitWithFeedback(title='Search Apps in AppShopper')
        params = {'search': query, 'platform': 'all', 'device': 'all'}
        # 搜索类型 ios mac
        cmd = alfred.argv(1).lower()
        if cmd.endswith('-ios'):
            params.update(platform='ios')
        elif cmd.endswith('-mac'):
            params.update(platform='mac')
        elif cmd.endswith('-iphone'):
            params.update(platform='ios', device='iphone')
        elif cmd.endswith('-ipad'):
            params.update(platform='ios', device='ipad')
        query_str = '?{}'.format(urllib.urlencode(params))
        url = self.getUrl('search', query_str)
        success, data = self.fetchDataFromePage(url, False)
        return self.outputFeedback(success, data)
Example #3
0
    def search(self):
        # 搜索字符窜
        query = []
        argv_pos = 2
        while True:
            arg = alfred.argv(argv_pos)
            if not arg:
                break
            query.append(arg)
            argv_pos += 1
        query = ' '.join(query)

        if not query:
            alfred.exitWithFeedback(
                title = 'Search Apps in AppShopper'
                )
        params = {
            'search'    : query,
            'platform'  : 'all',
            'device'    : 'all'
            }
        # 搜索类型 ios mac
        cmd = alfred.argv(1).lower()
        if cmd.endswith('-ios'):
            params.update(platform='ios')
        elif cmd.endswith('-mac'):
            params.update(platform='mac')
        elif cmd.endswith('-iphone'):
            params.update(platform='ios', device='iphone')
        elif cmd.endswith('-ipad'):
            params.update(platform='ios', device='ipad')
        query_str = '?{}'.format(urllib.urlencode(params))
        url = self.getUrl('search', query_str)
        success, data = self.fetchDataFromePage(url, False)
        return self.outputFeedback(success, data)
Example #4
0
    def showAllTasks(self):
        tasks = self.getTasks()
        if not tasks:
            alfred.exitWithFeedback(
                title="No Task Found",
                subtitle="if this message is wrong, please try again or clean cache(ds setting - Clean)",
            )
        tasks = self.filterTasks(tasks, alfred.argv(2), alfred.argv(3))
        feedback = alfred.Feedback()
        if not tasks:
            feedback.addItem(title="No Task Found.")
        count = 0
        for task in tasks:
            count += 1
            feedback.addItem(
                title="{}. {}".format(count, task["title"]),
                subtitle=task["desc"],
                autocomplete=" detail {}".format(task["id"]),
                valid=False,
            )

        # 暂停所有任务
        feedback.addItem(title="Pause All", arg="pause-all-tasks"),
        # 恢复所有任务
        feedback.addItem(title="Resume All", arg="resume-all-tasks"),
        # 删除所有任务 需确认
        feedback.addItem(title="Delete All", autocomplete=" delete-all", valid=False)
        # 删除所有错误的任务 需确认
        feedback.addItem(title="Remove Erroneous Tasks", autocomplete=" remove-erroneous-tasks", valid=False),
        # 清理所有已完成的任务
        feedback.addItem(title="Clear Completed Tasks", arg="clear-completed-tasks"),
        # 更多操作
        feedback.addItem(title="More Actions ...", autocomplete=" more-actions", valid=False)

        feedback.output()
Example #5
0
def setAccount():
    usr = alfred.argv(2)
    pwd = alfred.argv(3)
    if not usr or not pwd:
        alfred.exit('信息不完整。')
    alfred.config.set(usr=usr, pwd=pwd)
    if yyets.login():
        alfred.exit('账户信息已保存,并成功登陆。')
    alfred.exit('账户信息已保存,但尝试登陆失败。')
Example #6
0
def postRecord(to_save):
    com_code = alfred.argv(2)
    post_id = alfred.argv(3)
    if com_code is None or post_id is None:
        alfred.exit('出错了,参数错误。')
    if to_save:
        express.savePost(com_code, post_id)
    else:
        express.delPost(com_code, post_id)
    alfred.exit('运单 {} 已{}'.format(post_id, '保存' if to_save else '删除'))
Example #7
0
def postRecord(to_save):
    com_code = alfred.argv(2)
    post_id = alfred.argv(3)
    if com_code is None or post_id is None:
        alfred.exit('出错了,参数错误。')
    if to_save:
        express.savePost(com_code, post_id)
    else:
        express.delPost(com_code, post_id)
    alfred.exit('运单 {} 已{}'.format(post_id, '保存' if to_save else '删除'))
Example #8
0
    def showAllTasks(self):
        tasks = self.getTasks()
        if not tasks:
            alfred.exitWithFeedback(title='No Task Found', subtitle='if this message is wrong, please try again or clean cache(ds setting - Clean)')
        tasks = self.filterTasks(tasks, alfred.argv(2), alfred.argv(3))
        feedback = alfred.Feedback()  
        if not tasks:
            feedback.addItem(
                title   = 'No Task Found.'
                )
        count = 0
        for task in tasks:
            count += 1
            feedback.addItem(
                title           = '{}. {}'.format(count, task['title']),
                subtitle        = task['desc'],
                autocomplete    = ' detail {}'.format(task['id']),
                valid           = False
                )  

        # 暂停所有任务
        feedback.addItem(
            title   = 'Pause All',
            arg     = 'pause-all-tasks'
            ),
        # 恢复所有任务
        feedback.addItem(
            title   = 'Resume All',
            arg     = 'resume-all-tasks'
            ),
        # 删除所有任务 需确认
        feedback.addItem(
            title           = 'Delete All',
            autocomplete    = ' delete-all',
            valid           = False
            )
        # 删除所有错误的任务 需确认
        feedback.addItem(
            title           = 'Remove Erroneous Tasks',
            autocomplete    = ' remove-erroneous-tasks',
            valid           = False
            ),
        # 清理所有已完成的任务
        feedback.addItem(
            title   = 'Clear Completed Tasks',
            arg     = 'clear-completed-tasks'
            ),
        # 更多操作
        feedback.addItem(
            title           = 'More Actions ...',
            autocomplete    = ' more-actions',
            valid           = False
            )

        feedback.output()
Example #9
0
    def showAllTasks(self):
        tasks = self.getTasks()
        if not tasks:
            alfred.exitWithFeedback(title='No Task Found', subtitle='if this message is wrong, please try again or clean cache(ds setting - Clean)')
        tasks = self.filterTasks(tasks, alfred.argv(2), alfred.argv(3))
        feedback = alfred.Feedback()  
        if not tasks:
            feedback.addItem(
                title   = 'No Task Found.'
                )
        count = 0
        for task in tasks:
            count += 1
            feedback.addItem(
                title           = '{}. {}'.format(count, task['title']),
                subtitle        = task['desc'],
                autocomplete    = ' detail {}'.format(task['id']),
                valid           = False
                )  

        # 暂停所有任务
        feedback.addItem(
            title   = 'Pause All',
            arg     = 'pause-all-tasks'
            ),
        # 恢复所有任务
        feedback.addItem(
            title   = 'Resume All',
            arg     = 'resume-all-tasks'
            ),
        # 删除所有任务 需确认
        feedback.addItem(
            title           = 'Delete All',
            autocomplete    = ' delete-all',
            valid           = False
            )
        # 删除所有错误的任务 需确认
        feedback.addItem(
            title           = 'Remove Erroneous Tasks',
            autocomplete    = ' remove-erroneous-tasks',
            valid           = False
            ),
        # 清理所有已完成的任务
        feedback.addItem(
            title   = 'Clear Completed Tasks',
            arg     = 'clear-completed-tasks'
            ),
        # 更多操作
        feedback.addItem(
            title           = 'More Actions ...',
            autocomplete    = ' more-actions',
            valid           = False
            )

        feedback.output()
Example #10
0
def setAccount():
    usr = alfred.argv(2)
    pwd = alfred.argv(3)
    if not usr or not pwd:
        alfred.exit('信息不完整。')
    alfred.config.set(
        usr = usr,
        pwd = pwd
    )
    if yyets.login():
        alfred.exit('账户信息已保存,并成功登陆。')
    alfred.exit('账户信息已保存,但尝试登陆失败。')
Example #11
0
def setting():
    usr = alfred.argv(2)
    pwd = alfred.argv(3)
    info = ''
    if usr:
        info = '用户名: {} 密码: {}'.format(usr, pwd)
    elif alfred.config.get('usr'):
        info = '现有设置: 用户名: {} 密码: ********'.format(alfred.config.get('usr'))
    feedback = alfred.Feedback()
    feedback.addItem(title='{}用户名和密码'.format('修改' if isLogined() else '设置'),
                     subtitle='格式:用户名 密码 {}'.format(info),
                     arg='account-setting {} {}'.format(usr, pwd))
    feedback.output()
Example #12
0
def setting():
    usr = alfred.argv(2)
    pwd = alfred.argv(3)
    info = ''
    if usr:
        info = '用户名: {} 密码: {}'.format(usr, pwd)
    elif alfred.config.get('usr'):
        info = '现有设置: 用户名: {} 密码: ********'.format(alfred.config.get('usr'))
    feedback = alfred.Feedback()
    feedback.addItem(
        title       = '{}用户名和密码'.format('修改' if isLogined() else '设置'),
        subtitle    = '格式:用户名 密码 {}'.format(info),
        arg         = 'account-setting {} {}'.format(usr, pwd)
    )
    feedback.output()
Example #13
0
def query():
    arg1 = alfred.argv(1)
    arg2 = alfred.argv(2)
    post_id = arg2 if arg2 else arg1 
    com_codes = arg1 if arg2 else None
    # 如果只有快递单号 没有公司代码 先自动检测获得公司代码
    com_codes = [surmiseCompanyCode(com_codes)] if com_codes is not None else queryCompanyCodeByPostID(post_id)
    if not com_codes:
        alfred.exitWithFeedback(title='没有找到相关的快递信息')
    # 只有一个公司符合 直接给出结果
    if len(com_codes) == 1:
        showSingle(com_codes[0], post_id)
    # 如果有多个 则列出公司列表
    else:
        showRecommendCompany(com_codes, post_id)
Example #14
0
  def run(self):

    arg1 = alfred.argv(1) # version or page
    arg2 = alfred.argv(2) # Would be the page if using a version
    arg3 = alfred.argv(3) # Could be a property or method only

    ver = None
    page = ''
    search = None

    # Parse args to figure out which page this is.
    if not arg1:
      return self.showDefaultList()

    arg1 = arg1.lower()
    if arg1.replace(".","").isdigit():
      ver = arg1
      if arg2 is not None:
        page = arg2.lower()
      if arg3 is not None:
        search = arg3.lower()
    else:
      page = arg1
      if arg2 is not None:
        search = arg2.lower()

    # Make the URL for the all page, whether it is version specific or not.
    url = 'http://nodejs.org/'
    if ver is not None:
      url = url + 'docs/' + 'v0.' + ver + '/'
    url = url + "api/" + page + ".html"

    # Begin feedback loop
    feedback = alfred.Feedback()

    if not search:
      feedback.addItem(title='Table of Contents', subtitle=page + ' toc', arg=url + '#toc')
    
    success, data = self.getTocOfPage(url)
    
    if not success:
      alfred.exitWithFeedback(title=data)

    for item in data:
      if not search or (search is not None and item['name'].lower().find(search) > -1 ):
        feedback.addItem(title=item['name'], subtitle=item['subtitle'], arg= url + item['link'])

    feedback.output()
Example #15
0
 def setServerConfig(self):
     key = alfred.argv(2)
     value = alfred.argv(3)
     if not key or not value:
         self.exit('arguments error', False)
     data = {key:value}
     success, data = self.ds.sendConfig(data)
     alfred.cache.delete('dsconfig')
     success_msg = {
         'emule_enabled' : 'eMule enabled.' if value == 'true' else 'eMule disabled.'
     }
     if success:
         if key in success_msg.keys():
             self.exit(success_msg[key])
         self.exit('set server config {}={} success.'.format(key, value))
     self.exit('set server config {}={} failed.'.format(key, value))
Example #16
0
def openURL():
    try:
        page = b64decode(alfred.argv(2))
        subprocess.check_output('open "{}"'.format(page), shell=True)
    except Exception, e:
        alfred.log(e)
        alfred.exit('出错啦')
Example #17
0
    def run(self):
        cmd = alfred.argv(1)
        if not cmd:
            return self.showDefaultList()
        cmd = cmd.lower()
        for page in default_pages:
            if cmd == page['cmd']:
                url = self.getUrl(page['page'])
                self.showAppsFromPage(url)
                alfred.exit()

        self.tryShowMoreApps()

        if cmd.startswith('search'):
            cmd = 'search'
        if cmd.startswith('more-apps-'):
            cmd = 'more-apps'

        cmd_map = {
            'search': lambda: self.search(),
            'wishlist': lambda: self.showWishList(),
            'setting': lambda: self.showSettings(),
            'more-apps': lambda: self.showMoreApps(),
            'change-country': lambda: self.showCountries()
        }
        if cmd in cmd_map.keys():
            return cmd_map[cmd]()
        return self.showDefaultList()
Example #18
0
 def setServerConfig(self):
     key = alfred.argv(2)
     value = alfred.argv(3)
     if not key or not value:
         self.exit('arguments error', False)
     data = {key:value}
     success, data = self.ds.sendConfig(data)
     self.cache.delete('dsconfig')
     success_msg = {
         'emule_enabled' : 'eMule enabled.' if value == 'true' else 'eMule disabled.'
     }
     if success:
         if key in success_msg.keys():
             self.exit(success_msg[key])
         self.exit('set server config {}={} success.'.format(key, value))
     self.exit('set server config {}={} failed.'.format(key, value))
Example #19
0
def todayFile():
    if not isLogined():
        alfred.exitWithFeedback(item=_fb_no_logined())
    try:
        item_id = alfred.argv(2)
        res_id = item_id.split('-')[0]
        item = {}
        for item in fetchTodayItems():
            if item.get('id') == item_id:
                break
        if not item:
            alfred.exitWithFeedback(item=_fb_no_found())
        feedback = alfred.Feedback()
        feedback.addItem(
            title=item['filename'],
            subtitle=
            '类别: {type}  格式: {format}  容量: {filesize}  日期: {update_date} 这里可访问资源文件列表'
            .format(**item),
            valid=False,
            autocomplete='resource {}'.format(res_id))
        feedback = fileDownloadFeedback(feedback, res_id, item['emule'],
                                        item['magnet'], item['baidu'])
        feedback.addItem(item=_fb_return())
        feedback.output()
    except Exception, e:
        alfred.exitWithFeedback(item=_fb_no_found())
Example #20
0
def changeCountry():
    sub = alfred.argv(2)
    if not sub or sub not in country_currency.keys():
        return
    alfred.config.set(country=sub)
    alfred.cache.clean()
    alfred.exit('Country/Currency has changed to {}.'.format(country_currency[sub]))
Example #21
0
def toggleAppIconShowing():
    sub = alfred.argv(2)
    if not sub or sub not in ['enable', 'disable']:
        alfred.exit('argument error')
    v = True if sub=='enable' else False
    alfred.config.set(app_icon_show = v)
    alfred.exit('App Icon Showing {}'.format('Enabled' if v else 'Disabled'))
Example #22
0
    def showTaskDetail(self):
        task = self.getSingleTask(alfred.argv(3))
        if not task:
            alfred.exitWithFeedback(title="ERROR", subtitle="No Task Found.")

        feedback = alfred.Feedback()
        # 任务标题
        feedback.addItem(
            title=task["title"],
            subtitle=task["desc"],
            autocomplete=" detail {id}".format(**task),  # 参数与现有相同 即无任何反应
            valid=False,
        )
        status = task["status"]
        # 状态为 '等待'、'下载中' 显示暂停操作
        if status in ["waiting", "downloading"]:
            feedback.addItem(title="Pause", arg="pause-task {id}".format(**task))
        # 状态为 '暂停' 显示 恢复操作
        if status in ["paused"]:
            feedback.addItem(title="Resume", arg="resume-task {id}".format(**task))
        # 状态为 '完成' 显示 清理操作
        if status in ["finished"]:
            feedback.addItem(title="Clear", arg="delete-task {id}".format(**task))  # 实际上就是删除已完成的任务
        # 只有状态不是 '完成'、'完成中'才显示 删除操作
        if status not in ["finished", "finishing"]:
            feedback.addItem(title="Delete", autocomplete=" delete {id}".format(**task), valid=False)
        feedback.addItem(title="Show all", autocomplete="", valid=False)
        feedback.output()
Example #23
0
    def run(self):
        cmd = alfred.argv(1)
        if not cmd:
            return self.showDefaultList()
        cmd = cmd.lower()
        for page in default_pages:
            if cmd == page['cmd']:
                url = self.getUrl(page['page'])
                self.showAppsFromPage(url)
                alfred.exit()

        self.tryShowMoreApps()

        if cmd.startswith('search'):
            cmd = 'search'
        if cmd.startswith('more-apps-'):
            cmd = 'more-apps'

        cmd_map = {
            'search'            : lambda: self.search(),
            'wishlist'          : lambda: self.showWishList(),
            'setting'           : lambda: self.showSettings(),
            'more-apps'         : lambda: self.showMoreApps(),
            'change-country'    : lambda: self.showCountries()
        }
        if cmd in cmd_map.keys():
            return cmd_map[cmd]()
        return self.showDefaultList()
Example #24
0
def main():
    cmds = {"setting": lambda: DSSetting().run(), "status": lambda: DSStatus().run(), "task": lambda: DSTask().run()}
    # fork一个进程进行缓存
    forkCacheProcess()
    subcmd = alfred.argv(1)
    if subcmd and subcmd.lower() in cmds.keys():
        cmds[subcmd.lower()]()
Example #25
0
def downloadWithDS():
    try:
        link = b64decode(alfred.argv(2))
        alfred.query('ds create {}'.format(link))
    except Exception, e:
        alfred.log(e)
        alfred.exit('出错啦')
Example #26
0
 def search(self):
     title = alfred.argv(2)
     artist = alfred.argv(3)
     if title is None:
         self.outputiTunesPlayingSong()
     res, data = self.fetchLyricList(title, artist)
     if not res:
         alfred.exitWithFeedback(
             title=data,
             subtitle=
             "Format: lrc TITLE ARTIST e.g. lrc 'Heal The World' 'Michael Jackson'"
         )
     feedback = alfred.Feedback()
     for lrc in data:
         feedback.addItem(title='{artist} - {title}'.format(**lrc),
                          arg=lrc['id'])
     feedback.output()
Example #27
0
def main():
    cmd_map = {
        'toggle-fav'    : lambda: toggleFavChannel()
    }
    cmd = alfred.argv(1)
    if not cmd or cmd.lower() not in cmd_map.keys():
        return
    cmd_map[cmd.lower()]()
Example #28
0
def showRemarkSetting():
    try:
        _, com_code, post_id = alfred.argv(1).split('-')
    except Exception, e:
        alfred.exitWithFeedback(title='参数格式错误。',
                                subtitle='选择返回',
                                valid=False,
                                autocomplete='')
Example #29
0
def openLink():
    try:
        links = alfred.argv(2).strip().split(',')
        open_store_link = alfred.config.get('open_store_link', True)
        link = links[0] if open_store_link else links[1]
        subprocess.check_output(['open', link])
    except Exception, e:
        alfred.exit('something error.')
Example #30
0
def query():
    arg1 = alfred.argv(1)
    arg2 = alfred.argv(2)
    post_id = arg2 if arg2 else arg1
    com_codes = arg1 if arg2 else None
    # 如果只有快递单号 没有公司代码 先自动检测获得公司代码
    com_codes = [
        surmiseCompanyCode(com_codes)
    ] if com_codes is not None else queryCompanyCodeByPostID(post_id)
    if not com_codes:
        alfred.exitWithFeedback(title='没有找到相关的快递信息')
    # 只有一个公司符合 直接给出结果
    if len(com_codes) == 1:
        showSingle(com_codes[0], post_id)
    # 如果有多个 则列出公司列表
    else:
        showRecommendCompany(com_codes, post_id)
Example #31
0
 def createTask(self):
     link = alfred.argv(2)
     if not link:
         self.exit('arguments error')
     link = base64.b64decode(link)
     success, res = self.ds.createTask(link)
     if success:
         self.exit('Create task success')
     self.exit('Create task failed: {}'.format(res))
Example #32
0
 def showCountries(self):
     q = alfred.argv(2)
     feedback = alfred.Feedback()
     for k, v in country_currency.iteritems():
         if q and not q.lower() in v.lower():
             continue
         feedback.addItem(title=v, arg='change-country {}'.format(k))
     feedback.items.sort(key=lambda i: i.content['title'].lower())
     feedback.output()
Example #33
0
 def createTask(self):
     link = alfred.argv(2)
     if not link:
         self.exit('arguments error')
     link = base64.b64decode(link)
     success, res = self.ds.createTask(link)
     if success:
         self.exit('Create task success')
     self.exit('Create task failed: {}'.format(res))
Example #34
0
 def search(self):
     title = alfred.argv(2)
     artist = alfred.argv(3)
     if title is None:
         self.outputiTunesPlayingSong()
     res, data = self.fetchLyricList(title, artist)
     if not res:
         alfred.exitWithFeedback(
             title       = data,
             subtitle    = "Format: lrc TITLE ARTIST e.g. lrc 'Heal The World' 'Michael Jackson'"
             )
     feedback = alfred.Feedback()
     for lrc in data:
         feedback.addItem(
             title   = '{artist} - {title}'.format(**lrc),
             arg     = lrc['id']
             )
     feedback.output()
Example #35
0
def main():
    cmd = alfred.argv(1)
    for toggle in TOGGLES:
        if toggle['arg'] == cmd:
            return toggle['cmd']()

    feedback = alfred.Feedback()
    for toggle in TOGGLES:
        feedback.addItem(**toggle)
    feedback.output()
Example #36
0
def main():
    cmd = alfred.argv(1)
    for toggle in TOGGLES:
        if toggle['arg'] == cmd:
            return toggle['cmd']()

    feedback = alfred.Feedback()
    for toggle in TOGGLES:
        feedback.addItem(**toggle)
    feedback.output()
Example #37
0
 def run(self):
     cmd = alfred.argv(1)
     if not cmd:
         self.exit()
     cmd = cmd.lower()
     if cmd not in self.cmds.keys():
         self.exit('action is missing. {}'.format(cmd))
     # 进行操作前等待缓存进程
     waitCacheProcess()
     self.cmds[cmd]()
Example #38
0
 def run(self):
     cmd = alfred.argv(1)
     if not cmd:
         self.exit()
     cmd = cmd.lower()
     if cmd not in self.cmds.keys():
         self.exit('action is missing. {}'.format(cmd))
     # 进行操作前等待缓存进程
     waitCacheProcess()
     self.cmds[cmd]()
Example #39
0
def main():
    cmds = {
        'open-url'          : lambda: openURL(),
        'copy-to-clipboard' : lambda: copyToClipboard(),
        'download-with-ds'  : lambda: downloadWithDS()
    }
    cmd = alfred.argv(1)
    if not cmd or cmd.lower() not in cmds.keys():
        alfred.exit('出错啦')
    cmds[cmd]();
Example #40
0
 def run(self):
     cmd = alfred.argv(1)
     if not cmd:
         return
     try:
         delay = float(alfred.argv(2))
         time.sleep(delay)
     except:
         pass
     caching = '{}-caching'.format(cmd)
     # 检查caching
     if alfred.cache.get(caching):
         return
     alfred.cache.set(caching, True, 10)
     try:
         cmd = cmd.lower()
         if cmd in self.cmds.keys():
             self.cmds[cmd]()
     except Exception, e:
         pass
Example #41
0
 def run(self):
     cmd = alfred.argv(1)
     if not cmd:
         return
     try:
         delay = float(alfred.argv(2))
         time.sleep(delay)
     except:
        pass
     caching = '{}-caching'.format(cmd)
     # 检查caching
     if alfred.cache.get(caching):
         return
     alfred.cache.set(caching, True, 10)
     try:
         cmd = cmd.lower()
         if cmd in self.cmds.keys():
             self.cmds[cmd]()
     except Exception, e:
         pass
Example #42
0
 def showMoreApps(self):
     sub = alfred.argv(1)
     t = sub[10:].lower()
     if t not in more_apps_page_type.keys():
         self.exitWithFeedback(title='Nothing found')
     feedback = alfred.Feedback()
     for item in more_apps_pages:
         title = item['title'].format(**more_apps_page_type[t])
         cmd = '-'.join(title.lower().split(' '))
         feedback.addItem(title=title, autocomplete=cmd, valid=False)
     feedback.output()
Example #43
0
def copyToClipboard():
    try:
        word = b64decode(alfred.argv(2))
        pb = NSPasteboard.generalPasteboard()
        pb.clearContents()
        a = NSArray.arrayWithObject_(word)
        pb.writeObjects_(a)
        alfred.exit('已拷贝地址到剪切板')
    except Exception, e:
        alfred.log(e)
        alfred.exit('出错啦')
Example #44
0
def main():
    cmds = {
        'setting'   : lambda: DSSetting().run(),
        'status'    : lambda: DSStatus().run(),
        'task'      : lambda: DSTask().run()
    }
    # fork一个进程进行缓存
    forkCacheProcess()
    subcmd = alfred.argv(1)
    if subcmd and subcmd.lower() in cmds.keys():
        cmds[subcmd.lower()]()
Example #45
0
def main():
    cmd_map = {
        'live'              : lambda: showLive(),
        'epg'               : lambda: showEPG(),
        'fav'               : lambda: showEPG(),
        'all'               : lambda: showAllChannles(),
    }
    cmd = alfred.argv(1)
    if not cmd or cmd.lower() not in cmd_map.keys():
        cmd = 'live'
    cmd_map[cmd.lower()]()
Example #46
0
def resource():
    try:
        res_id = int(alfred.argv(2))
        data = fetchSingleResource(res_id)
        files = data.get('files', [])
        files = filterItems(alfred.argv(3), files)
        if not data:
            alfred.exitWithFeedback(item=_fb_no_found)
        feedback = alfred.Feedback()
        feedback.addItem(
            title=data['title'],
            subtitle=
            '{} 个文件,可使用`文件名,格式`过滤,如:`s09` `,mp4` `s01e08,hdtv`,选择此项打开资源页面'.
            format(len(files)),
            arg='open-url {}'.format(
                b64encode(getResourcePageURLByID(data['id']))),
            icon=alfred.storage.getLocalIfExists(data['img'], True))
        files_ids = []
        for f in files:
            files_ids.append(f['id'])
            f.update(**parseDownloadHas(f))
            subtitle = '类型: {format} 容量: {filesize} 电驴: {has_emule} 磁力链: {has_magnet} 百度盘: {has_baidu}'.format(
                **f)
            feedback.addItem(
                title=f['filename'],
                subtitle=subtitle,
                valid=False,
                autocomplete='file {},{}'.format(data['id'], f['id']),
                icon=alfred.storage.getLocalIfExists(data['img'], True))
        if len(files_ids) > 1:
            feedback.addItem(
                title='所有文件',
                subtitle='对当前的所有文件进行批量处理',
                valid=False,
                autocomplete='file {},{}'.format(data['id'],
                                                 ','.join(files_ids)),
                icon=alfred.storage.getLocalIfExists(data['img'], True))
        feedback.addItem(item=_fb_return())
        feedback.output()
    except Exception, e:
        alfred.exitWithFeedback(item=_fb_no_found())
Example #47
0
 def showSettings(self):
     sub = alfred.argv(2)
     if sub == 'username':
         usr = alfred.argv(3) if alfred.argv(3) else ''
         old_usr = alfred.config.get('username') if alfred.config.get('username') else ''
         alfred.exitWithFeedback(
             title       = 'Set AppShopper username',
             subtitle    = 'new uername is {}, current: {}'.format(usr, old_usr),
             arg         = 'set-username {}'.format(usr)
             )
     feedback = alfred.Feedback()
     feedback.addItem(
         title           = 'Set AppShopper Username',
         subtitle        = 'you MUST config this if you want to see your wish list.',
         autocomplete    = 'setting username ',
         valid           = False
         )
     feedback.addItem(
         title           = 'Clean',
         subtitle        = 'clear all cache',
         arg             = 'clean'
         )
     feedback.addItem(
         title           = 'Change Country/Currency',
         subtitle        = 'current: {}'.format( self.getContryDesc() ),
         autocomplete    = 'change-country ',
         valid           = False
         )
     title = '{} App Icon Showing'.format('Enable' if not self.enable_appiconshow else 'Disable')
     feedback.addItem(
         title           = title,
         subtitle        = 'enable may take more time to fetch data.',
         arg             = 'app-icon-showing {}'.format('enable' if not self.enable_appiconshow else 'disable')
         )
     open_store_link = alfred.config.get('open_store_link', True)
     feedback.addItem(
         title           = 'Open iTunes link or Appshopper link?',
         subtitle        = 'current: {} link. select this item to change.'.format('iTunes' if open_store_link else 'Appshopper'),
         arg             = 'switch-link-open-type'
         )
     feedback.output()
Example #48
0
 def createTask(self):
     if not alfred.argv(3):
         alfred.exitWithFeedback(title='ERROR', subtitle='No TasK Found.')
     feedback = alfred.Feedback()
     tasks = util.parseURIInfo(alfred.argv(3))
     if len(tasks) > 1:
         urls = []
         for task in tasks:
             urls.append(task['original'])
         feedback.addItem(
             title       = 'Create All',
             subtitle    = 'find {} links'.format(len(tasks)),
             arg         = 'create-task {}'.format(base64.b64encode(','.join(urls)))
             )
     for task in tasks:
         feedback.addItem(
             title   = task['original'],
             subtitle    = 'Title: {filename:5}  Size: {filesize}'.format(**task),
             arg     = 'create-task {}'.format(base64.b64encode(task['original']))
             )
     feedback.output()
Example #49
0
    def authorize(self):
        usr = alfred.argv(3)
        pwd = alfred.argv(4)
        host = alfred.argv(5)

        feedback = alfred.Feedback()
        title = 'Login Information'
        if usr and pwd and host:
            feedback.addItem(
                title       = title,
                subtitle    = 'usr: {} pwd: {} dsm_url: {}'.format(usr, pwd, host),
                arg         = 'authorize {} {} {}'.format(usr, pwd, host)
                )
        else:
            feedback.addItem(
                title           = title,
                subtitle        = 'e.g. my_username my_password https://my_ds_ip_address_or_ddns_hostname:5001' ,
                autocomplete    = '',
                valid           = False
                )
        feedback.output()
Example #50
0
    def authorize(self):
        usr = alfred.argv(3)
        pwd = alfred.argv(4)
        host = alfred.argv(5)

        feedback = alfred.Feedback()
        title = "Login Information"
        if usr and pwd and host:
            feedback.addItem(
                title=title,
                subtitle="usr: {} pwd: {} dsm_url: {}".format(usr, pwd, host),
                arg="authorize {} {} {}".format(usr, pwd, host),
            )
        else:
            feedback.addItem(
                title=title,
                subtitle="e.g. my_username my_password https://my_ds_ip_address_or_ddns_hostname:5001",
                autocomplete="",
                valid=False,
            )
        feedback.output()
Example #51
0
 def createTask(self):
     if not alfred.argv(3):
         alfred.exitWithFeedback(title="ERROR", subtitle="No TasK Found.")
     feedback = alfred.Feedback()
     tasks = util.parseURIInfo(alfred.argv(3))
     if len(tasks) > 1:
         urls = []
         for task in tasks:
             urls.append(task["original"])
         feedback.addItem(
             title="Create All",
             subtitle="find {} links".format(len(tasks)),
             arg="create-task {}".format(base64.b64encode(",".join(urls))),
         )
     for task in tasks:
         feedback.addItem(
             title=task["original"],
             subtitle="Title: {filename:5}  Size: {filesize}".format(**task),
             arg="create-task {}".format(base64.b64encode(task["original"])),
         )
     feedback.output()