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

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

fix

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        input = ostrcat("", "Days+of+Summer", 0, 0);
73        url = ostrcat(url, "german.imdb.com", 1, 0);
74
75        apiSearchTV = ostrcat("", "/search/title?title=<title>&title_type=tv_series", 0, 0);
76        apiImdbLookup = ostrcat("", "/title/tt", 0, 0);
77        apiSearch = ostrcat("", "/find?s=tt;q=", 0, 0);
78        localfile = ostrcat("", "/tmp/cache.getMovieByTitle.html", 0, 0);
79
80        search = ostrcat(apiSearch, input, 0, 0);
81        gethttp(get_ip(url), search, 80, localfile, NULL);
82
83        tmpstr = readfiletomem(localfile, 1);
84
85        if(string_find("<title>IMDb Title Search</title>",tmpstr))
86        {
87                imdbid = ostrcat(tmpstr, "", 0, 0);
88                string_resub("<a href=\"/title/tt","/",imdbid);
89                strstrip(imdbid);
90                printf("imdbid: %s\n", imdbid);
91        }
92
93        free(tmpstr), tmpstr = NULL;
94////////////////////
95        search = ostrcat(apiImdbLookup, imdbid, 0, 0);
96        search = ostrcat(search, "/", 0, 0);
97
98        localfile = ostrcat("", "/tmp/cache.getMoviesByImdbId.html", 0, 0);
99        printf("search: %s\n", search);
100        printf("url: %s\n", get_ip(url));
101        printf("localfile: %s\n", localfile);
102
103        gethttp(get_ip(url), search, 80, localfile, NULL);
104        tmpstr = readfiletomem(localfile, 1);
105
106        title = ostrcat(tmpstr, "", 0, 0);
107        string_resub("<title>","</title>",title);
108        strstrip(title);
109        printf("title: %s\n", title);
110////////////////////
111        director = ostrcat(tmpstr, "", 0, 0);
112//      string_resub("<div id=\"director-info\" class=\"info\">","</div>",director);
113        string_resub("Director:","</div>",director);
114        char* tmpstr2 = NULL;
115        struct splitstr* ret2 = NULL;
116        int count2 = 0;
117        tmpstr2 = ostrcat(tmpstr2, director, 1, 0);
118        ret2 = strsplit(tmpstr2, "<>", &count2);
119        printf("director1: %s\n", (&ret2[4])->part);
120        strstrip(director);
121        printf("director: %s\n", director);
122
123////////////////////
124
125        writers = ostrcat(tmpstr, "", 0, 0);
126//      string_resub("<div id=\"director-info\" class=\"info\">","</div>",writers);
127        string_resub("Writers:\n  </h4>","</div>",writers);
128//      char* tmpstr2 = NULL;
129//      struct splitstr* ret2 = NULL;
130        count2 = 0;     
131        tmpstr2 = ostrcat(tmpstr2, writers, 1, 0);
132        ret2 = strsplit(tmpstr2, "<>", &count2);
133        printf("writers1: %s\n", (&ret2[2])->part);
134        printf("writers2: %s\n", (&ret2[6])->part);
135//      printf("writers3: %s\n", (&ret2[10])->part);
136        strstrip(writers);
137        printf("writers: %s\n", writers);
138////////////////////
139
140        genre = ostrcat(tmpstr, "", 0, 0);
141        string_resub("<h4 class=\"inline\">Genre","</div>",genre);
142        count2 = 0;     
143        tmpstr2 = ostrcat(tmpstr2, genre, 1, 0);
144        ret2 = strsplit(tmpstr2, "<>", &count2);
145        printf("genre1: %s\n", (&ret2[4])->part);
146        printf("genre2: %s\n", (&ret2[12])->part);
147        strstrip(genre);
148        printf("genre: %s\n", genre);
149////////////////////
150
151        tagline = ostrcat(tmpstr, "", 0, 0);
152        string_resub("<h4 class=\"inline\">Taglines:</h4>","<span class",tagline);
153
154        strstrip(tagline);
155        printf("tagline: %s\n", tagline);
156
157////////////////////
158
159        releasetime = ostrcat(tmpstr, "", 0, 0);
160        string_resub("<h4 class=\"inline\">Release Date:</h4>","</time>",releasetime);
161        count2 = 0;     
162        tmpstr2 = ostrcat(tmpstr2, releasetime, 1, 0);
163        ret2 = strsplit(tmpstr2, "<>", &count2);
164        printf("releasetime1: %s\n", (&ret2[2])->part);
165        strstrip(releasetime);
166        printf("releasetime: %s\n", releasetime);
167
168////////////////////
169
170        cast = ostrcat(tmpstr, "", 0, 0);
171        string_resub("<h4 class=\"inline\">Stars:</h4>","</div>",cast);
172        count2 = 0;     
173        tmpstr2 = ostrcat(tmpstr2, cast, 1, 0);
174        ret2 = strsplit(tmpstr2, "<>", &count2);
175        printf("cast1: %s\n", (&ret2[2])->part);
176        printf("cast2: %s\n", (&ret2[6])->part);
177        printf("cast3: %s\n", (&ret2[10])->part);
178        strstrip(cast);
179        printf("cast: %s\n", cast);
180
181////////////////////
182
183        pagebigcover = ostrcat(tmpstr, "", 0, 0);
184        string_resub("href=\"/media/rm","/",pagebigcover);
185
186        strstrip(pagebigcover);
187        printf("pagebigcover: %s\n", pagebigcover);
188
189        char* tmpstr3 = NULL;
190        tmpstr3 = ostrcat("href=\"/media/rm", pagebigcover, 0, 0);
191        tmpstr3 = ostrcat(tmpstr3, "/tt", 1, 0);
192        tmpstr3 = ostrcat(tmpstr3, imdbid, 1, 0);
193        tmpstr3 = ostrcat(tmpstr3, "\"    ><img src=\"", 1, 0);
194
195        cover = ostrcat(tmpstr, "", 0, 0);
196        string_resub(tmpstr3,"\"",cover);
197
198        printf("tmpstr3: %s\n", tmpstr3);
199        strstrip(cover);
200        printf("cover: %s\n", cover);
201
202////////////////////
203        search = ostrcat("/media/rm", pagebigcover, 0, 0);
204        search = ostrcat(search, "/tt", 1, 0);
205        search = ostrcat(search, imdbid, 1, 0);
206        search = ostrcat(search, "/", 1, 0);
207
208        localfile = ostrcat("", "/tmp/cache.getpageBigCoverHtml.html", 0, 0);
209        printf("search: %s\n", search);
210        printf("url: %s\n", get_ip(url));
211        printf("localfile: %s\n", localfile);
212
213
214
215        gethttp(get_ip(url), search, 80, localfile, NULL);
216        bigcover = readfiletomem(localfile, 1);
217        string_resub("<link rel=\"image_src\" href=\"","\"",bigcover);
218        strstrip(bigcover);
219        printf("bigcover: %s\n", bigcover);
220
221
222////////////////////
223
224//      free(tmpstr), tmpstr = NULL;
225        search = ostrcat(apiImdbLookup, imdbid, 0, 0);
226        search = ostrcat(search, "/plotsummary", 1, 0);
227
228        localfile = ostrcat("", "/tmp/cache.getPlot.html", 0, 0);
229        printf("search: %s\n", search);
230        printf("url: %s\n", get_ip(url));
231        printf("localfile: %s\n", localfile);
232        gethttp(get_ip(url), search, 80, localfile, NULL);
233
234        plot = readfiletomem(localfile, 1);
235//htmldecode(plot, plot);
236//htmlencode(plot);
237        if(string_find("<p class=\"plotpar\">",plot))
238        {
239                string_resub("<p class=\"plotpar\">","<i>",plot);
240                strstrip(plot);
241                printf("plot: %s\n", plot);
242        }
243
244        printf("done:\n");
245
246        free(tmpstr), tmpstr = NULL;
247        free(url), url = NULL;
248        free(apiSearchTV), apiSearchTV = NULL;
249        free(apiImdbLookup), apiImdbLookup = NULL;
250        free(apiSearch), apiSearch = NULL;
251        free(localfile), localfile = NULL;
252        free(fetchurl), fetchurl = NULL;
253        free(search), search = NULL;
254        free(imdbid), imdbid = NULL;
255        free(plot), plot = NULL;
256        free(director), director = NULL;
257        free(writers), writers = NULL;
258        free(genre), genre = NULL;
259        free(tagline), tagline = NULL;
260        free(releasetime), releasetime = NULL;
261        free(pagebigcover), pagebigcover = NULL;
262        free(bigcover), bigcover = NULL;
263        free(cover), cover = NULL;
264        free(cast), cast = NULL;
265
266        return apiSearch;
267}
268
269#endif
Note: See TracBrowser for help on using the repository browser.