datatracker/ietf/bin/fix-ambiguous-document-timestamps
2016-12-16 17:50:04 +00:00

52 lines
1.5 KiB
Python
Executable file

#!/usr/bin/env python
# -*- Python -*-
"""
This script looks at document timestamps going back three years, and if it finds
ambiguous timestamps, shifts them backwards one hour in order to disambiguate
them.
"""
import os, sys
import datetime
import pytz
filename = os.path.abspath(__file__)
basedir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../.."))
sys.path = [ basedir ] + sys.path
os.environ["DJANGO_SETTINGS_MODULE"] = "ietf.settings"
virtualenv_activation = os.path.join(basedir, "env", "bin", "activate_this.py")
if os.path.exists(virtualenv_activation):
execfile(virtualenv_activation, dict(__file__=virtualenv_activation))
import django
django.setup()
from django.conf import settings
from ietf.doc.models import Document, DocEvent
now = datetime.datetime.now()
then = now - datetime.timedelta(days=365*3)
for d in Document.objects.filter(time__gt=then).order_by('-time'):
tz = pytz.timezone(settings.TIME_ZONE)
try:
t = tz.localize(d.time, is_dst=None)
except pytz.AmbiguousTimeError as e:
orig = d.time
d.time = d.time - datetime.timedelta(minutes=60)
print "%s:\n changed %s --> %s" % (d, orig, d.time)
d.save()
for d in DocEvent.objects.filter(time__gt=then).order_by('-time'):
tz = pytz.timezone(settings.TIME_ZONE)
try:
t = tz.localize(d.time, is_dst=None)
except pytz.AmbiguousTimeError as e:
orig = d.time
d.time = d.time - datetime.timedelta(minutes=60)
print "%s:\n changed %s --> %s" % (d, orig, d.time)
d.save()