Last active
August 29, 2015 14:23
-
-
Save ankona/f800fdb6ae3390a0a06b to your computer and use it in GitHub Desktop.
update TimelineEvent sequence_number for values imported incorrectly from Stream57
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
opaque_id = 'f6d43db7-d33f-409a-a791-f37a8a004b09' | |
offset = 0 | |
from pprint import pprint | |
from datetime import datetime | |
from models import DBSession, SlideAnnotationEventArgs | |
from google.appengine.ext import ndb | |
class TimelineEvent(ndb.Expando): | |
_default_indexed = False | |
event_id = ndb.ComputedProperty(lambda self: str(self.key.id())) | |
opaque_id = ndb.StringProperty() | |
timeline_version = ndb.IntegerProperty() # Added by JSD for editor load/save consistency. | |
sequence_number = ndb.IntegerProperty(required=True) | |
track = ndb.StringProperty() | |
event_type = ndb.StringProperty(required=True) | |
start = ndb.DateTimeProperty(auto_now_add=True) | |
end = ndb.DateTimeProperty() | |
drawing_args = ndb.StructuredProperty(SlideAnnotationEventArgs) | |
#tles = TimelineEvent.query(TimelineEvent.opaque_id == opaque_id).fetch(2000) | |
tles = TimelineEvent.query(TimelineEvent.opaque_id == opaque_id).filter(TimelineEvent.sequence_number < 1000000000000).order(TimelineEvent.sequence_number).fetch(200, offset=offset) | |
epoch = datetime.utcfromtimestamp(0) | |
edit_counter = 0 | |
leave_counter = 0 | |
for tle in tles: | |
try: | |
new_seq_num = int((tle.start - epoch).total_seconds() * 1000) | |
if tle.sequence_number != new_seq_num and abs(tle.sequence_number - new_seq_num) > 100: | |
edit_counter+=1 | |
pprint("edit item {0} - {1} - {2} - {3} - {4} - {5}".format(tle.event_id, tle.sequence_number, new_seq_num, tle.start, tle.event_type, tle.sequence_number == new_seq_num)) | |
tle.sequence_number = new_seq_num | |
pprint("new sequence_number {0} - {1}".format(tle.event_id, tle.sequence_number)) | |
#tle.put() | |
else: | |
leave_counter+=1 | |
except Exception as e: | |
pprint(e) | |
print "edited {0} items and left {1} items alone.".format(edit_counter, leave_counter) |
hello-josh
commented
Jun 23, 2015
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment