From f690ec5d5e27fc2c596c71961190533d99e55de6 Mon Sep 17 00:00:00 2001 From: Noiredd Date: Thu, 31 Jan 2019 21:34:19 +0100 Subject: [PATCH] official rename part 2 The first one just moved (renamed) the code files. Here we: * move (rename) documentation and update all paths within * rename the launcher script * add the new paths to .gitignore * update the remote paths in updater.py * display the version string in GUI --- .gitignore | 2 +- fw-local.bat => Filmatyk.bat | 0 README.md | 54 ++++++++++++------------ filmatyk/gui.py | 2 + filmatyk/updater.py | 4 +- HOWITWORKS.md => readme/HOWITWORKS.md | 24 ++++++++--- LINUX.md => readme/LINUX.md | 20 ++++----- screenshot.png => readme/screenshot.png | Bin 8 files changed, 58 insertions(+), 48 deletions(-) rename fw-local.bat => Filmatyk.bat (100%) rename HOWITWORKS.md => readme/HOWITWORKS.md (94%) rename LINUX.md => readme/LINUX.md (79%) rename screenshot.png => readme/screenshot.png (100%) diff --git a/.gitignore b/.gitignore index 39fd2e9..188ef3b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ cache/ -fw-local/__pycache__/ +filmatyk/__pycache__/ *.html *.fws *.txt diff --git a/fw-local.bat b/Filmatyk.bat similarity index 100% rename from fw-local.bat rename to Filmatyk.bat diff --git a/README.md b/README.md index 6eb7f27..a577224 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,56 @@ -# fw-local +# Filmatyk **Chcesz pobrać wszystkie swoje oceny z filmwebu na własny komputer? Może po prostu nie podoba Ci się nowy interfejs portalu? -fw-local pozwala Ci przeglądać/sortować/filtrować swoje oceny offline!** +Filmatyk pozwala Ci przeglądać/sortować/filtrować swoje oceny offline!** -### Co to jest **fw-local**? -fw-local jest odpowiedzią na ostatnie zmiany w interfejsie serwisu filmweb.pl, który dla mnie osobiście stał się nieużywalny. -fw-local pozwala na *zaimportowanie własnych ocen* z portalu i zapisanie ich lokalnie, dzięki czemu zawsze masz do nich dostęp. -Razem z Twoimi ocenami, fw-local pobiera także podstawowe informacje o obejrzanych przez Ciebie filmach - +### Co to jest **Filmatyk**? +Filmatyk jest odpowiedzią na ostatnie zmiany w interfejsie serwisu filmweb.pl, który dla mnie osobiście stał się nieużywalny. +Filmatyk pozwala na *zaimportowanie własnych ocen* z portalu i zapisanie ich lokalnie, dzięki czemu zawsze masz do nich dostęp. +Razem z Twoimi ocenami, Filmatyk pobiera także podstawowe informacje o obejrzanych przez Ciebie filmach - dzięki temu masz możliwość *przeglądania ich i filtrowania* na różne sposoby - zupełnie tak, jak w starym, dobrym filmwebie! - -Kliknij by zobaczyć w większym rozmiarze + +Kliknij by zobaczyć w większym rozmiarze -**WAŻNE**: fw-local jest na razie w fazie *beta*. +**WAŻNE**: Filmatyk jest na razie w fazie *beta*. Większość funkcjonalności stabilnie działa, ale mogą pojawiać się błędy i niedoróbki. Razem z nimi - aktualizacje naprawiające niedociągnięcia i dodające nowe możliwości. -**WAŻNE**: fw-local na razie działa niemal od ręki tylko w systemie **Windows**. +**WAŻNE**: Filmatyk na razie działa od ręki tylko w systemie **Windows**. Na pewno obsługiwane są wersje 7 (z SP 1) oraz 10, prawdopodobnie powinien zadziałać też w Viście. Jeśli chcesz używać go na Linuksie bądź Maku, prawdopodobnie czeka Cię odrobina więcej pracy - czytaj dalej. -### Jak uruchomić fw-local? +### Jak uruchomić Filmatyka? Program został napisany w języku Python, co znaczy, że aby go używać, potrzebujesz mieć zainstalowane środowisko tego języka. Nie jest ono dostarczane domyślnie z systemem Windows, więc jeśli nie masz pewności, czy je posiadasz - prawdopodobnie nie. Poniżej znajduje się krótka instrukcja dla systemu Windows. -Jeśli pracujesz na Linuksie - zobacz [instrukcję instalacji dla Linuksa](LINUX.md). +Jeśli pracujesz na Linuksie - zobacz [instrukcję instalacji dla Linuksa](readme/LINUX.md). 1. Pierwszym krokiem będzie prawdopodobnie **instalacja Pythona 3** ([link do oficjalnego wydania](https://www.python.org/downloads/)) - na chwilę obecną najnowszym wydaniem jest Python 3.7.2. -fw-local nie uruchomi się w środowisku starszym niż Python 3.6! +Filmatyk nie uruchomi się w środowisku starszym niż Python 3.6! **Ważne:** na początku instalacji zaznacz `Add Python3 to PATH`! Jeśli już posiadasz Pythona, możesz przejść do następnego kroku. -2. Pobierz [pliki programu](https://github.com/Noiredd/fw-local/archive/v1.0.0-beta.1.zip) i wypakuj, gdzie Ci wygodnie. +2. Pobierz [pliki programu](https://github.com/Noiredd/Filmatyk/archive/v1.0.0-beta.1.zip) i wypakuj, gdzie Ci wygodnie. -3. **Uruchom** program przez `fw-local.bat`. +3. **Uruchom** program przez `Filmatyk.bat`. Powinno ukazać Ci się okno jak w screenie wyżej (tylko puste, z prośbą o pierwsze zalogowanie). -### Co potrafi fw-local? -Po pierwsze musisz zaimportować swoje oceny z filmwebu. fw-local poprosi Cię o to przy pierwszym uruchomieniu. -Pojawi się okno logowania do filmweb.pl - po wprowadzeniu danych, fw-local chwilę "pomieli" (patrz na pasek postępu), po czym powinien ukazać Ci się widok Twoich ocen z możliwością filtrowania, sortowania itp. +### Co potrafi Filmatyk? +Po pierwsze musisz zaimportować swoje oceny z filmwebu. +Filmatyk poprosi Cię o to przy pierwszym uruchomieniu. +Pojawi się okno logowania do filmweb.pl - po wprowadzeniu danych, program chwilę "pomieli" (patrz na pasek postępu), po czym powinien ukazać Ci się widok Twoich ocen z możliwością filtrowania, sortowania itp. -Na razie możliwe jest tylko przeglądanie ocen wystawionym filmom. +Na razie możliwe jest tylko przeglądanie (filtrowanie, wyszukiwanie, sortowanie) +wystawionych ocen (filmów, gier i seriali). Wszystkie przyciski powinny być dość intuicyjne. Wyjaśnienie należy się tylko dwóm z nich: -* "Aktualizuj" służy do szybkiego doczytania nowych ocen z Twojego profilu - np. poprzednio było ocenionych 520 filmów, dodano jeszcze 3 oceny, więc fw-local pobierze tylko te 3 ostatnie. -Jeśli w międzyczasie dokonano zmiany którejś z ocen, *aktualizacja* tego nie uwzględni. +* "Aktualizuj" służy do szybkiego doczytania nowych ocen z Twojego profilu - np. poprzednio było ocenionych 520 filmów, dodano jeszcze 3 oceny, więc Filmatyk pobierze tylko te 3 ostatnie. +Jeśli w międzyczasie dokonano zmiany którejś ze starszych ocen, *aktualizacja* tego nie uwzględni. * "PRZEŁADUJ" służy do pełnej aktualizacji bazy, tj. cała Twoja historia ocen zostanie przejrzana ponownie i wszystkie oceny zostaną odświeżone. Potrwa to trochę dłużej (tym więcej, im więcej masz ocen), ale to jedyna na ten moment metoda, by uwzględnić zmiany w istniejących ocenach. @@ -57,17 +59,13 @@ Potrwa to trochę dłużej (tym więcej, im więcej masz ocen), ale to jedyna na * prawo-kliknij na nagłówek kolumn by otworzyć menu konfiguracji - możesz dzięki temu wybrać/usunąć dodatkowe kolumny z widoku bądź zmienić ich kolejność ### Co planuję dalej? -Następnym krokiem będzie dodanie możliwości przeglądania ocen seriali i gier. -Dalej - list "chcę zobaczyć". -Oczywiście nowe kategorie będzie można filtrować na takie same sposoby jak obecnie. - -Myślę też o poszerzeniu widoku statystyk o parę ciekawszych wskaźników. +Moje pomysły na rozwój Filmatyka znajdziesz [tutaj](https://github.com/Noiredd/Filmatyk/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement). ### Czy to bezpieczne? -Udostępniam kod fw-local otwarcie na licencji MIT. +Udostępniam kod Filmatyka otwarcie na licencji MIT. Głównie znaczy to, że każdy może sprawdzić, co program robi "pod maską" - dlatego nie ma obaw, że np. kradnę hasła użytkowników. ### Dla programistów -Powstaje mały [dokument](HOWITWORKS.md) (ENG) opisujący zgrubnie mechanikę fw-local. +Powstaje mały [dokument](readme/HOWITWORKS.md) (ENG) opisujący zgrubnie mechanikę Filmatyka. Może będzie wygodniej czytać kod znając ogólny pomysł na program. Propozycje ulepszeń a także kontrybucje są mile widziane! :) diff --git a/filmatyk/gui.py b/filmatyk/gui.py index 5d9093a..a458c0c 100644 --- a/filmatyk/gui.py +++ b/filmatyk/gui.py @@ -137,6 +137,8 @@ def __init__(self, debugMode=False): # construct the window: first the notebook for tabbed view self.notebook = ttk.Notebook(root) self.notebook.grid(row=0, column=0, padx=5, pady=5, sticky=tk.NW) + # version string + tk.Label(root, text='v{}'.format(VERSION)).grid(row=0, column=0, padx=5, pady=3, sticky=tk.NE) # then the control panel frame = tk.Frame(root) frame.grid(row=1, column=0, padx=5, pady=5, sticky=tk.SW) diff --git a/filmatyk/updater.py b/filmatyk/updater.py index 6773d27..9f622d0 100644 --- a/filmatyk/updater.py +++ b/filmatyk/updater.py @@ -15,8 +15,8 @@ class Paths(object): meta_file = "VERSION.json" temp_dir = "__update__" local_repo_path = "..\\" - release_repo_path = "https://raw.githubusercontent.com/Noiredd/fw-local/stable/" - debug_repo_path = "https://raw.githubusercontent.com/Noiredd/fw-local/prerelease/" + release_repo_path = "https://raw.githubusercontent.com/Noiredd/Filmatyk/stable/" + debug_repo_path = "https://raw.githubusercontent.com/Noiredd/Filmatyk/prerelease/" class Updater(object): update_ready_string = "Aktualizacja dostępna" diff --git a/HOWITWORKS.md b/readme/HOWITWORKS.md similarity index 94% rename from HOWITWORKS.md rename to readme/HOWITWORKS.md index 1bb171b..e73ee3b 100644 --- a/HOWITWORKS.md +++ b/readme/HOWITWORKS.md @@ -2,16 +2,16 @@ ### Note on the language -This document aims to explain the mechanisms behind *fw-local* and the structure of its code. +This document aims to explain the mechanisms behind *Filmatyk* and the structure of its code. Even though this project is aimed at Polish-speaking users, the entire code has been written in English. Consequently, this document is also in English, in order to avoid the discomfort of translating concepts named in the code in English. ### The general idea -*fw-local* allows retrieving user's movie ratings from their filmweb.pl profile, and displaying them in an easy to browse/sort/filter manner. -The two crucial components that allow this are: the Filmweb API (for scraping of user pages - [`filmweb.py`](fw-local/filmweb.py)) and the GUI (for displaying the results - [`gui.py`](fw-local/gui.py)), which are bound together using a database (storing the ratings as objects - [`database.py`](fw-local/database.py)) and a presenter (responsible for post-processing the results - [`presenter.py`](fw-local/presenter.py)). +*Filmatyk* allows retrieving user's movie ratings from their filmweb.pl profile, and displaying them in an easy to browse/sort/filter manner. +The two crucial components that allow this are: the Filmweb API (for scraping of user pages - [`filmweb.py`](../filmatyk/filmweb.py)) and the GUI (for displaying the results - [`gui.py`](../filmatyk/gui.py)), which are bound together using a database (storing the ratings as objects - [`database.py`](../filmatyk/database.py)) and a presenter (responsible for post-processing the results - [`presenter.py`](../filmatyk/presenter.py)). Movies (TODO: series and games) are stored as *items*. -Each item is an object of a special type system ([`containers.py`](fw-local/containers.py)) +Each item is an object of a special type system ([`containers.py`](../filmatyk/containers.py)) Each of those objects represents a single *item* (movie, series, game), and contains some general information about it. These objects can also store some user-dependent information, such as rating with comment, or if it's wanted-to-watch. @@ -20,7 +20,7 @@ These objects can also store some user-dependent information, such as rating wit TODO The very basic `Item` class, blueprints, meta-inheritance, rating info -### [Filmweb API](fw-local/filmweb.py) +### [Filmweb API](../filmatyk/filmweb.py) The API allows retrieving user ratings from their Filmweb account, offering a set of functions encapsulated in a special object. These methods handle everything from logging in to the account, through obtaining the number of movies the user has rated, to retrieving a list of them and returning them as processed objects, ready to store and display. @@ -95,7 +95,7 @@ had the API only asked the GUI for credentials, then performed the login attempt This may feel convoluted, but it's still simpler than having the API control the GUI - button callbacks would have to be routed back to the API while the API should call GUI methods to notify of login error or hide on success etc. -### [Presenter](fw-local/presenter.py) +### [Presenter](../filmatyk/presenter.py) `Presenter` is a class responsible for displaying items from the database. This process consists of 4 steps: retrieving the items from the DB (`totalUpdate`), (optionally) filtering them through some user-given criteria (`filtersUpdate`), (optionally) sorting them by some user-given key (`sortingUpdate`) and eventually putting them into a TreeView for interactive display (`displayUpdate`). @@ -104,7 +104,7 @@ Those actions are arranged into a call chain; that is, triggering one of them au The first step is rather trivial, as the Presenter essentially acquires a copy of the data held by the database. Rest of the steps will be briefly explained below. -#### [Filtering](fw-local/filters.py) +#### [Filtering](../filmatyk/filters.py) In this step, the list of items is filtered through a set of criteria chosen by the user. The mechanism consists of two parts: a `FilterMachine` that performs the actual (well, almost actual) filtering, and a set of `Filters`. @@ -138,6 +138,16 @@ Finally, whenever any filter is changed and calls back to the machine, the machi #### Sorting +TODO + #### Display +TODO + #### Configuring the Presenter + +TODO + +### Updater + +TODO diff --git a/LINUX.md b/readme/LINUX.md similarity index 79% rename from LINUX.md rename to readme/LINUX.md index e1a8383..08cdf0e 100644 --- a/LINUX.md +++ b/readme/LINUX.md @@ -1,4 +1,4 @@ -## fw-local na Linuksie +## Filmatyk na Linuksie ### Instalacja @@ -8,8 +8,8 @@ Będzie to potrzebne w jednym z kroków. 0. Prawdopodobnie twoja dystrybucja jest już wyposażona w Pythona 3. Jeśli jednak tak nie jest, musisz sobie własnoręcznie zainstalować środowisko. W razie wątpliwości użyj swojej ulubionej wyszukiwarki i wpisz frazę: "`(nazwa mojej dystrybucji) install python3`". -1. Pobierz pliki programu (link na [poprzedniej stronie](README.md)). -2. Instalacja modułów. fw-local wymaga do działania kilku dodatkowych modułów do pythona. +1. Pobierz pliki programu (link na [poprzedniej stronie](../README.md)). +2. Instalacja modułów. Filmatyk wymaga do działania kilku dodatkowych modułów do pythona. Ich listę znajdziesz w pliku `DEPENDENCIES.txt`. Możesz zainstalować je wszystkie naraz z poziomu terminala poleceniem: `python3 -m pip install -r DEPENDENCIES.txt`. W przypadku popularnej dystrybucji Ubuntu (oraz podobnych, bazujących na Debianie wydaniach) konieczne może okazać się doinstalowanie jeszcze pewnego pakietu systemowego. @@ -19,21 +19,21 @@ Zaznaczam, że ponieważ istnieje cała masa różnych dystrybucji linuksa, powy ### Uruchamianie -Od wersji 1.0.0-beta.1 fw-local może być nieco niewygodny do uruchomienia, -ponieważ domyślny skrypt uruchamiający (`fw-local.bat`) jest zaprojektowany z myślą o Windowsie. -Na chwilę obecną, najwygodniej uruchomisz program z konsoli poleceniem `python3 fw-local/gui.py` +Od wersji 1.0.0-beta.1 Filmatyk może być nieco niewygodny do uruchomienia, +ponieważ domyślny skrypt uruchamiający (`Filmatyk.bat`) jest zaprojektowany z myślą o Windowsie. +Na chwilę obecną, najwygodniej uruchomisz program z konsoli poleceniem `python3 filmatyk/gui.py` (z założeniem, że jesteś w folderze głównym programu, a więc tam gdzie widnieje plik `VERSION.json`). ### Co może nie działać -Przy aktualizacji, fw-local będzie próbował się zrestartować. +Przy aktualizacji, Filmatyk będzie próbował się zrestartować. Zrobi to funkcją `os.system`, która jednak odwoła się, na windowsowską modłę, -do pliku `fw-local.bat`. +do pliku `Filmatyk.bat`. Przez to, na linuksie program nie będzie zdolny do zrestartowania. Dlatego po aktualizacji prawdopodobnie zauważysz, -że fw-local po prostu wyłącza się i nie wstaje. +że Filmatyk po prostu wyłącza się i nie wstaje. -Podobnie, po aktualizacji skrypt odpalający fw-local sprawdza, +Podobnie, po aktualizacji skrypt odpalający Filmatyka sprawdza, czy zainstalowane są wszystkie potrzebne moduły. Skrypt jest napisany pod Windowsa, więc na linuksie nie zadziała. Dlatego sugeruję w razie problemów po aktualizacji powtórzyć polecenie diff --git a/screenshot.png b/readme/screenshot.png similarity index 100% rename from screenshot.png rename to readme/screenshot.png