1
0
mirror of https://github.com/comatory/fb2iCal synced 2025-02-21 14:10:36 +01:00

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