lars
56e954d1c4
added some log entries use threading module instead of "fork" for background formatting redirection for "network" plugin fixed empty return value of plugins defaults to plugin overview page
64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
import CryptoBoxPlugin
|
|
|
|
|
|
class date(CryptoBoxPlugin.CryptoBoxPlugin):
|
|
|
|
def doAction(self, store=None, year=0, month=0, day=0, hour=0, minute=0):
|
|
import datetime
|
|
if store:
|
|
try:
|
|
year, month, day = int(year), int(month), int(day)
|
|
hour, minute = int(hour), int(minute)
|
|
new_date = datetime.datetime(year, month, day, hour, minute)
|
|
except ValueError:
|
|
self.hdf["Data.Warning"] = "Plugins.date.InvalidDate"
|
|
self.__prepareFormData()
|
|
return "form_date"
|
|
date = "%02d%02d%02d%02d%d" % (month, day, hour, minute, year)
|
|
if self.__setDate(date):
|
|
self.cbox.log.info("changed date to: %s" % date)
|
|
self.hdf["Data.Success"] = "Plugins.date.DateChanged"
|
|
return None
|
|
else:
|
|
## a failure should usually be an invalid date (we do not check it really)
|
|
self.cbox.log.info("failed to set date: %s" % date)
|
|
self.hdf["Data.Warning"] = "Plugins.date.InvalidDate"
|
|
self.__prepareFormData()
|
|
return "form_date"
|
|
else:
|
|
self.__prepareFormData()
|
|
return "form_date"
|
|
|
|
|
|
def getStatus(self):
|
|
return str(self.__getCurrentDate())
|
|
|
|
|
|
def __prepareFormData(self):
|
|
date = self.__getCurrentDate()
|
|
self.hdf[self.hdf_prefix + "year"] = date.year
|
|
self.hdf[self.hdf_prefix + "month"] = date.month
|
|
self.hdf[self.hdf_prefix + "day"] = date.day
|
|
self.hdf[self.hdf_prefix + "hour"] = date.hour
|
|
self.hdf[self.hdf_prefix + "minute"] = date.minute
|
|
|
|
|
|
def __getCurrentDate(self):
|
|
import datetime
|
|
return datetime.datetime(2000,1,1).now()
|
|
|
|
|
|
def __setDate(self, date):
|
|
import subprocess
|
|
import os
|
|
proc = subprocess.Popen(
|
|
shell = False,
|
|
args = [
|
|
self.cbox.prefs["Programs"]["super"],
|
|
self.cbox.prefs["Programs"]["CryptoBoxRootActions"],
|
|
"plugin",
|
|
os.path.join(self.pluginDir, "root_action.py"),
|
|
date])
|
|
proc.communicate()
|
|
return proc.returncode == 0
|
|
|