-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtwitch_data.py
102 lines (86 loc) · 3.41 KB
/
twitch_data.py
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
from pathlib import Path
from csv import reader
import models
from app import memgraph
import traceback
def load_streams(path):
with open(path) as read_obj:
csv_reader = reader(read_obj)
header = next(csv_reader)
if header != None:
for row in csv_reader:
stream = models.Stream(
id=row[1],
name=row[3],
url=row[6],
followers=row[7],
createdAt=row[10],
totalViewCount=row[9],
description=row[8],
).save(memgraph)
language = models.Language(name=row[5]).save(memgraph)
game = models.Game(name=row[4]).save(memgraph)
speaks_rel = models.Speaks(
_start_node_id=stream._id, _end_node_id=language._id
).save(memgraph)
plays_rel = models.Plays(
_start_node_id=stream._id, _end_node_id=game._id
).save(memgraph)
def load_teams(path):
try:
with open(path) as read_obj:
csv_reader = reader(read_obj)
header = next(csv_reader)
if header != None:
for row in csv_reader:
stream = models.Stream(id=row[0]).load(db=memgraph)
team = models.Team(name=row[1]).save(memgraph)
is_part_of_rel = models.IsPartOf(
_start_node_id=stream._id, _end_node_id=team._id
).save(memgraph)
except Exception as e:
traceback.print_exc()
def load_vips(path):
with open(path) as read_obj:
csv_reader = reader(read_obj)
header = next(csv_reader)
if header != None:
for row in csv_reader:
stream = models.Stream(id=row[0]).load(db=memgraph)
vip = models.User(name=row[1]).save(memgraph)
vip_rel = models.Vip(
_start_node_id=vip._id, _end_node_id=stream._id
).save(memgraph)
def load_moderators(path):
with open(path) as read_obj:
csv_reader = reader(read_obj)
header = next(csv_reader)
if header != None:
for row in csv_reader:
stream = models.Stream(id=row[0]).load(db=memgraph)
moderator = models.User(name=row[1]).save(memgraph)
moderator_rel = models.Moderator(
_start_node_id=moderator._id, _end_node_id=stream._id
).save(memgraph)
def load_chatters(path):
with open(path) as read_obj:
csv_reader = reader(read_obj)
header = next(csv_reader)
if header != None:
for row in csv_reader:
stream = models.Stream(id=row[0]).load(db=memgraph)
chatter = models.User(name=row[1]).save(memgraph)
chatter_rel = models.Chatter(
_start_node_id=chatter._id, _end_node_id=stream._id
).save(memgraph)
def load():
path_streams = Path("import-data/streamers.csv")
path_teams = Path("import-data/teams.csv")
path_vips = Path("import-data/vips.csv")
path_moderators = Path("import-data/moderators.csv")
path_chatters = Path("import-data/chatters.csv")
load_streams(path_streams)
load_teams(path_teams)
load_vips(path_vips)
load_moderators(path_moderators)
load_chatters(path_chatters)