Dobrá zpráva, pro všechny, kteří používají skvělý program Ant Movie Catalog, o kterém jsem již dříve psal. Konečně se mi podařilo upravit script na stahování informací o filmech z Československé filmové databáze dle mých představ. Hodně mi pomohl MI'RA, kterého jsem hodně otravoval a tímto mu děkuji.

Sesmolit těch pár řádků byl pro mě strašlivý úkol, jelikož se v Delphi absolutně nevyznám. Takže úpravy, které jsem provedl jsou možná zběsilé a určitě by šly udělat lépe.

Co se změnilo:

  • Jednak byla opravena chyba, která házela do URL filmu další tuny znaků navíc.
  • Dále bylo vylepšeno stahování popisku filmu, který je nyní stahován celý.
  • A nakonec jsem si nechal možnost hledat ve všech typech názvů najednou (dříve se musela vybrat možnost z oreginálních, českých nebo slovenských názvů) + teď to hledá ještě v anglických názvech.

Za nejnovější verzi děkuji uživateli IkE Blaster!

PřílohaVelikost
csfd.cz.zip4.98 KB

Zase tak moc neotravoval -

Zase tak moc neotravoval - je to kluk sikovna :-)

Ahoj, skript je super,

Ahoj,
skript je super, nedalo by se jeste udelat, aby nacital i komentare z CSFD? Moc by mi to pomohlo. Diky Honza

Udělat by to určitě šlo,

Udělat by to určitě šlo, bohužel teď nemám nějak čas. Až bude, tak se na to mrknu.

Je to super, mám tento

Je to super, mám tento program sice jen druhý den, ale až na pár maličkostí je bezva. Tvůj script si cením - jen se chci zeptat, jestli ten středník, co zůstává při stažení původního názvu na konci, jde zrušit nějak aoutomaticky, ne ručním smazáním.
Díky

Předem musím říct, že

Předem musím říct, že tento script není jen můj, ale na jeho vývoji se podílelo více lidí. Středník se na konci objevuje pouze někdy, a to tehdy, pokud má film více názvů. Teď jsem to zkoušel - přidával jsem film Frequency a žádný středník se mi neobjevil. Možná také záleží na nastavení scriptu.

Asi uz je to malicko s

Asi uz je to malicko s krizkem po funuse, ale presto - protoze se me na to ptalo uz vic lidi :
Ten strednik za nazvem se nechava, pokud ma skript nastaveno, aby se novy nazev pripojoval za stary (mozna naopak ;) - strednik je pak oddeluje. Takze komu to tam vadi, at si nastavi parametry typu "addCZname" na 0.

nenacitaji se mi obrazky s

nenacitaji se mi obrazky s csfd :( ale fungovalo to ale ted uz ne :(

takze je potreba provest


takze je potreba provest upravu pro nacitani obrazku z www.csfd.cz a to nasledovne:


// picture
LineNr := FindLine('table background="posters', Page, 0);
if (LineNr > -1) then
begin
Line := Page.GetString(LineNr);
BeginPos := pos('table background="posters', Line) + 18;

if (BeginPos > 10) then
begin
EndPos := pos('" border="', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
Value := BaseAddress + Value;
GetPicture(Value);
end;
end;

Doufam ze to je funkcni...(me to jede)
ENJOY *129* byMoStYr

Teď jsem se teprv dostal k

Teď jsem se teprv dostal k zadávání nových filmů. Funguje to parádně. Díky.

Opet zmena na www.csfd.cz

Opet zmena na www.csfd.cz Upravit kod scriptu takhle:

// picture
LineNr := FindLine('table background="http://img', Page, 0);
if (LineNr > -1) then
begin
Line := Page.GetString(LineNr);
BeginPos := pos('table background="http://img', Line) + 18;

if (BeginPos > 10) then
begin
EndPos := pos('" border="', Line);
Value := copy(Line, BeginPos, EndPos - BeginPos);
Value := Value;
GetPicture(Value);
end;
end;

Tak snad to poslape zas nejakou dobu... Tady je link na stazeni cele upravene verze scriptu

ENJOY *129* byMoStYr

Ano, všimnul jsem si toho

Ano, všimnul jsem si toho již v pátek. Díky za úpravu, hned jí hodím do ZIPu v článku.

Zase se mi přestaly

Zase se mi přestaly stahovat obrázky, i když mám stáhnutý script tady odsuď. Do včerejška to šlapalo parádně, dnes nejdou stáhnout obrázky. Prosím, mrkněte se na to. Děkuji předem a mnohokrát.

Včera večer jsem na server

Včera večer jsem na server teprve nahrál upravenou verzi scriptu.

Nevím,kde je chyba, ale

Nevím,kde je chyba, ale obrázky se mi stále nenačítají. I když jsem stáhnul ten nový script.Asi je to rukama, ale fakt už nevím.

Takze zde mame dalsi zmenu

Takze zde mame dalsi zmenu scriptu...

je potreba nahradit v scriptu retezec "search.php?" retezcem "search_pg.php?"
Nahrazeni by melo probehnout na 2 pozicich viz.

// zadani z inputu
if Input('Import movie from www.csfd.cz', 'Enter the title of the movie:', MovieName) then
begin
// analyzuj stranku http://www.csfd.cz/search_pg.php?search=jmeno_filmu
AnalyzePage(BaseAddress + 'search_pg.php?search=' + UrlEncode(MovieName));
end;

ENJOY *129* byMoStYr

Díky, opět rychlík, ani

Díky, opět rychlík, ani jsem si tohoto komentáře nevšimnul :).
Hned sem jdu nahrát novou verzi.

Super :o:))) Díky :o))) ted

Super :o:)))
Díky :o))) ted to funguje!
Mohl by ale nekdo zkusit zadat novy film Pupendo a stahnout k nemu informace z CSFD.
At delam co delam, me se to nedari! napise mi to:
No movie found for this search.
Nebyly nalezeny zadne zaznamy.
Pritom ten film tam je: Pupendo
Co delam spatne? Poradi mi nekdo?

podle me by vas to mohlo zajimat

http://forum.antp.be/phpbb2/viewtopic.php?p=19267#19267 - podle me by vas to mohlo zajimat ;-). Plus nekolik reakci v te diskuzi zpet.

Kdyby mel nekdo zajem o

Kdyby mel nekdo zajem o skript pro fdb.cz, tak stahujte tady. Lepil jsem to jak se dalo, tak mě za ten zdrojak nekamenujte. Ale snad vám to pojede. Kdyžtak napište připomínky a pokusím se vyhovět když bude čas.
Lrrr

Funguje dnes někomu skript?

Funguje dnes někomu skript? Me to nenabídne seznam filmů. Nevíte kde je chyba? Diky za odpovědi

Zkoušel jsem a funguje bez

Zkoušel jsem a funguje bez problémů.

Mám verzi 1.8 která

Mám verzi 1.8 která delší dobu fungovala bez problémů, teď to nějak nefunguje, nenabídne se okno se seznamem vyhledaných filmů, u jiných skriptů (dvdexpress, fdb) vše funguje jak má. Nevíte někdo kde by mohl být problém?

Ještě jsem zjistil, že

Ještě jsem zjistil, že ten skript nefunguje pokud se připojuji přes proxy server.

novy script na

novy script na csfd.cz

http://madmaxx.own.cz/csfd.cz.ifs

Paráda, ale nestahuje mi

Paráda, ale nestahuje mi "Popis filmu". Nešlo by to vyřešit?

Nefunguje zobrazování

Nefunguje zobrazování popisu filmu, jinak všechno jde.

Nefunguje zobrazování

Nefunguje zobrazování popisu filmu, jinak všechno jde.

Snad MadMaxx zapracuje a

Snad MadMaxx zapracuje a problém vyřeší, já se k tomu teď bohužel nedostanu.

Mam upravený skript ke dni

Mam upravený skript ke dni 31.12. 2006. Fungují všechna pole . Je tam jeden bug - v poli ofic. url jsou dvě lomítka před "film" - nemá vliv na funkci. Udělám jednouduchou stránku na mém hostingu ( http://csfd-amc.thez.info ), kde se budu snažit dávat vždy aktuální verzi skriptu.
_-_-_
Jestli se chcete někdo přidat, napište mi. (stránka bude k dispozici od 2.1.07).
-------------------------------------------------------------------------------------
Tady skript:

    http://csfd-amc.thez.info/script/csfd.cz.ifs
-------------------------------------------------------------------------------------
PS. email najdete dole na mé stránce. NO SPAM plz

změna adresy, jinak

změna adresy, jinak žádná změna + přidaný skript pro DVD obaly.

csfd-amc.thez.info

Super, dik moc, ja se s tim

Super, dik moc, ja se s tim trapil 3 dny az me napadlo, jestli to uz proste nekdo neudelal...

Po dalsich zmenach na CSFD

Po dalsich zmenach na CSFD zamente radek cislo 542 (pod //Info)
timto a budete mit opet k dispozici i popis

LineNr := FindLine('', Page, 0);

Tak už zase nefunguje ani

Tak už zase nefunguje ani verze 2.4...grrr

Mě verze 2.4 z

Mě verze 2.4 z http://amc.thez.info/script/csfd.cz.ifs funguje (obrázky i popisy), kromě filmů bez výběru jak zde: http://forum.antp.be/phpbb2/viewtopic.php?t=2503&postdays=0&postorder=asc&highlight=csfd&start=100 popisuje "kdyz dam vyhledat film, kterej to najde rovnou, to znamena, ze nemusim vybirat po vyhledavani ze seznamu vice filmu, tak me ho script nenacte" kresomysl napr.: Knoflíkáři, Restart, Kolja, Pupendo, Tlumočnice.
Může to někdo odzkoušet a upravit?

Opraveno a hned jsem vydal

Opraveno a hned jsem vydal dalsi verzi (o te predchozi jsem ti psal v emailu). kdyztak tady jsem jen nahodou, kdyby byl problem tak mail (jeden staci). jinak na ofic. foru je dobre zabehla diskuze.

Díky za tip, jdu to zkusit.

Díky za tip, jdu to zkusit.

ahoj, používáš ještě program

ahoj, používáš ještě program Ant Movie Catalog? Mě už nefunguje žádný ze scriptů na CZ servery (365dni.cz, csfd.cz, fdb.cz), mohl bys některý z nich opět zprovoznit? Díky!

http://amc.thez.info Dneska

http://amc.thez.info

Dneska jsem opravil, na jine se nechystam… (jenom ty svoje)

Na tu stránku jsem se

Na tu stránku jsem se předtím (prostřednictvím Google) díval, ale tehdejší poslední aktualizace byla z r. 2007. Díky za úpravu scriptů!

AMC ještě pužívám, tedy je

AMC ještě pužívám, tedy je pravda, že jsem ho neměl už pěkně dlouho zapnutý, takže nevím jak je to se cripty. Nějak není vůbec na nic čas.

Každopádně děkuji za aktualizaci scriptů, přidám je sem, aby byly aktuální.

Dobrý den. Mohl by mi někdo

Dobrý den. Mohl by mi někdo poradit jak ty skripta dostat do katalogu.předem dík.

Pres prave tlacitko a ulozit

Pres prave tlacitko a ulozit jako si skript ulozite na plochu. Pote si najdete slozku (vetsinou) C:\Program Files\Ant Movie Catalog\Scripts, smazete puvodni skript (pokud tam je) csfd.ifs a nahrajete z plochy novy.

Pokud pouzivate pouze tento skript, pripadne jen par, tak doporucuji smazat vsechny krome tech par :)

Mám problém s Ant movie

Mám problém s Ant movie catalog 3.5.0, když si chci přidat jakýkoliv film do mého seznamu tak dám Přidat a poté dám získat informace z internetu pomocí scriptu. Zadám jméno filmu a dám enter, ale vyjede mi jen tabulka už s výsledkem scriptu ale bez informací o tom filmu. Nevim co se kde stalo ale nejde to najednou ani mému kámošovi. Dřív sem si před výsledkem scriptu vybral z filmů které to našlo. Nevíte někdo kde je chyba???

(****************************

(***************************************************

Ant Movie Catalog importation script www.antp.be/…oviecatalog/

[Infos] Authors=IkE Blaster, MadMaxx, Dmitry501, Inteline, Kalten, kecinzer, MI'RA, xvirusx Title=csfd.cz Description=Import dat ze serveru csfd.cz Site=http://amc.thez.info Language=CZ Version=3.0.6 Requires=3.5.0 Comments=- Fix 18.12.2010 – Opraveno stahování obrázků|- Add 17.12.2010 – Opraveno stahování celých popisů|- Add 16.12.2010 – Přidána možnost automat. aktualizace dle URL|- Fix 16.12.2010 – Opraveno stahování údajů|- Fix 16.6.2010 – Opraveno stahování popisu pro filmy bez popisu|- Add 16.6.2010 – Přidána možnost nahrazení oddělovače zemí za „/“|- Fix 12.5.2010 – Opravena chyba nestahování popisů|- Add 9.2.2009 – Možnost zadat URL filmu na ČSFD pro přímé získání informací|- Fix 16.9.2008 – Jedna malá chybka při hledání filmu s jedním výsledkem |- ReUpdate 8.9.2008 – Za pomoci zkušenějšího předěláno rozřezávání|- Update 28.8.2008 – implentace rozřezání do kategorií – byl to boj :D|- Fix 6.8.2008 – Oprava chyby ve výsledcích|- Update 30.7.2008 – oprava kódování|- Update 10.8.2007 – Jiné řazení výsledků (jako na webu), opraveno stahování popisu (více řádků), přesunutí La před film|- Info 5.3.2007 – Proběhlo hodně úprav, chyba u odkazu na film (z csfd) u filmů s jedním výsledkem ve vyhledávání|- Update 3.1.2007 – opraveno zobrazování filmů s jedním výsledkem ve vyhledávání|- Update 31.12.2006 – opraveny vsechny pole |- Update 4.12.2006 – zmena podle noveho csfd, vcetne importu hodnoceni License=This file is standalone part of Ant Movie Catalog (AMC).|| AMC is free software; you can redistribute it and/or modify| it under the terms of the GNU General Public License as published by| the Free Software Foundation; either version 3 of the License, or| (at your option) any later version.|| AMC is distributed in the hope that it will be useful,| but WITHOUT ANY WARRANTY; without even the implied warranty of| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the| GNU General Public License for more details.|| You should have received a copy of the GNU General Public License| along with this program. If not, see http://www.gnu.org/licenses/ GetInfo=1

[Options] getSlovakNames=0|0|0=Nepřidávat za český název ještě nazev slovenský|1=Přidávat za český název ještě nazev slovenský hodnoceni=1|1|0=Nedotahovat hodnoceni|1=Dotahovat hodnoceni addCZdescr=1|1|0=Nepridavat cesky popis filmu pred stavajici.|1=Pridavat cesky popis filmu pred stavajici addCZname=0|0|0=Nepridavat cesky nazev filmu pred stavajici|1=Pridavat cesky nazev filmu pred stavajici allowDuplicateNames=0|0|0=Pokud je originalni nazev stejny jako prelozeny – prelozeny se nedoplni|1=Prelozeny nazev se doplni i v pripade, ze je stejny jako originalni nazev theEnd=1|1|0=Zachovat „The“ na konci nazvu filmu|1=Presunout „The“ z konce nazvu filmu na zacatek NahraditLomeno=1|1|1=Nahrazovat „/“ u kategorie a země filmu|0=Nenahrazovat „/“ u kategorie a země filmu AutoUpdateFromURL=0|0|0=Neaktualizovat automaticky|1=Pokud existuje URL, tak automaticky aktualizovat; jinak se zeptá getPicture=1|1|0=Nestahovat obrázky|1=Stahovat obrázky

***************************************************)

program Csfd_cz; const
BaseAddress = ‚http://www.csfd.cz/‘;
/////////////////////////////////////////////
// upraveno mnohokrát :) //
// IkE Blaster ike@thez.info //
// http://amc.thez.info // /////////////////////////////////////////////

////////////////////////////////////////////
// upraveno 4.12.2006 po aktualizaci CSFD //
// by MadMaxx madmaxx.cz@gmail.com // ////////////////////////////////////////////

var
MovieName: string;

// vraci cislo radku s prvnim nalezem hledaneho textu

function FindLine(Pattern: String; List: TStringList; StartAt: Integer): Integer; var
i: Integer; begin
result := –1;

// vzdy se zacne hledat od nuly
if (StartAt < 0) then
StartAt := 0;

// cyklus od prvniho do posledniho radku stranky
for i := StartAt to List.Count – 1 do
begin
// pokud byl nalezen vyskyt,
if (Pos(Pattern, List.GetString(i)) <> 0) then
begin
// vrati se cislo radku na kterem byl text nalezen
result := i;
// a ukonci se cyklus hledani
Break;
end;
end; end;

//rozdeleni statu, roku a delky zavisle na carkou oddelenych hodnotach procedure RozdelStat(Line: String); var
CarkaPos1,
CarkaPos2,
minPos: Integer; begin
// najde si prvni carku na textu radky
CarkaPos1 := Pos(‚,‘, Line);
// pokud ji nasel
if (CarkaPos1 > 0) then
begin
// pokusi se najit druhou carku
CarkaPos2 := Pos(‚,‘, copy(Line, CarkaPos1+1, length(Line)));
// pokud nasel druhou carku
if (CarkaPos2 > 0) then
begin
// urci si
minPos := Pos(‚min‘, copy(Line, CarkaPos1+CarkaPos2+1, length(Line)));
// kdyz pozici zna
if (minPos > 0) then
// nastavi zemi, rok a stat do prislusnych poli
begin
if (getOption(‚NahraditLomeno‘) = 1) then
SetField(fieldCountry, trim(copy(StringReplace(Line, ' /', ', '), 0, CarkaPos1–1)))
else
SetField(fieldCountry, trim(copy(Line, 0, CarkaPos1–1)));
SetField(fieldYear, trim(copy(Line, CarkaPos1+1, CarkaPos2–1)));
SetField(fieldLength, trim(copy(Line, CarkaPos1+CarkaPos2+1, minPos-1)));
end
end
end end;

// vraci rejzu //TODO tahle fce by chtela doresit, pac se muze stavat, ze rezie je na stejnem // radku stejne jako seznam hercu function GetDirector(Line: String): String; var
BeginPos: Integer; begin
result := '';
// zjisti si na kolikatem znaku od zacatku radku se vyskytuje text „Režie:“
//TODO: doresil bych hledani diakritiky v textu – mozna by to v nekterych pripadech mohlo delat potize
BeginPos := Pos(‚Režie:‘, Line);

// jestli pozici nasel
if (BeginPos > 0) then
begin
// smaze vse pred nalezem
Delete(Line, 1, BeginPos + 5);
// najde si konec radku
BeginPos := Pos(‚<br>‘, Line);

if (BeginPos = 0) then
BeginPos := Length(Line);

// vrati z obsahu radku rezisera
result := copy(Line, 1, BeginPos);
// odstrani diakritiku a specialni znaky
HTMLDecode(result);
// odstrani HTML tagy
HTMLRemoveTags(result);
end;

// pokud pozici nenasel – vrati prazdny retezec
result := Trim(result); end;

// vraci seznam hercu function GetActor(Line: String): String; var
BeginPos: Integer; begin // komentare jsou stejne jako v predchozi fci
result := '';
BeginPos := Pos(‚Hrají:‘, Line);

if (BeginPos > 0) then
begin
Delete(Line,1,BeginPos + 5);
BeginPos := Pos(‚<br>‘, Line);

if (BeginPos = 0) then
BeginPos := Length(Line);

result := copy(Line, 1, BeginPos);
HTMLDecode(result);
HTMLRemoveTags(result);
end;

result := Trim(result); end;

//Funkce nacte a prida vetev se seznamem nalezenych filmu Function AnalyzePageLang(Nazvy, Kat: String; Page: TStringList; LineNrOld : Integer) : Integer; var
LineNr : Integer;
Line, FilmAddr, FilmName, dalsi : String;
BeginPos, EndPos : Integer; begin
LineNr := FindLine(Nazvy, Page, 0);

// pokud zadna takova sekce neexistuje – nenaslo se nic
if (LineNr = –1) then
result := LineNrOld
else
begin
result := 1;
// jinak si najdeme radku na ktere je v dane sekci odkaz na nalezeny film
LineNr := FindLine(‚<a href=„/film/‘, Page, LineNr);
// pokud takovou radku najdeme
if (LineNr > –1) then
begin
// prida vetev se seznamem nalezenych filmu
PickTreeAdd(‚Nalezené filmy ' + kat + ' názvech‘, '');
// vezme si obsah radku na kterem se vyskytuje prvni tag "a href“ na film
Line := Page.GetString(LineNr);

// projde vsechny tagy s nalezem filmu a nacpe je do stromu filmu,
// ktery se pak formou dialogoveho okna pro vyber filmu zobrazi
repeat
// najde zacatek a konec tagu s odkazem na aktualne nalezeny film
BeginPos := Pos(‚<a href=„/film/‘, Line);
if (BeginPos > 0) then
begin
EndPos := Pos(‚“ style=„font-size:12px“>‘, Line); // tady to bylo spatne, proto se nacitala ta adresa blbe
if(EndPos = 0) then
EndPos := Pos(‚">‘, Line);

if (EndPos = 0) then
EndPos := Length(Line);

// vykopiruje si adresu aktualniho filmu z tagu odkazu
FilmAddr := Copy(Line, BeginPos + 10, EndPos – BeginPos – 11);
// dekoduje specialni ceske znaky z adresy odkazu na film
HTMLDecode(FilmAddr);
// odstrani vsechny HTML TAGY
HTMLRemoveTags(FilmAddr);
// vezme konec radku identifikovany <br> tagem
EndPos := Pos(‚<br>‘, Line);
//FilmAddr := FilmAddr + ‚/text=1/‘;

if (EndPos = 0) then
EndPos := Length(Line);

// vykopiruje se z tagu odkazu jmeno filmu
FilmName := Copy(Line, BeginPos, EndPos – BeginPos);
HTMLDecode(FilmName);
HTMLRemoveTags(FilmName);
// hledani znacky urcujici, ze na strance je odkaz na dalsi hledani
dalsi := Copy(FilmName, 0, 25);

// jestli se na strance vyskytuje odkaz na dalsi seznam filmu
if (dalsi = ‚…další nalezené záznamy‘) then
FilmName := Copy(FilmName, 26, Length(FilmName) – 25);

if (FilmName <> '') then
PickTreeAdd(FilmName, BaseAddress + FilmAddr);
Delete(Line,1,EndPos+3);
end;
until (BeginPos < 1);
end;
end; end;

// analyzuje stranku s vysledky hledani procedure AnalyzePage(Address: String); var
Page: TStringList;
LineNr, LineNr2 : Integer;
Line, FilmAddr : String;
BeginPos, EndPos : Integer; begin
Page := TStringList.Create;

// nacte si stranku s vysledkem hledani – kazda radka je poloza StringListu
// Page.Text := GetPage(Address);
Page.Text := UTF8Decode(GetPage(Address));
// zjisti cislo radky na ktere se nachazi retezec: Hledaný výraz: <b>
LineNr := FindLine(‚Hledaný výraz: <b>‘, Page, 0);
LineNr2 := FindLine(‚<script language=javascript>window.location.href=''/film/‘, Page, 0);
// pokud takovy radek neexistuje – jedna se pravdepodobne primo o stranku s
// filmem a ne o stranku s vysledkem hledani a zanalyzuje se rovnou ta.
// pokud vsak takovy radek existuje, ale neexistuje zadne slovo „nazvech“ -
// – cili zadna sekce s odkazy ⇒ jedna se pravdepodobne o stranku, ktera
// automaticky forwarduje na stranku s filmem
if (LineNr2 <> –1) then
begin
// hledani forwardu na stranku s filmem
LineNr := FindLine(‚<script language=javascript>window.location.href=''/film/‘, Page, 0);
// pokud existuje forward na stranku s detailem filmu – vytahnu adresu stranky detailu
if (LineNr <> –1) then
begin
Line := Page.GetString(LineNr);
BeginPos := Pos(‚/film/‘, Line);
if (BeginPos > 0) then
begin
EndPos := Pos(‚/'';</script>‘, Line);

if (EndPos = 0) then
EndPos := Length(Line);

// vykopiruje si adresu aktualniho filmu z radku
FilmAddr := Copy(Line, BeginPos +1, EndPos – BeginPos –1);
AnalyzeMoviePage(BaseAddress + FilmAddr);
end;
end
else
// jinak (pokud forward neexistuje) se asi vazne jedna primo o stranku s filmem
begin
AnalyzeMoviePage(Address);
end;
end
else
begin
// vycisti strom okna se seznamem filmu
PickTreeClear;
PickTreeAdd(‚Hledaný výraz: ' + MovieName, '');
LineNr:=-1;
LineNr:=AnalyzePageLang(‘v českých názvech</td>‚, 'v českých‘, Page, LineNr);
LineNr:=AnalyzePageLang(‚ve slovenských názvech</td>‘, ‚ve slovenských‘, Page, LineNr);
LineNr:=AnalyzePageLang(‚v originálních názvech</td>‘, ‚v originálních‘, Page, LineNr);
LineNr:=AnalyzePageLang(‚v anglických názvech</td>‘, ‚v anglických‘, Page, LineNr);

if (LineNr = –1) then
ShowMessage('Nebyl nalezen žádný film podle zadaného výrazu: ' + MovieName)
else
begin
if PickTreeExec(Address) then
AnalyzeMoviePage(Address);
end;
end; end;

// analyzuje stranku s detaily filmu procedure AnalyzeMoviePage(Address: string); var
Page: TStringList;
LineNr : Integer;
Line, Value, Value2 : String;
LinePos, BeginPos, EndPos, MidPos, PomPos : Integer; begin
Page := TStringList.Create;
// pridani parametru stranky, ktere dovoli zobrazit kompletni popisek filmu
//film.php?text=1&id=88025&rec=&top=&kom=1
// Page.Text := GetPage(Address + ‚&text=1rec=&top=&kom=1‘);

LineNr := pos(‚&‘, Address);
if (LineNr > 0) then
Address := copy(Address,0,LineNr-1);

LineNr := pos(‚/text=1‘, Address);
if (LineNr > 0) then
Address := copy(Address,0,LineNr-1);

Page.Text := UTF8Decode(GetPage(Address + ‚/text=1/‘));
// hleda radek na kterem se nachazi zacatek informaci o filmu
LineNr := FindLine(‚font-size: 18px;font-weight:bold;color: #000000;font-family: Tahoma‘, Page, 0);

// pokud ho nasel
if (LineNr > –1) then
begin
LinePos := 1;
// vezme si aktualni radek
Line := Page.GetString(LineNr + LinePos);
// odstrani specialni znaky z prelozeneho nazvu
HTMLDecode(Line);
// odstrani HTML tagy
HTMLRemoveTags(Line);
// ziska si jmeno filmu
Value := Copy(Trim(Line), 1, Length(Trim(Line)));

LinePos := LinePos + 1;
Line := Page.GetString(LineNr + LinePos);
Value2 := '';

repeat
// najde si zacatek tabulky ve ktere se nachazi nazev filmu
BeginPos := Pos(‚<table cellpadding=‘, Line);

// pokud jej nasel
if (BeginPos > 0) then
begin
// vezme si prvni sloupecek (bunku) z tabulky
BeginPos := Pos(‚<td>‘, Line);
// najde si pozici obrazku ceske vlajky
MidPos := Pos(‚flag52.gif‘, Line);
// vykopiruje si cely radek bez prnich 4 znaku
Line := Copy(Line, BeginPos + 4, Length(Line) – (BeginPos + 3));
// urci si konec sloupecku (bunky) tabulky
EndPos := Pos(‚</td>‘, Line);

// pokud neni nastavena pozice posledniho znaku – nastavi se
if (EndPos = 0) then
EndPos := Length(Line);

// vykopirovani nazvu (a to jak ceskeho, tak slovenskeho)
// v zavislosti na tom co uzivatel vybral
if (getOption(‚getSlovakNames‘) = 1) then
begin
// pokud ma film v popisu nejen cesky nazev – prda jej za cesky
if ((MidPos < BeginPos) and (MidPos > 0)) then
Value := Value + '; ' + Copy(Line, 1, EndPos – 1)
else
Value2 := Value2 + Copy(Line, 1, EndPos – 1) + '; ';
end;

if (getOption(‚getSlovakNames‘) = 0) then
begin
// pokud ma film v popisu nejen cesky nazev – prda jej za cesky
if ((MidPos < BeginPos) and (MidPos > 0)) then
else
Value2 := Value2 + Copy(Line, 1, EndPos – 1) + '; ';
end;
end;
until (BeginPos < 1);

if (getOption(‚theEnd‘) = 1) then
// jestli na konci nazvu filmu je clen The → presune se na zacatek nazvu filmu
if (Pos(‚, The‘, Value2) > 0) then
begin
Value2 := ‚The ' + Copy(Value2, 1, Pos(‘, The', Value2) + 1);
end;

if (getOption(‚addCZname‘) = 1) then
begin
// jestli neni prelozeny nazev, tak jej bez stredniku dpln
// jinak jej dopln se strednikem
if (GetField(fieldTranslatedTitle) = '') then
SetField(fieldTranslatedTitle, Value)
else
SetField(fieldTranslatedTitle, Value + '; ' + GetField(fieldTranslatedTitle));
end
else
SetField(fieldTranslatedTitle, Value);

if (Value2 = '') then
Value2 := Value
else
Value2 := Copy(Value2, 1, length(Value2) – 2);

SetField(fieldOriginalTitle, Value2);

// primitivni kontrola zda je originalni nazev stejny jako prelozeny
// pokud jsou stejne – prelozeny nazev se v zavislosti na nastaveni smaze
if (getOption(‚allowDuplicateNames‘) = 0) then
begin
if (getField(fieldOriginalTitle) = getField(fieldTranslatedTitle)) then
begin
SetField(fieldTranslatedTitle, '');
end;
end;

//kategorie
BeginPos := Pos(‚<b>‘, Line);
Line := Copy(Line, BeginPos + 3, Length(Line) – (BeginPos – 2));
MidPos := Pos(‚<br>‘, Line);
EndPos := Pos(‚</b>‘, Line);
PomPos := Pos(‚min</b>‘, Line);

//existuji oba radky – kategorie i stat,rok,delka
if ((MidPos < EndPos) and (MidPos > 0)) then
begin
Value := Trim(Copy(Line, 1, MidPos – 7));
if (getOption(‚NahraditLomeno‘) = 1) then
SetField(fieldCategory, StringReplace(Value, ' /‚,‘, ‚))
else
SetField(fieldCategory, Value);
Value := Trim(Copy(Line, MidPos + 4, EndPos – MidPos – 4));
RozdelStat(Value);
end
else
//existuje jen jeden radek
if ((PomPos < EndPos) and (PomPos > 0)) then
begin
Value := Trim(Copy(Line, 1, EndPos – 1));
RozdelStat(Value);
end
else
begin
Value := Trim(Copy(Line, 1, EndPos – 7));
if (getOption(‘NahraditLomeno') = 1) then
SetField(fieldCategory, StringReplace(Value, ' /‚,‘, '))
else
SetField(fieldCategory, Value);
end;

Value := GetDirector(Line);
SetField(fieldDirector, Value);
Value := GetActor(Line);
SetField(fieldActors, Value);
end;

if (getOption(‚hodnoceni‘) = 1) then
begin
// hodnoceni by MadMaxx
LineNr := FindLine(‚padding:10px;text-align:center;font-weight:bold;font-size:36px;color:white;‘, Page, 0);
Line := Page.GetString(LineNr + 1);
BeginPos := 14;
EndPos := Pos(‚%‘, Line);
Value := copy(Line, BeginPos, EndPos);

if ( EndPos <> BeginPos + 1 ) then //(Length(Value) > 1) then
begin
Value2 := copy(Value, 1, 1) + ‚,‘ + copy(Value, 2, 1);
end
else
begin
Value2 := ‚0,‘ + copy(Value, 1, 1);
end;
SetField(fieldRating, Value2);
end;

// picture
LineNr := FindLine(‚table background=„http://img.csfd.cz/posters/‘, Page, 0);
if (LineNr > –1) then
begin
Line := Page.GetString(LineNr);
BeginPos := pos(‚table background=“http://img.csfd.cz/posters‘, Line) + 18;

if (BeginPos > 10) then
begin
EndPos := pos(‚" border="‘, Line);
Value := copy(Line, BeginPos, EndPos – BeginPos);
GetPicture(Value);
end;
end;

//Info
Line := Page.Text;
LineNr := pos(‚<div style=float:left;width:425px;padding-top:10px;font-weight:normal>‘, Line);

if (LineNr > 0) then begin
Value:=copy(Line,LineNr,pos(‚</tr><tr><td width=720><br>‘,Line) – LineNr);

HTMLRemoveTags(Value);
HTMLDecode(Value);
SetField(fieldDescription, Value);
end
else begin
SetField(fieldDescription, '');
end;

// URL
SetField(fieldURL, Address);
//DisplayResults; end;

begin
// kontrola verze movie catalogu
if CheckVersion(3,5,0) then
begin
MovieName := GetField(fieldTranslatedTitle);

// pokud je originalni jmeno filmu prazdne, vem jmeno prelozene
if (MovieName = '') then
MovieName := GetField(fieldOriginalTitle);

if ((getOption(‚AutoUpdateFromURL‘) = 1) and (GetField(fieldURL) <> '')) then
MovieName := GetField(fieldURL)
else
if Input(‚Import movie from www.csfd.cz‘, ‚Zadejte název filmu:‘, MovieName) = false then
Exit;

// zadani z inputu
if pos(‚csfd.cz‘, MovieName) > 0 then
begin
AnalyzeMoviePage(MovieName);
end else begin
// analyzuj stranku http://www.csfd.cz/search_pg.php?…
AnalyzePage(BaseAddress + ‚search_pg.php?search=‘ + UrlEncode(UTF8Encode(MovieName)));
end;
end
else
ShowMessage(‚This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)‘); end.

ono to nefunguje :-(

ono to nefunguje :-(

čaute a vie niekto vytvoriť

čaute a vie niekto vytvoriť skript aj na program Movienizer su tam skripty z koncovkou.pas…ju tu niekto taky šikovný???