diff --git a/pyicloud/cmdline.py b/pyicloud/cmdline.py index f9d859d..950fe04 100755 --- a/pyicloud/cmdline.py +++ b/pyicloud/cmdline.py @@ -4,6 +4,7 @@ A Command Line Wrapper to allow easy use of pyicloud for command line scripts, and related. """ +from __future__ import print_function import argparse import pickle import sys @@ -185,19 +186,19 @@ def main(args=None): contents = dev.content if command_line.longlist: - print "-"*30 - print contents["name"] + print("-"*30) + print(contents["name"]) for x in contents: - print "%20s - %s" % (x, contents[x]) + print("%20s - %s" % (x, contents[x])) elif command_line.list: - print "-"*30 - print "Name - %s" % contents["name"] - print "Display Name - %s" % contents["deviceDisplayName"] - print "Location - %s" % contents["location"] - print "Battery Level - %s" % contents["batteryLevel"] - print "Battery Status- %s" % contents["batteryStatus"] - print "Device Class - %s" % contents["deviceClass"] - print "Device Model - %s" % contents["deviceModel"] + print("-"*30) + print("Name - %s" % contents["name"]) + print("Display Name - %s" % contents["deviceDisplayName"]) + print("Location - %s" % contents["location"]) + print("Battery Level - %s" % contents["batteryLevel"]) + print("Battery Status- %s" % contents["batteryStatus"]) + print("Device Class - %s" % contents["deviceClass"]) + print("Device Model - %s" % contents["deviceModel"]) # Play a Sound on a device if command_line.sound: diff --git a/pyicloud/services/calendar.py b/pyicloud/services/calendar.py index 2ad4434..a60acbf 100644 --- a/pyicloud/services/calendar.py +++ b/pyicloud/services/calendar.py @@ -1,7 +1,9 @@ from __future__ import absolute_import -import os -from datetime import datetime +from datetime import datetime, timedelta from calendar import monthrange +import time + +import pytz class CalendarService(object): @@ -18,12 +20,37 @@ class CalendarService(object): self._calendar_endpoint, ) + def get_all_possible_timezones_of_local_machine(self): + """ + Return all possible timezones in Olson TZ notation + This has been taken from + http://stackoverflow.com/questions/7669938 + """ + local_names = [] + if time.daylight: + local_offset = time.altzone + localtz = time.tzname[1] + else: + local_offset = time.timezone + localtz = time.tzname[0] + + local_offset = timedelta(seconds=-local_offset) + + for name in pytz.all_timezones: + timezone = pytz.timezone(name) + if not hasattr(timezone, '_tzinfos'): + continue + for (utcoffset, daylight, tzname), _ in timezone._tzinfos.items(): + if utcoffset == local_offset and tzname == localtz: + local_names.append(name) + return local_names + def get_system_tz(self): """ - Retrieves the system's timezone. - From: http://stackoverflow.com/a/7841417 + Retrieves the system's timezone from a list of possible options. + Just take the first one """ - return '/'.join(os.readlink('/etc/localtime').split('/')[-2:]) + return self.get_possible_timezones()[0] def get_event_detail(self, pguid, guid): """ diff --git a/requirements.txt b/requirements.txt index ed7dc8f..6b77c7d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ requests>=1.2 six +pytz