[REL] [PL] FilmWeb.pl 3.0 - The Best Polish Script

If you made a script you can offer it to the others here, or ask help to improve it. You can also report here bugs & problems with existing scripts.
Post Reply

Jak oceniasz skrypt

1
3
7%
2
1
2%
3
4
10%
4
5
12%
5
8
19%
Cudo :)
21
50%
 
Total votes: 42

domi
Posts: 51
Joined: 2012-11-30 21:50:03

Post by domi »

zdradzisz zmiany względem poprzedniej bety? ;)
Ariell
Posts: 204
Joined: 2014-12-21 09:52:15
Location: Gdzieś w drodze mlecznej

Post by Ariell »

Nie :hihi: :lol: :hum: :badidea: :cool: Są poniżej

Optymalizacja i poprawka błędów
Dodanie opcji duplikator
domi
Posts: 51
Joined: 2012-11-30 21:50:03

Post by domi »

dzięki :)
domi
Posts: 51
Joined: 2012-11-30 21:50:03

Post by domi »

Duplikator ustawiony na 1 nie dopisuje pozycji do pliku Filmy.adb, a co za tym idzie nie oznacza zdublowanych pozycji.
Ariell
Posts: 204
Joined: 2014-12-21 09:52:15
Location: Gdzieś w drodze mlecznej

Post by Ariell »

domi wrote:Duplikator ustawiony na 1 nie dopisuje pozycji do pliku Filmy.adb, a co za tym idzie nie oznacza zdublowanych pozycji.
upst pozostałość po testach:
Poprawna linijka

Code: Select all

if (GetOption('Duplikator') > 0) then duplikaty(TextBetween(Page.Text, '"filmId",', ')'));
athe
Posts: 170
Joined: 2013-06-01 20:26:24
Location: Poland

Post by athe »

Witajcie, dopisałem parę linijek skryptu (bazując na kodzie Ariell'a dotyczącego opisu), który umożliwia pobranie opisu, najczęściej bardzo krótkiego z karty Forum filmu tylko w przypadku gdy nie ma innych opisów (redakcji, użytkowników). Pobiera post z tytułem określonym w Linetmp, czasami tam są (tak jest w przypadku filmu Ak-eui yeon-dae-gi z 2014 roku). Jak ktoś będzie chciał to proszę uprzejmie, oto on:

Code: Select all

procedure AnalizeFilmDiscussionPage(Address : String);
var
 Line, PageTmp, Linetmp, Value : String;
   Page : TStringList;
begin
   Page := TStringList.Create;
   Page.Text := UTF8Decode(GetPage(Address));
    Line := TextBetween(Page.Text, 'class="topics-list"', 'filmSubpageMenu'); // + 'filmSubpageMenu';
    while  (Pos('<h3 class="s-16">', Line) > 0) do
    begin
     PageTmp := 'http://www.filmweb.pl' + TextBetween(Line, '<h3 class="s-16"><a href="/film', '"');
     Linetmp := TextBetween(PageTmp, '/discussion/', ',');
     if (Linetmp = 'Opis') or (Linetmp = 'Opis...') or (Linetmp = 'OPIS') or (Linetmp = 'Opis filmu') or (Linetmp = 'Info') or (Linetmp = 'info') Then
      begin
       Page.Text := UTF8Decode(GetPage(PageTmp));
       Value := TextBetween(Page.Text, 'firstPost', 'class="plusPanel');
       Value := TextBetween(Value, '<p class="text">', '</p');
   Value := StringReplace(Value, '<br>', '');
       CorrectTextError(Value);
       UniToPol(Value);
   HTMLRemoveTags(Value);  //Value := Trim(Value);
      end;
      Line := Copy(Line, Pos('</p', Line) + Length('</p'), Length(Line));
    end;
  if Value<>'' then
  SetField(fieldDescription, Trim(Value));
 Page.Free;
end;
Trzeba jeszcze wstawić linijkę forum filmu

Code: Select all

// Opis
	if (not ((GetOption('Aktualizacja') = 2) and (GetField(fieldDescription)<>''))) then AnalyzeFilmDescriptionsPage(Address + '/descs');

	//forum filmu
	if GetField(fieldDescription)='' then AnalizeFilmDiscussionPage(Address + '/discussion');

	// Komentarze
Wiem, że to nie jest doskonałe (może Ariell jak będzie miał chwilkę czasu i zechce to zerknie i poprawi, chodzi o Linetmp, czy da się zrobić to inaczej, niż tylko dopisywanie tytułu posta) ale jak na razie ta procedura spełnia moje oczekiwania w przypadku braku opisu redakcji lub użytkowników. Pozdrawiam wszystkich.
P.S. Dodałem zmienną PageTmp, bo czasami wartość Value nie była poprawna.
Ariell
Posts: 204
Joined: 2014-12-21 09:52:15
Location: Gdzieś w drodze mlecznej

Post by Ariell »

athe wrote:Witajcie, dopisałem parę linijek skryptu (bazując na kodzie Ariell'a dotyczącego opisu), który umożliwia pobranie opisu, najczęściej bardzo krótkiego z karty Forum filmu tylko w przypadku gdy nie ma innych opisów (redakcji, użytkowników). Pobiera post z tytułem określonym w Linetmp, czasami tam są (tak jest w przypadku filmu Ak-eui yeon-dae-gi z 2014 roku). Jak ktoś będzie chciał to proszę uprzejmie, oto on:

Code: Select all

procedure AnalizeFilmDiscussionPage(Address : String);
var
 Line, PageTmp, Linetmp, Value : String;
   Page : TStringList;
begin
   Page := TStringList.Create;
   Page.Text := UTF8Decode(GetPage(Address));
    Line := TextBetween(Page.Text, 'class="topics-list"', 'filmSubpageMenu'); // + 'filmSubpageMenu';
    while  (Pos('<h3 class="s-16">', Line) > 0) do
    begin
     PageTmp := 'http://www.filmweb.pl' + TextBetween(Line, '<h3 class="s-16"><a href="/film', '"');
     Linetmp := TextBetween(PageTmp, '/discussion/', ',');
     if ((Linetmp = 'Opis') or (Linetmp = 'Opis...') or (Linetmp = 'OPIS') or (Linetmp = 'Opis filmu') or (Linetmp = 'Info') or (Linetmp = 'info')) Then // obejmuj nawiasami cały warunek. A lepiej zastąpić to wyrażeniem regularnym.
      begin
       Page.Text := UTF8Decode(GetPage(PageTmp));
       Value := TextBetween(Page.Text, 'firstPost', 'class="plusPanel');
       Value := TextBetween(Value, '<p class="text">', '</p');
   Value := StringReplace(Value, '<br>', '');
       CorrectTextError(Value);
       UniToPol(Value);
   HTMLRemoveTags(Value);  //Value := Trim(Value);
      end;
      Line := Copy(Line, Pos('</p', Line) + Length('</p'), Length(Line));
    end;
  if Value<>'' then
  SetField(fieldDescription, Trim(Value));
 Page.Free;
end;
Trzeba jeszcze wstawić linijkę forum filmu

Code: Select all

// Opis
	if (not ((GetOption('Aktualizacja') = 2) and (GetField(fieldDescription)<>''))) then AnalyzeFilmDescriptionsPage(Address + '/descs');

	//forum filmu
	if GetField(fieldDescription)='' then AnalizeFilmDiscussionPage(Address + '/discussion');

	// Komentarze
Wiem, że to nie jest doskonałe (może Ariell jak będzie miał chwilkę czasu i zechce to zerknie i poprawi, chodzi o Linetmp, czy da się zrobić to inaczej, niż tylko dopisywanie tytułu posta) ale jak na razie ta procedura spełnia moje oczekiwania w przypadku braku opisu redakcji lub użytkowników. Pozdrawiam wszystkich.
P.S. Dodałem zmienną PageTmp, bo czasami wartość Value nie była poprawna.
athe
Posts: 170
Joined: 2013-06-01 20:26:24
Location: Poland

Post by athe »

Ariell, dziękuję za podpowiedź. Próbowałem wcześniej użyć wyrażenia regularnego, ale chyba z tym sobie nie poradzę.
Yogi_18
Posts: 50
Joined: 2012-02-18 05:56:41

Post by Yogi_18 »

@ Ariell

Tak sobie aktualizuje ostatnio filmy i stwierdzam że czegoś mi brakuje...
Może udałoby się dorzucić jeszcze jedno coustomowe pole z datą, a w nim dzień aktualizacji filmu (pobierania skryptu)
Dzięki temu można uaktualnić najstarsze pozycje - np. ocene filmu, tak by mieć zawsze aktualne dane i wiedzieć kiedy dany film był aktualizowany :)
Ariell
Posts: 204
Joined: 2014-12-21 09:52:15
Location: Gdzieś w drodze mlecznej

Post by Ariell »

Yogi_18 wrote:@ Ariell

Tak sobie aktualizuje ostatnio filmy i stwierdzam że czegoś mi brakuje...
Może udałoby się dorzucić jeszcze jedno coustomowe pole z datą, a w nim dzień aktualizacji filmu (pobierania skryptu)
Dzięki temu można uaktualnić najstarsze pozycje - np. ocene filmu, tak by mieć zawsze aktualne dane i wiedzieć kiedy dany film był aktualizowany :)
Dobry pomysł. :grinking:

i już dodane do następnej alfy.

Image


Ale najpierw nauczę go pobierać zdjęcia aktorów z katalogu Aktorzy ze skryptu MoveExtras.

to też już w alfie.

Teraz centralna baza zdjęć dla kilku katalogów.
Last edited by Ariell on 2017-04-06 10:08:27, edited 4 times in total.
Yogi_18
Posts: 50
Joined: 2012-02-18 05:56:41

Post by Yogi_18 »

Panowie pytanie...

Grzebie sobie cały czas przy pliku... i jak to wiadomo uczymy się na błędach...

Mając 1 plik zapisywałem sobie raz w miesiącu pod nową nazwą pliku: np "Filmoteka marzec 2017"...

Mając zdjęcia aktorów, plakatów i całość trzymana jest na zewnątrz pliku - takie zapisywanie mija się z celem, chciałem zmienić nazwę po prostu na "Filmoteka", niestety widzę dwa problemy...

Czas zapisywania takiego spisu to "kilka" godzin, wczorajszy test zaczął się o 19:21, a patrząc na czas utworzenia ostatniego pliku to 1:00 w nocy.

Druga to ilość plików? mój podstawowy "catalog" ma 130 320 plików, a po zapisie na nowo ma "tylko" 128 611 plików.... brakuje 1 709 plików i nie mogę załapać skąd ta rozbieżność...


Mieliście takie problemy...
Idzie przyśpieszyć zapis pod "nową nazwą"?
Wiecie skąd ta rozbieżność w ilości plików?
Ariell
Posts: 204
Joined: 2014-12-21 09:52:15
Location: Gdzieś w drodze mlecznej

Post by Ariell »

Yogi_18 wrote:Panowie pytanie...

Grzebie sobie cały czas przy pliku... i jak to wiadomo uczymy się na błędach...

Mając 1 plik zapisywałem sobie raz w miesiącu pod nową nazwą pliku: np "Filmoteka marzec 2017"...

Mając zdjęcia aktorów, plakatów i całość trzymana jest na zewnątrz pliku - takie zapisywanie mija się z celem, chciałem zmienić nazwę po prostu na "Filmoteka", niestety widzę dwa problemy...

Czas zapisywania takiego spisu to "kilka" godzin, wczorajszy test zaczął się o 19:21, a patrząc na czas utworzenia ostatniego pliku to 1:00 w nocy.

Druga to ilość plików? mój podstawowy "catalog" ma 130 320 plików, a po zapisie na nowo ma "tylko" 128 611 plików.... brakuje 1 709 plików i nie mogę załapać skąd ta rozbieżność...


Mieliście takie problemy...
Idzie przyśpieszyć zapis pod "nową nazwą"?
Wiecie skąd ta rozbieżność w ilości plików?
Odnośnie pierwszego to ja robię to samo ale zanim zapiszę bazę Narzędzia > Zarządzanie obrazkami > Przekształć na połączenie absolutne.
I podczas eksportu bazy zapisuje mi tylko bazę danych a pliki ma w starym katalogu. Oszczędność miejsca i czasu.
P.S. Ja mam MoveExtras 1.1.Alpha gdzie dodałem kilka opcji odnośnie zarządzania obrazkami i aktorami z wielu baz. Nie pamiętam czy 1.0 to potrafił.

Różnice w ilości plików to dziwna sprawa ale może być tak:
- Kopię trzymasz na dysku online i masz włączoną synchronizację automatyczną. podczas tworzenia bazy zmieniłeś kilka plików lub po prostu zostały przez skrypt usunięte bo je zmieniono natomiast twoja chmurka je przywróciła.
- Move Extras jak i filmweb.pl 3.0 nie może pracować stabilnie gdy pracujesz na katalogu który jakaś chmura automatycznie synchronizuje wtedy wszystko się wali.
athe
Posts: 170
Joined: 2013-06-01 20:26:24
Location: Poland

Post by athe »

Ariell wrote:
Dobry pomysł. :grinking:

i już dodane do następnej alfy.

Image


Ale najpierw nauczę go pobierać zdjęcia aktorów z katalogu Aktorzy ze skryptu MoveExtras.

to też już w alfie.

Teraz centralna baza zdjęć dla kilku katalogów.
Ariell, czy alfa jest już dostępna?. Bardzo mi się to podoba
Ariell
Posts: 204
Joined: 2014-12-21 09:52:15
Location: Gdzieś w drodze mlecznej

Post by Ariell »

athe wrote:
Ariell wrote:
Dobry pomysł. :grinking:

i już dodane do następnej alfy.

Image


Ale najpierw nauczę go pobierać zdjęcia aktorów z katalogu Aktorzy ze skryptu MoveExtras.

to też już w alfie.

Teraz centralna baza zdjęć dla kilku katalogów.
Ariell, czy alfa jest już dostępna?. Bardzo mi się to podoba
Jeszcze nie
W tej wersji chcę połączyć MoveExtras z filmwebem tak by mogły ze sobą współpracować.
MoveExtras dostał też kilka nowych opcji VVV.
Image
picture hosting

Ręczne dodanie daty aktualizacji:

Code: Select all

var
	MovieName, MAddress, URL, ExtrasS, Tests, StrSep : String;
	AUpdate, Ej,ACount : Integer;
	SearchAddresses, Extras, preparexml, ActorsLS : TStringList;
>

Code: Select all

var
	MovieName, MAddress, URL, ExtrasS, Tests, StrSep : String;
	YY,MM,DD : Word;
	AUpdate, Ej,ACount : Integer;
	SearchAddresses, Extras, preparexml, ActorsLS : TStringList;
i

Code: Select all

		if  URL = '' then AUpdate := 0;
		case AUpdate of
>

Code: Select all

		if  URL = '' then AUpdate := 0;
		DeCodeDate (Date,YY,MM,DD);
		SetCustomField('DataAktualizacji',InttoStr(YY) + '-' + InttoStr(MM) + '-' + InttoStr(DD));
		case AUpdate of
Dodajemy 3 linijki.
Plus dodatkowe pole typu data o nazwie "DataAktualizacji".

Proste?
athe
Posts: 170
Joined: 2013-06-01 20:26:24
Location: Poland

Post by athe »

Jak drut, dzięki za podpowiedź. Ale to będzie kombajn. :hihi: Tyle funkcji, jak nigdzie.
Ariell
Posts: 204
Joined: 2014-12-21 09:52:15
Location: Gdzieś w drodze mlecznej

Post by Ariell »

athe wrote:Ale to będzie kombajn. :hihi: Tyle funkcji, jak nigdzie.
Jeszcze trochę a może wodę na kawę zagotuje :hihi:
athe
Posts: 170
Joined: 2013-06-01 20:26:24
Location: Poland

Post by athe »

Witam, Ariell, jak sytuacja z MoveExtras? Teraz idą święta, na pewno będzie przerwa. Możemy spodziewać się nowości na początku maja?
Dziś będę życzył wszystkim i Tobie spokojnych Świąt Wielkanocnych, smacznego jajka. Wszystkiego dobrego!
Ariell
Posts: 204
Joined: 2014-12-21 09:52:15
Location: Gdzieś w drodze mlecznej

Post by Ariell »

athe wrote:Witam, Ariell, jak sytuacja z MoveExtras? Teraz idą święta, na pewno będzie przerwa. Możemy spodziewać się nowości na początku maja?
Dziś będę życzył wszystkim i Tobie spokojnych Świąt Wielkanocnych, smacznego jajka. Wszystkiego dobrego!
Prace idą powoli bo trzeba dużo zmienić począwszy od lokalizacji plików z bazami po dodanie nowych dla spójności. Jak dobrze poszukacie na forum to zamieściłem gdzieś link do alf

obecnie zakończono:
-wspólna baza aktorów (filmweb pobiera dane z Move Extras).
-Przeniesienie obrazków do wspólnego katalogu. Lokalizacja dowolna nawet na innym dysku (tego nie ma w udostępnionej alfie tylko katalog w podkatalogu z bazą(ami)). (trwa tworzenie bazy danych plików okładek i plakatów).


Jedyny minus to to że jak usuniemy film lub plik to w zewnętrznym katalogu okładki zostają ale ma to załatwić dodatkowy skrypcik. Alpha już jest.


Jakby ktoś chciał sprawdzić co się dzieje to tutaj są obecne alf-y (mało stabilne jeszcze ale działają) www89.zippyshare.com/v/zbddbrWP/file.html

I również życzę wszystkim zdrowych i pogodnych Świąt Wielkanocnych oraz mokrego Dyngusa.
athe
Posts: 170
Joined: 2013-06-01 20:26:24
Location: Poland

Post by athe »

Ariell, dzięki za udostępnienie tych skryptów.
Ariell
Posts: 204
Joined: 2014-12-21 09:52:15
Location: Gdzieś w drodze mlecznej

Post by Ariell »

athe wrote:Ariell, dzięki za udostępnienie tych skryptów.
Do testów mogą być ale do używania raczej nie polecam. Może się jeszcze coś zmienić i coś potem się posypie. Szczególnie z grafikami.
Post Reply