Commit Graph

106 Commits

Author SHA1 Message Date
Ondřej Synáček 71ba9d8533 fix: use browser's timezone to reflect correct time and date 2021-01-02 20:17:21 +01:00
Ondřej Synáček ae700330b9 fix: do not attempt to parse non-existent FB pages
When user enters something invalid (like number 123), it wuold still hit
FB webpage and return HTML. I do simple detection by looking at title
when it attempts to parse the DOM directly. When it contains "Content
Not Found", it is skipped.

Non-existent web pages cannot be parsed by using LDJSON parser and
looking at null data.
2020-12-26 21:03:03 +01:00
Ondřej Synáček 0683ef9666 fix: error due to inability to parse invalid unicode sequences 2020-12-26 20:57:19 +01:00
Ondřej Synáček cfa7db4f9e fix: handle errors on front-end when parsing event data & track them
(optionally)
2020-12-26 20:33:16 +01:00
Ondřej Synáček f586a17296 feature: track chunk loading in UI 2020-12-25 14:47:58 +01:00
Ondřej Synáček f052a66421 improvement: add a code split when event is fetched
The code for parsing HTML is isomorphic and runs on server as well.
Unfortunately it brings lot of dependencies and I will try to minimize
the initial load of the app.
2020-12-25 14:40:23 +01:00
Ondřej Synáček 5415daebc5 improvement: use original input value in case of error, clear input
after submission
2020-12-25 13:19:49 +01:00
Ondřej Synáček c27b91cd06 fix: input form validation 2020-12-25 12:35:40 +01:00
Ondřej Synáček 579bde6c32 fix: sorting events by date 2020-12-25 10:18:27 +01:00
Ondřej Synáček 37d931f6ce fix: validate input on submit 2020-12-25 10:15:28 +01:00
Ondřej Synáček 2d195fd48c fix: improve styling for errors 2020-12-25 10:12:14 +01:00
Ondřej Synáček a4c6d51bcc fix: improve status legibility 2020-12-25 10:01:05 +01:00
Ondřej Synáček 7c831b76e2 improvement: disable input when request is pending 2020-12-25 09:59:13 +01:00
Ondřej Synáček 05473c13c1 fix: build process to support Svelte and service worker 2020-12-23 22:05:30 +01:00
Ondřej Synáček 8900474af7 refactor: completely remove existing javascript and use Svelte app
exclusively for rendering
2020-12-20 15:24:25 +01:00
Ondřej Synáček 377a4bcd80 fix: set up logger from Svelte app on app boot 2020-12-20 15:06:08 +01:00
Ondřej Synáček 29ad7fcf73 fix: extract service worker setup to Svelte app initialization 2020-12-20 15:00:00 +01:00
Ondřej Synáček a5b9887fec fix: bring back download prompt after fetching event data 2020-12-20 14:51:28 +01:00
Ondřej Synáček df853d39af fix: bring back persistence when fetching event data 2020-12-20 14:46:30 +01:00
Ondřej Synáček 514b2588df feature: add parsing status to UI 2020-12-20 14:40:43 +01:00
Ondřej Synáček 290d7115d0 feature: create Svelte component for showing status UI 2020-12-20 14:29:21 +01:00
Ondřej Synáček b28995aa1e feature: convert form input to Svelte component and create module for
fetching event data & parsing it
2020-12-20 13:50:12 +01:00
Ondřej Synáček 128b03344b feature: add store for tracking network request to API 2020-12-20 12:07:37 +01:00
Ondřej Synáček 4fad8e442d refactor: remove duplicated CSS 2020-12-15 23:15:42 +01:00
Ondřej Synáček 0f21613e39 refactor: replace event list table with Svelte version 2020-12-15 23:12:13 +01:00
Ondřej Synáček 978662b55c feature: use Svelte to render event list 2020-12-15 22:50:22 +01:00
Ondřej Synáček 470184aec0 fixup! feature: update event store contents from existing code 2020-12-15 22:42:43 +01:00
Ondřej Synáček b86402a7ff improvement: add record migration and correct state normalization in new code 2020-12-15 22:06:45 +01:00
Ondřej Synáček e3917ee79a feature: update event store contents from existing code 2020-12-15 22:00:45 +01:00
Ondřej Synáček 985b580d7d feature: create event store in preparation of table component
replacement
2020-12-15 21:49:15 +01:00
Ondřej Synáček e28b378e07 feature: sync multiple tabs using local storage 2020-12-15 21:49:15 +01:00
Ondřej Synáček 61985990d0 refactor: remove checks for JS features
Since I'm introducing Svelte framework and targeting modern browsers, I
think it does not make sense to check for browser features. I can always
choose to use polyfills for backwards compatibility.

I will make sure the form is still also rendered via HTML and works for
non-SPA use.
2020-12-15 21:49:15 +01:00
Ondřej Synáček a89777b91a feature: add Svelte framework to app, refactor tracking panel into Svelte component 2020-12-15 21:49:15 +01:00
Ondřej Synáček a249a23ddd feature: add UI for user approval of tracking 2020-12-12 13:54:59 +01:00
Ondřej Synáček 737620e2ca feature: add endpoint for logging instrumentation 2020-12-12 13:19:34 +01:00
Ondřej Synáček c6d85b8839 fix missing route handlers 2020-11-15 15:32:07 +01:00
Ondřej Synáček a8c5d12a7b fix issues with deployment due to winston logging getting in the way 2020-11-15 15:13:49 +01:00
Ondřej Synáček 0ad6bba142 move app routes to separate directory for better composition in
preparation of firebase integration
2020-11-01 13:08:48 +01:00
Ondřej Synáček cfd939a668 normalize URL when parsing event number from HTML file 2020-07-23 17:23:04 +02:00
Ondřej Synáček a661e54524 fix invalid function signature for event data extraction
Additionally fix specs
2020-07-19 08:14:35 +02:00
Ondřej Synáček 0c9a69d8ea prettify console messages with browser logger 2020-07-19 08:14:35 +02:00
Ondřej Synáček cf41deedd9 remove manual "no javascript" switch
This was a stupid checkbox made only as an experiment. The page can
still be loaded without JavaScript and works, no need to trigger it
manually.
2020-07-19 08:14:35 +02:00
Ondřej Synáček f577fb6385 implement same parsing logic on server and frontend
Server now downloads the HTML file via new endpoint but the parsing logic now happens in
the browser. The reason for this is to have a way same code for both
environments.

If the JavaScript is disabled, it's still possible to call the previous
endpoint and download the file from the server.
2020-07-19 08:14:35 +02:00
Ondřej Synáček 410096398d separate utilities for logs 2020-07-19 08:14:35 +02:00
Ondřej Synáček b3321b2f90 use crawling logic as a service for ICS retrieval 2020-07-19 08:14:35 +02:00
Ondřej Synáček 0eda018113 create client side logger 2020-07-19 08:14:35 +02:00
Ondřej Synáček 6b7c0f8454 separate front end into modules for easier refactoring later 2020-07-19 08:14:35 +02:00
Ondřej Synáček 565354bcb6 add webpack for front end builds and serve the assets from backend 2020-07-19 08:14:35 +02:00
Ondřej Synáček 9da4c33ffd remove URL requirement for DOM parser 2020-07-19 08:14:34 +02:00
Ondřej Synáček 456eaa1fbc add specs for ICS retriever 2020-07-19 08:14:29 +02:00