All pastes #50013 Raw Edit

Anonymous

public python v1 · immutable
#50013 ·published 2006-04-19 21:30 UTC
rendered paste body
import 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 Informationglobal NZB_Userglobal NZB_PassNZB_User = ""NZB_Pass = ""# FTP Server Login Informationglobal FTP_Hostglobal FTP_Portglobal FTP_Userglobal FTP_Passglobal 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 Buttonsclass Settings_Main(xbmcgui.WindowDialog):    def __init__(self):        print "Settings_Main: Loading GUI Settings"        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"))	print "Settings_Main: Creating Buttons"        """ 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.')	print "Settings_Main: Creating Status Label"         """ 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 """        print "Settings_Main: Adding Button Navigation & Default Focus"        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 """    print "Settings_Main: Setting Button Options"    def onAction(self, action):        if action == ACTION_PREVIOUS_MENU:            self.close()    def onControl(self, control):        if control == self.Defaultbtn:            unps = Settings_Default()            unps .doModal()            del unps        if control == self.FTPbtn:            unps = Settings_FTP()            unps .doModal()            del unps        if control == self.SMBbtn:            unps = Settings_Default()            unps .doModal()            del unps        if control == self.Miscbtn:            unps = Settings_Default()            unps .doModal()            del unps    print "Settings_Main: ***End Of Class***"        class Settings_Default(xbmcgui.WindowDialog):    def __init__(self):        print "Settings_Default: Loading GUI Settings"        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"))	print "Settings_Default: Creating Buttons & Labels"        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: """	print "Settings_Default: Adding Info Labels"            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)        """ Setup your GUI Navigation """        print "Settings_Default: Adding Button Navigation & Default Focus"        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)    print "Settings_Default: Setting Button Options"    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:	    print "Settings_Default: Keyboard - NZB_User"            global NZB_User            tempnzb = unikeyboard(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:            print "Settings_Default: Keyboard - NZB_Pass"            global NZB_Pass            tempnzb = unikeyboard(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):	print "Settings_Default: Saving Keyboard - Entries"        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()	print "Settings_Default: Saving Keyboard - Saved"        dialog = xbmcgui.Dialog().ok(Title,"Settings Saved")        self.close()	print "Settings_Default: ***End Of Class***"#    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):        print "Settings_FTP: Loading GUI Settings"        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"))	print "Settings_FTP: Creating Buttons & Labels"        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: """	print "Settings_FTP: Adding Info Labels"        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)                """ Setup your GUI Navigation """        print "Settings_FTP: Adding Button Navigation & Default Focus"        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)    print "Settings_FTP: Setting Button Options"    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:	    print "Settings_FTP: Keyboard - FTP_Host"            global FTP_Host            tempftp = unikeyboard(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:	    print "Settings_FTP: Keyboard - FTP_Port"            global FTP_Port            tempftp = unikeyboard(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:	    print "Settings_FTP: Keyboard - FTP_User"            global FTP_User            tempftp = unikeyboard(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:	    print "Settings_FTP: Keyboard - FTP_Pass"            global FTP_Pass            tempftp  = unikeyboard(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:	    print "Settings_FTP: Keyboard - FTP_Path"            global FTP_Path            tempftp  = unikeyboard(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()	print "Settings_FTP: Saving Keyboard - Entries"        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()	print "Settings_FTP: Saving Keyboard - Saved"        dialog = xbmcgui.Dialog().ok(Title,"Settings Saved")        self.close()	print "Settings_FTP: ***End Of Class***"		#    def ftpkeyboard(self, ftp):    # Open the Virutal Keyboard.#        keyboard = xbmc.Keyboard(ftp)#        keyboard.doModal()#        if (keyboard.isConfirmed()):#            return keyboard.getText()#        else:#            return ftpdef Ini_Check():    if os.path.isfile(NZB_Path + 'Cache\\Settings.ini') == False:        print "Ini_Check: Settings.ini file not found!"        Brk = os.linesep        print "Ini_Check: curfile =  " + NZB_Path + "Cache\\Settings.ini  Write"        curfile=file(NZB_Path + "Cache\\Settings.ini",'wb')        print "Ini_Check: curfile Write:\n[NZB]\nUsername=Loaded!\nPassword=Loaded!"        curfile.write("[NZB]" + Brk + "Username=Loaded!" + Brk + "Password=Loaded!")        # curfile.close()        # print "[NZB]" + Brk + "Username=" + Brk + "Password="        print "Ini_Check: curfile =  " + NZB_Path + "Cache\\Settings.ini  Append"        curfile=file(NZB_Path + "Cache\\Settings.ini",'ab')        print "Ini_Check: curfile Write:\n[FTP]\nHost=Loaded!\nPort=Loaded!\nUsername=Loaded!\nPassword=Loaded!\nPath=Loaded!"        curfile.write(Brk + Brk + "[FTP]" + Brk + "Host=Enter IP Address Here" + Brk + "Port=Enter Port # Here" + Brk + "Username=Enter Username Here" + Brk + "Password=Enter Password Here" + Brk + "Path=Enter Remote Path Here")        curfile.close()        curfile = SafeConfigParser()        print "Ini_Check: Reading - " + NZB_Path + "Cache\\Settings.ini"        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_User = str(curfile.get('FTP', 'Username'))        FTP_Pass = str(curfile.get('FTP', 'Password'))        FTP_Path = str(curfile.get('FTP', 'Path'))        print "Ini_Check: Get NZB_User - " + NZB_User        print "Ini_Check: Get NZB_Pass - " + NZB_Pass        print "Ini_Check: Get FTP_Host - " + FTP_Host        print "Ini_Check: Get FTP_Port - " + FTP_Port        print "Ini_Check: Get FTP_User - " + FTP_User        print "Ini_Check: Get FTP_Pass - " + FTP_Pass        print "Ini_Check: Get FTP_Path - " + FTP_Path    elif os.path.isfile(NZB_Path + 'Cache\\Settings.ini') == True:        print "Settings.ini file was found, retrieving values"        curfile = SafeConfigParser()        curfile.read(NZB_Path + 'Cache\\Settings.ini')        if curfile.has_section('FTP'):            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_User = str(curfile.get('FTP', 'Username'))            FTP_Pass = str(curfile.get('FTP', 'Password'))            FTP_Path = str(curfile.get('FTP', 'Path'))            print "Ini_Check: Get NZB_User - " + NZB_User            print "Ini_Check: Get NZB_Pass - " + NZB_Pass            print "Ini_Check: Get FTP_Host - " + FTP_Host            print "Ini_Check: Get FTP_Port - " + FTP_Port            print "Ini_Check: Get FTP_User - " + FTP_User            print "Ini_Check: Get FTP_Pass - " + FTP_Pass            print "Ini_Check: Get FTP_Path - " + FTP_Path            def unikeyboard(Default):    keyboard = xbmc.Keyboard(Default)    print "unikeyboard: keyboard = xbmc.Keyboard(Default)"    keyboard.doModal()    if (keyboard.isConfirmed()):        print "unikeyboard: Keyboard Is Confirmed"        return keyboard.getText()    else:        print "unikeyboard: Keyboard Not Confirmed, returning Default"        return Default            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()