Skip to content

Commit

Permalink
official rename part 2
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Noiredd committed Jan 31, 2019
1 parent 6fe2881 commit f690ec5
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 48 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cache/
fw-local/__pycache__/
filmatyk/__pycache__/
*.html
*.fws
*.txt
File renamed without changes.
54 changes: 26 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -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!

<a href="https://raw.githubusercontent.com/Noiredd/fw-local/master/screenshot.png">
<img src="https://github.com/Noiredd/fw-local/blob/master/screenshot.png" width="900" height="485" border="10" alt="Kliknij by zobaczyć w większym rozmiarze" /></a>
<a href="https://raw.githubusercontent.com/Noiredd/Filmatyk/master/screenshot.png">
<img src="https://raw.githubusercontent.com/Noiredd/Filmatyk/master/screenshot.png" width="900" height="485" border="10" alt="Kliknij by zobaczyć w większym rozmiarze" /></a>

**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.

Expand All @@ -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! :)
2 changes: 2 additions & 0 deletions filmatyk/gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions filmatyk/updater.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
24 changes: 17 additions & 7 deletions HOWITWORKS.md → readme/HOWITWORKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand All @@ -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.
Expand Down Expand Up @@ -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`).
Expand All @@ -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`.
Expand Down Expand Up @@ -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
20 changes: 10 additions & 10 deletions LINUX.md → readme/LINUX.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## fw-local na Linuksie
## Filmatyk na Linuksie

### Instalacja

Expand All @@ -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.
Expand All @@ -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
Expand Down
File renamed without changes

0 comments on commit f690ec5

Please sign in to comment.