This repository was archived by the owner on Sep 11, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathmigrate.py
More file actions
73 lines (60 loc) · 3.28 KB
/
migrate.py
File metadata and controls
73 lines (60 loc) · 3.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Copyright (c) 2020.
# MIT License
#
# Copyright (c) 2019 YumeNetwork
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
import psycopg2
import pymongo
client = pymongo.MongoClient('localhost', 27018)
con = psycopg2.connect("host=localhost dbname=yumebot user=postgres")
cur = con.cursor()
db = client.bot
collection_server = db.servers
collection_sanction = db.sanction
collection_rankings = db.user
servers = collection_server.find()
for sanction in collection_sanction.find():
cur.execute("INSERT INTO public.sanctions ( event_date, event, guild_id, moderator_id, reason, sanction_id, time, user_id) VALUES ( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s );",(sanction['date'], sanction['event'], sanction['guild_id'],sanction['moderator_id'], sanction['reason'], sanction['_id'], sanction['time'], sanction['user_id']))
for server in servers:
cur.execute(
"INSERT INTO public.guild ( blacklist, color, greet, greetchan, guild_id, log_chan, logging, setup, stats_category, stats_channels, vip) VALUES ( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);",
(server['bl'], server['Color'], server['Greet'],
server['GreetChannel'], server['_id'],
server['LogChannel'], server['logging'], server['Setup'],
server['category'],
server['Display'], server['Vip']))
for user in server['Admins']:
cur.execute("INSERT INTO public.admin ( admin, guild_id, user_id) VALUES ( %s, %s, %s);",
(True, server['_id'], user))
for user in server['Mods']:
cur.execute("INSERT INTO public.admin ( admin, guild_id, user_id) VALUES ( %s, %s, %s);",
(False, server['_id'], user))
if 'levels' in server:
for level in server['levels']:
cur.execute("INSERT INTO public.roles ( guild_id, level, role_id) VALUES ( %s, %s, %s );",
(server['_id'], level, server['levels'][level]))
for guild in collection_rankings.find():
for user in guild:
if isinstance(guild[user], str):
continue
cur.execute(
"INSERT INTO public.rankings ( guild_id, level, reach, total, user_id, xp) VALUES ( %s, %s, %s, %s, %s, %s );",
(guild['_id'], guild[user]['level'], guild[user]['reach'], guild[user]['total'], user, guild[user]['xp']))
con.commit()