JSerwatka / Filmweb2Letterboxd

Eksport ocen z Filmweb'u do pliku csv w formacie akceptowanym przez importer Letterboxd
MIT License
28 stars 0 forks source link

Skrypt przestał działać #2

Closed Roystone2 closed 11 months ago

Roystone2 commented 2 years ago

Kilka miesięcy temu jeszcze używałem i było ok, teraz wyskakują błędy w trakcie, a pod koniec:

Wystąpił problem z parsowaniem strony TypeError: Cannot read properties of null (reading 'textContent')

Pewnie znowu coś z API.

JSerwatka commented 2 years ago

Hej, dzięki za zgłoszenie! Postaram się to w tym tygodniu naprawić 😉

JSerwatka commented 2 years ago

Teraz powinno śmigać 😉

M4rt4M commented 1 year ago

Hej, mam ten sam problem niestety :(

JSerwatka commented 1 year ago

Hej, dzięki za zgłoszenie! 👋 Postaram się spojrzeć na to w tym tygodniu, chociaż patrząc ile pozmieniali to może to chwilę zająć 😱

JSerwatka commented 1 year ago

@M4rt4M Udało mi się napisać nową wersję skryptu, która działa. Niestety, przy dużej ilości ocen, dochodzi do zapchania całej pamięci RAM i zatrzymania przeglądarki. Wynika to prawdopodobnie z błędów w implementacji po stronie filmwebu i niepoprawnym zarządzaniem pamięcią. Wciąż szukam jakiegoś obejścia na te problemy.

Celem tego skryptu była łatwość użycia, aby osoby, które nie potrafią programować, też mogły z niego skorzystać. Jeśli jesteś bardziej "tech savvy", to sprawdź ten projekt: https://github.com/ppatrzyk/filmweb-export. Był niedawno aktualizowany, więc jest nadzieja, że będzie działał.

acybulska commented 11 months ago

Hej, tamten skrypt też nie działa. Ta większa zmiana na FW była na pewno po sierpniu 2023 (bo wtedy używałam Twojego i działał). Mógłbyś wrzucić w brancha Twoją nową wersję?

JSerwatka commented 11 months ago

Hej @acybulska, dziś się tym zajmuję, w końcu znalazłem czas 😅 Tutaj masz nowy branch: https://github.com/JSerwatka/Filmweb2Letterboxd/tree/fix/script-no-longer-working Na razie tylko wersja "watched" jest przerobiona.

Jak to działa?

  1. Scrolluje stronę do samego dołu, dopóki nie zostaną załadowane wszystkie filmy.
  2. Pobiera dane dla każdego filmu:
    • Ładuje go w iframe.
    • Czeka na załadowanie się wszystkich elementów.
    • Dodaje filmy do tablicy, która jest następnie konwertowana na CSV.

Jak filmweb się zmienił od poprzedniej wersji?

Jakie są problemy?

Co obecnie sprawdzam?

JSerwatka commented 11 months ago

@acybulska @M4rt4M Wypuściłem nową wersję na tym branchu: https://github.com/JSerwatka/Filmweb2Letterboxd/tree/fix/script-no-longer-working-fetch-method Sprawdźcie proszę, czy działa.

JSerwatka commented 11 months ago

Zmiany zmergowane z tym PR-em (https://github.com/JSerwatka/Filmweb2Letterboxd/pull/6), zamykam

acybulska commented 11 months ago

Może do tych poszczególnych stron bić tylko do API details żeby ściągnąć dane tańszym kosztem (token brać z Cookies). Można to zrobić testowo jakimś postmanem albo w shellu?

JSerwatka commented 11 months ago

@acybulska W wersji, która zmergowałem, już nie używam iframes. Teraz działa to podobnie do tego, co Ty opisałaś.

  1. Fetch strony danego filmu. W ten sposób dostaję html strony przed hydration. Zawiera ona: tytuł, rok produkcji, id filmu.
  2. Używam id filmu do zrobienia fetch o details. Z niego dostaję datę obejrzenia oraz ocenę użytkownika.

Działa to wszystko dość szybko, chyba szybciej niż wersja, która była przed ich zmianami. Minus jest taki, że jest bardziej podatna na zmiany ze strony filmwebu. Zmiany API są częstsze od radykalnych zmian UI.