def search(self): if self.search_query is None or self.search_query == '': t = control.lang(30201).encode('utf-8') k = control.keyboard('', t) k.doModal() self.search_query = k.getText() if k.isConfirmed() else None if self.search_query is None or self.search_query == '': return base_url = "https://c9search.azurewebsites.net/content/search?text=%s&$top=100&$skip=0&$inlinecount=allpages" \ % (urllib.quote_plus(self.search_query)) data = http_request.get(base_url) start_index = data.index('"documents":') + 12 if start_index <= 12: return json_data = data[start_index:-3] json_media = json.loads(json_data) for media in json_media: title = media["title"] url = media["permalink"] genre = media["published"] thumbnail = media["previewImage"] plot = media["summaryBody"] list_item = control.item(title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail) list_item.setInfo("video", {"Title": title, "Studio": "Microsoft Channel 9", "Plot": plot, "Genre": genre}) plugin_play_url = '%s?action=play&video_page_url=%s' % (sys.argv[0], urllib.quote_plus(url)) control.addItem(handle=int(sys.argv[1]), url=plugin_play_url, listitem=list_item, isFolder=False) # End of directory... control.directory_end() return
def search_new(self): control.idle() t = control.lang(32010).encode('utf-8') k = control.keyboard('', t) k.doModal() q = k.getText() if k.isConfirmed() else None if (q == None or q == ''): return q = q.lower() try: from sqlite3 import dbapi2 as database except: from pysqlite2 import dbapi2 as database dbcon = database.connect(control.searchFile) dbcur = dbcon.cursor() dbcur.execute("DELETE FROM tvshow WHERE term = ?", (q, )) dbcur.execute("INSERT INTO tvshow VALUES (?,?)", (None, q)) dbcon.commit() dbcur.close() url = self.search_link + urllib.quote_plus(q) if int(control.getKodiVersion()) >= 18: self.get(url) else: url = '%s?mode=6&url=%s' % (sys.argv[0], urllib.quote_plus(url)) control.execute('Container.Update(%s)' % url)
def search(self): if self.search_term is None or self.search_term == '': t = control.lang(30201).encode('utf-8') k = control.keyboard('', t) k.doModal() self.search_term = k.getText() if k.isConfirmed() else None if self.search_term is None or self.search_term == '': return skip = (self.current_page-1) * self.per_page take = self.per_page select_filter = utils.create_filter_criteria(self.section, self.group, self.search_term) results_count = utils.get_course_meta(select_filter)["totalResultCount"] courses = utils.get_course_data(select_filter, skip, take) for course in courses: name = course["courseName"].encode('utf-8') thumb = course["courseImage"] if thumb is None or thumb == '': thumb = self.icon cid = course["id"] utils.add_directory(name, thumb, thumb, "%s?action=view-course&id=%s&url=%s" % (sys.argv[0], cid, utils.url_course % cid)) has_more = (results_count - (skip+self.per_page)) > 0 if has_more: next_url = "%s?action=search&group=%s§ion=%s&page=%i&query=%s" % ( sys.argv[0], urllib.quote_plus(self.group, safe=':/'), urllib.quote_plus(self.section, safe=':/'), self.current_page + 1, self.search_term) utils.add_next_page(next_url, self.current_page + 1) control.directory_end(False) return
def search(self): if self.search_term is None or self.search_term == '': t = control.lang(30201).encode('utf-8') k = control.keyboard('', t) k.doModal() self.search_term = k.getText() if k.isConfirmed() else None if self.search_term is None or self.search_term == '': return self.browse() return
def search(self): if self.search_query is None or self.search_query == '': t = control.lang(30201).encode('utf-8') k = control.keyboard('', t) k.doModal() self.search_query = k.getText() if k.isConfirmed() else None if self.search_query is None or self.search_query == '': return base_url = "https://c9search.azurewebsites.net/content/search?text=%s&$top=100&$skip=0&$inlinecount=allpages" \ % (urllib.quote_plus(self.search_query)) data = http_request.get(base_url) start_index = data.index('"documents":') + 12 if start_index <= 12: return json_data = data[start_index:-3] json_media = json.loads(json_data) for media in json_media: title = media["title"] url = media["permalink"] genre = media["published"] thumbnail = media["previewImage"] plot = media["summaryBody"] list_item = control.item(title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail) list_item.setInfo( "video", { "Title": title, "Studio": "Microsoft Channel 9", "Plot": plot, "Genre": genre }) plugin_play_url = '%s?action=play&video_page_url=%s' % ( sys.argv[0], urllib.quote_plus(url)) control.addItem(handle=int(sys.argv[1]), url=plugin_play_url, listitem=list_item, isFolder=False) # End of directory... control.directory_end() return
def manager(name, imdb, tvdb, content): try: post = {"movies": [{"ids": {"imdb": imdb}}]} if content == 'movie' else {"shows": [{"ids": {"tvdb": tvdb}}]} items = [(control.lang(32516).encode('utf-8'), '/sync/collection')] items += [(control.lang(32517).encode('utf-8'), '/sync/collection/remove')] items += [(control.lang(32518).encode('utf-8'), '/sync/watchlist')] items += [(control.lang(32519).encode('utf-8'), '/sync/watchlist/remove')] items += [(control.lang(32520).encode('utf-8'), '/users/me/lists/%s/items')] result = getTraktAsJson('/users/me/lists') lists = [(i['name'], i['ids']['slug']) for i in result] lists = [lists[i//2] for i in range(len(lists)*2)] for i in range(0, len(lists), 2): lists[i] = ((control.lang(32521) % lists[i][0]).encode('utf-8'), '/users/me/lists/%s/items' % lists[i][1]) for i in range(1, len(lists), 2): lists[i] = ((control.lang(32522) % lists[i][0]).encode('utf-8'), '/users/me/lists/%s/items/remove' % lists[i][1]) items += lists select = control.selectDialog([i[0] for i in items], control.lang(32515).encode('utf-8')) if select == -1: return elif select == 4: t = control.lang(32520).encode('utf-8') k = control.keyboard('', t) ; k.doModal() new = k.getText() if k.isConfirmed() else None if (new == None or new == ''): return result = __getTrakt('/users/me/lists', post={"name": new, "privacy": "private"})[0] try: slug = utils.json_loads_as_str(result)['ids']['slug'] except: return control.infoDialog(control.lang(32515).encode('utf-8'), heading=str(name), sound=True, icon='ERROR') result = __getTrakt(items[select][1] % slug, post=post)[0] else: result = __getTrakt(items[select][1], post=post)[0] icon = control.infoLabel('ListItem.Icon') if not result == None else 'ERROR' control.infoDialog(control.lang(32515).encode('utf-8'), heading=str(name), sound=True, icon=icon) except: return
def keyboard(response): try: i = os.path.join(control.dataPath, 'img') f = control.openFile(i, 'w') f.write(client.request(response)) f.close() f = control.image(450, 5, 375, 115, i) d = control.windowDialog d.addControl(f) control.deleteFile(i) d.show() t = 'Type the letters in the image' k = control.keyboard('', t) k.doModal() c = k.getText() if k.isConfirmed() else None if c == '': c = None d.removeControl(f) d.close() return c except: return
def keyboard(response): try: i = os.path.join(control.dataPath,'img') f = control.openFile(i, 'w') f.write(client.request(response)) f.close() f = control.image(450,5,375,115, i) d = control.windowDialog d.addControl(f) control.deleteFile(i) d.show() t = 'Type the letters in the image' k = control.keyboard('', t) k.doModal() c = k.getText() if k.isConfirmed() else None if c == '': c = None d.removeControl(f) d.close() return c except: return