1 | #ifndef IMDB_H |
---|
2 | #define IMDB_H |
---|
3 | |
---|
4 | char* string_resub(char* str,char* str2, char* filename) |
---|
5 | { |
---|
6 | debug(1000, "in"); |
---|
7 | int i, len_str, len_filename; |
---|
8 | |
---|
9 | if(str == NULL || str2 == NULL || filename == NULL) return 0; |
---|
10 | |
---|
11 | len_str = strlen(str); |
---|
12 | len_filename = strlen(filename); |
---|
13 | |
---|
14 | int count = 0; |
---|
15 | for(i = 0; (i + len_str) < len_filename; i++) |
---|
16 | { |
---|
17 | if(strncmp(filename + i, str, len_str) == 0 && count == 0) |
---|
18 | { |
---|
19 | count = i + len_str; |
---|
20 | filename[i] = ' '; |
---|
21 | } |
---|
22 | else if(count == i && count != 0) |
---|
23 | { |
---|
24 | count = i - len_str; |
---|
25 | break; |
---|
26 | } |
---|
27 | else |
---|
28 | filename[i] = ' '; |
---|
29 | } |
---|
30 | len_str = strlen(str2); |
---|
31 | |
---|
32 | for(i = 0; (i + len_str) < len_filename; i++) |
---|
33 | { |
---|
34 | if(strncmp(filename + i, str2, len_str) == 0 && i >= count) |
---|
35 | { |
---|
36 | filename[i] = '\0'; |
---|
37 | break; |
---|
38 | } |
---|
39 | } |
---|
40 | |
---|
41 | debug(1000, "out"); |
---|
42 | return filename; |
---|
43 | } |
---|
44 | |
---|
45 | |
---|
46 | int imdb(char* input) |
---|
47 | { |
---|
48 | //if(ostrcmp("vfdisplay", name) == 0) return 0; |
---|
49 | //tmpstr = ostrcat(tmpstr, "", 1, 0); |
---|
50 | |
---|
51 | char* url = NULL; |
---|
52 | char* apiSearchTV = NULL; |
---|
53 | char* apiImdbLookup = NULL; |
---|
54 | char* apiSearch = NULL; |
---|
55 | char* localfile = NULL; |
---|
56 | char* fetchurl = NULL; |
---|
57 | char* search = NULL; |
---|
58 | char* tmpstr = NULL; |
---|
59 | char* imdbid = NULL; |
---|
60 | char* title = NULL; |
---|
61 | char* plot = NULL; |
---|
62 | char* director = NULL; |
---|
63 | char* writers = NULL; |
---|
64 | char* genre = NULL; |
---|
65 | char* tagline = NULL; |
---|
66 | char* releasetime = NULL; |
---|
67 | char* pagebigcover = NULL; |
---|
68 | char* bigcover = NULL; |
---|
69 | char* cover = NULL; |
---|
70 | char* cast = NULL; |
---|
71 | |
---|
72 | //Days+of+Summer&s=all |
---|
73 | input = ostrcat("", "Days+of+Summer", 0, 0); |
---|
74 | url = ostrcat(url, "german.imdb.com", 1, 0); |
---|
75 | |
---|
76 | apiSearchTV = ostrcat("", "/search/title?title=<title>&title_type=tv_series", 0, 0); |
---|
77 | apiImdbLookup = ostrcat("", "/title/tt", 0, 0); |
---|
78 | apiSearch = ostrcat("", "/find?s=tt;q=", 0, 0); |
---|
79 | localfile = ostrcat("", "/tmp/cache.getMovieByTitle.html", 0, 0); |
---|
80 | |
---|
81 | search = ostrcat(apiSearch, input, 0, 0); |
---|
82 | gethttp(get_ip(url), search, 80, localfile, NULL); |
---|
83 | |
---|
84 | tmpstr = readfiletomem(localfile, 1); |
---|
85 | |
---|
86 | if(string_find("<title>IMDb Title Search</title>",tmpstr)) |
---|
87 | { |
---|
88 | imdbid = ostrcat(tmpstr, "", 0, 0); |
---|
89 | string_resub("<a href=\"/title/tt","/",imdbid); |
---|
90 | strstrip(imdbid); |
---|
91 | printf("imdbid: %s\n", imdbid); |
---|
92 | } |
---|
93 | |
---|
94 | free(tmpstr), tmpstr = NULL; |
---|
95 | //////////////////// |
---|
96 | search = ostrcat(apiImdbLookup, imdbid, 0, 0); |
---|
97 | search = ostrcat(search, "/", 0, 0); |
---|
98 | |
---|
99 | localfile = ostrcat("", "/tmp/cache.getMoviesByImdbId.html", 0, 0); |
---|
100 | printf("search: %s\n", search); |
---|
101 | printf("url: %s\n", get_ip(url)); |
---|
102 | printf("localfile: %s\n", localfile); |
---|
103 | |
---|
104 | gethttp(get_ip(url), search, 80, localfile, NULL); |
---|
105 | tmpstr = readfiletomem(localfile, 1); |
---|
106 | |
---|
107 | title = ostrcat(tmpstr, "", 0, 0); |
---|
108 | string_resub("<title>","</title>",title); |
---|
109 | strstrip(title); |
---|
110 | printf("title: %s\n", title); |
---|
111 | //////////////////// |
---|
112 | director = ostrcat(tmpstr, "", 0, 0); |
---|
113 | // string_resub("<div id=\"director-info\" class=\"info\">","</div>",director); |
---|
114 | string_resub("Director:","</div>",director); |
---|
115 | char* tmpstr2 = NULL; |
---|
116 | struct splitstr* ret2 = NULL; |
---|
117 | int count2 = 0; |
---|
118 | tmpstr2 = ostrcat(tmpstr2, director, 1, 0); |
---|
119 | ret2 = strsplit(tmpstr2, "<>", &count2); |
---|
120 | printf("director1: %s\n", (&ret2[4])->part); |
---|
121 | strstrip(director); |
---|
122 | printf("director: %s\n", director); |
---|
123 | |
---|
124 | //////////////////// |
---|
125 | |
---|
126 | writers = ostrcat(tmpstr, "", 0, 0); |
---|
127 | // string_resub("<div id=\"director-info\" class=\"info\">","</div>",writers); |
---|
128 | string_resub("Writers:\n </h4>","</div>",writers); |
---|
129 | // char* tmpstr2 = NULL; |
---|
130 | // struct splitstr* ret2 = NULL; |
---|
131 | count2 = 0; |
---|
132 | tmpstr2 = ostrcat(tmpstr2, writers, 1, 0); |
---|
133 | ret2 = strsplit(tmpstr2, "<>", &count2); |
---|
134 | printf("writers1: %s\n", (&ret2[2])->part); |
---|
135 | printf("writers2: %s\n", (&ret2[6])->part); |
---|
136 | // printf("writers3: %s\n", (&ret2[10])->part); |
---|
137 | strstrip(writers); |
---|
138 | printf("writers: %s\n", writers); |
---|
139 | //////////////////// |
---|
140 | |
---|
141 | genre = ostrcat(tmpstr, "", 0, 0); |
---|
142 | string_resub("<h4 class=\"inline\">Genre","</div>",genre); |
---|
143 | count2 = 0; |
---|
144 | tmpstr2 = ostrcat(tmpstr2, genre, 1, 0); |
---|
145 | ret2 = strsplit(tmpstr2, "<>", &count2); |
---|
146 | printf("genre1: %s\n", (&ret2[4])->part); |
---|
147 | printf("genre2: %s\n", (&ret2[12])->part); |
---|
148 | strstrip(genre); |
---|
149 | printf("genre: %s\n", genre); |
---|
150 | //////////////////// |
---|
151 | |
---|
152 | tagline = ostrcat(tmpstr, "", 0, 0); |
---|
153 | string_resub("<h4 class=\"inline\">Taglines:</h4>","<span class",tagline); |
---|
154 | |
---|
155 | strstrip(tagline); |
---|
156 | printf("tagline: %s\n", tagline); |
---|
157 | |
---|
158 | //////////////////// |
---|
159 | |
---|
160 | releasetime = ostrcat(tmpstr, "", 0, 0); |
---|
161 | string_resub("<h4 class=\"inline\">Release Date:</h4>","</time>",releasetime); |
---|
162 | count2 = 0; |
---|
163 | tmpstr2 = ostrcat(tmpstr2, releasetime, 1, 0); |
---|
164 | ret2 = strsplit(tmpstr2, "<>", &count2); |
---|
165 | printf("releasetime1: %s\n", (&ret2[2])->part); |
---|
166 | strstrip(releasetime); |
---|
167 | printf("releasetime: %s\n", releasetime); |
---|
168 | |
---|
169 | //////////////////// |
---|
170 | |
---|
171 | cast = ostrcat(tmpstr, "", 0, 0); |
---|
172 | string_resub("<h4 class=\"inline\">Stars:</h4>","</div>",cast); |
---|
173 | count2 = 0; |
---|
174 | tmpstr2 = ostrcat(tmpstr2, cast, 1, 0); |
---|
175 | ret2 = strsplit(tmpstr2, "<>", &count2); |
---|
176 | printf("cast1: %s\n", (&ret2[2])->part); |
---|
177 | printf("cast2: %s\n", (&ret2[6])->part); |
---|
178 | printf("cast3: %s\n", (&ret2[10])->part); |
---|
179 | strstrip(cast); |
---|
180 | printf("cast: %s\n", cast); |
---|
181 | |
---|
182 | //////////////////// |
---|
183 | |
---|
184 | pagebigcover = ostrcat(tmpstr, "", 0, 0); |
---|
185 | string_resub("href=\"/media/rm","/",pagebigcover); |
---|
186 | |
---|
187 | strstrip(pagebigcover); |
---|
188 | printf("pagebigcover: %s\n", pagebigcover); |
---|
189 | |
---|
190 | char* tmpstr3 = NULL; |
---|
191 | tmpstr3 = ostrcat("href=\"/media/rm", pagebigcover, 0, 0); |
---|
192 | tmpstr3 = ostrcat(tmpstr3, "/tt", 1, 0); |
---|
193 | tmpstr3 = ostrcat(tmpstr3, imdbid, 1, 0); |
---|
194 | tmpstr3 = ostrcat(tmpstr3, "\" ><img src=\"", 1, 0); |
---|
195 | |
---|
196 | cover = ostrcat(tmpstr, "", 0, 0); |
---|
197 | string_resub(tmpstr3,"\"",cover); |
---|
198 | |
---|
199 | printf("tmpstr3: %s\n", tmpstr3); |
---|
200 | strstrip(cover); |
---|
201 | printf("cover: %s\n", cover); |
---|
202 | |
---|
203 | //////////////////// |
---|
204 | search = ostrcat("/media/rm", pagebigcover, 0, 0); |
---|
205 | search = ostrcat(search, "/tt", 1, 0); |
---|
206 | search = ostrcat(search, imdbid, 1, 0); |
---|
207 | search = ostrcat(search, "/", 1, 0); |
---|
208 | |
---|
209 | localfile = ostrcat("", "/tmp/cache.getpageBigCoverHtml.html", 0, 0); |
---|
210 | printf("search: %s\n", search); |
---|
211 | printf("url: %s\n", get_ip(url)); |
---|
212 | printf("localfile: %s\n", localfile); |
---|
213 | |
---|
214 | |
---|
215 | |
---|
216 | gethttp(get_ip(url), search, 80, localfile, NULL); |
---|
217 | bigcover = readfiletomem(localfile, 1); |
---|
218 | string_resub("<link rel=\"image_src\" href=\"","\"",bigcover); |
---|
219 | strstrip(bigcover); |
---|
220 | printf("bigcover: %s\n", bigcover); |
---|
221 | |
---|
222 | |
---|
223 | //////////////////// |
---|
224 | |
---|
225 | // free(tmpstr), tmpstr = NULL; |
---|
226 | search = ostrcat(apiImdbLookup, imdbid, 0, 0); |
---|
227 | search = ostrcat(search, "/plotsummary", 1, 0); |
---|
228 | |
---|
229 | localfile = ostrcat("", "/tmp/cache.getPlot.html", 0, 0); |
---|
230 | printf("search: %s\n", search); |
---|
231 | printf("url: %s\n", get_ip(url)); |
---|
232 | printf("localfile: %s\n", localfile); |
---|
233 | gethttp(get_ip(url), search, 80, localfile, NULL); |
---|
234 | |
---|
235 | plot = readfiletomem(localfile, 1); |
---|
236 | //htmldecode(plot, plot); |
---|
237 | //htmlencode(plot); |
---|
238 | if(string_find("<p class=\"plotpar\">",plot)) |
---|
239 | { |
---|
240 | string_resub("<p class=\"plotpar\">","<i>",plot); |
---|
241 | strstrip(plot); |
---|
242 | printf("plot: %s\n", plot); |
---|
243 | } |
---|
244 | |
---|
245 | printf("done:\n"); |
---|
246 | |
---|
247 | free(tmpstr), tmpstr = NULL; |
---|
248 | free(url), url = NULL; |
---|
249 | free(apiSearchTV), apiSearchTV = NULL; |
---|
250 | free(apiImdbLookup), apiImdbLookup = NULL; |
---|
251 | free(apiSearch), apiSearch = NULL; |
---|
252 | free(localfile), localfile = NULL; |
---|
253 | free(fetchurl), fetchurl = NULL; |
---|
254 | free(search), search = NULL; |
---|
255 | free(imdbid), imdbid = NULL; |
---|
256 | free(plot), plot = NULL; |
---|
257 | free(director), director = NULL; |
---|
258 | free(writers), writers = NULL; |
---|
259 | free(genre), genre = NULL; |
---|
260 | free(tagline), tagline = NULL; |
---|
261 | free(releasetime), releasetime = NULL; |
---|
262 | free(pagebigcover), pagebigcover = NULL; |
---|
263 | free(bigcover), bigcover = NULL; |
---|
264 | free(cover), cover = NULL; |
---|
265 | free(cast), cast = NULL; |
---|
266 | |
---|
267 | return apiSearch; |
---|
268 | } |
---|
269 | |
---|
270 | #endif |
---|