Pokazywanie postów oznaczonych etykietą Java Scirpt. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Java Scirpt. Pokaż wszystkie posty

wtorek, 13 sierpnia 2013

Szybki projekt flv2mp3.pl

Witam.

niedawno rozwinąłem wraz z bratem nowy szybki projekt pod szyldem Flv2mp3. Jest to strona internetowa na której po podaniu linku do serwisu YouTube otrzymujemy link do pobrania mp3.

Projekt jest banalny w wykonaniu i składa się z kilku kroków. Potrzebujemy serwera dedykowanego i następujących bibliotek.
- youtube-dl
- lame
- ffmpeg

W mojej konfiguracji serwera był pewien problem z biblioteką lame ponieważ jest była ona dla mojego serwera z nieznanego repozytorium dlatego potrzebowałem dodać je i pobrać dostępne paczki przy pomocy apt-get update.

Bibliotekę lame wykorzystuje do ustawienia tytułu oraz okładki każdej mp3.

Po wypuszczeniu strony w wersji testowej w trakcie użytkowania pojawił się problem. Silnik youtbue-dl wymagał aktualizacji, youtube zmienił coś w swoim działaniu. Aby zapobiec temu na przyszłość dodałem zadanie Cron które wykonuje się codziennie "youtube-dl -U" i aktualizuje silnik pobierania z YouTube.

Zapraszam do zabawy ze stroną i testowania mechanizmu.


sobota, 20 kwietnia 2013

Geolokalizacja w JavaScirpt

Natknąłem się niedawno na problem Geolokalizacji użytkownika odwiedzającego stronę iPtak.pl. Część linków, które umieściłem mogły działać jedynie dla widzów z Polski. Nie chciałem zaprzęgać do tego kodów PHP ponieważ zmniejszyły by wydajność dlatego postanowiłem znaleźć rozwiązanie z poziomu Java Script. Nie mógłbym tego zrobić gdyby bardzo zależało mi na zablokowaniu tej zawartości.


Wystarczy w sekcji head dodać gotowy skrypt lokalizujący
<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script>

A do naszej dyspozycji pojawiają się następujące funkcje:

geoip_country_code(); //zwraca kod państwa 
geoip_country_name(); //zwraca nazwę państwa 
geoip_city(); //zwraca nazwę miasta 
geoip_region(); //zwraca region 
geoip_region_name(); //zwraca nazwę regionu (województwa) 
geoip_latitude(); //zwraca współrzędną szerokości geograficznej 
geoip_longitude(); //zwraca współrzędną długości geograficznej 
geoip_postal_code(); //zwraca kod pocztowy



Teraz wystarczy już tylko przed znacznikiem </body> dodać kilka linijek kodu

if( geoip_country_name() != "Poland"){ alert('Treść strony w twojej lokalizacji '+
geoip_country_name() +'
jest niedostępna. ');
}


geoip_city, region, postal_code... Tych zmiennych nie można traktować poważnie.




sobota, 23 marca 2013

Pilotażowy projekt BobTV

BobTV

Mam zaszczyt przedstawić wam pilotażowy projekt pt. BobTV pieszczotliwie przez twórców nazywany Grubym Bobem jaki w tym miesiącu ujrzał światło dzienne. Powiem szczerze, że moja rola ograniczała się tutaj jedynie do naniesienia graficznego layout ponieważ przygotowaną funkcjonalnością zostałem zaskoczony przez brata po powrocie z uczelni. Gruby Bob funkcjonuje od kilku dni, jednak już ma wielu zagorzałych fanów z czego jest mi niezmiernie miło.

Na czym to wszystko Polega? Puszczamy pełnometrażowe filmy, które udało się zgromadzić na witrynie iPtak. Filmy lecą jeden po drugim, w kolejności losowej jak w telewizji tyle, że bez reklam :) Gramy przez 24 godziny na różnych kanałach, z prawej strony pokazujemy co poleci następne.

Dlaczego akurat w ten sposób? Ponieważ nie każdy ma czas lub chęć szperać i wybierać jakiś film... Czasem po prostu mamy ochotę zrelaksować się przy czymkolwiek co chodź na chwile odciągnie nasze myśli od rzeczywistości.

Zapraszam do sprawdzenia projektu BobTv.pl oraz na blog patrona tego projektu FreshFrog.pl

sobota, 26 stycznia 2013

Pobieranie treści ze strony. Przykład filmweb.

Wstęp... Czyli coś co możesz pominąć >>


Pobieranie treści strony to musi być wcale mozolne jeśli użyjemy do tego głowy. Widziałem wiele przykładów, które wykorzystują wyrażenia regularne, sam kiedyś ich używałem, tak więc sprawdziłem to empirycznie. Jest to bardzo skomplikowany sposób, łatwo się w nim pogubić, ponieważ wszystkie elementy DOM strony traktujemy jako ciąg znaków. Zaprezentuje wam alternatywną metodę, która wykorzystuje jQuery i porusza się po elementach DOM strony (jest wiele wiele szybsza). Nie pokaże wam jak robi się to przy pomocy wyrażeń regularnych ponieważ szkoda mi czasu, poza tym przestałem ich używać.

Krok pierwszy

Pierwszą rzeczą jaką musimy zrobić to załadować stronę z której chcemy wyciągnąć informacje do iframe. Tutaj ważna uwaga, aby dostać się do treści iframe adres musi być na tej samej domenie. Jak to zrobić skoro nasza domena to naszadomena.pl, a treść strony, którą chcemy pobrać znajduje się pod adresem filmweb.pl? Istnieje prosta metoda (Cross-Domain), musimy zrobić plik pobierz.php na naszym serwerze, który pobierze treść filmweb.


<?php

$after = $_GET['after'];

// Pobiera filmweb z parametrami after. 
$file = file_get_contents('http://www.filmweb.pl/'.$after, false);

echo $file;
?>

korzystanie z tego pliku będzie następujące.
Adres http://www.filmweb.pl/film/Niemo%C5%BCliwe-2012-586390 
odpowiada adresowi http://twojadomena.pl/?after=film/Niemo%C5%BCliwe-2012-586390

Przygotowanie Html

Gdy przygotujemy nasz plik zabieramy się za stworzenie pliku ładującego naszego iframa oraz przeglądającego jego zawartość. W tym miejscu musimy dodać do naszego pliku w sekcji head bibliotekę jQuery.

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>

Następnie w sekcji body dodajemy iframe ze stroną, która chcemy pobrać.


<iframe src="http://naszadomena.pl/pobierz.php?after=film/Niemo%C5%BCliwe-2012-586390" style="display:none;"></iframe>

Przygotowanie JavaScirpt

Oraz kod Java Scirpt, który czeka na załadowanie iframe, a następnie przeszukuje go pod kątem potrzebnych nam informacji. W tym przykładzie wykorzystałem selektory jQuery oraz funkcję contents(), która pozwala mi dobrać się do wnętrza iframe. 

<script>
window.onload = function() {
$iframe = $('iframe').contents();

alert( $iframe.find('div.posterLightbox > a > img').attr('src') ); //adres miniatury
alert( $iframe.find('div.filmTitle h1 > a').text() ); // tytuł
alert( $iframe.find('span#filmYear').text() ); // rok wydania
alert( $iframe.find('div.pageBox > p.text.longText').text() + $iframe.find('div.pageBox > span.fullText hide').text() ); // pełen opis filmu
alert( parseFloat($iframe.find('span.filmRate > strong').text()) ); // ocena filmu

}
</script>



PS. nie wiem w jakiej czasoprzestrzeni będziesz czytał ten post... Dlatego uprzedzam się, że selektory mogą się zmienić dla wszystkich tych danych. Selektory napisałem w dniu (2013 - 01 - 26). Ich aktualizacja jest znacznie prostsza i szybsza niż w przypadku wyrażeń regularnych. Wierze, że z odrobiną determinacji sobie poradzisz. Pytania zostaw w komentarzu.