diff options
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/migrate_bg.py | 40 | ||||
| -rwxr-xr-x | tools/migrate_chat.py | 35 | ||||
| -rwxr-xr-x | tools/migrate_likes.py | 89 | ||||
| -rw-r--r-- | tools/migrate_log | 2161 | ||||
| -rwxr-xr-x | tools/migrate_room.py | 3 | ||||
| -rwxr-xr-x | tools/migrate_search.py | 20 | ||||
| -rwxr-xr-x | tools/migrate_url.py | 42 | ||||
| -rwxr-xr-x | tools/migrate_user.py | 5 | ||||
| -rwxr-xr-x | tools/migrate_validate_user.py | 98 | ||||
| -rwxr-xr-x | tools/migrate_video.py | 39 | ||||
| -rwxr-xr-x | tools/safe_migrate.sh | 30 |
11 files changed, 2430 insertions, 132 deletions
diff --git a/tools/migrate_bg.py b/tools/migrate_bg.py index 10e6041..3094626 100755 --- a/tools/migrate_bg.py +++ b/tools/migrate_bg.py @@ -87,55 +87,63 @@ class MigrateDB(DB): if __name__ == '__main__': - admin = User.objects.get(username='admin') - db = MigrateDB() db.connect() # Migrate sj_bg table + print "loading users..." sj_user = list(db.get_sj_user_table()) map_user = {} for row in sj_user: try: user = User.objects.get(username=row['username']) except User.DoesNotExist: - print "ERROR in users" + print "ERROR in users '%s' does not exist" % row['username'] + exit(0) - map_user[row['id']] = user.pk + map_user[row['id']] = user + print "loading rooms..." sj_room = list(db.get_sj_room_table()) map_room = {} for row in sj_room: try: room = SJRoom.objects.get(name=row['name']) except SJRoom.DoesNotExist: - print "ERROR" - map_room[row['id']] = room.pk + print "ERROR in room '%s' does not exist" % row['name'] + exit(0) + map_room[row['id']] = room sj_bg = list(db.get_sj_bg_table()) for row in sj_bg: - user = admin - pk = map_user.get(row['userid'], 0) - if pk: - user = User.objects.get(pk=pk) - room = SJRoom.objects.get(name='main') - pk = map_room.get(row['roomid'], 0) - if pk: - room = SJRoom.objects.get(pk=pk) + if row['userid'] in map_user: + user = map_user[row['userid']] + else: + print "unknown user in migrate: '%d'" % row['userid'] + continue + + if row['roomid'] in map_room: + room = map_room[row['roomid']] + else: + print "unknown room in migrate: '%d'" % row['roomid'] + continue + try: bg = SJContent.objects.get( user=user, datetime=datetime.fromtimestamp(row['date']), room=room, + old_id=row['id'], content_type='background') + print "bg '%d' exist" % row['date'] except SJContent.DoesNotExist: bg = SJContent( user=user, datetime=datetime.fromtimestamp(row['date']), room=room, + old_id=row['id'], content_type='background') + print "bg '%d' created" % row['date'] bg.settings = dict(url=row['url']) bg.save() - row['__sjcontent_background_pk'] = bg.pk - diff --git a/tools/migrate_chat.py b/tools/migrate_chat.py index a554d63..1824987 100755 --- a/tools/migrate_chat.py +++ b/tools/migrate_chat.py @@ -92,50 +92,57 @@ if __name__ == '__main__': db = MigrateDB() db.connect() + print "loading users..." sj_user = list(db.get_sj_user_table()) map_user = {} for row in sj_user: try: user = User.objects.get(username=row['username']) except User.DoesNotExist: - print "ERROR in users" + print "ERROR in users '%s' does not exist" % row['username'] - map_user[row['id']] = user.pk + map_user[row['id']] = user + print "loading rooms..." sj_room = list(db.get_sj_room_table()) map_room = {} for row in sj_room: try: room = SJRoom.objects.get(name=row['name']) except SJRoom.DoesNotExist: - print "ERROR" - map_room[row['id']] = room.pk + print "ERROR in room '%s' does not exist" % row['name'] + map_room[row['id']] = room + # Migrate sj_chat table sj_chat = list(db.get_sj_chat_table()) for row in sj_chat: - user = admin - pk = map_user.get(row['userid'], 0) - if pk: - user = User.objects.get(pk=pk) - room = SJRoom.objects.get(name='main') - pk = map_room.get(row['roomid'], 0) - if pk: - room = SJRoom.objects.get(pk=pk) + if row['userid'] in map_user: + user = map_user[row['userid']] + else: + print "unknown user in migrate: '%d'" % row['userid'] + continue + + if row['roomid'] in map_room: + room = map_room[row['roomid']] + else: + print "unknown room in migrate: '%d'" % row['roomid'] + continue + try: chat = SJContent.objects.get( user=user, datetime=datetime.fromtimestamp(row['date']), room=room, + old_id=row['id'], content_type='text') except SJContent.DoesNotExist: chat = SJContent( user=user, datetime=datetime.fromtimestamp(row['date']), room=room, + old_id=row['id'], content_type='text') chat.settings = dict(text=row['msg']) chat.save() - row['__sjcontent_text_pk'] = chat.pk - diff --git a/tools/migrate_likes.py b/tools/migrate_likes.py index f0dc562..ffa914d 100755 --- a/tools/migrate_likes.py +++ b/tools/migrate_likes.py @@ -87,78 +87,63 @@ class MigrateDB(DB): if __name__ == '__main__': - admin = User.objects.get(username='admin') - db = MigrateDB() db.connect() - + + print "loading users..." sj_user = list(db.get_sj_user_table()) map_user = {} for row in sj_user: try: user = User.objects.get(username=row['username']) except User.DoesNotExist: - print "ERROR in users" + print "ERROR in users '%s' does not exist" % row['username'] + exit(0) - map_user[row['id']] = user.pk - - sj_room = list(db.get_sj_room_table()) - map_room = {} - for row in sj_room: - try: - room = SJRoom.objects.get(name=row['name']) - except SJRoom.DoesNotExist: - print "ERROR" - map_room[row['id']] = room.pk + map_user[row['id']] = user + print "loading videos..." sj_video = list(db.get_sj_video_table()) map_video = {} for row in sj_video: - user = admin - pk = map_user.get(row['userid'], 0) - if pk: - user = User.objects.get(pk=pk) - room = SJRoom.objects.get(name='main') - pk = map_room.get(row['roomid'], 0) - if pk: - room = SJRoom.objects.get(pk=pk) - try: + try: video = SJContent.objects.get( - user=user, - datetime=datetime.fromtimestamp(row['date']), - room=room, - content_type='video') + old_id=row['id'], + content_type='video') except SJContent.DoesNotExist: - print "ERROR" + print "ERROR video '%s' does not exist" % row['id'] + continue - row['__sjcontent_video_pk'] = video.pk - map_video[row['id']] = video.pk + map_video[row['id']] = video # Migrate sj_likes table sj_likes = list(db.get_sj_likes_table()) for row in sj_likes: - user = admin - pk = map_user.get(row['userid'], 0) - if pk: - user = User.objects.get(pk=pk) - video = None - pk = map_video.get(row['videoid'], 0) - if pk: - video = SJContent.objects.get(pk=pk) - try: - like = SJLike.objects.get( - user=user, - datetime=datetime.fromtimestamp(row['date']), - content=video) - except SJLike.DoesNotExist: - like = SJLike( - user=user, - datetime=datetime.fromtimestamp(row['date']), - content=video) - like.save() - - row['__sjlike_pk'] = like.pk - + if row['userid'] in map_user: + user = map_user[row['userid']] + else: + print "unknown user in migrate: '%d'" % row['userid'] + continue + + if row['videoid'] in map_video: + video = map_video[row['videoid']] + else: + print "unknown video in migrate: '%d'" % row['videoid'] + continue + + try: + like = SJLike.objects.get( + user=user, + datetime=datetime.fromtimestamp(row['date']), + content=video) + print "like '%d' exist" % row['date'] + except SJLike.DoesNotExist: + like = SJLike( + user=user, + datetime=datetime.fromtimestamp(row['date']), + content=video) + print "like '%d' created" % row['date'] + like.save() diff --git a/tools/migrate_log b/tools/migrate_log new file mode 100644 index 0000000..67e88ef --- /dev/null +++ b/tools/migrate_log @@ -0,0 +1,2161 @@ +- utf +- users +user 'whoapantsbro' already exist +profile for 'whoapantsbro' exist +user 'calrizien' already exist +profile for 'calrizien' exist +user 'jimmaz' already exist +profile for 'jimmaz' exist +user 'jonogram' already exist +profile for 'jonogram' exist +user 'nslvdmystrs' already exist +profile for 'nslvdmystrs' exist +user 'nslvdmystrs' already exist +profile for 'nslvdmystrs' exist +user 'rxsymone' already exist +profile for 'rxsymone' exist +user 'soverymonkey' already exist +profile for 'soverymonkey' exist +user 'soverymonkey' already exist +profile for 'soverymonkey' exist +eated +user 'reuel' already exist +profile for 'reuel' exist +user 'desu22' already exist +profile for 'desu22' exist +user 'desu22' already exist +profile for 'desu22' exist +user 'desu22' already exist +profile for 'desu22' exist +user 'bastard' already exist +profile for 'bastard' exist +user 'bastard' already exist +profile for 'bastard' exist +user 'bastard' already exist +profile for 'bastard' exist +user 'bastard' already exist +profile for 'bastard' exist +user 'bastard' already exist +profile for 'bastard' exist +user 'bastard' already exist +profile for 'bastard' exist +user 'bastard' already exist +profile for 'bastard' exist +user 'bastard' already exist +profile for 'bastard' exist +user 'stph' already exist +profile for 'stph' exist +user 'iPwn' already exist +profile for 'iPwn' exist +user 'amie' already exist +profile for 'amie' exist +user 'amie' already exist +profile for 'amie' exist +user 'violet' already exist +profile for 'violet' exist +user 'dothehustle' already exist +profile for 'dothehustle' exist +user 'mandarhythm' already exist +profile for 'mandarhythm' exist +user 'callumfraser' already exist +profile for 'callumfraser' exist +user 'callumfraser' already exist +profile for 'callumfraser' exist +user 'rocketbot' already exist +xist +user 'okaygems' already exist +profile for 'okaygems' exist +user 'greekgaylolita' already exist +profile for 'greekgaylolita' exist +user 'flavien' already exist +profile for 'flavien' exist +user 'vattor' already exist +profile for 'vattor' exist +user 'ladyfrench' already exist +profile for 'ladyfrench' exist +user 'leda' already exist +profile for 'leda' exist +user 'dickdick' already exist +profile for 'dickdick' exist +user 'hendrik' already exist +profile for 'hendrik' exist +user 'bigjesustrashcan' already exist +profile for 'bigjesustrashcan' exist +user 'dinophone' already exist +profile for 'dinophone' exist +user 'cravves' already exist +profile for 'cravves' exist +user 'spellitoutgirls' already exist +profile for 'spellitoutgirls' exist +user 'werewolfmorgue' already exist +profile for 'werewolfmorgue' exist +user 'werewolfmorgue' already exist +profile for 'werewolfmorgue' exist +user 'highpark' already exist +profile for 'highpark' exist +user 'windowdipp' already exist +profile for 'windowdipp' exist +user 'hj' already exist +profile for 'hj' exist +user 'lemons' already exist +profile for 'lemons' exist +user 'johnimjohn' already exist +profile for 'johnimjohn' exist +user 'lukeccc' already exist +profile for 'lukeccc' exist +user 'jennington' already exist +profile for 'jennington' exist +user 'candybar' already exist +profile for 'candybar' exist +user 'maunik' already exist +profile for 'maunik' exist +user 'buttplug' already exist +profile for 'buttplug' exist +user 'ender' already exist +profile for 'ender' exist +user 'atalossforwords' already exist +profile for 'atalossforwords' exist +user 'donkeysong' already exist +profile for 'donkeysong' exist +user 'bloon' already exist +profile for 'bloon' exist +user 'one2one2' already exist +profile for 'one2one2' exist +user 'problemdog' already exist +profile for 'problemdog' exist +user 'shortround' already exist +profile for 'shortround' exist +user 'schoeps' already exist +profile for 'schoeps' exist +user 'rah' already exist +profile for 'rah' exist +user 'rah' already exist +r 'rah' exist +user 'rah' already exist +profile for 'rah' exist +user 'rah' already exist +profile for 'rah' exist +user 'rah' already exist +profile for 'rah' exist +user 'hollagator' already exist +profile for 'hollagator' exist +user 'schubi' already exist +profile for 'schubi' exist +user 'bbe' already exist +profile for 'bbe' exist +user 'bbe' already exist +profile for 'bbe' exist +user 'bbe' already exist +profile for 'bbe' exist +user 'bbe' already exist +profile for 'bbe' exist +user 'bbe' already exist +profile for 'bbe' exist +user 'postvomeuphoria' already exist +profile for 'postvomeuphoria' exist +user 'scamps' already exist +profile for 'scamps' exist +user 'lor' already exist +profile for 'lor' exist +user 'erick' already exist +profile for 'erick' exist +user 'erick' already exist +profile for 'erick' exist +user 'justinbobby' already exist +profile for 'justinbobby' exist +user 'jseipp' already exist +profile for 'jseipp' exist + exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'watisdis' already exist +profile for 'watisdis' exist +user 'gcwyatt' already exist +profile for 'gcwyatt' exist +user 'gcwyatt' already exist +profile for 'gcwyatt' exist +user 'gcwyatt' already exist +profile for 'gcwyatt' exist +user 'gcwyatt' already exist +profile for 'gcwyatt' exist +user 'gcwyatt' already exist +profile for 'gcwyatt' exist +user 'lgeeps' already exist +profile for 'lgeeps' exist +user 'lgeeps' already exist +profile for 'lgeeps' exist +user 'lgeeps' already exist +profile for 'lgeeps' exist +user 'lgeeps' already exist +profile for 'lgeeps' exist +user 'lgeeps' already exist +profile for 'lgeeps' exist +user 'lgeeps' already exist +profile for 'lgeeps' exist +user 'lowercase' already exist +profile for 'lowercase' exist +user 'lowercase' already exist +profile for 'lowercase' exist +user 'lowercase' already exist +profile for 'lowercase' exist +user 'lowercase' already exist +profile for 'lowercase' exist +user 'lowercase' already exist +profile for 'lowercase' exist +user 'lowercase' already exist +profile for 'lowercase' exist +user 'lowercase' already exist +profile for 'lowercase' exist +user 'lipstickcos' already exist +profile for 'lipstickcos' exist +user 'lipstickcos' already exist +profile for 'lipstickcos' exist +user 'lipstickcos' already exist +profile for 'lipstickcos' exist +user 'lipstickcos' already exist +profile for 'lipstickcos' exist +user 'lipstickcos' already exist +profile for 'lipstickcos' exist +user 'lipstickcos' already exist +profile for 'lipstickcos' exist +user 'lipstickcos' already exist +profile for 'lipstickcos' exist +user 'erisssiva' already exist +profile for 'erisssiva' exist +reated +user 'crystalpepsi' already exist +profile for 'crystalpepsi' exist +user 'jeeeelings' already exist +profile for 'jeeeelings' exist +user 'dzsediedi' already exist +profile for 'dzsediedi' exist +user 'kjeder' already exist +profile for 'kjeder' exist +user 'something' already exist +profile for 'something' exist +user 'something' already exist +profile for 'something' exist +user 'something' already exist +profile for 'something' exist +user 'something' already exist +profile for 'something' exist +user 'something' already exist +profile for 'something' exist +user 'something' already exist +profile for 'something' exist +user 'something' already exist +profile for 'something' exist +user 'shuttercock' already exist +profile for 'shuttercock' exist +user 'shuttercock' already exist +profile for 'shuttercock' exist +user 'lotus' already exist +profile for 'lotus' exist +user 'vom' already exist +profile for 'vom' exist +user 'tweds' already exist +profile for 'tweds' exist +user 'tweds' already exist +profile for 'tweds' exist +user 'scannanana' already exist +profile for 'scannanana' exist +user 'burkafutura' already exist +profile for 'burkafutura' exist +user 'dadayumn' already exist +profile for 'dadayumn' exist +user 'dadayumn' already exist +profile for 'dadayumn' exist +user 'dadayumn' already exist +profile for 'dadayumn' exist +user 'alexcruse' already exist +profile for 'alexcruse' exist +user 'alexcruse' already exist +profile for 'alexcruse' exist +user 'llbean' already exist +profile for 'llbean' exist +user 'moritz' already exist +profile for 'moritz' exist +user 'jsfromm' already exist +profile for 'jsfromm' exist +user 'jsfromm' already exist +profile for 'jsfromm' exist +user 'jsfromm' already exist +profile for 'jsfromm' exist +user 'jsfromm' already exist +profile for 'jsfromm' exist +user 'jsfromm' already exist +profile for 'jsfromm' exist +user 'jsfromm' already exist +sfromm' exist +user 'jsfromm' already exist +profile for 'jsfromm' exist +user 'jsfromm' already exist +profile for 'jsfromm' exist +user 'jsfromm' already exist +profile for 'jsfromm' exist +user 'jsfromm' already exist +profile for 'jsfromm' exist +user 'jsfromm' already exist +profile for 'jsfromm' exist +user 'jsfromm' already exist +profile for 'jsfromm' exist +user 'jakefromm' already exist +profile for 'jakefromm' exist +user 'd00n' already exist +profile for 'd00n' exist +user 'd00n' already exist +profile for 'd00n' exist +user 'zootsims' already exist +profile for 'zootsims' exist +user 'pushupbro' already exist +profile for 'pushupbro' exist +user 'dbusord' already exist +profile for 'dbusord' exist +user 'zillionaire' already exist +profile for 'zillionaire' exist +user 'cracka' already exist +profile for 'cracka' exist +user 'cracka' already exist +profile for 'cracka' exist +user 'cracka' already exist +profile for 'cracka' exist +user 'cracka' already exist +profile for 'cracka' exist +user 'her' already exist +profile for 'her' exist +user 'joe' already exist +profile for 'joe' exist +user 'joe' already exist +profile for 'joe' exist +user 'reticulum' already exist +profile for 'reticulum' exist +user 'tryoupioup' already exist +profile for 'tryoupioup' exist +user 'hleger' already exist +profile for 'hleger' exist +user 'hunteroftheweak' already exist +profile for 'hunteroftheweak' exist +user 'corporationyo' already exist +profile for 'corporationyo' exist +user '123456' already exist +profile for '123456' exist +user 'stefni' already exist +profile for 'stefni' exist +user 'modulenz' already exist +profile for 'modulenz' exist +user 'earwig' already exist +profile for 'earwig' exist +user 'earwig' already exist +profile for 'earwig' exist +user 'r4ytrace' already exist +profile for 'r4ytrace' exist +user 'tru1111' already exist +profile for 'tru1111' exist +user 'tru1111' already exist +profile for 'tru1111' exist +user 'terminal11' already exist +profile for 'terminal11' exist +user 'katabatik' already exist +profile for 'katabatik' exist +user 'scarford' already exist +profile for 'scarford' exist +user 'carino' already exist +profile for 'carino' exist +t +profile for 'ganzberg' exist +user 'lcky' already exist +profile for 'lcky' exist +user 'lcky' already exist +profile for 'lcky' exist +user 'lcky' already exist +profile for 'lcky' exist +user 'lcky' already exist +profile for 'lcky' exist +user 'lcky' already exist +profile for 'lcky' exist +user 'lcky' already exist +profile for 'lcky' exist +user 'lcky' already exist +profile for 'lcky' exist +user 'lcky' already exist +profile for 'lcky' exist +user 'lcky' already exist +profile for 'lcky' exist +user 'lcky' already exist +profile for 'lcky' exist +user 'lcky' already exist +profile for 'lcky' exist +user 'kum2me' already exist +profile for 'kum2me' exist +user 'ao228' already exist +profile for 'ao228' exist +user 'steve' already exist +profile for 'steve' exist +user 'ginpop' already exist +profile for 'ginpop' exist +user 'ginpop' already exist +profile for 'ginpop' exist +user 'thestatebird' already exist +profile for 'thestatebird' exist +user 'moonpies' already exist +profile for 'moonpies' exist +user 'donaldcrump' already exist +profile for 'donaldcrump' exist +user 'neontoast' already exist +profile for 'neontoast' exist +user 'neontoast' already exist +profile for 'neontoast' exist +user 'neontoast' already exist +profile for 'neontoast' exist +user 'aazz' already exist +profile for 'aazz' exist +user 'perpetual' already exist +profile for 'perpetual' exist +user 'grrronimo' already exist +profile for 'grrronimo' exist +user 'grrronimo' already exist +profile for 'grrronimo' exist +user 'bigtex144' already exist +profile for 'bigtex144' exist +user 'bigtex144' already exist +profile for 'bigtex144' exist +user 'bigtex144' already exist +profile for 'bigtex144' exist +user 'kxrtthomas' already exist +profile for 'kxrtthomas' exist +user 'kissingdisease' already exist +profile for 'kissingdisease' exist +user 'kissingdisease' already exist +profile for 'kissingdisease' exist +user 'kjvgfukz' already exist +profile for 'kjvgfukz' exist +user 'cingiz' already exist +profile for 'cingiz' exist +user 'nineiz' already exist +profile for 'nineiz' exist +user 'cingiz' already exist +profile for 'cingiz' exist +user 'keiff' already exist +profile for 'keiff' exist +user 'pablokino' already exist +profile for 'pablokino' exist +user 'pablokino' already exist +profile for 'pablokino' exist +user 'hexxx' already exist +profile for 'hexxx' exist +user 'hexxx' already exist +profile for 'hexxx' exist +user 'hexxx' already exist +profile for 'hexxx' exist +user 'hexxx' already exist +profile for 'hexxx' exist +user 'hexxx' already exist +profile for 'hexxx' exist +user 'hexxx' already exist +profile for 'hexxx' exist +user 'ek408ex' already exist +profile for 'ek408ex' exist +user 'ek408ex' already exist +profile for 'ek408ex' exist +user 'ek408ex' already exist +profile for 'ek408ex' exist +user 'ek408ex' already exist +profile for 'ek408ex' exist +user 'ek408ex' already exist +profile for 'ek408ex' exist +user 'spook' already exist +profile for 'spook' exist +user 'spookdr' already exist +profile for 'spookdr' exist +user 'zenripper' already exist +profile for 'zenripper' exist +user 'zenripper' already exist +profile for 'zenripper' exist +user 'zenripper' already exist +profile for 'zenripper' exist +user 'zenripper' already exist +profile for 'zenripper' exist +user 'zenripper' already exist +profile for 'zenripper' exist +user 'dude' already exist +profile for 'dude' exist +user 'coolmotherfucker' already exist +profile for 'coolmotherfucker' exist +user 'wastelandman' already exist +profile for 'wastelandman' exist +user 'jmanhey' already exist +profile for 'jmanhey' exist +user 'ahleec' already exist +profile for 'ahleec' exist +user 'ahleeec' already exist +profile for 'ahleeec' exist +user 'mikejudge' already exist +profile for 'mikejudge' exist +user '666pack' already exist +profile for '666pack' exist +user 'teenwitch' already exist +profile for 'teenwitch' exist +user 'teenwitch' already exist +profile for 'teenwitch' exist +user 'phillip' already exist +profile for 'phillip' exist +user 'cvlts' already exist +profile for 'cvlts' exist +user 'cvlts' already exist +profile for 'cvlts' exist +user 'sassy' already exist +profile for 'sassy' exist +user 'sassy' already exist +profile for 'sassy' exist +user 'o' already exist +profile for 'o' exist +user 'kirkland89' already exist +profile for 'kirkland89' exist +user 'technowitch' already exist +profile for 'technowitch' exist +user 'technowitch' already exist +profile for 'technowitch' exist +user 'technowitch' already exist +profile for 'technowitch' exist +user 'technowitch' already exist +profile for 'technowitch' exist +user 'pixlpa' already exist +profile for 'pixlpa' exist +user 'roartiz' already exist +profile for 'roartiz' exist +user 'roartiz' already exist +profile for 'roartiz' exist +user 'tonysnark' already exist +profile for 'tonysnark' exist +user 'tonysnark' already exist +profile for 'tonysnark' exist +user 'tonysnark' already exist +profile for 'tonysnark' exist +user 'tonysnark' already exist +profile for 'tonysnark' exist +user 'tonysnark' already exist +profile for 'tonysnark' exist +user 'tonysnark' already exist +profile for 'tonysnark' exist +user 'bingo' already exist +profile for 'bingo' exist +user 'bishun' already exist +profile for 'bishun' exist +user 'papers' already exist +profile for 'papers' exist +user 'vze26m98' already exist +profile for 'vze26m98' exist +user 'vatic' already exist +profile for 'vatic' exist +user 'vatic' already exist +profile for 'vatic' exist +user 'meincumpf' already exist +profile for 'meincumpf' exist +user 'meincumpf' already exist +profile for 'meincumpf' exist +user 'meincumpf' already exist +profile for 'meincumpf' exist +user 'meincumpf' already exist +profile for 'meincumpf' exist +user 'meincumpf' already exist +profile for 'meincumpf' exist +user 'domingopablo' already exist +profile for 'domingopablo' exist +user 'jude' already exist +profile for 'jude' exist +user 'beatpoems' already exist +profile for 'beatpoems' exist +user 'beatpoems' already exist +profile for 'beatpoems' exist +user 'ace' already exist +profile for 'ace' exist +user 'ace' already exist +profile for 'ace' exist +user 'odnarb' already exist +profile for 'odnarb' exist +user 'odnarb' already exist +profile for 'odnarb' exist +user 'odnarb' already exist +profile for 'odnarb' exist +user 'dgd' already exist +profile for 'dgd' exist +user 'dgd' already exist +profile for 'dgd' exist +user 'sofakingkiller' already exist +profile for 'sofakingkiller' exist +user 'sofakingkiller' already exist +profile for 'sofakingkiller' exist +user 'chrisi' already exist +profile for 'chrisi' exist +user 'chrisi' already exist +profile for 'chrisi' exist +user 'acideyewash' already exist +profile for 'acideyewash' exist +user 'acideyewash' already exist +profile for 'acideyewash' exist +user 'acideyewash' already exist +profile for 'acideyewash' exist +user 'acideyewash' already exist +profile for 'acideyewash' exist +user 'enkephalin' already exist +profile for 'enkephalin' exist +user 'billbonds' already exist +profile for 'billbonds' exist +user 'billbonds' already exist +profile for 'billbonds' exist +user 'superobo' already exist +profile for 'superobo' exist +user 'superobo' already exist +profile for 'superobo' exist +user 'superobo' already exist +profile for 'superobo' exist +user 'superobo' already exist +profile for 'superobo' exist +user 'superiorpoultry' already exist +profile for 'superiorpoultry' exist +user 'superiorpoultry' already exist +profile for 'superiorpoultry' exist +user 'mance' already exist +profile for 'mance' exist +user 'ohsnapitsclubs' already exist +profile for 'ohsnapitsclubs' exist +already exist +profile for 'ohsnapitsclubs' exist +user 'pizzahead' already exist +profile for 'pizzahead' exist +user 'archaeopteryx' already exist +profile for 'archaeopteryx' exist +user 'archaeopteryx' already exist +profile for 'archaeopteryx' exist +user 'coathanger49er' already exist +profile for 'coathanger49er' exist +user 'coathanger49er' already exist +profile for 'coathanger49er' exist +user 'coathanger49er' already exist +profile for 'coathanger49er' exist +user 'assjb4' already exist +profile for 'assjb4' exist +user 'fuckthisshit' already exist +profile for 'fuckthisshit' exist +user 'jesus' already exist +profile for 'jesus' exist +user 'justin' already exist +profile for 'justin' exist +user 'justin' already exist +profile for 'justin' exist +user 'brettsweat' already exist +profile for 'brettsweat' exist +user 'brettsweat' already exist +profile for 'brettsweat' exist +user 'lolz' already exist +profile for 'lolz' exist +user 'casper' already exist +profile for 'casper' exist +user 'choadiefoster' already exist +profile for 'choadiefoster' exist +user 'choadiefoster' already exist +profile for 'choadiefoster' exist +user 'choadiefoster' already exist +profile for 'choadiefoster' exist +user 'choadiefoster' already exist +profile for 'choadiefoster' exist +user 'kabelsalat' already exist +profile for 'kabelsalat' exist +user 'harrymartini' already exist +profile for 'harrymartini' exist +user 'sfv' already exist +profile for 'sfv' exist +user '26' already exist +profile for '26' exist +user '26' already exist +profile for '26' exist +user 'cshmny' already exist +profile for 'cshmny' exist +user 'cshmny' already exist +profile for 'cshmny' exist +user 'fuzzedout' already exist +profile for 'fuzzedout' exist +user 'tsa' already exist +profile for 'tsa' exist +user 'blambodia' already exist +profile for 'blambodia' exist +user 'blambodia' already exist +profile for 'blambodia' exist +user 'strictmachine' already exist +profile for 'strictmachine' exist +user 'strictmachine' already exist +profile for 'strictmachine' exist +user 'phrontes' already exist +profile for 'phrontes' exist +user 'eyeroller' already exist +profile for 'eyeroller' exist +user 'atrsi' already exist +profile for 'atrsi' exist +user 'sludgecake' already exist +profile for 'sludgecake' exist +user 'sludgecake' already exist +profile for 'sludgecake' exist +user 'sludgecake' already exist +profile for 'sludgecake' exist +user 'awnine' already exist +profile for 'awnine' exist +user 'awnine' already exist +profile for 'awnine' exist +reated +user 'joechild' already exist +profile for 'joechild' exist +user 'marcsound' already exist +profile for 'marcsound' exist +user 'dguo' already exist +profile for 'dguo' exist +user 'dguo' already exist +profile for 'dguo' exist +user 'dguo' already exist +profile for 'dguo' exist +user 'hhhnnnggg' already exist +profile for 'hhhnnnggg' exist +user 'shogunfunk' already exist +profile for 'shogunfunk' exist +user 'glitter' already exist +profile for 'glitter' exist +user 'tgb' already exist +profile for 'tgb' exist +user 'kikaider' already exist +profile for 'kikaider' exist +user 'kikaider' already exist +profile for 'kikaider' exist +user 'noyesno' already exist +profile for 'noyesno' exist +user 'kinn' already exist +profile for 'kinn' exist +user 'kinn' already exist +profile for 'kinn' exist +user 'tightbutthole' already exist +profile for 'tightbutthole' exist +user 'tightbutthole' already exist +profile for 'tightbutthole' exist +user 'tightbutthole' already exist +profile for 'tightbutthole' exist +user 'tapewolftapes' already exist +profile for 'tapewolftapes' exist +reated +user 'tapewolftapes' already exist +profile for 'tapewolftapes' exist +user 'sleevynicks' already exist +profile for 'sleevynicks' exist +user 'sleevynicks' already exist +profile for 'sleevynicks' exist +user 'sleevynicks' already exist +profile for 'sleevynicks' exist +user 'wag' already exist +profile for 'wag' exist +user 'kirill666' already exist +profile for 'kirill666' exist +user 'kelleywiggums' already exist +profile for 'kelleywiggums' exist +user 'kelleywiggums' already exist +profile for 'kelleywiggums' exist +user 'kelleywiggums' already exist +profile for 'kelleywiggums' exist +user 'bodycheetah' already exist +profile for 'bodycheetah' exist +user 'bodycheetah' already exist +profile for 'bodycheetah' exist +user 'raydonchong' already exist +profile for 'raydonchong' exist + exist +profile for 'raydonchong' exist +user 'raydonchong' already exist +profile for 'raydonchong' exist +user 'raydonchong' already exist +profile for 'raydonchong' exist +user 'gangbang' already exist +profile for 'gangbang' exist +user 'slurptv' already exist +profile for 'slurptv' exist +user 'WC7' already exist +profile for 'WC7' exist +user 'crystalmagic' already exist +profile for 'crystalmagic' exist +user 'crystalmagic' already exist +profile for 'crystalmagic' exist +user 'crystalmagic' already exist +profile for 'crystalmagic' exist +user 'okcupid' already exist +profile for 'okcupid' exist +user 'robocide' already exist +profile for 'robocide' exist +user 'robocide' already exist +profile for 'robocide' exist +user 'yomatty' already exist +profile for 'yomatty' exist +user 'yomatty' already exist +profile for 'yomatty' exist +user 'yomatty' already exist +profile for 'yomatty' exist +user 'yomatty' already exist +profile for 'yomatty' exist +user 'johntransue' already exist +profile for 'johntransue' exist +user 'arevels' already exist +profile for 'arevels' exist +user 'bsiskind' already exist +profile for 'bsiskind' exist +user 'bsiskind' already exist +profile for 'bsiskind' exist +user 'entroemcee' already exist +profile for 'entroemcee' exist +user 'parlezvousmae' already exist +profile for 'parlezvousmae' exist +user 'parlezvousmae' already exist +profile for 'parlezvousmae' exist +user 'parlezvousmae' already exist +profile for 'parlezvousmae' exist +user 'parlezvousmae' already exist +profile for 'parlezvousmae' exist +user 'parlezvousmae' already exist +profile for 'parlezvousmae' exist +user 'parlezvousmae' already exist +profile for 'parlezvousmae' exist +user 'justin36chambers' already exist +profile for 'justin36chambers' exist +user 'justin36chambers' already exist +profile for 'justin36chambers' exist +user 'spectralhand' already exist +or 'spectralhand' exist +user 'years' already exist +profile for 'years' exist +user 'years' already exist +profile for 'years' exist +user 'halszkat' already exist +profile for 'halszkat' exist +user 'halszkat' already exist +profile for 'halszkat' exist +user 'alessandra' already exist +profile for 'alessandra' exist +user 'brohloff' already exist +profile for 'brohloff' exist +user 'brohloff' already exist +profile for 'brohloff' exist +user 'mxwll' already exist +profile for 'mxwll' exist +user 'antonia' already exist +profile for 'antonia' exist +user 'antonia' already exist +profile for 'antonia' exist +user 'antonia' already exist +profile for 'antonia' exist +user 'mxwll' already exist +profile for 'mxwll' exist +user 'csides' already exist +profile for 'csides' exist +user 'csides' already exist +profile for 'csides' exist +user '7csides7' already exist +profile for '7csides7' exist +user 'csides' already exist +profile for 'csides' exist +user 'suavemcool' already exist +profile for 'suavemcool' exist +user 'suavemcool' already exist +profile for 'suavemcool' exist +user 'missrock' already exist +profile for 'missrock' exist +user 'missrock' already exist +profile for 'missrock' exist +user 'missrock' already exist +profile for 'missrock' exist +user 'fart' already exist +profile for 'fart' exist +user 'bendover' already exist +profile for 'bendover' exist +user 'realbendover' already exist +profile for 'realbendover' exist +user 'mw' already exist +profile for 'mw' exist +user 'mw' already exist +profile for 'mw' exist +user 'gabeholcombe' already exist +profile for 'gabeholcombe' exist +user 'gabeholcombe' already exist +profile for 'gabeholcombe' exist +ed +user 'lovveme' already exist +profile for 'lovveme' exist +user 'lovveme' already exist +profile for 'lovveme' exist +user 'lovveme' already exist +profile for 'lovveme' exist +user 'lovveme' already exist +profile for 'lovveme' exist +user 'lovveme' already exist +profile for 'lovveme' exist +user 'valeriaerre' already exist +profile for 'valeriaerre' exist +user 'valeriaerre' already exist +profile for 'valeriaerre' exist +user 'beardedscot' already exist +profile for 'beardedscot' exist +exist +profile for 'mitchellbridges' exist +user 'mitchellbridges' already exist +profile for 'mitchellbridges' exist +user 'lesty' already exist +profile for 'lesty' exist +user 'patriksandberg' already exist +profile for 'patriksandberg' exist +user 'jimmyrepeat' already exist +profile for 'jimmyrepeat' exist +user 'jimmyrepeat' already exist +profile for 'jimmyrepeat' exist +reated +user 'ssxxnnss' already exist +profile for 'ssxxnnss' exist +user 'ssxxnnss' already exist +profile for 'ssxxnnss' exist +user 'yay' already exist +profile for 'yay' exist +user 'yay' already exist +profile for 'yay' exist +user 'universaldisequilibrium' already exist +profile for 'universaldisequilibrium' exist +user 'universaldisequilibrium' already exist +profile for 'universaldisequilibrium' exist +user 'poreboy' already exist +profile for 'poreboy' exist +user 'poreboy' already exist +profile for 'poreboy' exist +user 'cotton' already exist +profile for 'cotton' exist +user 'w' already exist +profile for 'w' exist +user 'w' already exist +profile for 'w' exist +user 'sysqogramz' already exist +profile for 'sysqogramz' exist +user 'abeardofbees' already exist +profile for 'abeardofbees' exist +user 'finecunt' already exist +profile for 'finecunt' exist +user 'losdaevos' already exist +profile for 'losdaevos' exist +user 'cptrobert' already exist +profile for 'cptrobert' exist +user 'kareem' already exist +profile for 'kareem' exist +user 'ratatouille' already exist +profile for 'ratatouille' exist +user 'thisisnotausername' already exist +profile for 'thisisnotausername' exist +user 'mary' already exist +profile for 'mary' exist +user 'aryan4' already exist +profile for 'aryan4' exist +d +user 'talness' already exist +profile for 'talness' exist +user 'gtx' already exist +profile for 'gtx' exist +user 'hkt' already exist +profile for 'hkt' exist +user 'gibbonarm' already exist +profile for 'gibbonarm' exist +user 'junglejulia' already exist +profile for 'junglejulia' exist +user 'junglejulia' already exist +profile for 'junglejulia' exist +user 'junglejulia' already exist +profile for 'junglejulia' exist +user 'junglejulia' already exist +profile for 'junglejulia' exist +user 'nvhg83' already exist +profile for 'nvhg83' exist +user 'nvhg83' already exist +profile for 'nvhg83' exist +user 'asdasd' already exist +profile for 'asdasd' exist +user 'alexagk' already exist +profile for 'alexagk' exist +user 'beavage' already exist +profile for 'beavage' exist +user 'noahspidermen' already exist +profile for 'noahspidermen' exist +user 'soemotional' already exist +profile for 'soemotional' exist +user 'holyholylordgodalmytea' already exist +profile for 'holyholylordgodalmytea' exist +user 'holyholylordgodalmytea' already exist +profile for 'holyholylordgodalmytea' exist +user 'jammer' already exist +profile for 'jammer' exist +user 'jamihotline' already exist +profile for 'jamihotline' exist +user 'ella' already exist +profile for 'ella' exist +user 'madsticks' already exist +profile for 'madsticks' exist +user 'madsticks' already exist +profile for 'madsticks' exist +user 'as' already exist +profile for 'as' exist +user 'booboo' already exist +profile for 'booboo' exist +- rooms +- search +- video +loading users... +loading rooms... +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown room in migrate: '3' +unknown user in migrate: '0' +unknown room in migrate: '3' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown room in migrate: '3' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown room in migrate: '3' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown room in migrate: '3' +unknown user in migrate: '0' +unknown room in migrate: '3' +unknown user in migrate: '0' +unknown room in migrate: '3' +unknown user in migrate: '0' +unknown room in migrate: '3' +unknown user in migrate: '0' +unknown room in migrate: '3' +unknown user in migrate: '0' +unknown room in migrate: '3' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown room in migrate: '3' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown user in migrate: '0' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' + '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown user in migrate: '53' +ed +unknown room in migrate: '3' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +ed +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +reated +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +reated +ted +unknown room in migrate: '9' +ed +ated +d +unknown room in migrate: '9' +unknown room in migrate: '9' +ed +ated +d +reated +ted +unknown room in migrate: '21' +unknown room in migrate: '21' +unknown room in migrate: '23' +unknown room in migrate: '32' +ated +d +unknown room in migrate: '56' +unknown room in migrate: '56' +unknown room in migrate: '56' +unknown room in migrate: '56' +unknown room in migrate: '56' +unknown room in migrate: '56' +unknown room in migrate: '56' + +eated +ed +ated +d +unknown room in migrate: '22' +unknown room in migrate: '21' +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +ted + +eated +ed +ated +d +reated +- bg +loading users... +loading rooms... +d +d +d +d +- chat +loading users... +loading rooms... +unknown user in migrate: '2' +unknown user in migrate: '2' +unknown user in migrate: '2' +unknown room in migrate: '3' +unknown room in migrate: '3' +unknown room in migrate: '3' +unknown room in migrate: '3' +unknown room in migrate: '3' +unknown user in migrate: '19' +unknown user in migrate: '26' +unknown user in migrate: '26' +unknown user in migrate: '26' +unknown room in migrate: '3' +unknown room in migrate: '3' +unknown room in migrate: '3' +unknown user in migrate: '38' +unknown room in migrate: '3' +unknown room in migrate: '3' +unknown room in migrate: '3' +unknown user in migrate: '38' +unknown user in migrate: '39' +unknown room in migrate: '3' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '38' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '40' +unknown user in migrate: '42' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '42' +unknown user in migrate: '42' +unknown user in migrate: '39' +unknown user in migrate: '39' +unknown user in migrate: '42' +unknown user in migrate: '39' +unknown user in migrate: '42' +unknown user in migrate: '39' +unknown user in migrate: '42' +unknown user in migrate: '42' +unknown user in migrate: '42' +unknown room in migrate: '3' +unknown room in migrate: '3' +unknown room in migrate: '3' +unknown user in migrate: '48' +unknown user in migrate: '53' +unknown user in migrate: '53' +unknown user in migrate: '54' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown user in migrate: '62' +unknown room in migrate: '3' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown user in migrate: '43' +unknown user in migrate: '43' +unknown user in migrate: '43' +unknown user in migrate: '43' +unknown user in migrate: '49' +unknown user in migrate: '49' +unknown user in migrate: '49' +unknown user in migrate: '53' +unknown user in migrate: '53' +unknown room in migrate: '3' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +nown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '3' +unknown room in migrate: '21' +unknown room in migrate: '21' +unknown room in migrate: '21' +unknown room in migrate: '23' +unknown room in migrate: '23' +unknown room in migrate: '23' +unknown room in migrate: '23' +unknown room in migrate: '23' +unknown room in migrate: '23' +unknown room in migrate: '23' +unknown room in migrate: '23' +unknown room in migrate: '23' +unknown room in migrate: '23' +unknown room in migrate: '23' +unknown room in migrate: '32' +unknown room in migrate: '32' +unknown room in migrate: '32' +unknown room in migrate: '56' +unknown room in migrate: '56' +unknown room in migrate: '56' +unknown room in migrate: '56' +unknown room in migrate: '56' +unknown room in migrate: '56' +unknown room in migrate: '56' +unknown room in migrate: '72' +unknown room in migrate: '70' +unknown room in migrate: '44443' +unknown room in migrate: '44443' +unknown room in migrate: '44443' +unknown room in migrate: '44443' +unknown room in migrate: '22' +unknown room in migrate: '21' +- url +loading users... +loading rooms... +unknown room in migrate: '3' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown room in migrate: '5' +unknown user in migrate: '43' +ed +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +unknown room in migrate: '9' +d +unknown room in migrate: '9' +unknown room in migrate: '9' +ated +ted +unknown room in migrate: '21' +unknown room in migrate: '23' +ted +ed +reated +d +eated + +ated +ted +ed +reated +d +eated + +ated +ted +ed +reated +d +eated + +ated +ted +ed +reated +d +eated + +ated +ted +ed +reated +d +eated + +ated +ted +- likes +loading users... +loading videos... +ERROR video '66798' does not exist +loading users... +loading videos... +ERROR video '66798' does not exist +ERROR video '66799' does not exist +ERROR video '66800' does not exist +like '1300075517' exist +unknown video in migrate: '39' +unknown video in migrate: '39' +unknown video in migrate: '39' +unknown video in migrate: '39' +unknown video in migrate: '46' +unknown video in migrate: '46' +unknown user in migrate: '43' +unknown user in migrate: '49' +eated +ted +d +like '1301734316' exist +eated +ted +d +like '1302214585' exist +like '1302214586' exist +like '1302214586' exist +like '1302214586' exist +like '1302215830' exist +d +unknown video in migrate: '4079' +unknown video in migrate: '4084' +unknown video in migrate: '4079' +unknown video in migrate: '4077' +unknown video in migrate: '4077' +unknown video in migrate: '4077' +unknown video in migrate: '4149' +unknown video in migrate: '4149' +d +unknown video in migrate: '4483' +unknown video in migrate: '4629' +unknown video in migrate: '4483' +unknown video in migrate: '4788' +unknown video in migrate: '4900' +unknown video in migrate: '5161' +unknown video in migrate: '4483' +ated +unknown video in migrate: '6160' +unknown video in migrate: '6161' +unknown video in migrate: '6165' +unknown video in migrate: '6165' +unknown video in migrate: '6161' +unknown video in migrate: '6160' +unknown video in migrate: '6160' +unknown video in migrate: '6161' +unknown video in migrate: '6207' +unknown video in migrate: '6170' +unknown video in migrate: '6207' +unknown video in migrate: '6207' +unknown video in migrate: '6211' +unknown video in migrate: '6165' +unknown video in migrate: '6161' +unknown video in migrate: '6232' +unknown video in migrate: '6230' +unknown video in migrate: '6231' +unknown video in migrate: '6232' +unknown video in migrate: '6230' +unknown video in migrate: '6161' +unknown video in migrate: '6230' +unknown video in migrate: '6230' +unknown video in migrate: '6230' +unknown video in migrate: '6382' +unknown video in migrate: '6382' +unknown video in migrate: '6382' +unknown video in migrate: '6422' +unknown video in migrate: '6422' +unknown video in migrate: '6436' +unknown video in migrate: '6443' +unknown video in migrate: '6437' +unknown video in migrate: '6443' +unknown video in migrate: '6442' +unknown video in migrate: '6441' +unknown video in migrate: '6455' +unknown video in migrate: '6500' +unknown video in migrate: '6575' +unknown video in migrate: '6575' +unknown video in migrate: '6658' +unknown video in migrate: '6642' +unknown video in migrate: '6770' +unknown video in migrate: '6777' +unknown video in migrate: '6777' +unknown video in migrate: '6774' +ted +unknown video in migrate: '6777' +unknown video in migrate: '6798' +unknown video in migrate: '6774' +unknown video in migrate: '6777' +unknown video in migrate: '6797' +unknown video in migrate: '6639' +eated +unknown video in migrate: '7186' +unknown video in migrate: '7186' +unknown video in migrate: '6777' +unknown video in migrate: '7202' +unknown video in migrate: '7186' +unknown video in migrate: '7202' +unknown video in migrate: '7433' +unknown video in migrate: '7433' +unknown video in migrate: '7475' +unknown video in migrate: '7475' +unknown video in migrate: '7475' +unknown video in migrate: '7498' +unknown video in migrate: '7498' +unknown video in migrate: '6639' +unknown video in migrate: '7498' +unknown video in migrate: '6639' +unknown video in migrate: '7590' +unknown video in migrate: '7347' +unknown video in migrate: '7615' +unknown video in migrate: '7645' +unknown video in migrate: '7614' +unknown video in migrate: '7347' +unknown video in migrate: '7692' +unknown video in migrate: '7694' +unknown video in migrate: '7346' +unknown video in migrate: '7347' +unknown video in migrate: '7715' +unknown video in migrate: '7715' +unknown video in migrate: '5643' +unknown video in migrate: '6206' +unknown video in migrate: '4014' +unknown video in migrate: '4015' +unknown video in migrate: '4017' +unknown video in migrate: '5643' +unknown video in migrate: '4064' +unknown video in migrate: '4077' +igrate: '6440' +unknown video in migrate: '7185' +unknown video in migrate: '4147' +unknown video in migrate: '4149' +unknown video in migrate: '7715' +unknown video in migrate: '7694' +unknown video in migrate: '7693' +unknown video in migrate: '7692' +unknown video in migrate: '7651' +unknown video in migrate: '7645' +unknown video in migrate: '7615' +unknown video in migrate: '7614' +unknown video in migrate: '7590' +unknown video in migrate: '7498' +unknown video in migrate: '7475' +unknown video in migrate: '7433' +unknown video in migrate: '7422' +unknown video in migrate: '7355' +unknown video in migrate: '7351' +unknown video in migrate: '7350' +unknown video in migrate: '7349' +unknown video in migrate: '7348' +unknown video in migrate: '7346' +unknown video in migrate: '7347' +unknown video in migrate: '7345' +unknown video in migrate: '7202' +unknown video in migrate: '7342' +unknown video in migrate: '7344' +unknown video in migrate: '7332' +unknown video in migrate: '7186' +unknown video in migrate: '6822' +unknown video in migrate: '6821' +unknown video in migrate: '6798' +unknown video in migrate: '6822' +unknown video in migrate: '6821' +unknown video in migrate: '6821' +unknown video in migrate: '6774' +unknown video in migrate: '6774' +unknown video in migrate: '6774' +unknown video in migrate: '6658' +unknown video in migrate: '6642' +unknown video in migrate: '6639' +unknown video in migrate: '6612' +unknown video in migrate: '6575' +unknown video in migrate: '6500' +unknown video in migrate: '6457' +unknown video in migrate: '6456' +unknown video in migrate: '6455' +unknown video in migrate: '6454' +unknown video in migrate: '6443' +unknown video in migrate: '6442' +unknown video in migrate: '6441' +unknown video in migrate: '6439' +unknown video in migrate: '6439' +unknown video in migrate: '6437' +unknown video in migrate: '6436' +unknown video in migrate: '6422' +unknown video in migrate: '6441' +unknown video in migrate: '6299' +unknown video in migrate: '7344' +unknown video in migrate: '6774' +unknown video in migrate: '6774' +unknown video in migrate: '6441' +unknown video in migrate: '6235' +unknown video in migrate: '6232' +unknown video in migrate: '6231' +unknown video in migrate: '6230' +unknown video in migrate: '6229' +unknown video in migrate: '6211' +unknown video in migrate: '6207' +unknown video in migrate: '6205' +unknown video in migrate: '6170' +unknown video in migrate: '6168' +unknown video in migrate: '6165' +unknown video in migrate: '6164' +unknown video in migrate: '6163' +unknown video in migrate: '6161' +unknown video in migrate: '6160' +unknown video in migrate: '6158' +unknown video in migrate: '6113' +unknown video in migrate: '6001' +unknown video in migrate: '5647' +unknown video in migrate: '5645' +unknown video in migrate: '5298' +unknown video in migrate: '5161' +unknown video in migrate: '4900' +unknown video in migrate: '4899' +unknown video in migrate: '4788' +unknown video in migrate: '4629' +unknown video in migrate: '4485' +unknown video in migrate: '4484' +unknown video in migrate: '4483' +unknown video in migrate: '7185' +unknown video in migrate: '6440' +unknown video in migrate: '4022' +unknown video in migrate: '7822' +unknown video in migrate: '7853' +like '1304750916' exist +unknown video in migrate: '7961' +unknown video in migrate: '7961' +unknown video in migrate: '7966' +unknown video in migrate: '7961' +unknown video in migrate: '7967' +unknown video in migrate: '7970' +unknown video in migrate: '7971' +unknown video in migrate: '7971' +unknown video in migrate: '7970' +unknown video in migrate: '7347' +unknown video in migrate: '7999' +unknown video in migrate: '8000' +unknown video in migrate: '8000' +unknown video in migrate: '8016' + +unknown video in migrate: '7966' +unknown video in migrate: '8085' + +unknown video in migrate: '8304' +like '1305227520' exist +unknown video in migrate: '8303' +unknown video in migrate: '8322' +unknown video in migrate: '8323' +unknown video in migrate: '8326' +unknown video in migrate: '11254' +unknown video in migrate: '8436' +unknown video in migrate: '8461' +unknown video in migrate: '8469' +unknown video in migrate: '8437' +unknown video in migrate: '8489' +unknown video in migrate: '8523' +unknown video in migrate: '8533' +unknown video in migrate: '8533' +unknown video in migrate: '8530' +unknown video in migrate: '8531' +unknown video in migrate: '8533' +unknown video in migrate: '8531' +unknown video in migrate: '8533' +unknown video in migrate: '8620' +like '1305441502' exist +eated +unknown video in migrate: '8699' +unknown video in migrate: '8728' +unknown video in migrate: '8743' +unknown video in migrate: '8907' +unknown video in migrate: '8907' +unknown video in migrate: '9153' +unknown video in migrate: '9153' +unknown video in migrate: '7347' +unknown video in migrate: '9559' +unknown video in migrate: '9559' +unknown video in migrate: '9566' + +unknown video in migrate: '9565' +unknown video in migrate: '9654' +unknown video in migrate: '9655' +unknown video in migrate: '9656' +unknown video in migrate: '9656' +unknown video in migrate: '9655' +unknown video in migrate: '9654' +unknown video in migrate: '9727' +unknown video in migrate: '9654' +unknown video in migrate: '9731' +unknown video in migrate: '9727' +unknown video in migrate: '6639' +unknown video in migrate: '9731' +unknown video in migrate: '9727' +unknown video in migrate: '9731' +unknown video in migrate: '9726' +unknown video in migrate: '9880' +unknown video in migrate: '9879' +unknown video in migrate: '9878' +d +unknown video in migrate: '10155' +unknown video in migrate: '10154' +unknown video in migrate: '10154' +unknown video in migrate: '6774' +unknown video in migrate: '6161' +unknown video in migrate: '6230' +unknown video in migrate: '6207' +unknown video in migrate: '6232' +unknown video in migrate: '6639' +unknown video in migrate: '10247' +unknown video in migrate: '10245' +unknown video in migrate: '10245' +unknown video in migrate: '10245' +unknown video in migrate: '6161' +unknown video in migrate: '10245' +unknown video in migrate: '10247' +like '1307144500' exist +unknown video in migrate: '10531' +unknown video in migrate: '9445' +unknown video in migrate: '10668' +unknown video in migrate: '10703' +unknown video in migrate: '10710' +unknown video in migrate: '10761' +unknown video in migrate: '11254' +unknown video in migrate: '11254' +unknown video in migrate: '11254' +unknown video in migrate: '11254' +'10760' +unknown video in migrate: '11298' +unknown video in migrate: '11299' +unknown video in migrate: '11254' +unknown video in migrate: '11298' +unknown video in migrate: '11299' +unknown video in migrate: '11347' +unknown video in migrate: '11347' +unknown video in migrate: '11347' +unknown video in migrate: '11347' +unknown video in migrate: '11539' +unknown video in migrate: '11566' +unknown video in migrate: '11566' +unknown video in migrate: '11539' +unknown video in migrate: '11566' +unknown video in migrate: '6230' +unknown video in migrate: '11806' +ed +unknown video in migrate: '11806' +unknown video in migrate: '11984' +unknown video in migrate: '12017' +unknown video in migrate: '12022' +unknown video in migrate: '12022' +unknown video in migrate: '12022' +unknown video in migrate: '12017' +unknown video in migrate: '12028' +unknown video in migrate: '12030' +unknown video in migrate: '12035' +unknown video in migrate: '12115' +unknown video in migrate: '12115' +unknown video in migrate: '12143' +unknown video in migrate: '12115' +unknown video in migrate: '12115' +unknown video in migrate: '12536' +unknown video in migrate: '12682' +unknown video in migrate: '12693' +unknown video in migrate: '12693' +unknown video in migrate: '12693' +ated +unknown video in migrate: '12693' +unknown video in migrate: '12693' +unknown video in migrate: '11539' +unknown video in migrate: '11347' +unknown video in migrate: '13366' +unknown video in migrate: '13366' +unknown video in migrate: '13733' +unknown video in migrate: '13687' +unknown video in migrate: '13733' +unknown video in migrate: '13687' +unknown video in migrate: '14058' +unknown video in migrate: '14059' +unknown video in migrate: '14068' +unknown video in migrate: '14068' +unknown video in migrate: '13687' +ated +unknown video in migrate: '14126' +unknown video in migrate: '14126' +unknown video in migrate: '14039' +unknown video in migrate: '14068' +unknown video in migrate: '14059' +ated +ed +unknown video in migrate: '11299' +unknown video in migrate: '8323' +unknown video in migrate: '16397' +eated +unknown video in migrate: '0' +unknown video in migrate: '21150' +eated +ted +d +eated +ted +d +like '1323694829' exist +eated +ted +d +eated +ted +d +eated diff --git a/tools/migrate_room.py b/tools/migrate_room.py index 6f99a62..c037e24 100755 --- a/tools/migrate_room.py +++ b/tools/migrate_room.py @@ -99,8 +99,11 @@ if __name__ == '__main__': for row in sj_room: try: room = SJRoom.objects.get(name=row['name']) + print "room '%s' exist" % row['name'] except SJRoom.DoesNotExist: room = SJRoom(name=row['name']) + print "room '%s' created" % row['name'] + room.user = admin room.datetime = datetime.fromtimestamp(row['date']) room.settings = thraw(row['settings']) diff --git a/tools/migrate_search.py b/tools/migrate_search.py index 93c4070..37ebe10 100755 --- a/tools/migrate_search.py +++ b/tools/migrate_search.py @@ -87,39 +87,25 @@ class MigrateDB(DB): if __name__ == '__main__': - admin = User.objects.get(username='admin') - db = MigrateDB() db.connect() # Migrate sj_search_log table - sj_user = list(db.get_sj_user_table()) - map_user = {} - for row in sj_user: - try: - user = User.objects.get(username=row['username']) - except User.DoesNotExist: - print "ERROR in users" - - map_user[row['id']] = user.pk - sj_search_log = list(db.get_sj_search_log_table()) for row in sj_search_log: - user = admin - pk = map_user.get(row['userid'], 0) - if pk: - user = User.objects.get(pk=pk) + user = User.objects.get(pk=row['userid']) try: sjsearch = SJSearch.objects.get( user=user, datetime=datetime.fromtimestamp(row['date']) ) - print 'SJ Search Log Found' + print 'searchlog "%d" exist' % row['date'] except SJSearch.DoesNotExist: sjsearch = SJSearch( user=user, datetime=datetime.fromtimestamp(row['date']) ) + print 'searchlog "%d" created' % row['date'] sjsearch.settings = dict( url=row['url'], count=row['count'], diff --git a/tools/migrate_url.py b/tools/migrate_url.py index 361ba5d..4db2e28 100755 --- a/tools/migrate_url.py +++ b/tools/migrate_url.py @@ -87,55 +87,63 @@ class MigrateDB(DB): if __name__ == '__main__': - admin = User.objects.get(username='admin') - db = MigrateDB() db.connect() + print "loading users..." sj_user = list(db.get_sj_user_table()) map_user = {} for row in sj_user: try: user = User.objects.get(username=row['username']) except User.DoesNotExist: - print "ERROR in users" + print "ERROR in users '%s' does not exist" % row['username'] + exit(0) - map_user[row['id']] = user.pk + map_user[row['id']] = user + print "loading rooms..." sj_room = list(db.get_sj_room_table()) map_room = {} for row in sj_room: try: room = SJRoom.objects.get(name=row['name']) except SJRoom.DoesNotExist: - print "ERROR" - map_room[row['id']] = room.pk + print "ERROR in room '%s' does not exist" % row['name'] + exit(0) + map_room[row['id']] = room # Migrate sj_url table sj_url = list(db.get_sj_url_table()) for row in sj_url: - user = admin - pk = map_user.get(row['userid'], 0) - if pk: - user = User.objects.get(pk=pk) - room = SJRoom.objects.get(name='main') - pk = map_room.get(row['roomid'], 0) - if pk: - room = SJRoom.objects.get(pk=pk) - try: + if row['userid'] in map_user: + user = map_user[row['userid']] + else: + print "unknown user in migrate: '%d'" % row['userid'] + continue + + if row['roomid'] in map_room: + room = map_room[row['roomid']] + else: + print "unknown room in migrate: '%d'" % row['roomid'] + continue + + try: url = SJContent.objects.get( user=user, datetime=datetime.fromtimestamp(row['date']), room=room, + old_id=row['id'], content_type='url') + print "url '%d' exist" % row['date'] except SJContent.DoesNotExist: url = SJContent( user=user, datetime=datetime.fromtimestamp(row['date']), room=room, + old_id=row['id'], content_type='url') + print "url '%d' created" % row['date'] url.settings = dict(url=row['url']) url.save() - - row['__sjcontent_url_pk'] = url.pk diff --git a/tools/migrate_user.py b/tools/migrate_user.py index bf941f6..6147847 100755 --- a/tools/migrate_user.py +++ b/tools/migrate_user.py @@ -99,19 +99,24 @@ if __name__ == '__main__': for row in sj_user: try: user = User.objects.get(username=row['username']) + print "user '%s' already exist" % user.username except User.DoesNotExist: user = User.objects.create_user( row['username'], '%s@example.com' % row['username'], row['password'] ) + print "user '%s' created" % user.username + try: user_profile = user.get_profile() + print "profile for '%s' exist" % user.username except django.core.exceptions.ObjectDoesNotExist: user_profile = SJUserProfile(user=user) user_profile.lastseen_chat = datetime.fromtimestamp(0) user_profile.lastseen_webcam = datetime.fromtimestamp(0) user_profile.save() + print "profile for '%s' created" % user.username user.date_joined = datetime.fromtimestamp(row['joindate']) user.last_login = datetime.fromtimestamp(row['seendate']) diff --git a/tools/migrate_validate_user.py b/tools/migrate_validate_user.py new file mode 100755 index 0000000..663f9ca --- /dev/null +++ b/tools/migrate_validate_user.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python + +import os +import sys +import chardet +import json + +sys.path.append(os.path.join(os.path.dirname(__file__), '..')) +os.environ['DJANGO_SETTINGS_MODULE'] = 'scannerjammer.settings' + +from db import db as DB +from pprint import pprint + +import django +from datetime import datetime + +from django.conf import settings +from django.contrib.auth.models import User + +from backend.models import SJLike +from backend.models import SJRoom +from backend.models import SJContent +from backend.models import SJSearch +from backend.models import SJUserProfile + +from backend.views import thraw +from backend.views import freeze + +class MigrateDB(DB): + + def __init__(self, *args, **kwargs): + super(MigrateDB, self).__init__(*args, **kwargs) + + def get_table(self, name): + self.execute('SELECT * FROM %s' % name) + fields = [d[0] for d in self.cursor.description] + rows = self.cursor.fetchall() + for row in rows: + row = list(row) + for i, r in enumerate(row[:]): + if isinstance(r, str): + detect = chardet.detect(r) + try: + row[i] = unicode(r, detect['encoding'] or 'utf8', 'replace') + except LookupError: + row[i] = unicode(r, 'utf8', 'replace') + yield dict(zip(fields, row)) + + def get_radio_chat_table(self): + return self.get_table('radio_chat') + + def get_search_log_table(self): + return self.get_table('search_log') + + def get_sj_bg_table(self): + return self.get_table('sj_bg') + + def get_sj_chat_table(self): + return self.get_table('sj_chat') + + def get_sj_likes_table(self): + return self.get_table('sj_likes') + + def get_sj_likes_tmp_table(self): + return self.get_table('sj_likes_tmp') + + def get_sj_room_table(self): + return self.get_table('sj_room') + + def get_sj_search_log_table(self): + return self.get_table('sj_search_log') + + def get_sj_session_table(self): + return self.get_table('sj_sesson') + + def get_sj_url_table(self): + return self.get_table('sj_url') + + def get_sj_url_tmp_table(self): + return self.get_table('sj_url_tmp') + + def get_sj_user_table(self): + return self.get_table('sj_user') + + def get_sj_video_table(self): + return self.get_table('sj_video') + +if __name__ == '__main__': + db = MigrateDB() + db.connect() + + sj_user = list(db.get_sj_user_table()) + for row in sj_user: + try: + user = User.objects.get(username=row['username']) + except User.DoesNotExist: + print "ERROR user '%s' does not exist" % row['username'] + diff --git a/tools/migrate_video.py b/tools/migrate_video.py index f7553b2..dacd33d 100755 --- a/tools/migrate_video.py +++ b/tools/migrate_video.py @@ -87,54 +87,61 @@ class MigrateDB(DB): if __name__ == '__main__': - admin = User.objects.get(username='admin') - db = MigrateDB() db.connect() # Migrate sj_video table + + print "loading users..." sj_user = list(db.get_sj_user_table()) map_user = {} for row in sj_user: try: user = User.objects.get(username=row['username']) except User.DoesNotExist: - print "ERROR in users" + print "ERROR in users '%s' does not exist" % row['username'] - map_user[row['id']] = user.pk + map_user[row['id']] = user + print "loading rooms..." sj_room = list(db.get_sj_room_table()) map_room = {} for row in sj_room: try: room = SJRoom.objects.get(name=row['name']) except SJRoom.DoesNotExist: - print "ERROR" - map_room[row['id']] = room.pk + print "ERROR in room '%s' does not exist" % row['name'] + map_room[row['id']] = room + sj_video = list(db.get_sj_video_table()) map_video = {} for row in sj_video: - user = admin - pk = map_user.get(row['userid'], 0) - if pk: - user = User.objects.get(pk=pk) - room = SJRoom.objects.get(name='main') - pk = map_room.get(row['roomid'], 0) - if pk: - room = SJRoom.objects.get(pk=pk) + if row['userid'] in map_user: + user = map_user[row['userid']] + else: + print "unknown user in migrate: '%d'" % row['userid'] + + if row['roomid'] in map_room: + room = map_room[row['roomid']] + else: + print "unknown room in migrate: '%d'" % row['roomid'] try: video = SJContent.objects.get( user=user, datetime=datetime.fromtimestamp(row['date']), room=room, + old_id=row['id'], content_type='video') + print "video '%d' exist" % row['date'] except SJContent.DoesNotExist: video = SJContent( user=user, datetime=datetime.fromtimestamp(row['date']), room=room, + old_id=row['id'], content_type='video') + print "video '%d' created" % row['date'] video.settings = dict( url=row['url'], title=row['title'], @@ -145,6 +152,6 @@ if __name__ == '__main__': ) video.save() - row['__sjcontent_video_pk'] = video.pk - map_video[row['id']] = video.pk + #row['__sjcontent_video_pk'] = video.pk + #map_video[row['id']] = video.pk diff --git a/tools/safe_migrate.sh b/tools/safe_migrate.sh new file mode 100755 index 0000000..d653f72 --- /dev/null +++ b/tools/safe_migrate.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +. /var/www/scannerjammer.fm/pyenv/bin/activate + +echo "- utf" +python fix_utf8.py +echo "- users" +python migrate_user.py 2>&1 | grep -vP "^ RuntimeWarning\)$" | grep -vP "DateTime" +python migrate_validate_user.py + +echo "- rooms" +python migrate_room.py 2>&1 | grep -vP "^ RuntimeWarning\)$" | grep -vP "DateTime" +#manual validate | grep -v "exist" + +echo "- search" +python migrate_search.py 2>&1 | grep -vP "^ RuntimeWarning\)$" | grep -vP "DateTime" +#manual validate | grep -v "exist" + + +echo "- video" +python migrate_video.py 2>&1 | grep -vP "^ RuntimeWarning\)$" | grep -vP "DateTime" +echo "- bg" +python migrate_bg.py 2>&1 | grep -vP "^ RuntimeWarning\)$" | grep -vP "DateTime" +echo "- chat" +python migrate_chat.py 2>&1 | grep -vP "^ RuntimeWarning\)$" | grep -vP "DateTime" +echo "- url" +python migrate_url.py 2>&1 | grep -vP "^ RuntimeWarning\)$" | grep -vP "DateTime" + +echo "- likes" +python migrate_likes.py 2>&1 | grep -vP "^ RuntimeWarning\)$" | grep -vP "DateTime" |
