All pastes #49978 Raw Edit

Unnamed

public python v1 · immutable
#49978 ·published 2006-04-19 17:52 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 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 + 'Cache\\Settings.ini') == False:        print "Settings.ini file not found!"        Brk = os.linesep        curfile=file(NZB_Path + "Cache\\Settings.ini",'wb')        curfile.write("[NZB]" + Brk + "Username=-" + Brk + "Password=-")        # curfile.close()        # print "[NZB]" + Brk + "Username=" + Brk + "Password="        curfile=file(NZB_Path + "Cache\\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 + 'Cache\\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 + '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'):            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()