def get_recent_posts(url): cookie = cookielib.CookieJar() handler = urllib2.HTTPCookieProcessor(cookie) opener = urllib2.build_opener(handler) response1 = opener.open(fullurl=url) source = response1.read() pre_url = 'https://arxiv.org' soup = BeautifulSoup(source, "lxml") precc = soup.find(id="dlpage") paper_list = precc.find_all('div',{'class':re.compile('list-title')}) link_list = precc.find_all('a',{'title':re.compile('Download PDF')}) feedback = alfred.Feedback() dd = min(len(paper_list),9) for i in range(dd): link = pre_url+link_list[i].get("href") name = paper_list[i].get_text()[7:] feedback.addItem( title=name, subtitle='press enter to enter this class', arg=link, autocomplete=link, icontype='filicon', icon="mood.png" ) feedback.output()
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())
def menu(): feedback = alfred.Feedback() feedback.addItem( title = '人人影视 24小时热门资源', subtitle = '最近24小时的热门排行', autocomplete = 'top', valid = False ) feedback.addItem( title = '人人影视 今日更新的文件', subtitle = '也包括昨日与前日更新的文件,可使用格式名称过滤文件,如hdtv, mp4, 1080p等', autocomplete = 'today ', valid = False ) feedback.addItem( title = '人人影视 最近更新的资源', subtitle = '可使用movie, tv, documentary, openclass, topic过滤相应的资源', autocomplete = 'recent ', valid = False ) feedback.addItem( title = '人人影视 资源搜索...', subtitle = '', autocomplete = 'search ', valid = False ) feedback.output()
def list_updates(): """Displays all available updates""" workflows = get_updateable() feedback = alfred.Feedback() # if we have at least one item with updates valid_updates = [ w for w in workflows if w['has_update'] and not w['has_check_errors'] ] if len(valid_updates) > 0: feedback.addItem(title='Download', valid='yes', arg='download-all') for w in workflows: if w['has_update'] and not w['has_check_errors']: subtitle = 'v' + str(w['version']) + u' ➔ ' + str( w['update']['version']) + ' ' + w['update']['description'] feedback.addItem(title=w['name'], subtitle=subtitle, icon=w['icon'], arg='download "%s"' % w['dirname']) elif w['has_check_errors']: feedback.addItem(title=w['name'], subtitle=w['error'], icon='bad.png', valid='no', arg=w['dirname']) if feedback.isEmpty(): feedback.addItem(title='All your workflows are up to date', valid='no', icon='uptodate.png', autocomplete='') else: feedback.addItem(title='Go back', valid='no', icon='back.png', autocomplete='') feedback.output()
def showRecommendCompany(recommend_com_codes, post_id): feedback = alfred.Feedback() recommend_com = [] for code in recommend_com_codes: com = getCompany(code) if com: recommend_com.append(com) # 找到推荐的快递公司 if recommend_com: feedback.addItem(title='根据运单号找到下列可能的快递公司,请选择:', icon=os.path.abspath('./icon-info.png'), valid=False) map( lambda c: feedback.addItem(title=c['companyname'], subtitle=c['freginfo'], valid=False, autocomplete='{} {}'.format( c['code'], post_id)), recommend_com) # 其它所有快递公司 feedback.addItem(title='{},请在下列中选择:'.format( '如果不存在于上述快递公司之中' if recommend_com else '根据运单号没有找到符合的快递公司'), icon=os.path.abspath('./icon-info.png'), valid=False) for com in getCompany(): if com in recommend_com: continue feedback.addItem(title=com['companyname'], subtitle=com['freginfo'], valid=False, autocomplete='{} {}'.format(com['code'], post_id)) feedback.output()
def menu(): feedback = alfred.Feedback() feedback.addItem( title = '人人影视 24小时热门资源', subtitle = '最近24小时的热门排行', autocomplete = 'top', valid = False ) if isLogined(): feedback.addItem( title = '人人影视 今日更新的文件', subtitle = '若今天尚无文件,则显示前一天,可使用`文件名,格式`过滤,如:`s09` `,mp4` `s01e08,hdtv`', autocomplete = 'today ', valid = False ) feedback.addItem( title = '人人影视 最近更新的资源', subtitle = '可使用movie, tv, documentary, openclass, topic过滤相应的资源', autocomplete = 'recent ', valid = False ) feedback.addItem( title = '人人影视 资源搜索...', subtitle = '', autocomplete = 'search ', valid = False ) feedback.addItem( title = '{}用户名和密码'.format('修改' if isLogined() else '设置'), subtitle = '{}查看今日更新文件或某些有版权问题需要,仅支持用户名方式登陆'.format('已设置并成功登陆,' if isLogined() else ' '), valid = False, autocomplete = 'setting ' ) feedback.output()
def showSaved(): post = alfred.config.get('post') feedback = alfred.Feedback() has_checked = False if post: for p in post[::-1]: q = querySingle(p['com_code'], p['post_id']) if q.get('checked', False): has_checked = True item = {} item.update(title='{} {} {}'.format( getCompany(p['com_code'], 'companyname'), p['post_id'], p.get('remark', '')), icon=getComponyLogo(p['com_code']), valid=False, autocomplete='{} {}'.format(p['com_code'], p['post_id'])) if q.get('success'): item['subtitle'] = '{time} {content}'.format(**q['trace'][0]) else: item['subtitle'] = '{} 暂时没有记录,运单号不存在、未记录或已经过期。'.format( formatTimestamp(q['last_update'])) feedback.addItem(**item) # 有已签收的 if has_checked: feedback.addItem(title='清除所有已签收的运单?', arg='clear-checked-post') else: feedback.addItem( title='国内快递查询', subtitle='直接使用运单号,如:904080779005,快递公司+运单号,如:顺风 904080779005', valid=False) feedback.output()
def get_recent_posts(): cookie = cookielib.CookieJar() handler = urllib2.HTTPCookieProcessor(cookie) opener = urllib2.build_opener(handler) url_old = 'http://218.94.159.99/login/index.php' data ="username=151250145%40smail.nju.edu.cn&password=#######&rememberusername=1&anchor=" # url_new ="http://218.94.159.99/course/view.php?id=7" response1 = opener.open(fullurl=url_old,data=data) # del response1 # response2 =opener.open(url_new) source = response1.read() # print source soup = BeautifulSoup(source, "lxml") precc = soup.find(id="region-main") course_list = precc.find_all("a")[1:] # print course_list feedback = alfred.Feedback() for course in course_list: link = course.get("href") name = course.get("title") feedback.addItem( title=name, subtitle='press enter to enter this class', arg=link, autocomplete=link, icontype='filicon', icon="mood.png" ) feedback.output()
def showLive(): favs = getFavChannels() if not favs: alfred.exit() feedback = alfred.Feedback() for channel in favs: chl_title = getChannelTitle(channel) if not chl_title: continue cur, next = getCurrentAndNextProgram(channel) title = '{}'.format(chl_title) if cur: title = '{} 正在播放: {}'.format(chl_title, cur['show']) subtitle = '' if next: subtitle = '下一个节目: {time} {show}'.format(**next) feedback.addItem( title = title, subtitle = subtitle, autocomplete = 'epg {}'.format(channel), valid = False ) feedback.addItem( title = '显示所有电视频道', autocomplete = 'all', valid = False ) feedback.addItem( title = '显示收藏的电视频道', autocomplete = 'fav', valid = False ) feedback.output()
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)
def display_top10(): fb = alfred.Feedback() items = get_top10() for item in items: fb.addItem(title=item['title'], subtitle=item['since'], arg=item['link']) fb.output()
def display(items): fb = alfred.Feedback() for item in items: fb.addItem(title=item['title'], subtitle=item['subtitle'], arg=item['link']) fb.output()
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()
def run(self): url = sys.argv[1] res = self.parse(url) feedback = alfred.Feedback() feedback.addItem( title = res['real'], subtitle = '{} {} {}'.format(self.getTypeDesc(res['type']), res['filename'], res['filesize']), arg = res['real'] ) feedback.output()
def search(query): workflows = get_cache() workflows = [w for w in workflows if filter(w, query) == True] feedback = alfred.Feedback() for w in workflows: feedback.addItem(title=w['name'], subtitle=w['version'] + w['author'] + ', ' + w['description'], arg=w['download']) feedback.output()
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()
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()
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()
def showDevices(): data = accessTabs() feedback = alfred.Feedback() for k in data['values'].keys(): d = data['values'][k]['value'] tabs_count = len(d.get('Tabs', {})) feedback.addItem(title=d['DeviceName'], subtitle='{} tabs. last modified: {}'.format( tabs_count, d['LastModified']), valid=False, autocomplete=d['DeviceName']) feedback.output()
def showSingle(com_code, post_id): data = querySingle(com_code, post_id) post_info = '{} {}'.format(getCompany(com_code, 'companyname'), post_id) feedback = alfred.Feedback() if not data.get('success'): feedback.addItem(title='查询失败: {}'.format(post_info), subtitle='{} {}'.format( formatTimestamp(data['last_update']), data.get('last_message', '')), icon=os.path.abspath('./icon-error.png'), valid=False) else: # 查询成功 自动保存运单方便下次查询 savePost(com_code, post_id) post = getStoredPost(com_code, post_id) remark = post.get('remark', '') last_update_info = '' if data.get( 'last_success') else '本次查询失败,下面显示的是先前的查询结果。' update_info = '已签收 ' if data['checked'] else last_update_info feedback.addItem(title='{} {}'.format(post_info, remark), subtitle='最后查询: {} {}'.format( formatTimestamp(data['last_update']), update_info), icon=getComponyLogo(com_code), valid=False) count = len(data['trace']) for t in data['trace']: feedback.addItem(title='{:02d}. {}'.format(count, t['content']), subtitle=t['time'], valid=False) count = count - 1 # 运单是否保存 stored = isPostStored(com_code, post_id) # 已保存的 可添加或修改备注 if stored: post = getStoredPost(com_code, post_id) remark = post.get('remark') remark = '当前备注: {}'.format(remark) if remark else '运单当前尚无备注信息。' feedback.addItem(title='设置或修改备注', subtitle=remark, icon=os.path.abspath('./icon-info.png'), valid=False, autocomplete='remark-{}-{} '.format( com_code, post_id)) feedback.addItem(title='该运单已被保存,删除运单记录?' if stored else '依然保存运单记录?', subtitle='保存的运单可方便后续跟踪,查询成功的运单将被自动保存。', icon=os.path.abspath( './icon-del.png' if stored else './icon-save.png'), arg='{} {} {}'.format( 'del-post' if stored else 'save-post', com_code, post_id)) feedback.addItem(item=_fb_return()) feedback.output()
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()
def show_options(): """Displays initial options""" feedback = alfred.Feedback() feedback.addItem(title='List compatible workflows', autocomplete='list', valid='no') feedback.addItem(title='Check for updates', subtitle='This may take a while...' if get_updateable_timeout() <= 10.0 else '', autocomplete='update', valid='no') feedback.addItem(title='Reset cache', autocomplete='reset', valid='no') feedback.addItem(title='View log', autocomplete='log', valid='no') feedback.output()
def main(): import alfred url = sys.argv[1] if not url: alfred.exitWithFeedback(title='UNKNOWN') rdl = RealDownloadLink() res = rdl.parse(url) feedback = alfred.Feedback() res.update({'type_desc': rdlTypeToDesc(res['type'])}) feedback.addItem( title=res['real'], subtitle='{type_desc} {filename} {filesize}'.format(**res), arg=res['real']) feedback.output()
def showEPG(): channel = alfred.argv(2) if channel: return showChannleEPG(channel) favs = getFavChannels() if not favs: alfred.exitWithFeedback(title='你还没有收藏的频道') feedback = alfred.Feedback() for chl_id in favs: current, next = getCurrentAndNextProgram(chl_id) subtitle = '正在播放: {show}'.format(**current) if current else '' feedback.addItem(title=getChannelTitle(chl_id), subtitle=subtitle, arg=chl_id, autocomplete='epg {}'.format(chl_id), valid=False) feedback.output()
def showChannleEPG(channel): chl_title = getChannelTitle(channel) if not chl_title: alfred.exitWithFeedback(title='未找到频道信息') schedules = fetchChannelEPGToday(channel) if not schedules: alfred.exitWithFeedback(title='未找到频道的节目单') feedback = alfred.Feedback() date_str = datetime.now().strftime('%Y-%m-%d') now_time = datetime.now().strftime('%H:%M') is_faved = isChannelFaved(channel) feedback.addItem( title='{} {} 节目单 现在时间: {}'.format(chl_title, date_str, now_time), subtitle='已收藏,选择这项可以取消收藏。' if is_faved else '未收藏,选择这项可以收藏', arg='toggle-fav {}'.format(channel)) for item in schedules: feedback.addItem(title='{time} {show}'.format(**item)) feedback.output()
def outputFeedback(self, success, data, no_found_msg=''): if not success or not data: alfred.exitWithFeedback(title='No App Found', subtitle=no_found_msg) self.downloadAppIcon(data) feedback = alfred.Feedback() for app in data: icon = '' if self.enable_appiconshow: icon = self.getLocalAppIcon(app['icon']) links = '{},{}'.format(app['store'], app['link']) feedback.addItem(title=app['name'], subtitle=app['desc'], arg='open-link {}'.format(links), icon=icon if icon else '') feedback.output()
def recent(): try: items = fetchRecentItems(alfred.argv(2)) if not items: alfred.exitWithFeedback(item=_fb_no_found) feedback = alfred.Feedback() for item in items: feedback.addItem( title = item['title'], subtitle = item['info'], icon = alfred.storage.getLocalIfExists(item['img'], True), valid = False, autocomplete = 'resource {} '.format(item['id']) ) feedback.output() except Exception, e: alfred.exitWithFeedback(item=_fb_no_found)
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()
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()
def confirmDeleteAllTasks(self): feedback = alfred.Feedback() feedback.addItem( title = 'Are you sure you want to delete all tasks?', subtitle = '', autocomplete = ' delete-all', #! 同样的命令,不进行任何操作 valid = False ) feedback.addItem( title = 'Yes', arg = 'delete-all-tasks' ) feedback.addItem( title = 'No', autocomplete = '', #! 返回任务列表 valid = False ) feedback.output()