summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Roth <omarroth@protonmail.com>2019-05-09 11:52:37 -0500
committerOmar Roth <omarroth@protonmail.com>2019-05-09 22:58:34 -0500
commitfd8af884938eb3f1c5abb1876aba50e0b4473821 (patch)
treedc32fd10803f4c59fd2e09138e5a50c75928598b
parentbfa488f77d592d088ffe43fc14419075b0b7c0dd (diff)
downloadinvidious-fd8af884938eb3f1c5abb1876aba50e0b4473821.tar.gz
invidious-fd8af884938eb3f1c5abb1876aba50e0b4473821.tar.bz2
invidious-fd8af884938eb3f1c5abb1876aba50e0b4473821.zip
Use separate asset version for cache busting
-rw-r--r--src/invidious.cr13
-rw-r--r--src/invidious/views/components/player.ecr2
-rw-r--r--src/invidious/views/components/player_sources.ecr32
-rw-r--r--src/invidious/views/components/subscribe_widget.ecr2
-rw-r--r--src/invidious/views/embed.ecr4
-rw-r--r--src/invidious/views/licenses.ecr34
-rw-r--r--src/invidious/views/template.ecr24
-rw-r--r--src/invidious/views/watch.ecr2
8 files changed, 59 insertions, 54 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 2ef89ac3..25bd3672 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -53,6 +53,11 @@ CURRENT_BRANCH = {{ "#{`git branch | sed -n '/\* /s///p'`.strip}" }}
CURRENT_COMMIT = {{ "#{`git rev-list HEAD --max-count=1 --abbrev-commit`.strip}" }}
CURRENT_VERSION = {{ "#{`git describe --tags --abbrev=0`.strip}" }}
+# This is used to determine the `?v=` on the end of file URLs (for cache busting). We
+# only need to expire modified assets, so we can use this to find the last commit that changes
+# any assets
+ASSET_COMMIT = {{ "#{`git rev-list HEAD --max-count=1 --abbrev-commit -- assets`.strip}" }}
+
SOFTWARE = {
"name" => "invidious",
"version" => "#{CURRENT_VERSION}-#{CURRENT_COMMIT}",
@@ -1854,12 +1859,12 @@ post "/data_control" do |env|
sleep 20.seconds
env.response.puts %(<meta http-equiv="refresh" content="0; url=#{referer}">)
- env.response.puts %(<link rel="stylesheet" href="/css/ionicons.min.css?v=<%= CURRENT_COMMIT %>">)
- env.response.puts %(<link rel="stylesheet" href="/css/default.css?v=<%= CURRENT_COMMIT %>">)
+ env.response.puts %(<link rel="stylesheet" href="/css/ionicons.min.css?v=#{ASSET_COMMIT}">)
+ env.response.puts %(<link rel="stylesheet" href="/css/default.css?v=#{ASSET_COMMIT}">)
if env.get("preferences").as(Preferences).dark_mode
- env.response.puts %(<link rel="stylesheet" href="/css/darktheme.css?v=<%= CURRENT_COMMIT %>">)
+ env.response.puts %(<link rel="stylesheet" href="/css/darktheme.css?v=#{ASSET_COMMIT}">)
else
- env.response.puts %(<link rel="stylesheet" href="/css/lighttheme.css?v=<%= CURRENT_COMMIT %>">)
+ env.response.puts %(<link rel="stylesheet" href="/css/lighttheme.css?v=#{ASSET_COMMIT}">)
end
env.response.puts %(<h3><div class="loading"><i class="icon ion-ios-refresh"></i></div></h3>)
env.response.flush
diff --git a/src/invidious/views/components/player.ecr b/src/invidious/views/components/player.ecr
index 3520ad29..a64ea39d 100644
--- a/src/invidious/views/components/player.ecr
+++ b/src/invidious/views/components/player.ecr
@@ -47,4 +47,4 @@ var player_data = {
thumbnail: "<%= thumbnail %>"
}
</script>
-<script src="/js/player.js?v=<%= CURRENT_COMMIT %>"></script>
+<script src="/js/player.js?v=<%= ASSET_COMMIT %>"></script>
diff --git a/src/invidious/views/components/player_sources.ecr b/src/invidious/views/components/player_sources.ecr
index ed1239cc..003d2c3a 100644
--- a/src/invidious/views/components/player_sources.ecr
+++ b/src/invidious/views/components/player_sources.ecr
@@ -1,22 +1,22 @@
-<link rel="stylesheet" href="/css/video-js.min.css?v=<%= CURRENT_COMMIT %>">
-<link rel="stylesheet" href="/css/videojs-http-source-selector.css?v=<%= CURRENT_COMMIT %>">
-<link rel="stylesheet" href="/css/videojs.markers.min.css?v=<%= CURRENT_COMMIT %>">
-<link rel="stylesheet" href="/css/videojs-share.css?v=<%= CURRENT_COMMIT %>">
-<link rel="stylesheet" href="/css/videojs-vtt-thumbnails.css?v=<%= CURRENT_COMMIT %>">
-<script src="/js/video.min.js?v=<%= CURRENT_COMMIT %>"></script>
-<script src="/js/videojs-contrib-quality-levels.min.js?v=<%= CURRENT_COMMIT %>"></script>
-<script src="/js/videojs-http-source-selector.min.js?v=<%= CURRENT_COMMIT %>"></script>
-<script src="/js/videojs.hotkeys.min.js?v=<%= CURRENT_COMMIT %>"></script>
-<script src="/js/videojs-markers.min.js?v=<%= CURRENT_COMMIT %>"></script>
-<script src="/js/videojs-share.min.js?v=<%= CURRENT_COMMIT %>"></script>
-<script src="/js/videojs-vtt-thumbnails.min.js?v=<%= CURRENT_COMMIT %>"></script>
+<link rel="stylesheet" href="/css/video-js.min.css?v=<%= ASSET_COMMIT %>">
+<link rel="stylesheet" href="/css/videojs-http-source-selector.css?v=<%= ASSET_COMMIT %>">
+<link rel="stylesheet" href="/css/videojs.markers.min.css?v=<%= ASSET_COMMIT %>">
+<link rel="stylesheet" href="/css/videojs-share.css?v=<%= ASSET_COMMIT %>">
+<link rel="stylesheet" href="/css/videojs-vtt-thumbnails.css?v=<%= ASSET_COMMIT %>">
+<script src="/js/video.min.js?v=<%= ASSET_COMMIT %>"></script>
+<script src="/js/videojs-contrib-quality-levels.min.js?v=<%= ASSET_COMMIT %>"></script>
+<script src="/js/videojs-http-source-selector.min.js?v=<%= ASSET_COMMIT %>"></script>
+<script src="/js/videojs.hotkeys.min.js?v=<%= ASSET_COMMIT %>"></script>
+<script src="/js/videojs-markers.min.js?v=<%= ASSET_COMMIT %>"></script>
+<script src="/js/videojs-share.min.js?v=<%= ASSET_COMMIT %>"></script>
+<script src="/js/videojs-vtt-thumbnails.min.js?v=<%= ASSET_COMMIT %>"></script>
<% if params.annotations %>
- <link rel="stylesheet" href="/css/videojs-youtube-annotations.min.css?v=<%= CURRENT_COMMIT %>">
- <script src="/js/videojs-youtube-annotations.min.js?v=<%= CURRENT_COMMIT %>"></script>
+ <link rel="stylesheet" href="/css/videojs-youtube-annotations.min.css?v=<%= ASSET_COMMIT %>">
+ <script src="/js/videojs-youtube-annotations.min.js?v=<%= ASSET_COMMIT %>"></script>
<% end %>
<% if params.listen || params.quality != "dash" %>
- <link rel="stylesheet" href="/css/quality-selector.css?v=<%= CURRENT_COMMIT %>">
- <script src="/js/silvermine-videojs-quality-selector.min.js?v=<%= CURRENT_COMMIT %>"></script>
+ <link rel="stylesheet" href="/css/quality-selector.css?v=<%= ASSET_COMMIT %>">
+ <script src="/js/silvermine-videojs-quality-selector.min.js?v=<%= ASSET_COMMIT %>"></script>
<% end %>
diff --git a/src/invidious/views/components/subscribe_widget.ecr b/src/invidious/views/components/subscribe_widget.ecr
index e555d6c5..1d9966b3 100644
--- a/src/invidious/views/components/subscribe_widget.ecr
+++ b/src/invidious/views/components/subscribe_widget.ecr
@@ -29,7 +29,7 @@
unsubscribe_text: '<%= HTML.escape(translate(locale, "Unsubscribe")) %>'
}
</script>
- <script src="/js/subscribe_widget.js?v=<%= CURRENT_COMMIT %>"></script>
+ <script src="/js/subscribe_widget.js?v=<%= ASSET_COMMIT %>"></script>
<% else %>
<p>
<a id="subscribe" class="pure-button pure-button-primary"
diff --git a/src/invidious/views/embed.ecr b/src/invidious/views/embed.ecr
index ebe63e40..32abd626 100644
--- a/src/invidious/views/embed.ecr
+++ b/src/invidious/views/embed.ecr
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="thumbnail" content="<%= thumbnail %>">
<%= rendered "components/player_sources" %>
- <link rel="stylesheet" href="/css/default.css?v=<%= CURRENT_COMMIT %>">
+ <link rel="stylesheet" href="/css/default.css?v=<%= ASSET_COMMIT %>">
<title><%= HTML.escape(video.title) %> - Invidious</title>
<style>
#player {
@@ -35,6 +35,6 @@ var video_data = {
</script>
<%= rendered "components/player" %>
-<script src="/js/embed.js?v=<%= CURRENT_COMMIT %>"></script>
+<script src="/js/embed.js?v=<%= ASSET_COMMIT %>"></script>
</body>
</html>
diff --git a/src/invidious/views/licenses.ecr b/src/invidious/views/licenses.ecr
index 254eea14..44e8350b 100644
--- a/src/invidious/views/licenses.ecr
+++ b/src/invidious/views/licenses.ecr
@@ -11,7 +11,7 @@
<table id="jslicense-labels1">
<tr>
<td>
- <a href="/js/embed.js?v=<%= CURRENT_COMMIT %>">embed.js</a>
+ <a href="/js/embed.js?v=<%= ASSET_COMMIT %>">embed.js</a>
</td>
<td>
@@ -19,13 +19,13 @@
</td>
<td>
- <a href="/js/embed.js?v=<%= CURRENT_COMMIT %>"><%= translate(locale, "source") %></a>
+ <a href="/js/embed.js?v=<%= ASSET_COMMIT %>"><%= translate(locale, "source") %></a>
</td>
</tr>
<tr>
<td>
- <a href="/js/player.js?v=<%= CURRENT_COMMIT %>">player.js</a>
+ <a href="/js/player.js?v=<%= ASSET_COMMIT %>">player.js</a>
</td>
<td>
@@ -33,13 +33,13 @@
</td>
<td>
- <a href="/js/player.js?v=<%= CURRENT_COMMIT %>"><%= translate(locale, "source") %></a>
+ <a href="/js/player.js?v=<%= ASSET_COMMIT %>"><%= translate(locale, "source") %></a>
</td>
</tr>
<tr>
<td>
- <a href="/js/silvermine-videojs-quality-selector.min.js?v=<%= CURRENT_COMMIT %>">silvermine-videojs-quality-selector.min.js</a>
+ <a href="/js/silvermine-videojs-quality-selector.min.js?v=<%= ASSET_COMMIT %>">silvermine-videojs-quality-selector.min.js</a>
</td>
<td>
@@ -53,7 +53,7 @@
<tr>
<td>
- <a href="/js/subscribe_widget.js?v=<%= CURRENT_COMMIT %>">subscribe_widget.js</a>
+ <a href="/js/subscribe_widget.js?v=<%= ASSET_COMMIT %>">subscribe_widget.js</a>
</td>
<td>
@@ -61,13 +61,13 @@
</td>
<td>
- <a href="/js/subscribe_widget.js?v=<%= CURRENT_COMMIT %>"><%= translate(locale, "source") %></a>
+ <a href="/js/subscribe_widget.js?v=<%= ASSET_COMMIT %>"><%= translate(locale, "source") %></a>
</td>
</tr>
<tr>
<td>
- <a href="/js/videojs-contrib-quality-levels.min.js?v=<%= CURRENT_COMMIT %>">videojs-contrib-quality-levels.min.js</a>
+ <a href="/js/videojs-contrib-quality-levels.min.js?v=<%= ASSET_COMMIT %>">videojs-contrib-quality-levels.min.js</a>
</td>
<td>
@@ -81,7 +81,7 @@
<tr>
<td>
- <a href="/js/videojs.hotkeys.min.js?v=<%= CURRENT_COMMIT %>">videojs.hotkeys.min.js</a>
+ <a href="/js/videojs.hotkeys.min.js?v=<%= ASSET_COMMIT %>">videojs.hotkeys.min.js</a>
</td>
<td>
@@ -95,7 +95,7 @@
<tr>
<td>
- <a href="/js/videojs-http-source-selector.min.js?v=<%= CURRENT_COMMIT %>">videojs-http-source-selector.min.js</a>
+ <a href="/js/videojs-http-source-selector.min.js?v=<%= ASSET_COMMIT %>">videojs-http-source-selector.min.js</a>
</td>
<td>
@@ -109,7 +109,7 @@
<tr>
<td>
- <a href="/js/videojs-markers.min.js?v=<%= CURRENT_COMMIT %>">videojs-markers.min.js</a>
+ <a href="/js/videojs-markers.min.js?v=<%= ASSET_COMMIT %>">videojs-markers.min.js</a>
</td>
<td>
@@ -123,7 +123,7 @@
<tr>
<td>
- <a href="/js/videojs-share.min.js?v=<%= CURRENT_COMMIT %>">videojs-share.min.js</a>
+ <a href="/js/videojs-share.min.js?v=<%= ASSET_COMMIT %>">videojs-share.min.js</a>
</td>
<td>
@@ -137,7 +137,7 @@
<tr>
<td>
- <a href="/js/videojs-vtt-thumbnails.min.js?v=<%= CURRENT_COMMIT %>">videojs-vtt-thumbnails.min.js</a>
+ <a href="/js/videojs-vtt-thumbnails.min.js?v=<%= ASSET_COMMIT %>">videojs-vtt-thumbnails.min.js</a>
</td>
<td>
@@ -151,7 +151,7 @@
<tr>
<td>
- <a href="/js/videojs-youtube-annotations.min.js?v=<%= CURRENT_COMMIT %>">videojs-youtube-annotations.min.js</a>
+ <a href="/js/videojs-youtube-annotations.min.js?v=<%= ASSET_COMMIT %>">videojs-youtube-annotations.min.js</a>
</td>
<td>
@@ -165,7 +165,7 @@
<tr>
<td>
- <a href="/js/video.min.js?v=<%= CURRENT_COMMIT %>">video.min.js</a>
+ <a href="/js/video.min.js?v=<%= ASSET_COMMIT %>">video.min.js</a>
</td>
<td>
@@ -179,7 +179,7 @@
<tr>
<td>
- <a href="/js/watch.js?v=<%= CURRENT_COMMIT %>">watch.js</a>
+ <a href="/js/watch.js?v=<%= ASSET_COMMIT %>">watch.js</a>
</td>
<td>
@@ -187,7 +187,7 @@
</td>
<td>
- <a href="/js/watch.js?v=<%= CURRENT_COMMIT %>"><%= translate(locale, "source") %></a>
+ <a href="/js/watch.js?v=<%= ASSET_COMMIT %>"><%= translate(locale, "source") %></a>
</td>
</tr>
</table>
diff --git a/src/invidious/views/template.ecr b/src/invidious/views/template.ecr
index 247e36b4..6b6f74fa 100644
--- a/src/invidious/views/template.ecr
+++ b/src/invidious/views/template.ecr
@@ -6,20 +6,20 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="referrer" content="no-referrer">
<%= yield_content "header" %>
- <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
- <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
- <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
- <link rel="manifest" href="/site.webmanifest">
- <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#575757">
+ <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=<%= ASSET_COMMIT %>">
+ <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=<%= ASSET_COMMIT %>">
+ <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=<%= ASSET_COMMIT %>">
+ <link rel="manifest" href="/site.webmanifest?v=<%= ASSET_COMMIT %>">
+ <link rel="mask-icon" href="/safari-pinned-tab.svg?v=<%= ASSET_COMMIT %>" color="#575757">
<meta name="msapplication-TileColor" content="#575757">
<meta name="theme-color" content="#575757">
<link title="Invidious" type="application/opensearchdescription+xml" rel="search" href="/opensearch.xml">
- <link rel="stylesheet" href="/css/pure-min.css?v=<%= CURRENT_COMMIT %>">
- <link rel="stylesheet" href="/css/grids-responsive-min.css?v=<%= CURRENT_COMMIT %>">
- <link rel="stylesheet" href="/css/ionicons.min.css?v=<%= CURRENT_COMMIT %>">
- <link rel="stylesheet" href="/css/default.css?v=<%= CURRENT_COMMIT %>">
- <link rel="stylesheet" href="/css/darktheme.css?v=<%= CURRENT_COMMIT %>" id="dark_theme" <% if !env.get("preferences").as(Preferences).dark_mode %>media="none"<% end %>>
- <link rel="stylesheet" href="/css/lighttheme.css?v=<%= CURRENT_COMMIT %>" id="light_theme" <% if env.get("preferences").as(Preferences).dark_mode %>media="none"<% end %>>
+ <link rel="stylesheet" href="/css/pure-min.css?v=<%= ASSET_COMMIT %>">
+ <link rel="stylesheet" href="/css/grids-responsive-min.css?v=<%= ASSET_COMMIT %>">
+ <link rel="stylesheet" href="/css/ionicons.min.css?v=<%= ASSET_COMMIT %>">
+ <link rel="stylesheet" href="/css/default.css?v=<%= ASSET_COMMIT %>">
+ <link rel="stylesheet" href="/css/darktheme.css?v=<%= ASSET_COMMIT %>" id="dark_theme" <% if !env.get("preferences").as(Preferences).dark_mode %>media="none"<% end %>>
+ <link rel="stylesheet" href="/css/lighttheme.css?v=<%= ASSET_COMMIT %>" id="light_theme" <% if env.get("preferences").as(Preferences).dark_mode %>media="none"<% end %>>
</head>
<% locale = LOCALES[env.get("preferences").as(Preferences).locale]? %>
@@ -150,7 +150,7 @@
</div>
<div class="pure-u-1 pure-u-md-2-24"></div>
</div>
- <script src="/js/themes.js?v=<%= CURRENT_COMMIT %>"></script>
+ <script src="/js/themes.js?v=<%= ASSET_COMMIT %>"></script>
</body>
</html>
diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr
index ec400b24..d0dba85e 100644
--- a/src/invidious/views/watch.ecr
+++ b/src/invidious/views/watch.ecr
@@ -242,4 +242,4 @@ var video_data = {
</div>
<% end %>
</div>
-<script src="/js/watch.js?v=<%= CURRENT_COMMIT %>"></script>
+<script src="/js/watch.js?v=<%= ASSET_COMMIT %>"></script>