Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Algorytmy, klasy, funkcje _ [klasa] movieDownloader

Napisany przez: b4x 27.05.2013, 16:18:44

Witam.

Udostępniam movieDownloader - wyciąganie linków z serwisów hostujących filmy.

Na chwilę obecną zwraca tylko linki - będę troszkę rozwijał o np. zapis (pobieranie na HDD)

Obsługiwane serwisy: Anyfiles.pl, * Maxvideo.pl, Sprocked + niedługo kolejne.

* Wymaga konta premium.

Dostępny na Githubi'e pod adresem: https://github.com/nSolutionsPL/movieDownloader

Napisany przez: Crozin 27.05.2013, 16:43:59

1. Brak wsparcia dla Composera.
2. Niby wykorzystujesz przestrzenie nazw, a mimo to korzystasz ze Starej_Konwencji_Nazewnicta.
3. Ten "prosty" autoloader jest zbędny.
4. Interfejs Downloadera jest źle napisany. W żaden sposób nie umożliwia przekazania linku do filmu, który chcemy pobrać.

Sam interfejs dla użytkownika też do najwygodniejszych nie należy. Trzeba ręcznie na podstawie filmu określić z czego skorzystać, a to mogłoby być zrobione automatycznie. Wystarczyłaby jakiś obiekt skupiający wszystkie Downloadery, gdzie każdy z nich implementując interfejs Downloader ma metodę supports($url) zwracająca TRUE/FALSE. W użyciu wyglądałoby to już całkiem sensownie:

  1. $downloader = ...;
  2.  
  3. http://www.php.net/echo $downloader->get('http://sprocked.com/movie/show/ORGa')->getLink();
  4. http://www.php.net/echo $downloader->get('http://video.anyfiles.pl/videos.jsp?id=32364')->getLink();


Wnętrze metody get():
  1. public function get($url) {
  2. $urlParts = http://www.php.net/parse_url($url);
  3.  
  4. // rzuc wyjatkiem gdy $urlParts nie jest poprawne
  5.  
  6. foreach ($this->downloaders as $downloader) {
  7. if ($downloader->supports($urlParts)) { // albo samo $urlParts['host']
  8. return $downloader->get($urlParts);
  9. }
  10. }
  11.  
  12. // rzuc wyjatkiem, nie ma czego zwrocic
  13. }

Napisany przez: b4x 27.05.2013, 17:14:19

@Crozin - dzięki za krytykę :-)

Faktycznie troszkę pomieszałem, ale później trochę zmienie...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)