MozillaPL.org - polskie centrum Mozilli

Główne menu:

Powiadamianie o modyfikacji pliku na serwerze.

Dodatki rozszerzające funkcjonalność i schematy wyglądu Mozilli Firefox

Moderator: Pomocy?!

Powiadamianie o modyfikacji pliku na serwerze.

Postautor: Rostov » 13 września 2014, 11:32

Przeglądarka: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0

Załóżmy, że jest taka sytuacja: jest sobie strona http://www.nazwastrony.pl. Na tej stronie, pod linkiem: http://www.nazwastrony.pl/archiwum/2014/plik.pdf znajduje się właśnie ów plik.pdf, którego zawartość jest zmieniana - niezbyt regularnie, co jakiś okres czasu. Plik ten zawiera ważne dla mnie informacje, jednak nie każdego dnia pamiętam, by sprawdzić, czy pojawiło się w nim coś nowego. Gdy są dokonywane zmiany w tym pliku, nie jest zmieniana jego nazwa. Zmienia się jedynie data jego modyfikacji.

Potrzebne mi jest więc rozszerzenie, które przy każdym uruchomieniu FF będzie automatycznie sprawdzało, czy zmieniła się data modyfikacji tego pliku. Istnieje w ogóle coś takiego?
Rostov
 
Posty: 236
Z nami od: 22 grudnia 2004, 13:10

Odp: Powiadamianie o modyfikacji pliku na serwerze.

Postautor: Mirek » 09 listopada 2014, 03:59

Przeglądarka: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0

Można by stworzyć prosty skrypt dla Greasemonkey, przypisać go do jakiejś strony (może być też lokalna, przy odpowiednich ustawieniach), która by się otwierała przy każdym uruchomieniu przeglądarki (czy to jako jedna ze stron startowych, czy dopisana np. do skrótu do Fx, albo otwierana w każdej sesji - tylko wtedy trzeba wymusić ładowanie zawartości kart także tych nieaktywnych).

I wtedy zarys skryptu mógłby wyglądać tak:
Kod: Zaznacz cały
// ==UserScript==
// @name        Powiadamianie o modyfikacji pliku na serwerze
// @namespace   Tests
// @include     https://www.google.pl/
// @version     0.9
// @grant       GM_xmlhttpRequest
// @grant       GM_setValue
// @grant       GM_getValue
// ==/UserScript==

var ret = GM_xmlhttpRequest({
  method: "HEAD",
  url: "http://www.nazwastrony.pl/archiwum/2014/plik.pdf",
  onload: function(res) {

    alert(res.responseHeaders); // testowo, dla sprawdzenia, czy serwer podaje datę modyfikacji pliku
   
    // wyciągnij datę z res.responseHeaders (szukaj: Last-Modified:)
   
    // porównaj datę z wartością zapisaną przez GM podczas ostatniego sprawdzenia (GM_getValue())
   
    // jeśli nowszy - GM_setValue("Ostatnia_modyfikacja", wyciagnieta_data); alert("Jest nowy!!!");
   
    // w przeciwnym razie zamknij okno
   
  }
});


Nie wiem jak tam u Ciebie z programowaniem - ale w razie problemów zacznij od sprawdzenia, czy powyższy skrypt zwraca (m.in.) datę modyfikacji pliku - bo niektóre serwery nie podają takich informacji. Jeśli zwraca datę (tylko pokaż nam w jakim formacie), a nie wiesz co dalej, to pewnie jak nie ja, to ktoś Ci napisze te kilka linijek brakującego kodu.
Mirek
Moderator
 
Posty: 2158
Z nami od: 09 sierpnia 2007, 20:37


Wróć do Rozszerzenia dla Firefoksa

Kto jest online

Zarejestrowani użytkownicy: Baidu [Spider], Bing [Bot], Google [Bot]

Przejdź do powiązanej strony

Nawigacja:

Stopka: