Program telewizyjny z powiadamiaczem.
Zadaniem wtyczek źródeł pobierania jest dostarczenie programu telewizyjnego do aplikacji. Polega to na tym, że aplikacja wysyła do wtyczki żądanie pobrania programu telewizyjnego dla określonego kanału i dnia, a następnie wtyczka pobiera kod źródłowy strony internetowej zawierający dany program telewizyjny, z którego to wyciąga potrzebne informacje, poddaje je dodatkowej obróbce i zapisuje je do plików w folderze ustawień aplikacji w formacje akceptowanym przez aplikację.
Wtyczki źródeł pobierania są to biblioteki dll, które znajdują się w podfolderze Źródła w katalogu głównym aplikacji Program TV. Nazwy tych plików składają się z adresu internetowego (z którego pobierany jest program telewizyjny bez przedrostka typu http:// i katalogów podrzędnych, oraz wszystkie kropki zamienia się na podkreślenia) i rozrzerzenia dll. Biblioteki te muszą udostępniać siedem funkcji; Kanaly, KanalTestowy, Dni, Opis, Kategoria, Hit i Pobierz.
Dla wtyczek pobierających program telewizyjny ze stron internetowych oferujących program telewizyjny dla dużej liczby kanałów może istnieć dodatkowy plik znajdujący się obok pliku wtyczki, o takiej samej nazwie ale z rozszerzeniem txt. Plik ten zawiera listę kanałów, co umożliwia dodanie nowych kanałów, które dana wtyczka może obsługiwać, bez konieczności pisania nowej wtyczki.
Wpisy kanałów, w pliku listy kanałów, zaczynają się od czwartego wiersza i zbudowane są z nazw kanałów i adresów internetowych pod którymi znajduje się program telewizyjny dla danego kanału, połączonych znakiem równości w postaci:
Kanał | = | Adres |
---|
Ponieważ nazwy kanałów wykorzystywane są przez aplikację do tworzenia folderów, to nazwy te nie mogą zawierać znaków specjalnych zastrzeżonych przez system Windows.
Pierwszy i trzeci wiersz, w pliku listy kanałów, to komentarze, natomiast drugi wiersz to numer wersji listy kanałów i jest on w postaci:
Wersja: | x |
---|
gdzie x to numer wersji listy kanałów.
Program telewizyjny przechowywany jest przez aplikację w katalogu głównym aplikacji w podfolderze Ustawienia, który z kolei zawiera kolejne podfoldery, których nazwy są nazwami kanałów. Podfoldery kanałów zawierają pliki tekstowe z programem telewizyjnym dla określonego dnia emisji, a ich nazwa składa się z daty emisji w formacie yyyy-mm-dd (rok-miesiąc-dzień) i rozszerzenia txt. Przy czym podział na daty emisji zgodny jest z ogólnie przyjętą zasadom stosowaną w świecie telewizji, czyli program telewizyjny dla danego dnia najczęściej zahacza o dzień następny - dzień rozpoczyna się nie od godziny 00:00 lecz od wczesnych godzin porannych i może być inny dla różnych kanałów. Tak więc program telewizyjny został rozdzielony na kanały za pomocą folderów i dodatkowo na dni emisji za pomocą plików.
W plikach tych, każda linia reprezentuje kolejną pozycję z ramówki programu telewizyjnego dla danego kanału i daty emisji, a format tych wpisów jest następujący:
Z | D | G | Tytuł | | | Opis (Kategoria) |
---|
gdzie: | ||||
|
- | pola obowiązkowe. | ||
|
- | pola opcjonalne. | ||
Z | - |
stan zaznaczenia do przypomnienia (0 - brak zaznaczenia, 1 - zaznaczono do przypomnienia). Wartość określana przez wtyczkę na podstawie filtrów ulubionych i wyjątków. Najpierw pole tytułu przeszukuje się na obecność fraz ulubionych i jeżeli nic nie znaleziono to ustawia się stan 0, a jeżeli znaleziono, to dodatkowo przeszukuje się na obecność fraz wyjątków. Jeżeli znaleziono jakąś frazę wyjątków, to ustawia się stan 0, a jeżeli nie to stan 1. Dodatkowo jeżeli wtyczka obsługuje polecane hity i włączona jest opcja "Dodaj do powiadomień polecane hity" ([Ustawienia] Hit=1), a dana pozycja jest hitem, to przeszukuje się pole tytułu na obecność fraz wyjątków i jeżeli nic nie znaleziono to ustawia się stan 1, a jeżeli coś znaleziono to ustawia się stan 0. |
||
D | - | rzeczywista data emisji w formacje yyyy-mm-dd (rok-miesiąc-dzień). | ||
G | - | godzina emisji w formacje hh:nn (godzina:minuta). | ||
Tytuł | - | tytuł pozycji z ramówki. | ||
Opis (Kategoria) | - |
opcjonalny opis dla pozycji z ramówki, który dodatkowo może zawierać na końcu w nawiasie okrągłym kategorie określoną przez źródło do jakiej zalicza się dana pozycja, bądź sama kategoria w nawiasie bez opisu, ewentualnie sam opis. Jeżeli wtyczka obsługuje polecane hity i dana pozycja jest hitem to całe to pole rozpoczyna się od słowa "Hit! ". |
Pola: tytuł i opis (kategoria) muszą być oddzielone znakiem specialnym "|" i dla tego żadna z tych pozycji nie może zawierać w sobie tego znaku specjalnego.
Funkcja ta zwraca nazwy obsługiwanych kanałów oddzielonych za pomocą separatora którym jest znak "|".
Ponieważ nazwy kanałów wykorzystywane są przez aplikację do tworzenia folderów, to nazwy te nie mogą zawierać znaków specjalnych zastrzeżonych przez system Windows.
Jeżeli wtyczka nie obsługuje listy kanałów to funkcja ta zwraca znak "-", a jeżeli obsługuje to zwraca przykładowy wpis listy kanałów. Wpis ten składa się z nazwy kanału i adresu internetowego, pod którym znajduje się program telewizyjny, oddzielonych od siebie znakiem równości.
Funkcja ta zwraca liczbę dni obsługiwanych przez wtyczkę.
Funkcja ta zwraca true jeśli wtyczka obsługuje opisy lub false jeśli nie.
Funkcja ta zwraca true jeśli wtyczka obsługuje kategorie lub false jeśli nie.
Funkcja ta zwraca true jeśli wtyczka obsługuje hity lub false jeśli nie.
Funkcja ta pobiera i zapisuje program telewizyjny do odpowiednich plików ustawień.
Parametry wejściowe to: | ||
String Kanal | - | nazwa kanału dla którego ma być pobrany program telewizyjny. |
TDateTime Data | - | dzień dla którego ma być pobrany program telewizyjny (format: yyyy-mm-dd). |
Funkcja zwraca wartość typu int: | ||
0 | - | gdy operacja skończyła się sukcesem. |
1 | - | gdy brakło pamięci. |
2 | - | gdy wystąpił błąd pobierania. |
3 | - | gdy brak jest listy kanałów lub kanału w liście kanałów. |
4 | - | gdy pobrano, ale plik nie zawiera programu telewizyjnego. |
Stronę tę odwiedziło 2000 użytkowników. |