Changelog
Version 1.36 (2023-08-19)
In addition to various smaller improvements, the offline functionality of the application was greatly improved. Apart from better offline detection and faster use of offline resources, it should now correctly update cached resources and always show the latest schedule data you viewed instead of the schedule from the time the service worker last updated itself. If you have push notifications enabled, the cached schedule will now be updated when you receive a push notification for changes. That way you can tap on the notification when you are offline and will still see the updated version. Keep in mind that the schedule you will be seeing is the schedule from the time of the notification. If there were further changes after that for which you haven't received a notification, the schedule may still be out of date.
Version 1.36.1 (2023-08-20)
All of those annoying alerts at the top are now dismissable. So if you don't want to consent to the use of twitter, you can now just hide the warning.
Version 1.36.3 (2023-09-02)
Improve service worker behaviour for requests:
- Query parameters are now ignored for static html pages, since the backend doesn't need them and always serves mostly the same page anyways (https://schedule.125m125.de/ is using the same request as https://schedule.125m125.de/?date=2023-08-21&q=test). This improves caching and offline behavior.
- The current schedule is now preloaded as soon as the initial page request starts. Assuming the latest version of the javascript and stylesheet files are already cached from a previous visit, this should allow the browser to render the main schedule with only a single round trip of server requests instead of two.
Version 1.36.4 (2023-09-03)
To make it easier to explore different schedules, the main page is only loading/updating the schedule and streams on other channels when navigating between different schedules instead of reloading the entire page.
Version 1.34 (2023-04-31)
Added experimental parsing for Ina's new schedule layout. The parsing of the dates is currently still pretty inaccurate and the results might not be perfect and in need of some manual adjustments. The schedules will continue to be displayed in the previous layout.
Fixed an issue where Spring sent some security headers that were also set by the proxy, causing for example the hsts headers to be set twice. Because of this, the domain was removed from the hsts preload list and browsers might not automatically redirect to the https version until it is readded (https://source.chromium.org/chromium/chromium/src/+/a2de52754b2839adef1f4a49169eb0b3dd6236bf).
Version 1.33 (2023-04-16)
Added an event detail page, where streams with their collabs are shown. Links in the schedules will now link to that detail page, which allows you to play the different perspectives of a given event in the schedule. When clicking on links/thumbnails in the little popup that shows while hovering over a link, you will still be directly redirected to youtube. In the future, it will also allow viewing the different collab segments inside a single VOD. While technically already reachable if you know/guess the urls, it currently isn't actively linked to, since it is still work in progress.
The new event page also contains links to a few more features I worked on in the background over the past months, including a replica of the I Miss Ina Website and a page showing different statistics. Be aware, that the statistics are created with an Apache Superset instance, that is running on a very underpowered server. So please be patient while it is loading.
There are quite a few more changes happening in the background, which will probably be opened to the public in the future, some of which are already partially integrated into the existing pages.
Version 1.31.1 (2023-04-17)
Added notifications for new guerilla streams (streams that weren't contained in the original schedule).
Version 1.31.2 (2023-04-23)
Fix minor styling issues in schedule generation.
Version 1.32 (2023-03-26)
Finally added support for youtube aliases for collab detection.
Added Korean and Norwegian as supported languages. Past schedules will slowly be translated.
Updated moment-timezone to the latest version (IANA TZDB 2023b).
Version 1.31 (2022-12-31)
The schedule content and the streams on other channels are now loaded and rendered separately, which should speed up the time until the schedule itself is rendered completely the first time.
Added filters for the streams on other channels, allowing to select, for example, only specific talents or generations that should be displayed or only show streams with a specific collab confidency.
Version 1.31.1 (2023-01-01)
Added a latency check for the different server regions, where you can test the latency to the different regions or CDN providers.
Version 1.31.4 (2023-01-15)
Due to the much better optimized loading times of the schedule, the loading animation of Ina stepping on some Takodachis now has an actual measurable effect on the loading times of the schedule and sadly had to be replaced with a much smaller css animation.
Changed some more priorities of loaded resources to prioritize first painting of the schedule.
Added some fallback fonts to the schedule fonts with which at least some browsers on some operating systems should render japanese and other missing characters bold, better fitting to the original schedule.
Version 1.30 (2022-12-10)
The application is now served from multiple different regions. The last weeks, I slowly added more and more required features for this to work as I want it to, and now it is finally happening: Ina's Schedule is served from three different servers located respectively in central USA, Germany and Singapore. The fourth "location" is using AWS' CloudFront as a CDN/Proxy. You can choose your favorite/most suitable location in a dropdown in the top right. The "determine automatically" will currently always lead to the server in Germany and CloudFront will also use the German server if the cache is missed. I am still deciding, if it is worth it to get a Geo-DNS-Service to automatically direct all users to the "best" server automatically. These changes for the distributed serving were also the reasons for multiple performance upgrades, some of them documented in the changelog and other just a few behind the scenes changes.
Updated moment-timezone to the latest version (IANA TZDB 2022g).
Version 1.30.1 (2022-12-17)
Fix wrong calculation for required number of rows when the first and only stream is after the original end date in the next year.
Add hard limit to number of rows to protect browsers from wrong schedule entries causing them to calculate/render hundreds of schedule rows and calculating for very long times.
Version 1.30.2 (2022-12-28)
Fix push notifications sometimes not being sent out for new videos that are a few minutes in the past.
Version 1.30.3 (2022-12-29)
Fix archiveland choices not available on follower-servers.
Use latency-based DNS to distribute user to best-matching server on main domain.
Version 1.29 (2022-10-15)
Added first version of the Archiveland. A place where you can watch archived streams together with other Takos as if Ina was streaming right now.
Version 1.29.1 (2022-10-16)
Added some improvements and bugfixes to the Archiveland.
Version 1.29.2 (2022-10-18)
Added a simple chat to the Archiveland and some other small improvements.
Version 1.29.3 (2022-10-23)
Users can now vote for the next archive video they want to watch with other Takos in the Archiveland.
Version 1.29.4 (2022-10-28)
Static files are now minified to reduce transfer sizes.
Version 1.29.5 (2022-10-29)
Improve loading order of scripts. Load momentjs-languages on demand instead of the entire bundle. This means that using the browser's date and time format is no longer possible, but you can now choose to use the format from the currently selected language.
Version 1.29.6 (2022-10-31)
Add catchup strategies to the archiveland, where smaller differences (short video buffering etc) can be caught up with by increasing the playback rate. This can be disabled.
Not really a code/feature change, but moved application to a faster server, which should improve response times for non-static files a lot.
Version 1.29.7 (2022-11-05)
Added a small easter egg for holoweEN 2022.
Version 1.29.8 (2022-11-06)
The Archiveland will now suggest videos with similar names to the currently playing one as voting options. This should make it possible to watch consecutives Streams of the same game/topic.
Version 1.28 (2022-09-23)
Added Live Updates: When enabled, a websocket to the backend will be established and the server will send change notifications when the content of the schedule was updated. Optionally, a notification sound can be played.
Version 1.28.2 (2022-10-02)
Rework the Discord bot to use Slash Commands. It is now open to the public and can be added to other servers: Instructions
Version 1.28.3 (2022-10-03)
Added Ukrainian as a supported language.
Version 1.27 (2022-08-28)
Improved how collabs are stored. The time on the schedule now is the time when the collab started instead of the time when the entire video started. Each collab can now have its own start time, which could be important for unplanned interactions, where Ina interacts with multiple different streamers at different times and whose streams did not all start at the same time. A single stream can now be a collab for multiple different schedule entries, allowing for example to mark multiple times ina appeared in a stream. Collabs can now have an ending time, meaning instead of the entire stream only the part wher ina was actually present will be reserved for the ics-calendars.
Version 1.27.1 (2022-08-30)
Rehide confirm collab buttons for non-admin users, who currently can't use it anyways. Add support for mirroring background images.
Version 1.26 (2022-08-17)
Implemented moving of previously parsed schedule times when parsing a newer version where the time of a stream was modified.
Version 1.26.1 (2022-08-22)
Fixed new scheduled streams not showing up when merging a newly parsed schedule with a previously parsed one.
Version 1.26.2 (2022-08-22)
Add preprocessing for the schedule images to reduce compression artifacts and improve ocr accuracy.
Version 1.26.3 (2022-08-25)
Update to latest IANA time zone data (2022c), adjusting for example for the delayed dst change in Chile.
Version 1.25 (2022-08-15)
Many smaller changes:
- Introduce Version 4 of Ina's schedules to make styling of new schedules adjust more closely to some of Ina's latest style changes.
- Fix text locations after editing a schedule when the intial image was of a different resolution than the current image
- Rows with a date but no time are now interpreted as a TBA entry instead of being ignored
- Hardcode the accent/special colors since the compression artefacts in the latest schedules, especially on youtube, made it impossible to correctly detect the colors without larger changes to the already fragile color detections
- Text only mode rejoins words that were split into two lines (Watch- along -> Watchalong)
- Added some more special treatments for cases where OCR had problems correctly identifying characters in the last schedules
Version 1.24 (2022-07-10)
The schedule images from the youtube schedule thumbnails are now parsed as well. Currently only very basic merging between the different schedule images is possible, like adopting fixed typos or adding new streams. In the future more complex merge operations, like detecting moved streams, are planned.
Version 1.24.2 (2022-07-12)
Added Turkish and Indonesian to the supported languages. While loading the schedule you will now see a loading animation instead of just white.
Version 1.24.3 (2022-07-15)
Added background service that slowly fills up all missing translations.
Version 1.24.4 (2022-07-16)
Readded missing buttons to download the current calendar as ics-file.
Version 1.24.10 (2022-08-11)
Add polling for youtube thumbnail images, since PubSubHubBub is not sending notifications when the thumbnail for the video with the current schedule changes.
Version 1.23 (2022-05-02)
Added support for twitter spaces. They should be detected, added to the schedule and used for notifications automatically when they are created.
Version 1.23.2 (2022-05-07)
Fixed an encoding problem in the configuration files that prevented channel mentions in youtube video descriptions from being detected correctly as collabs for youtube channel names with japanese characters.
Version 1.23.3 (2022-05-12)
Fixed an issue where tba schedule times weren't converted to normal times when the youtube time exactly matches the predicted stream time.
Version 1.23.6 (2022-07-04)
Relaxed condition for second lines to allow words with only four characters. Removed "Times are subject to change!!" message from schedules with version 3.
Version 1.22 (2022-03-26)
Added highlights for mentions of other Hololive talents, which colors their name with their color and adds their emoji. The highlights can be disabled with a checkbox.
Added option to hide break days. Break days are now also shown in the text-only-view, when they are not set to hidden.
Version 1.22.4 (2022-04-10)
The color of the schedule title can now be set independently of the text color.
Version 1.22.6 (2022-04-13)
The duration of streams and videos is now collected and displayed.
Version 1.22.7 (2022-04-20)
Quick hack to support non-Youtube-links (for example Twitter spaces).
Version 1.21 (2022-03-09)
Schedule times with a video now show a preview of the thumbnail and the links to/thumbnails of the perspectives of the collaborators in a tooltip.
The collab detection now looks if a video owner was mentioned in the schedule description for the matching timeslot.
Version 1.21.1 (2022-03-10)
Added a container between the container of the background image and the contaier of the schedule for some css magic to hide the image overflow while the tooltip-overflow is still visible.
Version 1.21.2 (2022-03-12)
Fixed a performance problem when loading the current schedules. It was caused by an inefficient query when loading the streams from other channels.
Fixed tooltips for the schedule not being cleared when changing the schedule configuration.
Version 1.21.3 (2022-03-15)
Improved mobile-friendliness of the tooltips showing the related youtube videos.
Set most images to load lazily in order to reduce used bandwidth, especially when using the text-only mode.
Version 1.21.6 (2022-03-22)
Fixed some parsing problems that occured for the latest schedule.
Version 1.20 (2022-02-27)
Added an improved collab detection for streams on other channels. Previously, Ina had to tweet about the stream and be mentioned in the description for a stream to automatically be recognized as a collab. Now, instead of only looking for Ina's videos on youtube, the channels of all HoloEN members are not watched. If a new stream is scheduled, my server searches for indicators that this might be a collab with Ina. These indicators are currently:
- Ina's channel is mentioned in the description
- Ina's name is mentioned in the video title
- The stream time matches one of the times noted on Ina's schedule
- The stream is marked as a collab in the schedule
- Ina has tweeted a link to the video
Sadly this wouldn't have helped with the off-collab Karaokes, since Ina didn't have a schedule and wasn't mentioned in the video titles or descriptions. Only the second one would have been recognized as very unlikely, since Ina tweeted about it. For the future, a voting system is planned, where users can vote which streams are collabs, but since it is directly tied to notifications, I have to make sure that it can't be abused. Initially I might manually approve "moderators" who can vote for them while I am unavailable.
Added support for Ina's background/tentacle pattern from the older schedules.
Version 1.20.1 (2022-03-08)
Added Yellow box for background artists in V3 schedules.
Added more configuration options for the text-only schedule.
Now also stalking Hololive ID members on youtube.
Version 1.19 (2022-02-06)
Improved the search functionality to allow queries that are more complex than just a simple "contains exactly":
- a -b: Search all streams containing "a" but not "b". Example:
Song -chatting
will return all original songs or song covers without the aftertalk-stream that Ina did with Kiara. - "a b": Search all streams containing a immediately followed by b, while ignoring non-letters. Example:
"half life"
will return the "Half-Life 2"-Streams. - +a +b: Search all streams containing a and b anywhere, in any order. Example:
+song +cover
will return all "Song Cover" and "Cover Song" streams. - a*: Search all streams containing a word starting with a.
- a b: After entering the "advanced" mode by using ", (), or +, two words are treated as a OR b, if both don't have a + or -.
- (a b): Combine condition a with condition b.
These operators can be combined to more complex queries. ("half life" "black mesa")
for example returns all Half-Life and all Black Mesa streams. The second black mesa stream can be excluded by using ("half life" "black mesa") -call
. To additionally include the call of cthulhu streams, cthul* (("half life" "black mesa") -call)
can be used. The exclusion of "call" is grouped together with black mesa/half life and does not apply to cthul*. If we furthermore wanted to include all song covers/cover songs, we could also append their condition to the query: cthul* (("half life" "black mesa") -call) (+song +cover -chatting)
The search now also supports an empty search, which will return all streams that are known to contain Ina. Some of the older collabs may be missing, since the schedules for them haven't been added. If you find a missing stream for which the schedule was already created, feel free to contact me and I will add it.
Version 1.19.1 (2022-02-08)
Videos that don't match an existing scheduled stream are now added as guerilla streams automatically. TBA-Entries will now be matched to streams and the title filled in.
Version 1.19.2 (2022-02-13)
Added support for the Ina's inital schedule style.
Version 1.19.5 (2022-02-18)
Added additional coordinates to support that the time is not located directly next to the date.
Version 1.18 (2022-01-29)
Started implementing a basic Discord bot, that can post notifications to discord servers. For a first experimental setup, you can join https://discord.gg/Z5Ddu8CAUC.
Version 1.18.1 (2022-02-02)
Ina is very good at finding bugs... The ones around moving streams should now be fixed.
Version 1.18.2 (2022-02-03)
Added TBA-Entries for rendering. They currently wont be automatically replaced with published videos, but I still have a few days until that should be needed.
Fixed an issue causing preview images not to be rendered correctly for discord.
Version 1.18.5
Set up server-side-rendering for search engines with the help of https://prerender.io/. This should make it easier for google and other search engines to index the latest versions of the schedule and maybe some more of the past schedules.
Version 1.17 (2022-01-22)
Added playlist links for search results. These playlists are auto-generated and limited to 50 videos. If there were more search results, they will be split up into multiple playlists accordingly. Three types of links will be created: "Play all" contains all videos, "Play only from Ina's channel" only contains videos from Ina's channel and "Play only full Ina" only contains videos from Ina's channel or collabs on other channels where Ina was present for the entire stream (excluding, for example, Call-ins or short ingame encounters).
Added option to enable or disable notifications for member only streams. For existing subscriptions, they will be enabled until explicitly disabled.
Version 1.17.1 (2022-01-23)
Long text in the schedule now finally gets resized automatically to fit into the allocated space instead of being cut off or wander into the background image.
Version 1.16 (2022-01-03)
Added dark mode to protect those poor eyes. The dark mode doesn't use the original colors from the schedule, but will instead use a black background with white text. Images will receive a transparent black overlay. By default, the light/dark mode depends of the system settings, but can be changed in the footer.
Version 1.16.4 (2022-01-08)
Fixed an issue where videos mentioned in Ina's tweets were always interpreted as collabs with her instead of checking if Ina is mentioned in the description. Furthermore, collab streams on other channels can't replace streams on Ina's channel. Furthermore, collab streams have to start within 15 minutes of the scheduled time to avoid interpreting previous/next relay streams as collabs and marking the stream as moved. I'm sorry about the wrong "Stream moved" notifications for the Mario Kart and outfit reveal.
Version 1.16.7 (2022-01-20)
Fixed an issue where tweeted collab videos on other channels sometimes weren't recognized as having Ina in it.
Version 1.15 (2021-12-29)
Added many smaller quality of life improvements:
- Added text-only view
- Added option to show relative times
- Added option to use the browser's format for date and time
- The date range now uses the selected date format
- Old notifications for the same stream will now be replaced
- ...
Version 1.15.3 (2022-01-01)
Fixed error in the calculation of the number of rows and the missing dates caused by the year change.
Version 1.14 (2021-12-28)
The stream description now supports embedding images. These are sadly not automatically extracted from the schedule that was posted by Ina, but have to be added manually afterwards.
This update should finally fix the alignment issue for the stream description on small screens. The texts should now be properly aligned and the links properly clickable.
Version 1.13 (2021-12-20)
Added a search function. The results are displayed in a beautiful table...
Version 1.13.2 (2021-12-21)
Added a new fullscreen page, where only the schedule is shown in fullscreen. It uses the settings from the main page or can be configured with the query parameters timezone
,dateformat
,timeformat
, and language
. This could, for example. be used for live wallpapers that support websites.
Added two new buttons to the top right/left of the schedule that show up when hovering over it: fullscreen and download. The fullscreen button redirects to above mentioned page and the download button downloads the current schedule as an image.
Version 1.12 (2021-12-02)
We now check Ina's tweets for links to youtube videos or if she quotes a tweet, that contains a youtube link, which mentions her channel in the descriptions. That way the server is able to detect collabs on other channels and member-only streams, if Ina announces that the stream will start in x minutes.
Version 1.12.3 (2021-12-12)
Fixed notification issues where sometimes the stream title would be missing and notifications were sent for the start of cancelled streams.
Version 1.12.4 (2021-12-13)
Someone forgot some numbers in the OCR training data... This should now be fixed. Fixed an issue where the first line could be skipped in some special cases.
Version 1.11.0 (2021-11-27)
Added automatic translations for the content of the schedules. The parsed descriptions will be translated with the help of the DeepL API. A language can be chosen from the language dropdown with a quick selection for english and automatically detecting the best language based on the browser settings.
The schedule builder currently does not support multiple languages. While any language can be written into the input fields, when publishing them to the server, it assumes that the language is english and starts the automatic translation process. I am planning to add manual translations in the future.
Version 1.10 (2021-11-06)
The number of rows in the layout-adjusted schedule will now automatically increase, if more than the default number of lines are required.
Version 1.10.1 (2021-11-14)
Added support for new divider styles between dates, times, and descriptions.
Version 1.10.3 (2021-11-17)
Fixed parsing of schedules in the new layout when the table is to the right of the background image. The calendar now allows clicking on break days.
Version 1.9 (2021-10-31)
By using a bit of magic and promising my first born child to the Ancient Ones (also known as retraining the OCR-Model and reprogramming the parsing process), the server should now be able to parse the entirety of the schedule image, including the description of the scheduled streams. This allows the website to completely rearrange and customize the table, allowing it for example to group streams on the same day and adjust breaks if streams land on a different day than in the PT timezone.
Version 1.8 (2021-09-18)
Apart from many smaller improvements to the schedule builder, this update introduces a serviceworker. This adds limited offline capabilities for schedules you visited previously. Mobile and Chrome-based browsers will furthermore allow you to add the website to your home screen and use it like a native app. Lastly, with most commonly used browsers (except for safari), you can now enable web push notifications to be reminded about upcoming streams or be notified when Ina publishes a new schedule or stream.
Version 1.8.5 (2021-10-10)
Tried to adjust the automatic parser for the schedule times for the new layout. Since there are currently only two schedules with that layout available, the parsing may not be as reliable as with the old one.
Version 1.7 (2021-09-05)
This update adds a builder to create schedules structured like Ina's schedules with full timezone support. While only authorized users are allowed to save or publish the created schedules to the server, everyone can use the builder and create images. Schedules can be saved to and loaded from the local hard drive as well.
Version 1.6 (2021-09-01)
With the help of the YouTube Data API, the server can now fetch Ina's VODs and scheduled or currently active streams. If the start time of the stream is close to one of the times of the schedule, the two will be linked. All scheduled streams in the time-zone-adjusted schedule, that could be linked to a video, will have a box around the name. Hovering over that box will show the name of the stream or VOD and clicking on it opens it in a new tab.
Version 1.5 (2021-08-28)
This update adds a calendar which can be used to navigate the different schedules and shows the days for which the server knows stream times. When hovering over a day in the calendar, it lists the known times and if a stream on that day was cancelled or moved. Some days may be shown as not having a stream even if Ina streamed on that day. This can happen if the schedule wasn't/couldn't be parsed, if Ina didn't post a schedule containing the stream or if it was an unscheduled "Guerilla Stream". The dates and times are shown for the currently selected time zone and not the dates from the original schedule.
Version 1.4 (2021-08-22)
The schedules on this website can now show when Ina cancels a stream or moves them to a different time or date. These changes have to be added manually and it may take a few hours before they show up.
Version 1.3 (2021-08-20)
My server now uses Twitter's filtered streams to get notified in real-time about new tweets from Ina. Instead of having to regularly poll twitter for new tweets, the filtered streams allow Twitter to inform my server about new tweets nearly immediately after they were sent. New schedules should now be parsed and ready to be displayed in different time zones within a few seconds after Ina tweeted them.
Version 1.2 (2021-08-17)
This update adds the ability to view older schedules. Below the embedded tweet are now links to the previous and the next schedule. Additionally it is possible to search for the schedule of a specific date by adding ?date=<iso-date>
to the URL. Future versions will probably add a more user-friendly way to jump to specific schedules.
Version 1.1 (2021-08-16)
This update adds accent-colors for the time zones. It also fixes the detection of the main text color where the color of the time zones was used as the primary color. The detected font sizes should now be more accurate. This also fixes a problem where the first date was not detected correctly.