home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / ArgentCompta / Bankperfect / bp.exe / Scripts / Backups / backups.py < prev   
Text File  |  2007-03-30  |  3KB  |  74 lines

  1. import BP, nt, time
  2. files = []
  3. online = 0
  4.  
  5. def stat(path):
  6.   try:
  7.     if nt.lstat(path)[0] & 0170000 == 0040000: return 2
  8.     return 1
  9.   except:
  10.     return 0
  11.  
  12. def filedate(path):
  13.   d = time.gmtime(nt.lstat(path)[8])
  14.   return (d[0], d[1], d[2])
  15.  
  16. def restore(Sender):
  17.   i = List.ItemIndex
  18.   if i > -1:
  19.     s = BP.OpenDialog("Restaurer sous le nom...", "", ".bp", "Fichier BP|*.bp")
  20.     if s != "":
  21.       if stat(s) > 0: BP.MsgBox("Choisissez un autre nom :\nUn fichier portant ce nom existe dΘjα", 64)
  22.       else:
  23.         if online: BP.GetURL("ftp_get:%s|%s|default_bp_login|default_bp_password@default_bp_url" %(s, files[i][1]))
  24.         else: BP.GetURL("copy_file:%s|%s" %(b + files[i][1], s))
  25.         if BP.MsgBox("Le fichier a ΘtΘ crΘΘ.\nSouhaitez-vous l'ouvrir ?", 36) == 6:
  26.           BP.BankPerfectOpenFile(s, "")
  27.         f.Close()
  28.  
  29. def LoadFiles(Sender):
  30.   global files, online
  31.   LTitle.Caption = Sender.Caption
  32.   if Sender == BLocal:
  33.     online = 0
  34.     files = nt.listdir(b)
  35.     files = [(filedate(b + f), f) for f in files if stat(b + f) == 1 and f[-4:] == ".bp0"]
  36.     files.sort()
  37.     files.reverse()
  38.     List.Items.Text = "\n".join(["%.2d/%.2d/%.4d     %s" %(f[0][2], f[0][1], f[0][0], f[1]) for f in files])
  39.   else:
  40.     online = 1
  41.     files = BP.GetURL("ftp_lst:default_bp_folder*.bp|default_bp_login|default_bp_password@default_bp_url").replace("\r\n", "\n").replace("\r", "\n").split("\n")
  42.     files = [f.split('|') for f in files]
  43.     files = [(f[2], f[1], f[3]) for f in files if f[0] == 'file']
  44.     files.sort()
  45.     files.reverse()
  46.     List.Items.Text = "\n".join(["%s/%s/%s     %s (%s octets)" %(f[0][8:10], f[0][5:7], f[0][:4], f[1], f[2]) for f in files])
  47.  
  48. b = BP.GetURL("bp_backup_folder")
  49. if b != "" and b[-1] != "\\": b += "\\"
  50.  
  51. f = CreateComponent("TForm", None)
  52. f.SetProps(Position="poMainFormCenter", Width=520, Height=300, BorderStyle="bsSingle", BorderIcons=["biSystemMenu","biMinimize"], Caption="Liste des sauvegardes")
  53. f.Font.Name = "Tahoma"
  54.  
  55. LTitle = CreateComponent("TLabel", f)
  56. LTitle.SetProps(Parent=f, Left=40, Top=30, Caption="")
  57. LTitle.Font.Style = ["fsBold"]
  58.  
  59. List = CreateComponent("TListBox", f)
  60. List.SetProps(Parent=f, Left=40, Top=50, Width=430, Height=140, ItemIndex=-1)
  61.  
  62. BLocal = CreateComponent("TButton", f)
  63. BLocal.SetProps(Parent=f, Left=40, Top=210, Width=120, Height=25, Caption="Sauvegardes locales", OnClick=LoadFiles)
  64. BFTP = CreateComponent("TButton", f)
  65. BFTP.SetProps(Parent=f, Left=170, Top=210, Width=120, Height=25, Caption="Sauvegardes FTP", OnClick=LoadFiles)
  66.  
  67. BRestore = CreateComponent("TButton", f)
  68. BRestore.SetProps(Parent=f, Left=300, Top=210, Width=80, Height=25, Caption="Restaurer", OnClick=restore)
  69.  
  70. BOK = CreateComponent("TButton", f)
  71. BOK.SetProps(Parent=f, Left=390, Top=210, Width=80, Height=25, Caption="Fermer", ModalResult=1, Default=1, Cancel=1)
  72.  
  73. LoadFiles(BLocal)
  74. f.ShowModal()