rendered paste bodyimport xml.dom.minidomimport urllib,urllib2 , reimport xbmc, xbmcguifrom string import split, replace, findtry: Emulating = xbmcgui.Emulatingexcept: Emulating = False# Coded by ThreeZee (threezee@comcast.net)# Find me on EFNet (irc.efnet.net) in #CeneXACTION_PREVIOUS_MENU = 10curPage = 1#Base URL for CJ ListCJURL = "http://www.steakandcheese.com/content/browse.asp?type=1&page="Root = "Q:\\scripts\\3xPaK\\Images\\SC\\"#Root = "CJ/"#Pre-define global ListsCJVid_ID = []CJVid_Title = []class CJ_Main(xbmcgui.Window): def __init__(self): if Emulating: xbmcgui.Window.__init__(self) self.scaleX = ( float(self.getWidth()) / float(720) ) self.scaleY = ( float(self.getHeight()) / float(576) ) self.addControl(xbmcgui.ControlImage(0,0,720,480, Root + "SC_Background.jpg")) self.addControl(xbmcgui.ControlImage(int(12 * self.scaleX),int(130 * self.scaleY),int(170 * self.scaleX),int(407 * self.scaleY), Root + "SC_Panel.jpg")) self.addControl(xbmcgui.ControlImage(int(((self.getWidth() - 627) / 2) * self.scaleX),int(22 * self.scaleY),int(650 * self.scaleX),int(130 * self.scaleY), Root + "SC_Banner.jpg")) self.refreshbtn = xbmcgui.ControlButton(int(50 * self.scaleX),int(160 * self.scaleY), int(100 * self.scaleX), int(40 * self.scaleY), "Refresh") self.nextbtn = xbmcgui.ControlButton(int(50 * self.scaleX),int(225 * self.scaleY), int(100 * self.scaleX), int(40 * self.scaleY), "Next Page") self.prevbtn = xbmcgui.ControlButton(int(50 * self.scaleX),int(267 * self.scaleY), int(100 * self.scaleX), int(40 * self.scaleY), "Prev Page") self.exitbtn = xbmcgui.ControlButton(int(50 * self.scaleX),int(482 * self.scaleY), int(100 * self.scaleX), int(40 * self.scaleY), "Exit") self.vidList = xbmcgui.ControlList(int(185 * self.scaleX),int(160 * self.scaleY), int(490 * self.scaleX), int(365 * self.scaleY)) self.lblStatus = xbmcgui.ControlFadeLabel(int(205 * self.scaleX),int(133 * self.scaleY), int(500 * self.scaleX), int(90 * self.scaleY), "font12", "0xFFFFFFFF") self.addControl(self.lblStatus) self.lblStatus.addLabel("SteakandCheese.com - Page " + str(curPage)) self.addControl(self.vidList) self.addControl(self.refreshbtn) self.addControl(self.nextbtn) self.addControl(self.exitbtn) self.addControl(self.prevbtn) self.refreshbtn.controlDown(self.nextbtn) self.refreshbtn.controlRight(self.vidList) self.refreshbtn.controlUp(self.exitbtn) self.exitbtn.controlRight(self.vidList) self.exitbtn.controlDown(self.refreshbtn) self.exitbtn.controlUp(self.prevbtn) self.nextbtn.controlDown(self.prevbtn) self.nextbtn.controlRight(self.vidList) self.nextbtn.controlUp(self.refreshbtn) self.prevbtn.controlRight(self.vidList) self.prevbtn.controlDown(self.exitbtn) self.prevbtn.controlUp(self.nextbtn) self.vidList.controlLeft(self.refreshbtn) self.setFocus(self.refreshbtn) self.getCJList() def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() def onControl(self, control): global curPage if control == self.refreshbtn: curPage = 1 self.getCJList() if control == self.nextbtn: curPage = int(curPage) + 1 self.getCJList() if control == self.prevbtn: if int(curPage) == 1: return curPage = int(curPage) - 1 if control == self.vidList: tmpStreamItem = self.vidList.getSelectedPosition() dialog = xbmcgui.Dialog() progress = xbmcgui.DialogProgress() progress.create("SteakandCheese.com", "Fetching video file... " + CJVid_Title[tmpStreamItem]) progress.update(10) try: #Open socket with page URL http://www.steakandcheese.com/content/detail.asp?ID=24877&type=1&page=1 CJ_Sock = urllib.urlopen("http://www.steakandcheese.com/content/detail.asp?ID=" + str(CJVid_ID[tmpStreamItem]) + "&type=1&page=1&subtype=1") progress.update(30) CJ_HTML = CJ_Sock.read() progress.update(60) CJ_Sock.close() # http://www.steakandcheese.com/downloads/Break_Dancing_Pilot.wmv # name="Filename" value="/downloads/(.*)"> CJ_re = re.compile('<td><a href="(.*) onMouseOver="changeImages(\'detailOptions_06\'') progress.update(90) CJ_Vids = CJ_re.search(CJ_HTML) progress.close() if CJ_Vids: xbmc.Player().play(CJ_Vids.group(1)) else: dialog.ok("FreakHole.com","no such movie found") except: progress.close() dialog.ok("FreakHole.com","Unable to get ID=" + str(CJVid_ID[tmpStreamItem])) def getCJList(self): global curPage dialog = xbmcgui.Dialog() progress = xbmcgui.DialogProgress() progress.create("SteakandCheese.com", "Fetching video index...") self.lblStatus.reset() self.lblStatus.addLabel("SteakandCheese.com - Page " + str(curPage)) progress.update(10) try: #Open socket with page URL CJ_Sock = urllib.urlopen(CJURL + str(curPage)) progress.update(30) CJ_HTML = CJ_Sock.read() progress.update(60) CJ_Sock.close() # <a href="detail.asp?ID=24911&type=1&page=1"><b>Claus_In_The_Hood.wmv</b></a></td><td align="center" nowrap valign="middle" style="line-height:16px;">December 25, 2005</td> CJ_re = re.compile('ID=(.*?)&type=1&page=.*?"><b>(.*?)</b></a></td><td align="center" nowrap valign="middle" style="line-height:16px;">(.*?)</td>') progress.update(90) CJ_Vids1 = CJ_re.findall(CJ_HTML) progress.close() CJVid_ID[0:50] = "" CJVid_Title[0:50] = "" self.vidList.reset() for tmpVid in CJ_Vids1: self.vidList.addItem(tmpVid[1]) CJVid_ID.append(tmpVid[0]) CJVid_Title.append(tmpVid[1]) self.setFocus(self.vidList) except: progress.close() dialog.ok("SteakandCheese.com","Could not retrieve page " + Current_Page) Display_Main = CJ_Main()Display_Main.doModal()del Display_Main