Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:01,100 --> 00:00:02,990
Let's now take a small break
2
00:00:02,990 --> 00:00:04,900
from building our API
3
00:00:04,900 --> 00:00:07,080
and build a fun little script
4
00:00:07,080 --> 00:00:10,430
that will import the tour data from our JSON file
5
00:00:10,430 --> 00:00:12,930
into the MongoDB database.
6
00:00:12,930 --> 00:00:14,240
And I wasn't really sure
7
00:00:14,240 --> 00:00:16,850
if I should include this video in the course
8
00:00:16,850 --> 00:00:19,620
or if I should just come with the script
9
00:00:19,620 --> 00:00:22,690
already in the course starter files.
10
00:00:22,690 --> 00:00:25,710
But I thought I thought it was a nice little exercise
11
00:00:25,710 --> 00:00:27,560
and so I included it anyways.
12
00:00:27,560 --> 00:00:30,023
So, anyway, let's now get started.
13
00:00:31,860 --> 00:00:34,233
So, basically we're gonna create a script
14
00:00:34,233 --> 00:00:37,200
that will simply load the data from the JSON file
15
00:00:37,200 --> 00:00:39,730
as I just said into the database.
16
00:00:39,730 --> 00:00:42,090
And this script is completely independent
17
00:00:42,090 --> 00:00:44,560
of the rest of our express application.
18
00:00:44,560 --> 00:00:46,990
And so we'll run this completely separately
19
00:00:46,990 --> 00:00:50,720
from the comment line just to import everything once.
20
00:00:50,720 --> 00:00:53,310
Okay, so let me actually create the script
21
00:00:53,310 --> 00:00:56,330
right here in the data folder.
22
00:00:56,330 --> 00:00:57,433
So new file,
23
00:00:58,780 --> 00:00:59,623
import,
24
00:01:01,240 --> 00:01:03,543
dev data.js.
25
00:01:04,400 --> 00:01:05,379
All right.
26
00:01:05,379 --> 00:01:07,810
So, what are we gonna need for this?
27
00:01:07,810 --> 00:01:09,530
We will need mongoose of course
28
00:01:09,530 --> 00:01:11,370
so let's start with that.
29
00:01:11,370 --> 00:01:15,380
Or actually, let's just go ahead into the server.js file
30
00:01:15,380 --> 00:01:16,990
and copy this stuff
31
00:01:16,990 --> 00:01:20,053
because why writing it all over again.
32
00:01:20,960 --> 00:01:23,320
So let's copy everything
33
00:01:23,320 --> 00:01:26,090
and then delete what we don't need.
34
00:01:26,090 --> 00:01:28,410
So we don't need our express application
35
00:01:29,370 --> 00:01:31,370
we also need the .env package
36
00:01:31,370 --> 00:01:33,740
because we need our environment variables
37
00:01:33,740 --> 00:01:38,740
in order to be able to connect to the database again, okay.
38
00:01:38,970 --> 00:01:41,560
And we need to connect to the database in this script
39
00:01:41,560 --> 00:01:44,220
again because it runs completely independent
40
00:01:44,220 --> 00:01:46,010
from the express application.
41
00:01:46,010 --> 00:01:48,930
It's only gonna run once in the beginning.
42
00:01:48,930 --> 00:01:52,690
Next up, we need access to the file system module
43
00:01:52,690 --> 00:01:55,483
because of course we want to read the JSON file.
44
00:01:57,100 --> 00:01:58,700
So require fs
45
00:01:59,910 --> 00:02:03,860
and finally we also need access to the tour model
46
00:02:03,860 --> 00:02:05,390
because the tour model is
47
00:02:05,390 --> 00:02:08,993
where we want to write the tours to, right?
48
00:02:10,300 --> 00:02:12,560
So, tour equals
49
00:02:12,560 --> 00:02:14,870
and now let's find the path there
50
00:02:15,900 --> 00:02:18,410
so from the place where we are right now
51
00:02:18,410 --> 00:02:21,190
we need to go up one level.
52
00:02:21,190 --> 00:02:24,023
And what's going on here with these quotes?
53
00:02:25,800 --> 00:02:27,640
All right, so one level up
54
00:02:27,640 --> 00:02:29,960
and we're in dev data.
55
00:02:29,960 --> 00:02:32,250
So we need another level up
56
00:02:32,250 --> 00:02:33,900
so that we're in the main folder.
57
00:02:33,900 --> 00:02:36,810
And from there we go in to models
58
00:02:36,810 --> 00:02:38,483
and into the tour model.
59
00:02:39,910 --> 00:02:43,160
Okay and that should be it for setup.
60
00:02:43,160 --> 00:02:46,053
Now let's start by reading the file.
61
00:02:47,340 --> 00:02:50,460
So, read JSON file
62
00:02:50,460 --> 00:02:52,253
and that should be fairly simple.
63
00:02:54,250 --> 00:02:57,490
So the tours are at fs.readfile
64
00:02:59,250 --> 00:03:01,700
and we can use the synchronous version of course.
65
00:03:02,820 --> 00:03:07,633
And let's simply say tours simple.json, okay.
66
00:03:08,467 --> 00:03:09,403
And then,
67
00:03:10,260 --> 00:03:12,970
also the encoding.
68
00:03:12,970 --> 00:03:15,233
So, file encoding, utf eight.
69
00:03:16,600 --> 00:03:17,563
Give it a save.
70
00:03:18,730 --> 00:03:21,540
And so now we can write the actual function
71
00:03:21,540 --> 00:03:24,393
that is gonna import the data into the database.
72
00:03:25,750 --> 00:03:29,183
So import data into database.
73
00:03:30,040 --> 00:03:32,380
Okay, just like this.
74
00:03:32,380 --> 00:03:33,940
And so let's create this function.
75
00:03:33,940 --> 00:03:37,690
Import data, import data,
76
00:03:37,690 --> 00:03:39,000
yep.
77
00:03:39,000 --> 00:03:40,980
And that's gonna be and async function
78
00:03:43,010 --> 00:03:45,940
which does not need any arguments
79
00:03:45,940 --> 00:03:50,913
and so let's again use a try catch block here.
80
00:03:53,902 --> 00:03:57,520
And here I'm simply gonna log it to the console
81
00:03:57,520 --> 00:03:58,740
if there is some error,
82
00:03:58,740 --> 00:04:02,350
just to know what's going on in that case.
83
00:04:02,350 --> 00:04:03,183
And now here,
84
00:04:03,183 --> 00:04:05,900
what we will do is very simple.
85
00:04:05,900 --> 00:04:07,253
We are simply gonna await,
86
00:04:08,100 --> 00:04:10,950
tour.create.
87
00:04:10,950 --> 00:04:13,200
So we already used tour.create
88
00:04:13,200 --> 00:04:16,070
and we pass then an object back then right?
89
00:04:16,070 --> 00:04:20,930
But the create method can also accept an array of objects.
90
00:04:20,930 --> 00:04:22,010
And in that case
91
00:04:22,010 --> 00:04:24,390
it will then simply create a new document
92
00:04:24,390 --> 00:04:26,663
for each of the objects in the array.
93
00:04:27,560 --> 00:04:28,920
So, very simple,
94
00:04:28,920 --> 00:04:33,920
all we have to do is to specify our tours data here, right?
95
00:04:34,750 --> 00:04:37,520
And actually it's not 100% correct
96
00:04:37,520 --> 00:04:40,280
because remember that this is JSON.
97
00:04:40,280 --> 00:04:42,860
And so we need to first convert it actually
98
00:04:42,860 --> 00:04:47,423
into a JavaScript object using json.parse.
99
00:04:49,580 --> 00:04:52,380
Okay and so now we actually have
100
00:04:52,380 --> 00:04:54,480
an array of JavaScript objects
101
00:04:54,480 --> 00:04:59,220
that we can now pass into the create method, okay.
102
00:04:59,220 --> 00:05:00,950
And if that was successful,
103
00:05:00,950 --> 00:05:03,290
then the next line is gonna be executed
104
00:05:04,350 --> 00:05:08,660
and so here we can say data successfully
105
00:05:10,820 --> 00:05:12,910
loaded, all right.
106
00:05:12,910 --> 00:05:15,060
And this should already do the job.
107
00:05:15,060 --> 00:05:19,300
Now what about the data that is already in the database?
108
00:05:19,300 --> 00:05:21,150
We can also create an easy way
109
00:05:21,150 --> 00:05:24,620
to basically delete all of that data at the same time.
110
00:05:24,620 --> 00:05:27,343
And so let's simply go ahead and do that as well.
111
00:05:28,250 --> 00:05:30,750
So, delete all data
112
00:05:31,762 --> 00:05:33,823
from collection, let's say.
113
00:05:35,260 --> 00:05:37,840
And this weird yellow color that you see here
114
00:05:37,840 --> 00:05:41,070
actually comes from an extension that I have installed here.
115
00:05:41,070 --> 00:05:42,820
And so to get rid of that,
116
00:05:42,820 --> 00:05:45,633
I'm simply gonna write database again, okay.
117
00:05:47,610 --> 00:05:49,110
So delete data
118
00:05:50,460 --> 00:05:53,910
and again this is gonna be an async function
119
00:05:53,910 --> 00:05:55,373
without any arguments.
120
00:05:57,640 --> 00:05:59,880
And let me actually copy this code here.
121
00:06:01,885 --> 00:06:03,170
So, delete it
122
00:06:05,000 --> 00:06:07,520
and now about the deleting itself
123
00:06:07,520 --> 00:06:11,820
we can use the delete many function.
124
00:06:11,820 --> 00:06:14,240
Okay and actually I showed you this one
125
00:06:14,240 --> 00:06:18,120
back in the intro to MongoDB, right?
126
00:06:18,120 --> 00:06:19,920
Where we could use delete many
127
00:06:19,920 --> 00:06:22,610
and then simply pass in nothing in there
128
00:06:22,610 --> 00:06:23,640
and that would then delete
129
00:06:23,640 --> 00:06:26,710
all of the documents in a certain collection, right?
130
00:06:26,710 --> 00:06:29,020
And so mongoose basically implemented
131
00:06:29,020 --> 00:06:33,180
the same function here on the model, okay.
132
00:06:33,180 --> 00:06:34,013
So in this case,
133
00:06:34,013 --> 00:06:37,520
the tour model has access to this delete many method
134
00:06:37,520 --> 00:06:39,120
which will then do exactly the same
135
00:06:39,120 --> 00:06:43,380
as delete many does in native MongoDB, right?
136
00:06:43,380 --> 00:06:46,320
So, remember that mongoose is just a,
137
00:06:46,320 --> 00:06:49,740
like a layer of abstraction on top of MongoDB.
138
00:06:49,740 --> 00:06:52,700
Which is why it doesn't use the exact same functions
139
00:06:52,700 --> 00:06:56,040
but it still gives us access to some similar ones
140
00:06:56,040 --> 00:06:58,490
or to ones that actually have the same name.
141
00:06:58,490 --> 00:07:00,570
So delete many actually has the same name
142
00:07:00,570 --> 00:07:03,780
as the native MongoDB function, all right?
143
00:07:03,780 --> 00:07:06,700
So again, what this is gonna do is to simply go ahead
144
00:07:06,700 --> 00:07:10,620
and delete all the documents in the tours collection.
145
00:07:10,620 --> 00:07:12,860
So, we have our two functions here
146
00:07:12,860 --> 00:07:15,240
but if we now actually run this file
147
00:07:15,240 --> 00:07:16,850
then nothing will happen.
148
00:07:16,850 --> 00:07:17,700
And that's because
149
00:07:17,700 --> 00:07:21,320
we're not calling any of these functions anywhere, right?
150
00:07:21,320 --> 00:07:22,300
Now we could go ahead
151
00:07:22,300 --> 00:07:26,820
and simply write something like import data here
152
00:07:26,820 --> 00:07:29,000
and then simply call the function here
153
00:07:29,000 --> 00:07:32,040
but I wanted to make this a little bit more fun.
154
00:07:32,040 --> 00:07:34,930
So let's now actually learn a tiny little bit
155
00:07:34,930 --> 00:07:38,130
about interacting with the command line, okay.
156
00:07:38,130 --> 00:07:39,580
And so I'm actually gonna go ahead
157
00:07:39,580 --> 00:07:43,480
and run this file without calling any of these functions.
158
00:07:43,480 --> 00:07:45,480
But instead I'm gonna log to the console
159
00:07:47,260 --> 00:07:51,310
process.argv,
160
00:07:51,310 --> 00:07:52,143
okay.
161
00:07:52,143 --> 00:07:55,800
Just so we can see what process.argv actually is
162
00:07:55,800 --> 00:07:57,860
so that we can then use it.
163
00:07:57,860 --> 00:07:58,693
All right.
164
00:07:58,693 --> 00:08:01,080
Let me open up here another terminal
165
00:08:01,080 --> 00:08:02,583
and then I will use node,
166
00:08:03,840 --> 00:08:05,520
go into dev data
167
00:08:05,520 --> 00:08:06,353
then into data
168
00:08:06,353 --> 00:08:08,980
and then in there import dev data.
169
00:08:08,980 --> 00:08:11,570
And we get some errors here.
170
00:08:11,570 --> 00:08:12,560
Let's see where.
171
00:08:12,560 --> 00:08:15,710
Ah, yeah so it's because of this,
172
00:08:15,710 --> 00:08:17,290
of this file name.
173
00:08:17,290 --> 00:08:20,963
So I guess we should specify the path to there basically.
174
00:08:22,020 --> 00:08:24,540
So let's run this one again
175
00:08:24,540 --> 00:08:26,710
and again we have this error.
176
00:08:26,710 --> 00:08:30,010
And yeah, of course I get this error.
177
00:08:30,010 --> 00:08:31,360
That's a stupid one.
178
00:08:31,360 --> 00:08:32,860
Remember how I told you
179
00:08:32,860 --> 00:08:36,710
that this dot here is always relative from the folder
180
00:08:36,710 --> 00:08:39,210
where the node application was actually started.
181
00:08:39,210 --> 00:08:40,669
And so that's the home folder.
182
00:08:40,669 --> 00:08:42,740
And so we're basically looking for this file here
183
00:08:42,740 --> 00:08:45,010
in the home folder, okay.
184
00:08:45,010 --> 00:08:49,470
So what I should use instead is the dir name,
185
00:08:49,470 --> 00:08:52,860
variable that is available to us everywhere.
186
00:08:52,860 --> 00:08:54,653
So that goes like this.
187
00:08:58,980 --> 00:09:00,320
All right.
188
00:09:00,320 --> 00:09:01,810
Give it another save
189
00:09:01,810 --> 00:09:05,860
and clear up the console and run it again.
190
00:09:05,860 --> 00:09:07,080
And so now it works.
191
00:09:07,080 --> 00:09:08,000
And so here
192
00:09:08,000 --> 00:09:11,650
is the result of this console.log that we have down here,
193
00:09:11,650 --> 00:09:12,897
So process.argv
194
00:09:14,020 --> 00:09:16,020
and basically that is an array
195
00:09:16,020 --> 00:09:20,880
of these two arguments of running this node process.
196
00:09:20,880 --> 00:09:22,890
So, this here is basically
197
00:09:22,890 --> 00:09:24,930
where the node command is located.
198
00:09:24,930 --> 00:09:26,910
So this equivalent to this node
199
00:09:26,910 --> 00:09:28,940
and then the second one,
200
00:09:28,940 --> 00:09:33,730
so this path to this file is actually this here, okay.
201
00:09:33,730 --> 00:09:35,490
So let's quit this here
202
00:09:35,490 --> 00:09:37,723
and let's add kind of an option here.
203
00:09:39,130 --> 00:09:40,090
So I'm gonna write,
204
00:09:40,090 --> 00:09:41,750
dash, dash import
205
00:09:41,750 --> 00:09:43,620
and so I'm sure you have seen something like this
206
00:09:43,620 --> 00:09:44,910
many times before.
207
00:09:44,910 --> 00:09:47,930
For example, when we save a package as a dev dependency
208
00:09:47,930 --> 00:09:49,763
we do it like this.
209
00:09:50,950 --> 00:09:53,180
Save dev, and so we use the same
210
00:09:53,180 --> 00:09:55,710
kind of format for specifying options.
211
00:09:55,710 --> 00:09:57,200
Okay so, dash dash
212
00:09:57,200 --> 00:09:59,760
and then whatever string we put here.
213
00:09:59,760 --> 00:10:03,187
And so I choose to basically specify
214
00:10:03,187 --> 00:10:05,260
the import option like this.
215
00:10:05,260 --> 00:10:07,354
And so you see that now the third argument
216
00:10:07,354 --> 00:10:10,660
is dash dash import, all right?
217
00:10:10,660 --> 00:10:12,860
And so that means that we can now go ahead
218
00:10:12,860 --> 00:10:15,460
and basically use this data here
219
00:10:15,460 --> 00:10:16,410
in order to write
220
00:10:16,410 --> 00:10:19,900
a very simple command line application basically
221
00:10:19,900 --> 00:10:22,970
which will import the data when we specify this option
222
00:10:22,970 --> 00:10:24,430
and will delete the data
223
00:10:24,430 --> 00:10:27,223
when we specify the delete option, all right?
224
00:10:28,090 --> 00:10:29,983
So, let's actually do that.
225
00:10:32,090 --> 00:10:33,240
So, if
226
00:10:34,140 --> 00:10:37,090
process.argv
227
00:10:37,090 --> 00:10:38,040
and it's an array
228
00:10:38,040 --> 00:10:40,370
and we want the third.
229
00:10:40,370 --> 00:10:42,423
So zero, one, two.
230
00:10:44,610 --> 00:10:49,300
So if that element is equal to import
231
00:10:50,380 --> 00:10:54,313
well, then we want to run import data.
232
00:10:55,860 --> 00:10:56,693
Right?
233
00:10:58,950 --> 00:10:59,783
If...
234
00:11:00,790 --> 00:11:04,320
Process.argv two
235
00:11:04,320 --> 00:11:05,853
is equal,
236
00:11:09,180 --> 00:11:12,150
to delete then we want to run
237
00:11:15,310 --> 00:11:16,810
delete data.
238
00:11:16,810 --> 00:11:17,643
And that's it.
239
00:11:19,240 --> 00:11:21,270
So, that should actually give us
240
00:11:21,270 --> 00:11:23,890
the result that we're looking for.
241
00:11:23,890 --> 00:11:25,580
Let's finish this here.
242
00:11:25,580 --> 00:11:27,540
And so now let's run the command here
243
00:11:27,540 --> 00:11:30,460
with delete in order to delete all the data
244
00:11:30,460 --> 00:11:32,240
that we have in the database.
245
00:11:32,240 --> 00:11:33,413
So let's try that out.
246
00:11:35,120 --> 00:11:36,560
It's doing something
247
00:11:36,560 --> 00:11:38,813
and data successfully deleted.
248
00:11:39,770 --> 00:11:42,160
So let's take a look at that now.
249
00:11:42,160 --> 00:11:46,110
And if we run now this get all tours route
250
00:11:46,110 --> 00:11:49,390
then indeed we have zero results.
251
00:11:49,390 --> 00:11:52,380
So, all our tours are now gone.
252
00:11:52,380 --> 00:11:54,020
So it worked.
253
00:11:54,020 --> 00:11:57,380
Now this process here is basically still running.
254
00:11:57,380 --> 00:11:59,060
And so let's quickly fix that,
255
00:11:59,060 --> 00:12:01,210
which is kind of easy.
256
00:12:01,210 --> 00:12:03,410
So, that's a new one we haven't used yet.
257
00:12:03,410 --> 00:12:07,480
Which is process.exit,
258
00:12:07,480 --> 00:12:08,520
All right?
259
00:12:08,520 --> 00:12:12,290
Now this process.exit is kind of an aggressive way
260
00:12:12,290 --> 00:12:14,120
of stopping an application
261
00:12:14,120 --> 00:12:16,280
but in this case it's no problem
262
00:12:16,280 --> 00:12:19,060
because it's really just a very small script
263
00:12:19,060 --> 00:12:23,210
that we're running here and not a real application, right?
264
00:12:23,210 --> 00:12:24,790
Let's just copy the same thing here
265
00:12:24,790 --> 00:12:26,683
into our import data function.
266
00:12:27,860 --> 00:12:29,483
And so now I'm gonna quit it.
267
00:12:30,350 --> 00:12:32,230
And just to show that it works
268
00:12:32,230 --> 00:12:33,330
I'm gonna run it again
269
00:12:34,620 --> 00:12:36,080
so data successfully deleted
270
00:12:36,080 --> 00:12:38,513
and then it exited the process.
271
00:12:39,530 --> 00:12:40,520
All right.
272
00:12:40,520 --> 00:12:43,943
And so now it's time to actually run the function
273
00:12:43,943 --> 00:12:46,293
that we were interested in in the first place.
274
00:12:47,650 --> 00:12:50,760
So with the import flag, basically.
275
00:12:50,760 --> 00:12:52,380
So the import option.
276
00:12:52,380 --> 00:12:53,647
So let's run that
277
00:12:53,647 --> 00:12:56,210
and let's see if it actually works.
278
00:12:56,210 --> 00:12:57,720
And it didn't.
279
00:12:57,720 --> 00:12:59,343
So why is that?
280
00:13:00,220 --> 00:13:03,823
So it tells us here a tour must have a group size.
281
00:13:05,060 --> 00:13:07,790
So where's that coming from?
282
00:13:07,790 --> 00:13:10,400
And we see a lot of validation errors here.
283
00:13:10,400 --> 00:13:13,023
So something must have gone wrong here.
284
00:13:14,370 --> 00:13:15,750
So yeah, we have the cover image,
285
00:13:15,750 --> 00:13:20,110
we have the tour description.
286
00:13:20,110 --> 00:13:21,663
We have the price.
287
00:13:22,610 --> 00:13:23,540
Well, that's weird.
288
00:13:23,540 --> 00:13:24,823
Max group size,
289
00:13:26,760 --> 00:13:29,653
let me actually check if anything happened here.
290
00:13:30,620 --> 00:13:32,120
Actually we have nine tours here
291
00:13:32,120 --> 00:13:35,120
and I think nine is actually all we have.
292
00:13:35,120 --> 00:13:39,380
And so to me it kind of looks like it actually did work.
293
00:13:39,380 --> 00:13:43,570
But let's actually take a quick look at our data here.
294
00:13:43,570 --> 00:13:47,603
So, just to figure out why this actually happens.
295
00:13:48,730 --> 00:13:52,040
So tour simple here
296
00:13:52,040 --> 00:13:53,620
and so we can already see,
297
00:13:53,620 --> 00:13:57,180
actually the problem that is happening.
298
00:13:57,180 --> 00:13:58,840
So we have all these tours
299
00:13:58,840 --> 00:14:00,730
so the original ones.
300
00:14:00,730 --> 00:14:02,630
But then from the last section,
301
00:14:02,630 --> 00:14:04,170
we have these three here
302
00:14:04,170 --> 00:14:08,160
that we kind of added using our file based API.
303
00:14:08,160 --> 00:14:09,210
So, remember that?
304
00:14:09,210 --> 00:14:12,120
So back then we only specified the name, duration
305
00:14:12,120 --> 00:14:14,660
and difficulty and nothing else.
306
00:14:14,660 --> 00:14:16,030
And so right now
307
00:14:16,030 --> 00:14:19,920
our script is trying to import these three tours.
308
00:14:19,920 --> 00:14:23,010
But of course, we're not interested in them at all
309
00:14:23,010 --> 00:14:28,010
and so let's go ahead and save this here, okay.
310
00:14:28,030 --> 00:14:29,620
Then quit this process
311
00:14:29,620 --> 00:14:32,720
and so actually this process.exit
312
00:14:32,720 --> 00:14:35,650
can be outside of the try catch block
313
00:14:35,650 --> 00:14:36,497
and be simply here by the end of the function.
314
00:14:36,497 --> 00:14:37,961
So that no matter if there's an error or not
315
00:14:37,961 --> 00:14:42,583
it will always just exit the process.
316
00:14:43,980 --> 00:14:44,813
All right.
317
00:14:45,900 --> 00:14:47,543
So let's delete everything.
318
00:14:49,580 --> 00:14:51,820
All right, clear the console again.
319
00:14:51,820 --> 00:14:52,893
Now import,
320
00:14:54,230 --> 00:14:55,063
and yeah.
321
00:14:55,063 --> 00:14:56,853
So data successfully loaded.
322
00:14:59,790 --> 00:15:02,180
As indeed here we are again.
323
00:15:02,180 --> 00:15:04,210
So now it's working 100%,
324
00:15:04,210 --> 00:15:08,020
we have our data that we can start working with now
325
00:15:08,020 --> 00:15:09,800
and so, yeah.
326
00:15:09,800 --> 00:15:12,740
Our work with this one here is done.
327
00:15:12,740 --> 00:15:14,900
So, a nice little function,
328
00:15:14,900 --> 00:15:16,310
or a nice little script actually.
329
00:15:16,310 --> 00:15:20,200
I hope that everything made sense to you
330
00:15:20,200 --> 00:15:25,200
and yeah that it was kind of a fun exercise for you as well.
331
00:15:25,320 --> 00:15:26,970
Anyway, see you in the next video
332
00:15:26,970 --> 00:15:31,090
where we are finally starting to then use all this data
333
00:15:31,090 --> 00:15:32,740
and to improve our API
334
00:15:32,740 --> 00:15:35,203
by implementing a couple of nice features.
24207
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.