source: titan/plugins/imdb/imdb.h @ 12608

Last change on this file since 12608 was 12608, checked in by obi, 12 years ago

add next imdb file

File size: 7.2 KB
Line 
1#ifndef IMDB_H
2#define IMDB_H
3
4char* 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
46int 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
Note: See TracBrowser for help on using the repository browser.