summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/migrate_bg.py40
-rwxr-xr-xtools/migrate_chat.py35
-rwxr-xr-xtools/migrate_likes.py89
-rw-r--r--tools/migrate_log2161
-rwxr-xr-xtools/migrate_room.py3
-rwxr-xr-xtools/migrate_search.py20
-rwxr-xr-xtools/migrate_url.py42
-rwxr-xr-xtools/migrate_user.py5
-rwxr-xr-xtools/migrate_validate_user.py98
-rwxr-xr-xtools/migrate_video.py39
-rwxr-xr-xtools/safe_migrate.sh30
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"