rendered paste bodyimport re, os, sys, ntimport xbmc, xbmcguifrom string import split, replace, findfrom ConfigParser import ConfigParser, SafeConfigParserfrom StringIO import StringIOtry: Emulating = xbmcgui.Emulatingexcept: Emulating = FalseACTION_PREVIOUS_MENU = 10Title = "NZBsRus.com"# If you are running this script on your Xbox, use:NZB_Path = sys.path[0]+'\\'# Root = "Q:\\scripts\\NZBsRus\\Images\\"Downloads = "Q:\\scripts\\NZBsRus\\Downloads\\"#Root = "Q:\\scripts\\NZBsRus\\Images\\"#Downloads = "Q:\\scripts\\NZBsRus\\Downloads\\"# If you are Emulating this script on your PC, Use:# Root = "/Images"# Downloads = "/Downloads"# NZBsRus.com Login Information# global NZB_User# global NZB_PassNZB_User = ""NZB_Pass = ""# FTP Server Login Information# global FTP_Host# global FTP_Port# global FTP_User# global FTP_Pass# global FTP_PathFTP_Host = ""FTP_Port = ""FTP_User = ""FTP_Pass = ""FTP_Path = ""button_normal="button-nofocus.png"button_hl="button-focus.png"lcf="iconlist-nofocus.png"lcnf="iconlist-focus.png"fc = "0xFFFFFFFF"def SetupButtons(self,x,y,w,h,a="Vert",f="button-focus.png",nf="button-nofocus.png",gap=0,txtOffSet=0,font='font13'): self.numbut = 0 self.butx = x self.buty = y self.butwidth = w self.butheight = h self.butalign = a self.butfocus_img = f self.butnofocus_img = nf self.gap = gap self.txtOffSet = txtOffSet self.font = font def AddButton(self,text): if self.butalign == "Hori": Buttons = xbmcgui.ControlButton(self.butx + (self.numbut * self.butwidth + self.gap * self.numbut), self.buty, self.butwidth, self.butheight, text, self.butfocus_img, self.butnofocus_img, textColor=fc) self.addControl(Buttons) elif self.butalign == "Vert": Buttons = xbmcgui.ControlButton(self.butx, self.buty + (self.numbut * self.butheight + self.gap * self.numbut), self.butwidth, self.butheight, text, self.butfocus_img, self.butnofocus_img, textColor=fc) self.addControl(Buttons) self.numbut += 1 return Buttons def Ini_Check(): if os.path.isfile(NZB_Path + 'Settings.ini') == False: print "Settings.ini file not found!" Brk = os.linesep curfile=file(sys.path[0]+'\\' + "Settings.ini",'wb') curfile.write("[NZB]" + Brk + "Username=-" + Brk + "Password=-") curfile.close() #print "[NZB]" + Brk + "Username=" + Brk + "Password=" curfile=file(sys.path[0]+'\\' + "Settings.ini",'ab') curfile.write(Brk + Brk + "[FTP]" + Brk + "Host=-" + Brk + "Port=-" + Brk + "Username=-" + Brk + "Password=-" + Brk + "Path=-") curfile.close() curfile = SafeConfigParser() curfile.read(NZB_Path + 'Settings.ini') FTP_Host = str(curfile.get('FTP', 'Host')) FTP_Port = str(curfile.get('FTP', 'Port')) FTP_User = str(curfile.get('FTP', 'Username')) FTP_Pass = str(curfile.get('FTP', 'Password')) FTP_Path = str(curfile.get('FTP', 'Path')) print "Value Host: " + FTP_Host print "Value Port: " + FTP_Port print "Value User: " + FTP_User print "Value Pass: " + FTP_Pass print "Value Path: " + FTP_Path elif os.path.isfile(NZB_Path + 'Settings.ini') == True: print "Settings.ini file was found, retrieving values" curfile = SafeConfigParser() curfile.read(NZB_Path + 'Settings.ini') if curfile.has_section('FTP'): FTP_Host = str(curfile.get('FTP', 'Host')) FTP_Port = str(curfile.get('FTP', 'Port')) FTP_User = str(curfile.get('FTP', 'Username')) FTP_Pass = str(curfile.get('FTP', 'Password')) FTP_Path = str(curfile.get('FTP', 'Path')) print "Value Host: " + FTP_Host print "Value Port: " + FTP_Port print "Value User: " + FTP_User print "Value Pass: " + FTP_Pass print "Value Path: " + FTP_Path class Settings_Main(xbmcgui.WindowDialog): def __init__(self): if Emulating: xbmcgui.Window.__init__(self) """ Define your sript's Window size here: """ self.scaleX = ( float(self.getWidth()) / float(720) ) self.scaleY = ( float(self.getHeight()) / float(576) ) """ Add your GUI images to your script here: """ self.addControl(xbmcgui.ControlImage(165,135,422,230, "dialog-panel.png")) # self.addControl(xbmcgui.ControlImage(0,0,720,480,"Background.png")) # self.addControl(xbmcgui.ControlImage(0,0,247,70, sys.path[0]+'\\' + "Logo.png")) """ Create your Menu buttons here: """ SetupButtons(self, int(176 * self.scaleX),int(145 * self.scaleY), int(102 * self.scaleX), int(33 * self.scaleY), "Hori", button_hl,button_normal, 0,37) self.Defaultbtn = AddButton(self,'Options') self.FTPbtn = AddButton(self,'FTP') self.SMBbtn = AddButton(self,'SMB') self.Miscbtn = AddButton(self,'Misc.') """ Create a Status Label for use in your script: """ self.lblStatus = xbmcgui.ControlFadeLabel(int(215 * self.scaleX),int(128 * self.scaleY), int(500 * self.scaleX), int(90 * self.scaleY), "font12", "0xFFFFFFFF") self.addControl(self.lblStatus) """ Add your GUI items """ """ Setup your GUI Navigation """ self.Defaultbtn.controlLeft(self.Miscbtn) self.Defaultbtn.controlRight(self.FTPbtn) self.FTPbtn.controlLeft(self.Defaultbtn) self.FTPbtn.controlRight(self.SMBbtn) self.SMBbtn.controlLeft(self.FTPbtn) self.SMBbtn.controlRight(self.Miscbtn) self.Miscbtn.controlLeft(self.SMBbtn) self.Miscbtn.controlRight(self.Defaultbtn) self.setFocus(self.Defaultbtn) """ The below section is where you define your GUI items' Actions when executed """ def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() def onControl(self, control): global curPage global cater if control == self.Defaultbtn: cater = "Default" unps = Settings_Default() unps .doModal() del unps if control == self.FTPbtn: cater = "FTP" unps = Settings_FTP() unps .doModal() del unps if control == self.SMBbtn: cater = "SMB" unps = Settings_Default() unps .doModal() del unps if control == self.Miscbtn: cater = "Misc" unps = Settings_Default() unps .doModal() del unpsclass Settings_Default(xbmcgui.WindowDialog): def __init__(self): if Emulating: xbmcgui.WindowDialog.__init__(self) #curfile = SafeConfigParser() #curfile.read(NZB_Path + 'Cache\\Settings.ini') #NZB_User = str(curfile.get('NZB', 'Username')) #NZB_Pass = str(curfile.get('NZB', 'Password')) """ Define your sript's Window size here: """ self.scaleX = ( float(self.getWidth()) / float(720) ) self.scaleY = ( float(self.getHeight()) / float(576) ) """ Create your Menu buttons here: """ # self.addControl(xbmcgui.ControlLabel(int(375 * self.scaleX),int(93 * self.scaleY), int(400 * self.scaleX), int(30 * self.scaleY), "NZBsRus.com - Login Settings" "font12", "0xFFFFFFFF") # self.addControl(xbmcgui.ControlImage(165,135,420,230, "dialog-panel.png")) self.addControl(xbmcgui.ControlLabel(int(260 * self.scaleX),int(175 * self.scaleY), int(500 * self.scaleX), int(90 * self.scaleY), "NZBsRus.com - Login Settings", "special13", "0xFFb7c371")) self.addControl(xbmcgui.ControlLabel(int(200 * self.scaleX),int(224 * self.scaleY), int(400 * self.scaleX), int(30 * self.scaleY), "Please Enter Your NZBsRuS\nUsername & Password:", "font10", "0xFF878787")) self.NZBUserlbl = xbmcgui.ControlLabel(int(310 * self.scaleX),int(286 * self.scaleY), int(400 * self.scaleX), int(30 * self.scaleY), NZB_User, "font10", "0xFFb7c371") self.NZBPasslbl = xbmcgui.ControlLabel(int(310 * self.scaleX),int(314 * self.scaleY), int(400 * self.scaleX), int(30 * self.scaleY), NZB_Pass, "font10", "0xFFb7c371") SetupButtons(self, int(195 * self.scaleX),int(282 * self.scaleY), int(100 * self.scaleX), int(30 * self.scaleY), "Vert", button_hl,button_normal, 2, 37) self.NZBUserbtn = AddButton(self,'Username: ') self.NZBPassbtn = AddButton(self,'Password: ') SetupButtons(self, int(280 * self.scaleX),int(370 * self.scaleY), int(100 * self.scaleX), int(30 * self.scaleY), "Hori", button_hl,button_normal, 2, 37) self.NZBSavebtn = AddButton(self,'Save') self.NZBCancelbtn = AddButton(self,'Cancel') """ Create a Status Label for use in your script: """ self.lblStatus = xbmcgui.ControlFadeLabel(int(215 * self.scaleX),int(128 * self.scaleY), int(500 * self.scaleX), int(90 * self.scaleY), "font12", "0xFFFFFFFF") self.addControl(self.lblStatus) self.addControl(self.NZBUserlbl) self.addControl(self.NZBPasslbl) """ Add your GUI items """ """ Setup your GUI Navigation """ self.NZBUserbtn.controlUp(self.NZBSavebtn) self.NZBUserbtn.controlDown(self.NZBPassbtn) self.NZBPassbtn.controlUp(self.NZBUserbtn) self.NZBPassbtn.controlDown(self.NZBSavebtn) self.NZBSavebtn.controlUp(self.NZBPassbtn) self.NZBSavebtn.controlDown(self.NZBUserbtn) self.NZBSavebtn.controlLeft(self.NZBCancelbtn) self.NZBSavebtn.controlRight(self.NZBCancelbtn) self.NZBCancelbtn.controlUp(self.NZBPassbtn) self.NZBCancelbtn.controlDown(self.NZBUserbtn) self.NZBCancelbtn.controlLeft(self.NZBSavebtn) self.NZBCancelbtn.controlRight(self.NZBSavebtn) self.setFocus(self.NZBUserbtn) def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() def onControl(self, control): if control == self.NZBSavebtn: self.nzbSaveInfo() if control == self.NZBCancelbtn: self.close() if control == self.NZBUserbtn: global NZB_User tempnzb = self.nzbkeyboard(NZB_User) if tempnzb != "": NZB_User = tempnzb self.NZBUserlbl.setLabel(NZB_User) else: dialog = xbmcgui.Dialog().ok(Title,"Your Username was not saved. Please try again.") if control == self.NZBPassbtn: global NZB_Pass tempnzb = self.nzbkeyboard(NZB_Pass) if tempnzb != "": NZB_Pass = tempnzb self.NZBPasslbl.setLabel(NZB_Pass) else: dialog = xbmcgui.Dialog().ok(Title,"Your Password was not saved. Please try again.") def nzbSaveInfo(self): nzbfile = SafeConfigParser() setfile = str(nzbfile.read(NZB_Path + 'Cache\\Settings.ini')) setfile.set('NZB', 'Username', NZB_User) setfile.set('NZB', 'Pass', NZB_Pass) #curfile=file(sys.path[0]+'\\' + "Cache\\Settings.ini",'wb') #curfile.write("[NZB]" + Brk + "Username=" + NZB_User + Brk + "Password=" + NZB_Pass) setfile.close() dialog = xbmcgui.Dialog().ok(Title,"Settings Saved") self.close() def nzbkeyboard(self, nzb): # Open the Virutal Keyboard. keyboard = xbmc.Keyboard(nzb) keyboard.doModal() if (keyboard.isConfirmed()): return keyboard.getText() else: return nzbclass Settings_FTP(xbmcgui.WindowDialog): def __init__(self): if Emulating: xbmcgui.WindowDialog.__init__(self) self.scaleX = ( float(self.getWidth()) / float(720) ) self.scaleY = ( float(self.getHeight()) / float(576) ) """ Create your Menu buttons here: """ # self.addControl(xbmcgui.ControlLabel(int(375 * self.scaleX),int(93 * self.scaleY), int(400 * self.scaleX), int(30 * self.scaleY), "NZBsRus.com - Login Settings" "font12", "0xFFFFFFFF") # self.addControl(xbmcgui.ControlImage(165,135,420,230, "dialog-panel.png")) self.addControl(xbmcgui.ControlLabel(int(260 * self.scaleX),int(175 * self.scaleY), int(500 * self.scaleX), int(90 * self.scaleY), "FTP - Login Settings", "special13", "0xFFb7c371")) self.addControl(xbmcgui.ControlLabel(int(200 * self.scaleX),int(224 * self.scaleY), int(400 * self.scaleX), int(30 * self.scaleY), "Please Enter Your FTP's\nLogin Information:", "font10", "0xFF878787")) self.FTPHostlbl = xbmcgui.ControlLabel(int(450 * self.scaleX),int(286 * self.scaleY), int(400 * self.scaleX), int(30 * self.scaleY), FTP_Host, "font10", "0xFFb7c371") self.FTPPortlbl = xbmcgui.ControlLabel(int(310 * self.scaleX),int(286 * self.scaleY), int(400 * self.scaleX), int(30 * self.scaleY), FTP_Port, "font10", "0xFFb7c371") self.FTPUserlbl = xbmcgui.ControlLabel(int(310 * self.scaleX),int(214 * self.scaleY), int(400 * self.scaleX), int(30 * self.scaleY), FTP_User, "font10", "0xFFb7c371") self.FTPPasslbl = xbmcgui.ControlLabel(int(310 * self.scaleX),int(342 * self.scaleY), int(400 * self.scaleX), int(30 * self.scaleY), FTP_Pass, "font10", "0xFFb7c371") self.FTPPathlbl = xbmcgui.ControlLabel(int(310 * self.scaleX),int(370 * self.scaleY), int(400 * self.scaleX), int(30 * self.scaleY), FTP_Path, "font10", "0xFFb7c371") SetupButtons(self, int(195 * self.scaleX),int(282 * self.scaleY), int(100 * self.scaleX), int(30 * self.scaleY), "Hori", button_hl,button_normal, 2, 37) self.FTPHostbtn = AddButton(self,'Host:') self.FTPPortbtn = AddButton(self,'Port:') SetupButtons(self, int(195 * self.scaleX),int(314 * self.scaleY), int(100 * self.scaleX), int(30 * self.scaleY), "Vert", button_hl,button_normal, 2, 37) self.FTPUserbtn = AddButton(self,'Username:') self.FTPPassbtn = AddButton(self,'Password:') self.FTPPathbtn = AddButton(self,'Path:') SetupButtons(self, int(280 * self.scaleX),int(370 * self.scaleY), int(100 * self.scaleX), int(30 * self.scaleY), "Hori", button_hl,button_normal, 2, 37) self.FTPSavebtn = AddButton(self,'Save') self.FTPCancelbtn = AddButton(self,'Cancel') """ Create a Status Label for use in your script: """ self.lblStatus = xbmcgui.ControlFadeLabel(int(215 * self.scaleX),int(128 * self.scaleY), int(500 * self.scaleX), int(90 * self.scaleY), "font12", "0xFFFFFFFF") self.addControl(self.lblStatus) self.addControl(self.FTPHostlbl) self.addControl(self.FTPPortlbl) self.addControl(self.FTPUserlbl) self.addControl(self.FTPPasslbl) self.addControl(self.FTPPathlbl) """ Add your GUI items """ """ Setup your GUI Navigation """ self.FTPHostbtn.controlUp(self.FTPSavebtn) self.FTPHostbtn.controlDown(self.FTPPortbtn) self.FTPPortbtn.controlUp(self.FTPHostbtn) self.FTPPortbtn.controlDown(self.FTPUserbtn) self.FTPUserbtn.controlUp(self.FTPPortbtn) self.FTPUserbtn.controlDown(self.FTPPassbtn) self.FTPPassbtn.controlUp(self.FTPUserbtn) self.FTPPassbtn.controlDown(self.FTPPathbtn) self.FTPPathbtn.controlUp(self.FTPPassbtn) self.FTPPathbtn.controlDown(self.FTPSavebtn) self.FTPSavebtn.controlUp(self.FTPPathbtn) self.FTPSavebtn.controlDown(self.FTPHostbtn) self.FTPSavebtn.controlLeft(self.FTPCancelbtn) self.FTPSavebtn.controlRight(self.FTPCancelbtn) self.FTPCancelbtn.controlUp(self.FTPPassbtn) self.FTPCancelbtn.controlDown(self.FTPHostbtn) self.FTPCancelbtn.controlLeft(self.FTPSavebtn) self.FTPCancelbtn.controlRight(self.FTPSavebtn) self.setFocus(self.FTPHostbtn) def onAction(self, action): if action == ACTION_PREVIOUS_MENU: self.close() def onControl(self, control): if control == self.FTPSavebtn: self.ftpSaveInfo() if control == self.FTPCancelbtn: self.close() if control == self.FTPHostbtn: global FTP_Host tempftp = self.ftpkeyboard(FTP_Host) if tempftp != "": FTP_Host = tempftp self.FTPHostlbl.setLabel(FTP_Host) else: dialog = xbmcgui.Dialog().ok(Title,"Your IP Adress was not saved. Please try again.") if control == self.FTPPortbtn: global FTP_Port tempftp = self.ftpkeyboard(FTP_Port) if tempftp != "": FTP_Port = tempftp self.FTPPortlbl.setLabel(FTP_Port) else: dialog = xbmcgui.Dialog().ok(Title,"Your Port Number was not saved. Please try again.") if control == self.FTPUserbtn: global FTP_User tempftp = self.ftpkeyboard(FTP_User) if tempftp != "": FTP_User = tempftp self.FTPUserlbl.setLabel(FTP_User) else: dialog = xbmcgui.Dialog().ok(Title,"Your Username was not saved. Please try again.") if control == self.FTPPassbtn: global FTP_Pass tempftp = self.ftpkeyboard(FTP_Pass) if tempftp != "": FTP_Pass = tempftp self.FTPPasslbl.setLabel(FTP_Pass) else: dialog = xbmcgui.Dialog().ok(Title,"Your Password was not saved. Please try again.") if control == self.FTPPathbtn: global FTP_Path tempftp = self.ftpkeyboard(FTP_Path) if tempftp != "": FTP_Path = tempftp self.FTPPathlbl.setLabel(FTP_Path) else: dialog = xbmcgui.Dialog().ok(Title,"Your Remote Path was not saved. Please try again.") def ftpSaveInfo(self): #Brk = os.linesep #curfile=file(sys.path[0]+'\\' + "Cache\\Settings.ini",'ab') #curfile.write("[FTP]" + Brk + "Host=" + FTP_Host + Brk + "Port=" + FTP_Port + Brk + "Username=" + FTP_User + Brk + "Password=" + FTP_Pass + Brk + "Path=" + FTP_Path) #curfile.close() curfile = SafeConfigParser() curfile.read(NZB_Path + 'Cache\\Settings.ini') curfile.set('FTP', 'Host', FTP_Host) curfile.set('FTP', 'Port', FTP_Port) curfile.set('FTP', 'Username', NZB_User) curfile.set('FTP', 'Pass', NZB_Pass) curfile.set('FTP', 'Path', FTP_Path) curfile.close() dialog = xbmcgui.Dialog().ok(Title,"Settings Saved") self.close() def ftpkeyboard(self, ftp): # Open the Virutal Keyboard. keyboard = xbmc.Keyboard(ftp) keyboard.doModal() if (keyboard.isConfirmed()): return keyboard.getText() else: return ftp#def LoadSettings():# """ Here we will read the settings file to get the Username and password """# # Check if file exists if not show username setting window :P# if os.path.isfile(NZB_Path + "Cache\\Settings.ini") == False:# if Emulating:# print "No settings, Press ok to contuine to set them"# else:# Brk = os.linesep# curfile=file(sys.path[0]+'\\' + "Cache\\Settings.ini",'wb')# curfile.write("[NZB]" + Brk + "Username=" + Brk + "Password=")# curfile.close()# curfile=file(sys.path[0]+'\\' + "Cache\\Settings.ini",'ab')# curfile.write("[FTP]" + Brk + Brk + "Host=" + Brk + "Port=" + Brk + "Username=" + Brk + "Password=" + Brk + "Path=")# curfile.close()# # self.close()# xbmcgui.Dialog().ok(Title,"No settings, Press ok to contuine to set them")# unps = Settings_Default()# unps .doModal()# del unps# else:# curfile = SafeConfigParser()# curfile.read(NZB_Path + 'Cache\\Settings.ini')# NZB_User = str(curfile.get('NZB', 'Username'))# NZB_Pass = str(curfile.get('NZB', 'Password'))# FTP_Host = str(curfile.get('FTP', 'Host'))# FTP_Port = str(curfile.get('FTP', 'Port'))# FTP_Username = str(curfile.get('FTP', 'Username'))# FTP_Password = str(curfile.get('FTP', 'Password'))# FTP_Path = str(curfile.get('FTP', 'Path')) def main(): print "Starting " + Title + "\nChecking for Settings.ini file" Ini_Check() print "Settings.ini file ok, loading Settings_Main()" mainwin = Settings_Main() mainwin .doModal() del mainwinif __name__ == "__main__": main()