Beispiel #1
0
	def onResponse(self, dialog, responseId):
		if responseId == gtk.ResponseType.OK:
			timeZone = self.timeZoneInput.get_text()
			try:
				natz.gettz(timeZone)
			except Exception as e:
				self.errorLabel.set_text(
					_("Time zone is invalid") + "\n" + str(e)
				)
			else:
				try:
					for event in ui.iterAllEvents():
						event.timeZone = timeZone
						event.afterModify()
						event.save()
				except Exception as e:
					self.errorLabel.set_text(
						str(e)
					)
				else:
					self.hide()
		else:
			self.hide()
		while gtk.events_pending():
			gtk.main_iteration_do(False)
Beispiel #2
0
 def doAction(self):
     container = self._container
     if self.iconRadio.get_active():
         chType = self.iconChangeCombo.get_active()
         if chType != 0:
             icon = self.iconSelect.get_filename()
             for event in container:
                 if not (chType == 2 and event.icon):
                     event.icon = icon
                     event.afterModify()
                     event.save()
     elif self.timeZoneRadio.get_active():
         chType = self.timeZoneChangeCombo.get_active()
         timeZone = self.timeZoneInput.get_text()
         if chType != 0:
             try:
                 natz.gettz(timeZone)
             except:
                 myRaise("Invalid Time Zone \"%s\"" % timeZone)
             else:
                 for event in container:
                     if not (chType == 2 and event.timeZone):
                         event.timeZone = timeZone
                         event.afterModify()
                         event.save()
     else:
         chType = self.textChangeCombo.get_active()
         if chType != 0:
             text1 = self.textInput1.get_text()
             text2 = self.textInput2.get_text()
             if self.summaryRadio.get_active():
                 for event in container:
                     if chType == 1:
                         event.summary = text1 + event.summary
                     elif chType == 2:
                         event.summary = event.summary + text1
                     elif chType == 3:
                         event.summary = event.summary.replace(text1, text2)
                     event.afterModify()
                     event.save()
             elif self.descriptionRadio.get_active():
                 for event in container:
                     if chType == 1:
                         event.description = text1 + event.description
                     elif chType == 2:
                         event.description = event.description + text1
                     elif chType == 3:
                         event.description = event.description.replace(
                             text1, text2)
                     event.afterModify()
                     event.save()
Beispiel #3
0
	def doAction(self):
		container = self._container
		if self.iconRadio.get_active():
			chType = self.iconChangeCombo.get_active()
			if chType != 0:
				icon = self.iconSelect.get_filename()
				for event in container:
					if not (chType == 2 and event.icon):
						event.icon = icon
						event.afterModify()
						event.save()
		elif self.timeZoneRadio.get_active():
			chType = self.timeZoneChangeCombo.get_active()
			timeZone = self.timeZoneInput.get_text()
			if chType != 0:
				try:
					natz.gettz(timeZone)
				except:
					myRaise("Invalid Time Zone \"%s\"" % timeZone)
				else:
					for event in container:
						if not (chType == 2 and event.timeZone):
							event.timeZone = timeZone
							event.afterModify()
							event.save()
		else:
			chType = self.textChangeCombo.get_active()
			if chType != 0:
				text1 = self.textInput1.get_text()
				text2 = self.textInput2.get_text()
				if self.summaryRadio.get_active():
					for event in container:
						if chType == 1:
							event.summary = text1 + event.summary
						elif chType == 2:
							event.summary = event.summary + text1
						elif chType == 3:
							event.summary = event.summary.replace(text1, text2)
						event.afterModify()
						event.save()
				elif self.descriptionRadio.get_active():
					for event in container:
						if chType == 1:
							event.description = text1 + event.description
						elif chType == 2:
							event.description = event.description + text1
						elif chType == 3:
							event.description = event.description.replace(text1, text2)
						event.afterModify()
						event.save()
Beispiel #4
0
 def onResponse(self, dialog, responseId):
     if responseId == gtk.ResponseType.OK:
         timeZone = self.timeZoneInput.get_text()
         try:
             natz.gettz(timeZone)
         except Exception as e:
             self.errorLabel.set_text(
                 _("Time zone is invalid") + "\n" + str(e))
         else:
             try:
                 for event in ui.iterAllEvents():
                     event.timeZone = timeZone
                     event.afterModify()
                     event.save()
             except Exception as e:
                 self.errorLabel.set_text(str(e))
             else:
                 self.hide()
     else:
         self.hide()
     while gtk.events_pending():
         gtk.main_iteration_do(False)
Beispiel #5
0
def getUtcOffsetByGDate(year, month, day, tz=None):
	if year <= 0:
		return 0
	if year >= 10000:
		return 0
	if not tz:
		tz = natz.gettz()
	try:
		dt = datetime(year, month, day)
	except ValueError as e:
		print("year=", year, "error:", e)
		return 0
	return tz.utcoffset(dt).total_seconds()
Beispiel #6
0
def getUtcOffsetByEpoch(epoch, tz=None):
	if epoch < J0001_epoch:
		return 0
	if epoch >= G10000_epoch:
		return 0
	if not tz:
		tz = natz.gettz()
	try:
		dt = datetime.fromtimestamp(epoch)
	except ValueError as e:
		print("epoch=", epoch, "error:", e)
		return 0
	return tz.utcoffset(dt).total_seconds()
Beispiel #7
0
def getUtcOffsetByGDate(year, month, day, tz=None):
	if year <= 0:
		return 0
	if year >= 10000:
		return 0
	if not tz:
		tz = natz.gettz()
	try:
		dt = datetime(year, month, day)
	except ValueError as e:
		print("year=", year, "error:", e)
		return 0
	return tz.utcoffset(dt).total_seconds()
Beispiel #8
0
def getUtcOffsetByEpoch(epoch, tz=None):
	if epoch < J0001_epoch:
		return 0
	if epoch >= G10000_epoch:
		return 0
	if not tz:
		tz = natz.gettz()
	try:
		dt = datetime.fromtimestamp(epoch)
	except ValueError as e:
		print("epoch=", epoch, "error:", e)
		return 0
	return tz.utcoffset(dt).total_seconds()
Beispiel #9
0
def getUtcOffsetByJd(jd, tz=None):
	if not tz:
		tz = natz.gettz()
	tzStr = str(tz)
	# utcOffsetByJdCache: {tzStr => {jd => utcOffset}}
	if jd >= J1970:
		tzDict = utcOffsetByJdCache.get(tzStr)
		if tzDict is None:
			tzDict = utcOffsetByJdCache[tzStr] = {}
		offset = tzDict.get(jd)
		if offset is None:
			y, m, d = jd_to_g(jd)
			offset = tzDict[jd] = getUtcOffsetByGDate(y, m, d, tz)
	else:
		y, m, d = jd_to_g(jd)
		offset = getUtcOffsetByGDate(y, m, d, tz)

	return offset
Beispiel #10
0
def getUtcOffsetByJd(jd, tz=None):
	if not tz:
		tz = natz.gettz()
	tzStr = str(tz)
	# utcOffsetByJdCache: {tzStr => {jd => utcOffset}}
	if jd >= J1970:
		tzDict = utcOffsetByJdCache.get(tzStr)
		if tzDict is None:
			tzDict = utcOffsetByJdCache[tzStr] = {}
		offset = tzDict.get(jd)
		if offset is None:
			y, m, d = jd_to_g(jd)
			offset = tzDict[jd] = getUtcOffsetByGDate(y, m, d, tz)
	else:
		y, m, d = jd_to_g(jd)
		offset = getUtcOffsetByGDate(y, m, d, tz)

	return offset
Beispiel #11
0
import natz

from .path import *
from scal3.utils import StrOrderedDict, myRaise
from scal3.utils import toBytes, toStr
from scal3.json_utils import *
from scal3.s_object import JsonSObj
from scal3.cal_types import calTypes

#import codecs
#def open (filename, mode="r"):
#	return codecs.open(filename, mode=mode, encoding="utf-8")

##########################################################

localTz = natz.gettz()
localTzStr = str(localTz)
# FIXME: looks like in some cases localTzStr == "etc/localtime"
print("Local Timezone:", localTzStr)

##########################################################

confPath = join(confDir, "locale.json")

confParams = (
    "lang",
    "enableNumLocale",
)


def loadConf():
Beispiel #12
0
	getEpochFromJd,
)
from scal3.os_utils import kill, goodkill
from scal3.utils import myRaise
#from scal3 import event_lib## needs core!! FIXME

from threading import Timer

#if "gtk" in sys.modules:
from pray_times_gtk import *
#else:
#	from pray_times_qt import *

####################################################

localTz = natz.gettz()


####################### Methods and Classes ##################


def readLocationData():
	lines = open(dataDir + "/locations.txt").read().split("\n")
	cityData = []
	country = ""
	for l in lines:
		p = l.split("\t")
		if len(p) < 2:
			#print(p)
			continue
		if p[0] == "":