Advertisement
Ceron

clear-ics.py

Aug 22nd, 2012
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.04 KB | None | 0 0
  1. """
  2. This script is used for daily Tasks in Windows
  3. to remove duplicated reminders in ICS-Files
  4. produced with ICSSync for Android.
  5. UPDATE: Script destroying validation of calendar - FIXED!
  6. """
  7. from backup import FTPMan
  8. from datetime import date
  9. import sys
  10. class CalOb():
  11.     def __init__(self):
  12.         self.objs = []
  13.     def saveToFile(self,name):
  14.         fhndl = open(name,"w")
  15.         for obj in self.objs:
  16.             fhndl.write(obj)
  17.         fhndl.close()
  18.         return ("Gespeichert in " + name + "\n") # saved to {x}
  19.     def objDouble(self, obj):
  20.         if obj in self.objs:
  21.             return True
  22.         else:
  23.             return False
  24.     def addObj(self,obj):
  25.         self.objs.append(obj)
  26. class Log():
  27.     def __init__(self,file):
  28.         self.log = ""
  29.         self.logfile = open(file,"w")
  30.     def write(self,text):
  31.         text = "====LOG====\n" + text
  32.         self.logfile.write(text)
  33.     def close(self):
  34.         self.logfile.close()
  35.  
  36. def main():
  37.     try:
  38.         calendar = CalOb()
  39.         name = 'allgemein-' + str(date.today().day) + '-' + str(date.today().month) + '-' + str(date.today().year) + '.ics'
  40.         log = Log(name + ".log")
  41.         counter = 0
  42.         f = open(name)
  43.         data = f.read()
  44.         f.close()
  45.         obs = data.split("BEGIN:VALARM")
  46.         for line in obs:
  47.             if not line[0:15] == "BEGIN:VCALENDAR":
  48.                 line = "BEGIN:VALARM" + line
  49.             if not calendar.objDouble(line):
  50.                 calendar.objs.append(line)
  51.             else:
  52.                 counter = counter + 1
  53.                 log.write("Entferne:\n" + line + "\n") # Removing: {x}
  54.         log.write("Es wurden " + str(counter) + " Objekte entfernt.\n") # X objects removed.
  55.         name = 'allgemein-' + str(date.today().day) + '-' + str(date.today().month) + '-' + str(date.today().year) + '-clean.ics'
  56.         log.write(calendar.saveToFile(name))
  57.         man = FTPMan('ftp-serveradress.com')
  58.         man.login('username','password')
  59.         man.CWD('Kalender')
  60.         log.write("Lade hoch...\n" + name + "\n") # processing upload
  61.         f = open(name,"rb")
  62.         man.upload('allgemein.ics', f)
  63.         log.write("Hochladen erfol6greich!\n") # upload successful
  64.         man.dc()
  65.     except:
  66.         log.write("\n####Error:#####\n" + str(sys.exc_info()))
  67.     log.close()
  68.    
  69. if __name__ == "__main__":
  70.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement