Changes

Jump to navigation Jump to search
1,274 bytes added ,  01:39, 13 May 2007
v1.02 added nagscreens to prevent the worst bugs + catching a couple more exceptions
<pre>
import wx,os,subprocess
 
class stuff:
def read_file(self,filepath):
"""reads a file and returns the containing text"""
f = open(filepath,"r")
config = f.readlines()
f.close()
return config
 
def create_file(self,filepath,new):
"""writes content to a not existing file"""
f = open(filepath,"w")
f.write(new)
f.close()
class mainFrame(wx.Frame):
__options = {'avdump':'avdump.exe','user':'','pass':'','ext':'','misc':'','bsize':'2048','port':'','tout':'30','retries':'6','exp':'export.txt','log':'log.txt','done':'done.txt'}
__configfile='config.ini'
def read_config(self,newconfig=''):
'''read the config file and return the content'''
if not os.path.exists(self.__configfile):
for elem in self.__options: newconfig += ('%s=%s\n') %(elem,self.__options[elem]) open(self.write_config__configfile,"w").write(newconfig) for line in glob.read_fileopen(self.__configfile,"r").readlines():
if not line.endswith('='):
temp,val = line.rstrip('\n').split('=',1)
if temp == elem:
self.__options[temp] = val
 
def write_config(self,newconfig=''):
for elem in self.__options:
newconfig += ('%s=%s\n') %(elem,self.__options[elem])
glob.create_file(self.__configfile,newconfig)
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, u'Avdump GUI', wx.DefaultPosition, (350, 140), style=wx.CLOSE_BOX | wx.SYSTEM_MENU | wx.CAPTION | 0 | 0 | wx.MINIMIZE_BOX)
self.panel = wx.Panel(self, -1)
 
self.filepath = wx.TextCtrl(self.panel, -1, '', (95, 25), size=(190, 24))
self.start = wx.Button(self.panel, -1, 'Start', (90,75), (-1, -1))
self.select = wx.Button(self.panel, -1, '...', (295, 25), (25, -1))
self.scantype = wx.RadioBox(self.panel,-1,pos=(5,5),size=(-1, 59),style=wx.RA_VERTICAL,label='scantype',choices = ['Files','Folder'])
self.Bind(wx.EVT_BUTTON, self.selectClick, self.select)
self.Bind(wx.EVT_BUTTON, self.optionsClick, self.options)
self.Bind(wx.EVT_BUTTON, self.startClick, self.start)
self.read_config()
 
self.child = OptionsFrame(self, 'App')
self.child.read_config()
def selectClick(self, event,path=''):
if dialog.ShowModal() == wx.ID_OK:
path = '"' + dialog.GetPath().rstrip("\\") + '"'
 
self.filepath.Clear()
dialog.Destroy()
def startClick(self, event):
self.read_config()
self.__options['param'] = ''
if self.filepath.GetValue() == '': self.child.error('You have to select some files or folder to scan!') elif (self.__options['user'] == '' or self.__options['pass'] == ''): self.read_configchild.error("You didn't enter your username and/or password in the options menu.") elif self.__options['avdump'] == '': self.child.error('You must specify the path to avdump.exe!') elif self.__options['avdump'] == 'avdump.exe': self.child.info('You should set the _absolute_ path to avdump.exe.\nOtherwise complications might arise.') else:
if self.__options['misc'].lstrip(',') > 0:
for elem in self.__options['misc'].split(','):
else:
self.__options['param'] += ' -' + elem + ':' + self.__options[elem]
subprocess.call(('"%s" -ac:%s:%s%s %s') %(self.__options['avdump'], self.__options['user'], self.__options['pass'], self.__options['param'], self.__options['scanpath']))
def optionsClick(self, event):
self.child.refresh()
self.child.Show(True)
if not os.path.exists(self.__configfile):
self.write_config()
for line in glob.read_fileopen(self.__configfile,"r").readlines():
if not line.endswith('='):
temp,val = line.rstrip('\n').split('=',1)
for elem in self.__options:
newconfig += ('%s=%s\n') %(elem,self.__options[elem])
glob.create_file open(self.__configfile,"w").write(newconfig)
def set_misc(self,misc=''):
self.__box[misc] = True
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, 'options', wx.DefaultPosition, (301, 691), style=wx.CLOSE_BOX | wx.SYSTEM_MENU | wx.CAPTION | 0 | 0 | wx.MINIMIZE_BOX)
if dialog.ShowModal() == wx.ID_OK:
self.filepath.Clear()
self.filepath.write('"' + dialog.GetPath().rstrip("\\") + '"')
def selectlogClick(self, event):
if dialog.ShowModal() == wx.ID_OK:
self.logpath.Clear()
self.logpath.write('"' + dialog.GetPath().rstrip("\\") + '"')
def selectexpClick(self, event):
if dialog.ShowModal() == wx.ID_OK:
self.exppath.Clear()
self.exppath.write('"' + dialog.GetPath().rstrip("\\") + '"')
def selectdoneClick(self, event):
if dialog.ShowModal() == wx.ID_OK:
self.donepath.Clear()
self.donepath.write('"' + dialog.GetPath().rstrip("\\") + '"')
def saveClick(self,event):
self.update()
if self.__options['avdump'] == '': self.error('You must specify the path to avdump.exe!') elif self.__options['avdump'] == 'avdump.exe': self.info('You should set the _absolute_ path to avdump.exe.\nOtherwise complications might arise.') else: self.Show(False)
def cancelClick(self,event):
self.get_checkboxes(self.__options['misc'])
self.filepath.Clear()
self.filepath.write(self.__options['avdump'].rstrip('"').lstrip('"'))
self.username.Clear()
self.username.write(self.__options['user'])
self.retries.write(self.__options['retries'])
self.exppath.Clear()
self.exppath.write(self.__options['exp'].rstrip('"').lstrip('"'))
self.logpath.Clear()
self.logpath.write(self.__options['log'].rstrip('"').lstrip('"'))
self.donepath.Clear()
self.donepath.write(self.__options['done'].rstrip('"').lstrip('"'))
self.ext.SetValue(self.__box['ext'])
self.log.SetValue(self.__box['log'])
self.__options['pass'] = self.password.GetValue()
self.__options['ext'] = self.extention.GetValue()
temp = int(self.buffersize.GetValue())
'''make sure it's mod 8 and at least 256kb'''
try: temp = int(self.buffersize.GetValue()) if int(temp) < 256: temp = 256 if not temp % 8: temp = temp - (temp%8) except: temp = 2048
self.__options['bsize'] = unicode(temp)
try: int(self.portnumber.GetValue()) self.__options['port'] = self.portnumber.GetValue() except: self.__options['port'] = ''
self.__options['tout'] = self.timeout.GetValue()
temp = int(self.timeout.GetValue())
'''make sure it's at least 20'''
try: if int(temp) < 20: temp = 20 except: temp = 2030
self.__options['tout'] = unicode(temp)
try: int(self.retries.GetValue()) self.__options['retries'] = self.retries.GetValue() except: self.__options['retries'] = 6
self.__options['exp'] = self.exppath.GetValue()
self.__options['log'] = self.logpath.GetValue()
self.write_config()
def error(self,text):
message = wx.MessageDialog(self,text,style=wx.ICON_ERROR | wx.OK)
message.ShowModal()
 
def info(self,text):
message = wx.MessageDialog(self,text,style=wx.ICON_INFORMATION | wx.OK)
message.ShowModal()
class App(wx.App):
def OnInit(self):
if __name__ == '__main__':
glob = stuff()
app = App(True)
app.MainLoop()
</pre>

Navigation menu

MediaWiki spam blocked by CleanTalk.