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ć trzy funkcje; Kanaly, Info i Pobierz. Dodatkowo biblioteki mogą również opcjonalnie udostępniać dwie funkcje; Opcje i Logo.
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.
Dodatkowo jeżeli wtyczka obsługuje liste kanałów to wtyczka musi zwracać flagę Lista przez funkcję Info.
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 | H | D | G | Tytuł | | | Opis | | | Kategoria | | | Obrazek |
---|
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. |
||
H | - |
oznaczenie hitu (0 - normalna pozycja, 1 - polecana pozycja do obejrzenia). Jeżeli wtyczka nie obsługuje polecanych hitów lub jeżeli je obsługuje, ale jest to normalna pozycja z ramówki, to ustawia się stan 0, a jeżeli jest to pozycja polecana do obejrzenia to ustawia się stan 1. Jeżeli wtyczka obsługuje polecane hity to musi zwracać flagę Hity przez funkcję Info. Dodatkowo jeżeli 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 dla pola Z. |
||
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 | - |
dodatkowy opis dla pozycji z ramówki. Jeżeli wtyczka obsługuje opisy to musi zwracać flagę Opisy przez funkcję Info. |
||
Kategoria | - |
kategoria do jakiej zalicza się dana pozycja z ramówki (jest to kategoria określona przez źródło a nie przez użytkownika). Jeżeli wtyczka obsługuje kategorie to musi zwracać flagę Kategorie przez funkcję Info. |
||
Obrazek | - |
nazwa pliku obrazka z bazy obrazków, wyświetlanego w opisach. Jeżeli wtyczka obsługuje obrazki to musi zwracać flagę Obrazki przez funkcję Info. |
Pola: tytuł, opis, kategoria i obrazek muszą być oddzielone znakiem specialnym "|" i dla tego żadna z tych pozycji nie może zawierać w sobie tego znaku specjalnego.
Pola: opis, kategoria i obrazek są polami opcjonalnymi. Jeżeli któreś z tych pól nie występuje, to wówczas nie wprowadza się żadnych danych do danego pola zachowując jednak liczbę separatorów i pozycję pozostałych pól.
Baza obrazków wykorzystywanych w opisach programów składa się z folderu Obrazki, w którym przechowywane są pliki obrazków i pliku Obrazki.txt zlokalizowanych w katalogu głównym aplikacji. Plik Obrazki.txt zawiera szczegółowe informacje na temat obrazków w postaci:
Stan | Data | Plik | Adres |
---|
gdzie: | |||
Stan | - | stan pobrania obrazka (0 - obrazek jeszcze nie został pobrany, 1 - obrazek został już pobrany do folderu Obrazki). | |
Data | - |
data dodania lub modyfikacji danego wpisu w formacje yyyy-mm-dd (rok-miesiąc-dzień). Data ta jest wykorzystywana przez aplikację do usuwania starych obrazków, które nie były użyte w programie telewizyjnym przez miesiąc. Więc jeżeli dany obrazek zostaje ponownie użyty w nowo pobieranym programie telewizyjnym to należy zaktualizować właśnie tę datę do aktualnej daty aby przedłużyć jego ważność istnienia o kolejny miesiąc. |
|
Plik | - |
nazwa pliku obrazka pod jaką jest lub będzie przechowywany obrazek w folderze Obrazki. Nazwa ta składa się z unikalnego numeru i rozszerzenia obrazka. Unikalny numer został zbudowany z daty dodania w formacje yyyymmdd i dla danej daty zwiększanego od zera numeru. |
|
Adres | - |
adres internetowy obrazka z którego został bądź zostanie pobrany obrazek. Adres ten wykorzystuje się do ustalenia czy dany obrazek został już dodany do bazy obrazków dla nowo pobieranego programu telewizyjnego. |
Pobieraniem obrazków zajmuje się aplikacja, natomiast wtyczka ma jedynie dodawać odpowiednie wpisy do pliku Obrazki.txt.
Funkcja ta przy pierwszym wywołaniu, po załadowaniu biblioteki (wtyczki), zwraca liczbę obsługiwanych kanałów jako tablicę char, natomiast każde kolejne wywołanie zwraca kolejno nazwy obsługiwanych kanałów.
Aplikacja do odczytania listy obsługiwanych kanałów wywoła tyle razy tę funkcję ile jest kanałów w liście, a ilość wywołań ustalona jest na podstawie pierwszego wywołania w którym to została zwrócona liczba obsługiwanych kanałów.
Funkcja ta zwraca dodatkowe informacje na temat wtyczki w postaci flag oddzielonych separatorem "|" informując aplikację co dana wtyczka obsługuje.
Dostępne flagi to: | ||
Opisy | - | wtyczka obsługuje opisy. |
Kategorie | - | wtyczka obsługuje kategorie. |
Hity | - | wtyczka obsługuje hity. |
Obrazki | - | wtyczka obsługuje obrazki. |
Lista=Kanał=Adres | - | wtyczka obsługuje listy kanałów gdzie Kanał to przykładowa nazwa kanału a Adres to adres internetowy dla przykładowego kanału. |
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 zakończyła się sukcesem. |
1 | - | gdy wystąpił błąd. |
2 | - | gdy brak jest listy kanałów lub kanału w liście kanałów. |
Funkcja służąca do otwierania okna ustawień wtyczki.
Parametry wejściowe to: | ||
TApplication *Host | - | uchwyt okna aplikacji wykorzystywany do scalenia okna ustawień wtyczki z aplikacją (aby na pasku zadań nie było dodatkowego przycisku okna ustawień wtyczki). |
Funkcja zwraca wartość typu bool: | ||
true | - | gdy aplikacja ma wyświetlić listę kanałów wtyczki w edytorze list kanałów. |
false | - | gdy brak jest dalszych działań. |
Funkcja ta pobiera loga kanałów.
Parametry wejściowe to: | ||
String Kanal | - | nazwa kanału dla którego ma być pobrane logo. |
Funkcja zwraca wartość typu bool: | ||
true | - | gdy operacja zakończyła się sukcesem. |
false | - | gdy wystąpił błąd. |
Stronę tę odwiedziło 2000 użytkowników. |