From 5620e9cfc7df008958267eafe71c2d68c4cb2305 Mon Sep 17 00:00:00 2001
From: Gio
Date: Sun, 28 Jul 2024 19:04:34 -0500
Subject: [PATCH 01/15] Fix bad link logic when opening asset uris directly
(resolves #601)
---
package.json | 2 +-
src/main.js | 29 +++++++++++++++++++----------
2 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/package.json b/package.json
index e85ed00..27ccb69 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,7 @@
"engines": {
"node": ">= 18.20"
},
- "version": "2.5.1",
+ "version": "2.5.2",
"license": "GPL-3.0",
"repository": "github:Bambosh/unofficial-homestuck-collection",
"private": true,
diff --git a/src/main.js b/src/main.js
index 7b49e3e..609c06a 100644
--- a/src/main.js
+++ b/src/main.js
@@ -137,23 +137,16 @@ Vue.mixin({
this.$root.$children[0].$refs[this.$localData.tabData.activeTabKey][0].$refs.modal.open(to)
},
$openLink(url, auxClick = false) {
+ // Open a link. Could be intra-app, external, or an assets:// uri
+ //
const re_local = new RegExp(`(${app_domain}|app:\/\/\\.(index)?)`)
const re_local_index = new RegExp(`(${app_domain}|app:\/\/\\.\/)index\\.html\\??`)
// const re_local_asset = new RegExp(`(http:\/\/127.0.0.1:${port}\/|assets:\/\/)`)
+ // Normalize implied proto://./index.html links back to proto://./
const url_str = url.replace(re_local_index, '$1')
const urlObject = new URL(url_str)
- if (urlObject.protocol == "assets:" && !/\.(html|pdf)$/i.test(url)) {
- this.$openModal(Resources.resolveAssetsProtocol(url))
- return
- }
-
- // Else, tests
- let to = (/mspaintadventures/.test(urlObject.href) && !!urlObject.search) ? urlObject.href : urlObject.pathname
- to = to.replace(/.*mspaintadventures.com\/(\w*\.php)?\?s=(\w*)&p=(\w*)/, "/mspa/$3")
- .replace(/.*mspaintadventures.com\/\?s=(\w*)/, "/mspa/$1")
-
function _openExternal(to_) {
if (!isWebApp) {
shell.openExternal(to_)
@@ -162,6 +155,22 @@ Vue.mixin({
}
}
+ // If asset, open in modal or externally as appropriate
+ if (urlObject.protocol == "assets:") {
+ const to_ = Resources.resolveAssetsProtocol(url)
+ if (!/\.(html|pdf)$/i.test(url)) {
+ this.$openModal(to_)
+ } else {
+ _openExternal(to_)
+ }
+ return
+ }
+
+ // Else, tests on a real link
+ let to = (/mspaintadventures/.test(urlObject.href) && !!urlObject.search) ? urlObject.href : urlObject.pathname
+ to = to.replace(/.*mspaintadventures.com\/(\w*\.php)?\?s=(\w*)&p=(\w*)/, "/mspa/$3")
+ .replace(/.*mspaintadventures.com\/\?s=(\w*)/, "/mspa/$1")
+
if (!re_local.test(urlObject.origin)) {
// Link is external
if (urlObject.href.includes('steampowered.com/app')) {
From ab45d977ebdbe5eae57b529b1a6c6306d8e56c7f Mon Sep 17 00:00:00 2001
From: Gio
Date: Sat, 24 Aug 2024 00:37:02 -0500
Subject: [PATCH 02/15] Fix bad link handling in Flash hijack (resolves #603)
---
package.json | 4 ++--
src/components/UIElements/MediaEmbed.vue | 2 +-
src/main.js | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/package.json b/package.json
index 27ccb69..1b85846 100644
--- a/package.json
+++ b/package.json
@@ -12,9 +12,9 @@
}
],
"engines": {
- "node": ">= 18.20"
+ "node": "18.20"
},
- "version": "2.5.2",
+ "version": "2.5.3",
"license": "GPL-3.0",
"repository": "github:Bambosh/unofficial-homestuck-collection",
"private": true,
diff --git a/src/components/UIElements/MediaEmbed.vue b/src/components/UIElements/MediaEmbed.vue
index dbb16e0..b79a48e 100644
--- a/src/components/UIElements/MediaEmbed.vue
+++ b/src/components/UIElements/MediaEmbed.vue
@@ -512,7 +512,7 @@ document.addEventListener('click', function (e) {
break
case 'link':
if (param != 'about:srcdoc') {
- this.$pushURL(this.$getResourceURL(param), this.$parent.tab.key)
+ this.$pushURL(this.$getResourceURL(param))
} else {
this.$logger.warn("Tried to navigate page to srcdoc!")
}
diff --git a/src/main.js b/src/main.js
index 609c06a..213ad9c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -148,7 +148,7 @@ Vue.mixin({
const urlObject = new URL(url_str)
function _openExternal(to_) {
- if (!isWebApp) {
+ if (!window.isWebApp) {
shell.openExternal(to_)
} else {
window.open(Resources.resolveURL(to_), '_blank').focus();
From e4ffe2e40fdb6eae57977e846e473e8762802475 Mon Sep 17 00:00:00 2001
From: Gio
Date: Sat, 24 Aug 2024 00:37:24 -0500
Subject: [PATCH 03/15] Minor formatting fixes (resolves #580)
---
src/components/Page/PageText.vue | 3 +++
src/imods/_twoToThree/mod.js | 20 ++++++++++++++++----
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/src/components/Page/PageText.vue b/src/components/Page/PageText.vue
index 7f0de9f..d4f06ec 100644
--- a/src/components/Page/PageText.vue
+++ b/src/components/Page/PageText.vue
@@ -321,6 +321,9 @@ export default {
padding: initial;
display: inline !important;
}
+ // Fix semantic trailing whitespace (i.e. called The Tumor) from being
+ // cut off in inline-block display mode.
+ white-space: break-spaces;
}
.authorlog {
diff --git a/src/imods/_twoToThree/mod.js b/src/imods/_twoToThree/mod.js
index 84ec8da..9ea1e97 100644
--- a/src/imods/_twoToThree/mod.js
+++ b/src/imods/_twoToThree/mod.js
@@ -4,17 +4,17 @@ module.exports = {
modVersion: 0.1,
trees: {
"./pxs/": "assets://archive/comics/pxs/",
- "./archive/": "assets://archive/",
+ "./archive/": "assets://archive/"
},
routes: {
- //replace flashes that don't mute when HQ audio is enabled
+ // replace flashes that don't mute when HQ audio is enabled
'assets://storyfiles/hs2/03085/03085_hq.swf': './swf/03085_hq.swf',
'assets://storyfiles/hs2/04082/04082_hq.swf': './swf/04082_hq.swf',
- //replace hq flash mp3 for At The Price Of Oblivion
+ // replace hq flash mp3 for At The Price Of Oblivion
'assets://storyfiles/hs2/03693/03693.mp3': './mp3/03693.mp3',
- //reroute improperly formatted links in 25-Nov-09 newspost
+ // reroute improperly formatted links in 25-Nov-09 newspost
'assets://newspost_images/scarecrowking1.gif': 'assets://archive/social/news/scarecrowking1.gif',
'assets://newspost_images/scarecrowking2.gif': 'assets://archive/social/news/scarecrowking2.gif',
},
@@ -48,6 +48,18 @@ module.exports = {
"art": []
})
+ // Hotfix some formatting headaches
+
+ archive.mspa.story['004153'].content = archive.mspa.story['004153'].content.replace(
+ `Lrd English`,
+ `Lrd English`)
+
+ console.log(archive.mspa.story['004153'].content)
+
+ archive.mspa.story['005530'].content = archive.mspa.story['005530'].content.replace(
+ `Lrd English`,
+ `Lrd English`)
+
archive.comics.pxs.comics['you-have-a-feeling-its-going-to-be-a-long-day'].credit = "Zach Morrison and Andrew Hussie"
archive.social.blogspot[8].html = archive.social.blogspot[8].html.replace('archive/tso/blurbs', 'archive/comics/tso/blurbs')
From c2dcf1dce7c19452178b6ca90020349e9dc9a8f7 Mon Sep 17 00:00:00 2001
From: kittenchilly
Date: Sat, 24 Aug 2024 11:19:11 -0500
Subject: [PATCH 04/15] Fix, update, and cleanup Skaianet Systems page
---
package.json | 2 +-
src/components/Extras/Skaianet.vue | 34 +++++++++++++-----------------
2 files changed, 16 insertions(+), 20 deletions(-)
diff --git a/package.json b/package.json
index 1b85846..d6368a9 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
}
],
"engines": {
- "node": "18.20"
+ "node": ">=18.20"
},
"version": "2.5.3",
"license": "GPL-3.0",
diff --git a/src/components/Extras/Skaianet.vue b/src/components/Extras/Skaianet.vue
index 7f83b11..9e9c04d 100644
--- a/src/components/Extras/Skaianet.vue
+++ b/src/components/Extras/Skaianet.vue
@@ -282,7 +282,7 @@ export default {
{
icon: "archive/skaianet/spoon.gif",
title: `
- SPOON.PDF
+ SPOON.PDF
`,
content: `
Journey with Sweet Bro as he joroneys to recover his spoon over a long jounrey.
@@ -308,13 +308,11 @@ export default {
EPILOGUES.TXT
WWW
-
- VIZ
- `,
+ `,
content: `Tales of dubious authenticity.
Ten years ago, a young man stood in his bedroom. The events set in motion that day would change his and his friends' lives forever, for the better and the worse (and the ridiculous). Now, in the aftermath, he has to make a choice: Meat or Candy?
- Description from VIZ Media.
+ Description from Amazon store page.
Online release: 13 - 20 April 2019
VIZ Media print release: 14 January 2020
`
},
@@ -338,16 +336,15 @@ export default {
{
icon: "archive/skaianet/hs2.gif",
title: `
- HOMESTUCK^2.TXT
+ HS:BC.TXT
`,
content: `
- This is not Homestuck. But it is not not Homestuck. This is...
+ Homestuck: Beyond Canon (HS:BC) is a further continuation of the Homestuck story, after the events of The Homestuck Epilogues and Pesterquest.
- HOMESTUCK^2: BEYOND CANON
+ It is a story about the consequences of the pursuit of relevancy and growing up. As this work is a direct followup to The Homestuck Epilogues it is highly recommended you be familiar with what happens in that story.
- Homestuck^2: Beyond Canon is an official continuation of the cult-classic webcomic Homestuck and a follow-up to The Homestuck Epilogues, dropped as a major event in April of 2019.
- Homestuck 2: Beyond Canon takes a combination of Andrew Hussie's original writing and plot outlines and concepts and joins him with a team of new, diverse voices to expand the compelling narratives of Homestuck's most (and least) beloved characters.
- Description from the Homestuck Patreon.
+ Homestuck: Beyond Canon is made possible by a passionate team of writers and artists -- collectively known as the Homestuck Independent Creative Union -- but most importantly the continued support of fans like you.
+ Description from the website's About page.
25 October 2019 -
`
}
// On an indefinite hiatus as of Feb 2021. You can see the announcement post here
@@ -370,21 +367,21 @@ export default {
setApophis() {
// Get todays date and time
let now = new Date().getTime()
-
+
// Find the distance between now and the count down date
let distance = this.countDownDate - now
-
+
// Time calculations for days, hours, minutes and seconds
let years = Math.floor(distance / (1000 * 60 * 60 * 24 * 365))
let days = Math.floor(distance / (1000 * 60 * 60 * 24)) - (years * 365)
let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))
let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60))
let seconds = Math.floor((distance % (1000 * 60)) / 1000)
-
+
// Output the result in an element with class="Apophis"
this.apophis = years + "y " + days + "d " + hours + "h " + minutes + "m " + seconds + "s "
-
- // If the count down is over, write some text
+
+ // If the count down is over, write some text
if (distance < 0) {
clearInterval(this.marqueeInterval)
this.apophis = "EXPIRED"
@@ -405,10 +402,9 @@ export default {
console.error(request)
}
} else {
- return fs.readFileSync(this.$mspaFileStream(url), 'utf8')
+ return require('fs').readFileSync(this.$mspaFileStream(url), 'utf8')
}
- // require('fs').readFileSync(this.$mspaFileStream(url), 'utf8')
- },
+ }
},
updated() {
},
From d2c3ebbd61ccae355c88c45dc4ab62aad0945149 Mon Sep 17 00:00:00 2001
From: kittenchilly
Date: Sat, 24 Aug 2024 11:38:53 -0500
Subject: [PATCH 05/15] Update package.json
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index d6368a9..1b85846 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
}
],
"engines": {
- "node": ">=18.20"
+ "node": "18.20"
},
"version": "2.5.3",
"license": "GPL-3.0",
From fb8f1d6e8adb35239c4135c749db3938414b5391 Mon Sep 17 00:00:00 2001
From: Gio
Date: Sat, 24 Aug 2024 13:13:48 -0500
Subject: [PATCH 06/15] Tweak kittenchilly skaianet update, increment patch
version
---
Makefile | 6 +-
package.json | 2 +-
src/components/Extras/Skaianet.vue | 66 +++++++++++++++---
.../archive/skaianet/psycholonials.gif | Bin 0 -> 755 bytes
.../_twoToThree/archive/skaianet/snake.png | Bin 0 -> 393 bytes
5 files changed, 63 insertions(+), 11 deletions(-)
create mode 100644 src/imods/_twoToThree/archive/skaianet/psycholonials.gif
create mode 100644 src/imods/_twoToThree/archive/skaianet/snake.png
diff --git a/Makefile b/Makefile
index 790eea7..fe69c28 100644
--- a/Makefile
+++ b/Makefile
@@ -41,12 +41,16 @@ src/imods.tar.gz: $(wildcard src/imods/*) $(wildcard src/imods/*/*)
## Running live
-# Run 'SERVE_FLAGS="--reset-last-version" make src/imods.tar.gz test' to make imods and pass --reset-last-version through
+# Run 'rm src/imods.tar.gz; SERVE_FLAGS="--reset-last-version" make src/imods.tar.gz test' to make imods and pass --reset-last-version through
.PHONY: test
test: install src/imods.tar.gz
yarn run vue-cli-service electron:serve $(SERVE_FLAGS)
# yarn dev
+.PHONY: itest
+ -rm src/imods.tar.gz
+ SERVE_FLAGS="--reset-last-version" make src/imods.tar.gz test
+
## Building output
.PHONY: build
diff --git a/package.json b/package.json
index 1b85846..0547ea2 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,7 @@
"engines": {
"node": "18.20"
},
- "version": "2.5.3",
+ "version": "2.5.4",
"license": "GPL-3.0",
"repository": "github:Bambosh/unofficial-homestuck-collection",
"private": true,
diff --git a/src/components/Extras/Skaianet.vue b/src/components/Extras/Skaianet.vue
index 9e9c04d..e67b5a6 100644
--- a/src/components/Extras/Skaianet.vue
+++ b/src/components/Extras/Skaianet.vue
@@ -116,6 +116,17 @@
@@ -156,6 +167,13 @@ import NavBanner from '@/components/UIElements/NavBanner.vue'
import MediaEmbed from '@/components/UIElements/MediaEmbed.vue'
import SpoilerBox from '@/components/UIElements/SpoilerBox.vue'
+var fs
+if (!window.isWebApp) {
+ fs = require('fs')
+} else {
+ fs = undefined
+}
+
export default {
name: 'skaianet',
props: [
@@ -267,7 +285,13 @@ export default {
Act 4
Steam store page
- 14 September 2017 - Ongoing
`
+
+ 14 September 2017 - Present
+
+ Kickstarter: 4 September 2012
+ Act 1: 14 September 2017
+ Act 2: 25 November 2020
+
`
},
{
icon: "archive/skaianet/viz.gif",
@@ -287,6 +311,7 @@ export default {
content: `
Journey with Sweet Bro as he joroneys to recover his spoon over a long jounrey.
Kickstarter
+ Topatoco (Archive, discontinued)
8 November 2018
`
},
{
@@ -312,8 +337,9 @@ export default {
content: `Tales of dubious authenticity.
Ten years ago, a young man stood in his bedroom. The events set in motion that day would change his and his friends' lives forever, for the better and the worse (and the ridiculous). Now, in the aftermath, he has to make a choice: Meat or Candy?
- Description from Amazon store page.
- Online release: 13 - 20 April 2019
+ VIZ Media print release (Archive, discontinued)
+ Prologue release: 13 April 2019
+ Online release: 20 April 2019
VIZ Media print release: 14 January 2020
`
},
{
@@ -334,20 +360,42 @@ export default {
4 September 2019 - 1 April 2020
`
},
{
+ preicon: "assets://archive/skaianet/snake.png",
+ pretitle: `
+ HOMESTUCK^2.TXT
+ `,
icon: "archive/skaianet/hs2.gif",
title: `
- HS:BC.TXT
+ BEYONDCANON.TXT
`,
content: `
Homestuck: Beyond Canon (HS:BC) is a further continuation of the Homestuck story, after the events of The Homestuck Epilogues and Pesterquest.
It is a story about the consequences of the pursuit of relevancy and growing up. As this work is a direct followup to The Homestuck Epilogues it is highly recommended you be familiar with what happens in that story.
- Homestuck: Beyond Canon is made possible by a passionate team of writers and artists -- collectively known as the Homestuck Independent Creative Union -- but most importantly the continued support of fans like you.
Description from the website's About page.
- 25 October 2019 -
`
+
+
+
+ Homestuck^2: Beyond Canon was a What Pumpkin/Snake Solutions collaboration from 25 October 2019 until 29 December 2020, when it was put on an indefinite hiatus.
Snake Solutions Studio LLP was disbanded January 2021.
+
+ On 8 October 2023, the project was rebranded as Homestuck: Beyond Canon (HS:BC) and was continued by a new team known as the Homestuck independent creative union. The story picked up from where it had left off.
+ Homestuck^2: Beyond Canon: 25 October 2019 - 29 December 2020
+ Homestuck: Beyond Canon: 8 October 2023 - Present
`
+ },
+ {
+ icon: "archive/skaianet/psycholonials.gif",
+ title: `
+ PSYCHOLONIALS.EXE
+ `,
+ content: `
+ While in communication with supernatural forces, two influencers launch a daring new social media brand.
+
+ A visual novel by Andrew Hussie.
+ Soundtrack by Clark Powell.
+
+ 3 Feburary 2021
`
}
- // On an indefinite hiatus as of Feb 2021. You can see the announcement post here
],
cursedText: { }
}
@@ -402,7 +450,7 @@ export default {
console.error(request)
}
} else {
- return require('fs').readFileSync(this.$mspaFileStream(url), 'utf8')
+ return fs.readFileSync(this.$mspaFileStream(url), 'utf8')
}
}
},
diff --git a/src/imods/_twoToThree/archive/skaianet/psycholonials.gif b/src/imods/_twoToThree/archive/skaianet/psycholonials.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9a668433d38e773d843812844500c9727aab6213
GIT binary patch
literal 755
zcmVc
zTgpvcp*`;4X)+M0SN(BaBmIDepL|LBOKn7&SuKLLpoIuc`5n80x3Q;5{pHWw&7WosprsfleH-1V>+fp;b1h@Wa5{YO$eG-Dyrq+k`V^b
znSXFKXHbBBi5X`A8+v%xLLsWvfCFgmr@)$g9Z3*Nn{1`IRkt`T!Vvy|NsC0X$eE`GWB^N!2*xSVg?4j!ywFfJby(B&=gKj7sn8f
z<7=m06l784a9-NnE1U7(bspEQ-y5eJm>*xCFXVFIQ?`U#jL<9P29_(;iz6JEm6wH?
zUse3OW5&N&1$W!<&E`B2oZ9Oa{JCUIdEmaM7&-bVYcdG+9C^1HrU9^I_f_7)gY44$rjF6*2UngAzEpN0Sc
literal 0
HcmV?d00001
From c87714d1c787f6b3f1f3a1c397134e71ece44566 Mon Sep 17 00:00:00 2001
From: Gio
Date: Sat, 24 Aug 2024 13:08:22 -0500
Subject: [PATCH 07/15] Fix link handling bug unique to the final electron
build (resolves #601)
---
src/imods/_twoToThree/mod.js | 2 --
src/main.js | 30 ++++++++++++++++--------------
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/imods/_twoToThree/mod.js b/src/imods/_twoToThree/mod.js
index 9ea1e97..ffe1790 100644
--- a/src/imods/_twoToThree/mod.js
+++ b/src/imods/_twoToThree/mod.js
@@ -54,8 +54,6 @@ module.exports = {
`Lrd English`,
`Lrd English`)
- console.log(archive.mspa.story['004153'].content)
-
archive.mspa.story['005530'].content = archive.mspa.story['005530'].content.replace(
`Lrd English`,
`Lrd English`)
diff --git a/src/main.js b/src/main.js
index 213ad9c..1f4fff5 100644
--- a/src/main.js
+++ b/src/main.js
@@ -39,8 +39,8 @@ if (!window.isWebApp) {
const Store = require('electron-store')
store = new Store()
- log = require('electron-log');
- log.transports.console.format = '[{level}] {text}';
+ log = require('electron-log')
+ log.transports.console.format = '[{level}] {text}'
var {port, appVersion} = ipcRenderer.sendSync('STARTUP_GET_INFO')
@@ -56,6 +56,9 @@ Number.prototype.pad = function(size) {
return this.toString().padStart(size || 2, '0')
}
+function regExpEscape(literal_string) {
+ return literal_string.replace(/[-[\]{}()*+!<=:?.\/\\^$|#\s,]/g, '\\$&')
+}
const app_domain = window.location.host // (window.isWebApp ? window.webAppDomain : 'localhost:8080')
@@ -74,19 +77,19 @@ Vue.use(localData) // Initializes and loads when Vue installs it
promises_loading.push((async function() {
const { FontAwesomeIcon } = await importFontAwesomeIconObj
Vue.component('fa-icon', FontAwesomeIcon)
-})());
+})())
// Mixin asynccomputed
promises_loading.push((async function() {
const AsyncComputed = await importAsyncComputed
Vue.use(AsyncComputed)
-})());
+})())
// Mixin mod mixins
promises_loading.push((async function() {
const mixins = await Mods.getMixinsAsync()
mixins.forEach((m) => Vue.mixin(m))
-})());
+})())
Vue.mixin(Memoization.mixin)
@@ -123,7 +126,7 @@ Vue.mixin({
if (vizNums) resolvedUrl = `/${vizNums.s}/${vizNums.p}`
} else if (this.$localData.settings.mspaMode) {
if (base == 'mspa') {
- let p_padded = route.params.p.padStart(6, '0')
+ const p_padded = route.params.p.padStart(6, '0')
if (p_padded in this.$archive.mspa.story) resolvedUrl = `/mspa/${p_padded}`
} else if (this.$isVizBase(base)) {
// Route /homestuck/# to /mspa/#
@@ -139,8 +142,8 @@ Vue.mixin({
$openLink(url, auxClick = false) {
// Open a link. Could be intra-app, external, or an assets:// uri
//
- const re_local = new RegExp(`(${app_domain}|app:\/\/\\.(index)?)`)
- const re_local_index = new RegExp(`(${app_domain}|app:\/\/\\.\/)index\\.html\\??`)
+ const re_local = new RegExp(`^(${regExpEscape(app_domain)}|app:\/\/\\.(index)?)`)
+ const re_local_index = new RegExp(`^(${regExpEscape(app_domain)}|app:\/\/\\.\/)index\\.html\\??`)
// const re_local_asset = new RegExp(`(http:\/\/127.0.0.1:${port}\/|assets:\/\/)`)
// Normalize implied proto://./index.html links back to proto://./
@@ -151,7 +154,7 @@ Vue.mixin({
if (!window.isWebApp) {
shell.openExternal(to_)
} else {
- window.open(Resources.resolveURL(to_), '_blank').focus();
+ window.open(Resources.resolveURL(to_), '_blank').focus()
}
}
@@ -190,7 +193,7 @@ Vue.mixin({
},
$getResourceURL(url) {
const resource_url = Resources.getResourceURL(url)
- if (isWebApp) {
+ if (window.isWebApp) {
// simulate webRequest redirection here
return Resources.resolveURL(url)
} else {
@@ -286,7 +289,7 @@ Vue.mixin({
else if ('006369' <= thisPageId && thisPageId <= '006468') nextLimit = '006469' // Roxy+Dirk
// A6A5A1x2 COMBO
- else if ('007688' <= thisPageId && thisPageId <='007825') {
+ else if ('007688' <= thisPageId && thisPageId <= '007825') {
// Sets the next page an extra step ahead to account for the x2 shittery
const isLeftPage = !(thisPageId % 2)
const page = this.$archive.mspa.story[thisPageId]
@@ -438,7 +441,7 @@ Vue.mixin({
else if (ref == 'one-year-older') date = this.$archive.mspa.story['007162'].timestamp // Just after Caliborn: Enter, before openbound 1
else if (ref == 'cherubim') date = this.$archive.mspa.story['007882'].timestamp // After Interfishin, right when Caliborn/Calliope expodump begins
- else date = new Date(this.$archive.music.albums[ref].date).getTime()/1000
+ else date = new Date(this.$archive.music.albums[ref].date).getTime() / 1000
this.$logger.debug(ref, this.$archive.mspa.story['006716'].timestamp)
return date > this.$archive.mspa.story[this.$newReaderCurrent].timestamp
} else return false
@@ -481,7 +484,7 @@ Promise.all(promises_loading).then(_ => {
'$localData.settings.devMode'(to, from){
if (log.transports) {
const is_dev = to
- log.transports.console.level = (is_dev ? "silly" : "info");
+ log.transports.console.level = (is_dev ? "silly" : "info")
this.$logger.silly("Verbose log message for devs")
this.$logger.info("Log message for everybody")
}
@@ -491,7 +494,6 @@ Promise.all(promises_loading).then(_ => {
}).$mount('#app')
})
-
// Even though we cancel the auxclick, reallly *really* cancel mouse navigation.
window.addEventListener("mouseup", (e) => {
if (e.button === 3 || e.button === 4){
From e06e0c030c0d43419793d3da609e4c8942d72734 Mon Sep 17 00:00:00 2001
From: Gio
Date: Wed, 28 Aug 2024 18:15:23 -0500
Subject: [PATCH 08/15] Also allow protocol links as local (for web)
---
src/main.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/main.js b/src/main.js
index 1f4fff5..fd8f073 100644
--- a/src/main.js
+++ b/src/main.js
@@ -142,8 +142,8 @@ Vue.mixin({
$openLink(url, auxClick = false) {
// Open a link. Could be intra-app, external, or an assets:// uri
//
- const re_local = new RegExp(`^(${regExpEscape(app_domain)}|app:\/\/\\.(index)?)`)
- const re_local_index = new RegExp(`^(${regExpEscape(app_domain)}|app:\/\/\\.\/)index\\.html\\??`)
+ const re_local = new RegExp(`^(http://|https://)?(${regExpEscape(app_domain)}|app:\/\/\\.(index)?)`)
+ const re_local_index = new RegExp(`^(http://|https://)?(${regExpEscape(app_domain)}|app:\/\/\\.\/)index\\.html\\??`)
// const re_local_asset = new RegExp(`(http:\/\/127.0.0.1:${port}\/|assets:\/\/)`)
// Normalize implied proto://./index.html links back to proto://./
From 6f186df018e48f4c8f5b401947aba3116071bd81 Mon Sep 17 00:00:00 2001
From: Gio
Date: Thu, 29 Aug 2024 00:38:31 -0500
Subject: [PATCH 09/15] Move archiveReload to the root app as a shared function
---
src/App.vue | 11 +++++++++++
src/components/AppMenu/TabBar.vue | 11 +----------
src/components/SystemPages/Settings.vue | 9 +--------
3 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/src/App.vue b/src/App.vue
index 7ca91ac..5be6fd6 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -145,6 +145,17 @@
webFrame.setZoomLevel(this.zoomLevel)
}
},
+ archiveReload() {
+ this.memoizedClearAll()
+
+ this.$root.loadState = "LOADING"
+ this.$nextTick(function () {
+ // Don't show loading screen, "soft" reload
+ // this.$root.loadState = "LOADING"
+ this.$localData.root.applySaveIfPending()
+ ipcRenderer.send('RELOAD_ARCHIVE_DATA')
+ })
+ },
openJumpbox() {
if (this.$localData.settings.showAddressBar) {
document.querySelector('#jumpBox input').select()
diff --git a/src/components/AppMenu/TabBar.vue b/src/components/AppMenu/TabBar.vue
index c84948c..3df1907 100644
--- a/src/components/AppMenu/TabBar.vue
+++ b/src/components/AppMenu/TabBar.vue
@@ -298,16 +298,7 @@ export default {
ipcRenderer.invoke('reload')
},
archiveReload(){
- // Should match settings.archiveReload
- this.memoizedClearAll()
-
- this.$root.loadState = "LOADING"
- this.$nextTick(function () {
- // Don't show loading screen, "soft" reload
- // this.$root.loadState = "LOADING"
- this.$localData.root.applySaveIfPending()
- ipcRenderer.send('RELOAD_ARCHIVE_DATA')
- })
+ this.$root.app.archiveReload()
}
}
}
diff --git a/src/components/SystemPages/Settings.vue b/src/components/SystemPages/Settings.vue
index eba3309..d8a5948 100644
--- a/src/components/SystemPages/Settings.vue
+++ b/src/components/SystemPages/Settings.vue
@@ -826,15 +826,8 @@ export default {
},
archiveReload(){
this.debounce = false
- this.memoizedClearAll()
- this.$root.loadState = "LOADING"
- this.$nextTick(function () {
- // Don't show loading screen, "soft" reload
- // this.$root.loadState = "LOADING"
- this.$localData.root.applySaveIfPending()
- ipcRenderer.send('RELOAD_ARCHIVE_DATA')
- })
+ this.$root.app.archiveReload()
},
openSubModel: function(mod, info_only=false) {
this.$refs.modal.openMod(mod, info_only)
From c8af220afdb02f5a82a2e79704331a5fdf6a4ebb Mon Sep 17 00:00:00 2001
From: bb010g
Date: Sat, 7 Sep 2024 05:05:52 -0700
Subject: [PATCH 10/15] mods: fix storing `false`
`store.has` was broken in 9aa2f71e16374e17354b957af1606593ec935998,
such that a cached stored value of `false` is ignored.
`store.get` was broken in a64ec80332146e424dd7c218cb97ae055d4be4ac,
such that an uncached stored value of `false` is ignored.
---
src/mods.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mods.js b/src/mods.js
index ec13c98..f1740eb 100644
--- a/src/mods.js
+++ b/src/mods.js
@@ -474,10 +474,10 @@ async function buildApi(mod) {
} else {
const v = store_mods.get(getModStoreKey(mod._id, k), default_)
this_store_cache[k] = (v == undefined ? cached_undefined : v)
- return v || default_
+ return v
}
},
- has: (k) => this_store_cache[k] || store_mods.has(getModStoreKey(mod._id, k)),
+ has: (k) => this_store_cache[k] != undefined || store_mods.has(getModStoreKey(mod._id, k)),
delete: (k) => {
delete this_store_cache[k]
store_mods.delete(getModStoreKey(mod._id, k))
From dbf59d5c00c3a8b88cd16620022ce2d23f2b2757 Mon Sep 17 00:00:00 2001
From: Gio
Date: Tue, 17 Sep 2024 23:23:27 -0500
Subject: [PATCH 11/15] Bugfixs: scratch colors, notification jitter
---
package.json | 2 +-
src/components/UIElements/Notifications.vue | 1 +
src/imods/_twoToThree/mod.js | 4 ++--
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/package.json b/package.json
index 0547ea2..3c52857 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,7 @@
"engines": {
"node": "18.20"
},
- "version": "2.5.4",
+ "version": "2.5.5",
"license": "GPL-3.0",
"repository": "github:Bambosh/unofficial-homestuck-collection",
"private": true,
diff --git a/src/components/UIElements/Notifications.vue b/src/components/UIElements/Notifications.vue
index 429ebad..bfb12e3 100644
--- a/src/components/UIElements/Notifications.vue
+++ b/src/components/UIElements/Notifications.vue
@@ -260,6 +260,7 @@ export default {
.notifWrapper {
position: absolute;
+ overflow: hidden;
width: 400px;
height: 100%;
pointer-events: none;
diff --git a/src/imods/_twoToThree/mod.js b/src/imods/_twoToThree/mod.js
index ffe1790..cc36ca3 100644
--- a/src/imods/_twoToThree/mod.js
+++ b/src/imods/_twoToThree/mod.js
@@ -51,11 +51,11 @@ module.exports = {
// Hotfix some formatting headaches
archive.mspa.story['004153'].content = archive.mspa.story['004153'].content.replace(
- `Lrd English`,
+ `Lrd English`,
`Lrd English`)
archive.mspa.story['005530'].content = archive.mspa.story['005530'].content.replace(
- `Lrd English`,
+ `Lrd English`,
`Lrd English`)
archive.comics.pxs.comics['you-have-a-feeling-its-going-to-be-a-long-day'].credit = "Zach Morrison and Andrew Hussie"
From 2493c74866124284133a66325c9cd0a2e49038e1 Mon Sep 17 00:00:00 2001
From: Gio
Date: Mon, 30 Sep 2024 21:03:22 -0500
Subject: [PATCH 12/15] Update metadata for flatpak pipeline
---
Justfile | 70 +++++++++++++++++++
...UnofficialHomestuckCollection.metainfo.xml | 32 +++++----
...mbosh.UnofficialHomestuckCollection.yml.j2 | 46 ++++++++++++
3 files changed, 133 insertions(+), 15 deletions(-)
create mode 100644 build/dev.bambosh.UnofficialHomestuckCollection.yml.j2
diff --git a/Justfile b/Justfile
index 34e395b..3ba91b3 100644
--- a/Justfile
+++ b/Justfile
@@ -14,3 +14,73 @@ git-future:
git merge $branch
git commit || :
done
+
+xml_release:
+ #!/bin/bash
+ gh release view --json tagName,publishedAt,url,body \
+ | yq -p json -o xml '
+ {"release": {
+ "+@version": (.tagName | sub("v", "")),
+ "+@type": "stable",
+ "+@date": (.publishedAt),
+ "url": .url,
+ "description": "" + .body + "
"}
+ }'
+
+flatpak:
+ #!/bin/bash
+ . ~/.bashrc
+
+ release_tag="$(
+ gh release list \
+ --limit 1 --exclude-drafts --exclude-pre-releases \
+ --json tagName | jq -r .[0].tagName
+ )"
+ version_semver="$(echo $release_tag | tr -d v)"
+ logparam "Latest release is" "$release_tag" "(" "$version_semver" ")"
+
+ json_release=$(
+ gh release view $release_tag --json assets \
+ | jq -r '
+ .assets
+ | map(select(.url | endswith(".tar.gz")))
+ [0]
+ '
+ )
+
+ commit_hash="$(git rev-list -n 1 $release_tag)"
+ logparam "Release tag" "$release_tag" "has commit hash" "$commit_hash"
+
+ tarurl="$(echo $json_release | jq -r .url)"
+
+ tar_tmp="$(mktemp)"
+ wget "$tarurl" -O "$tar_tmp"
+ sha="$(cat "$tar_tmp" | sha256sum | cut -d' ' -f1)"
+
+ logparam "Tarball is" "$tarurl" "with sha" "$sha"
+ rm "$tar_tmp"
+
+ logmajor "Updating flathub repo"
+ git_clone_or_update git@github.com:flathub/dev.bambosh.UnofficialHomestuckCollection.git
+ cd dev.bambosh.UnofficialHomestuckCollection
+
+ flat_branch="update-$release_tag"
+ logparam "Creating new working branch" "$flat_branch"
+ git checkout -b "$flat_branch"
+
+ j2 ../build/dev.bambosh.UnofficialHomestuckCollection.yml.j2 \
+ --data '{
+ "pkgver": "'$version_semver'",
+ "asset_url": "'$tarurl'",
+ "asset_sha": "'$sha'",
+ "commit_hash": "'$commit_hash'"
+ }' \
+ --print > dev.bambosh.UnofficialHomestuckCollection.yml
+
+ git --no-pager diff
+ confirm
+
+ git add dev.bambosh.UnofficialHomestuckCollection.yml
+ git commit -m "Automatic version update"
+ git push --set-upstream origin "$flat_branch"
+ gh pr create --title "Automatic version update to $release_tag" --body ""
diff --git a/build/dev.bambosh.UnofficialHomestuckCollection.metainfo.xml b/build/dev.bambosh.UnofficialHomestuckCollection.metainfo.xml
index 9e32cf8..34f4295 100644
--- a/build/dev.bambosh.UnofficialHomestuckCollection.metainfo.xml
+++ b/build/dev.bambosh.UnofficialHomestuckCollection.metainfo.xml
@@ -2,7 +2,7 @@
dev.bambosh.UnofficialHomestuckCollection
The Unofficial Homestuck Collection
- An offline collection of Homestuck and its related works
+ Offline collection of Homestuck and its related works
Bambosh
GiovanH
dev.bambosh.UnofficialHomestuckCollection.desktop
@@ -15,16 +15,18 @@
Collection interface
-
- https://bambosh.dev/unofficial-homestuck-collection/images/collection.gif
+ https://homestuck.giovanh.com/unofficial-homestuck-collection/images/collection.gif
- Bandcamp interface
-
- https://bambosh.dev/unofficial-homestuck-collection/images/bandcamp.gif
+ Bandcamp support
+ https://homestuck.giovanh.com/unofficial-homestuck-collection/images/bandcamp.gif
+
+ https://github.com/GiovanH/unofficial-homestuck-collection/releases/tag/v2.5.2
+ Bugfix to fix https://github.com/GiovanH/unofficial-homestuck-collection/issues/601. Promoted to full release 2024-08-24
+
https://github.com/GiovanH/unofficial-homestuck-collection/releases/tag/v2.5.1
@@ -41,18 +43,18 @@
https://github.com/Bambosh/unofficial-homestuck-collection/releases/tag/v2.0.5
Features
+ Fixes
- Option to use native window decorations - by @GiovanH in #267
- Genericise notification behavior for mods - by @GiovanH in #283
- Dragging images now displays a preview of the image, instead of the placeholder
captcha card - by @GiovanH in #316
- - Several new context menu options, including "Copy Image" - by @GiovanH in #317
+ - Several new context menu options, including "Copy Image" - by @GiovanH in #317
- Fixes
- Crash that occurred when upgrading from a previous version of the collection - by
@GiovanH in #285
- - Some cases where new reader progress wouldn't update correctly - by @GiovanH in #282
+ - Some cases where new reader progress wouldn't update correctly - by @GiovanH in #282
- A local IP address being displayed with the path of certain images - by @Bambosh in
#326
- Some HQ flashes with double & incorrectly linked scarecrowking images in the news
@@ -64,7 +66,7 @@
https://github.com/Bambosh/unofficial-homestuck-collection/releases/tag/2.0.4
Known Issue: If you delete the old Asset Pack V1 before launching version 2.0 of the
- program for the first time, you'll get a javascript error. This can be avoided by deleting
+ program for the first time, you'll get a javascript error. This can be avoided by deleting
Asset Pack V1 after setting up version 2.0, or you can recover from the problem by
deleting your %appdata%/unofficial-homestuck-collection folder.
@@ -85,7 +87,7 @@
- Steam links now open in the client if you have it installed (thanks @leo60228).
- Added context menu option to search highlighted text in Google.
- Altered a credit that was deadnaming Gankra.
- - Fixed Ascend's track commentary being cut off.
+ - Fixed Ascend's track commentary being cut off.
- A whole lot of UI fixes and polish.
@@ -94,9 +96,9 @@
https://github.com/Bambosh/unofficial-homestuck-collection/releases/tag/V1.0.0
This is the initial release of The Unofficial Homestuck Collection!
- Requires V1 of the Asset Pack to function. You'll have to find it elsewhere, sorry! Once
- you've got it downloaded, you'll have to tell the application where to find it during the
- initial startup process. After that, you're set!
+ Requires V1 of the Asset Pack to function. You'll have to find it elsewhere, sorry! Once
+ you've got it downloaded, you'll have to tell the application where to find it during the
+ initial startup process. After that, you're set!
@@ -125,9 +127,9 @@
homestuck
- andrew hussie
mspa
ms paint adventures
+ andrew hussie
flash
diff --git a/build/dev.bambosh.UnofficialHomestuckCollection.yml.j2 b/build/dev.bambosh.UnofficialHomestuckCollection.yml.j2
new file mode 100644
index 0000000..6fae6f5
--- /dev/null
+++ b/build/dev.bambosh.UnofficialHomestuckCollection.yml.j2
@@ -0,0 +1,46 @@
+app-id: dev.bambosh.UnofficialHomestuckCollection
+runtime: org.freedesktop.Platform
+runtime-version: "23.08"
+sdk: org.freedesktop.Sdk
+base: org.electronjs.Electron2.BaseApp
+base-version: "23.08"
+command: unofficial-homestuck-collection
+separate-locales: false
+finish-args:
+ - --share=ipc
+ - --socket=x11
+ - --socket=pulseaudio
+ - --share=network
+ - --device=dri
+ - --filesystem=home
+build-options:
+ env:
+ pkgver: {{ pkgver }}
+modules:
+ - name: unofficial-homestuck-collection
+ buildsystem: simple
+ builddir: true
+ build-commands:
+ - tar -xf unofficial-homestuck-collection-*.tar.gz
+ - rm unofficial-homestuck-collection-*.tar.gz
+ - cp -ar unofficial-homestuck-collection-${pkgver} ${FLATPAK_DEST}/unofficial-homestuck-collection
+ - |
+ for i in 16x16 24x24 32x32 48x48 64x64 128x128 256x256 512x512; do
+ install -Dm644 build/icons/$i.png /app/share/icons/hicolor/$i/apps/dev.bambosh.UnofficialHomestuckCollection.png
+ done
+ - install -Dm644 build/dev.bambosh.UnofficialHomestuckCollection.metainfo.xml /app/share/metainfo/dev.bambosh.UnofficialHomestuckCollection.metainfo.xml
+ - install -Dm644 build/dev.bambosh.UnofficialHomestuckCollection.desktop /app/share/applications/dev.bambosh.UnofficialHomestuckCollection.desktop
+ - install -Dm755 unofficial-homestuck-collection ${FLATPAK_DEST}/bin
+ sources:
+ - type: file
+ url: "{{ asset_url }}"
+ sha256: "{{ asset_sha }}"
+ # Required for icons, desktop file and appstream file
+ - type: git
+ url: https://github.com/GiovanH/unofficial-homestuck-collection.git
+ commit: "{{ commit_hash }}"
+ # Wrapper to launch the app
+ - type: script
+ dest-filename: unofficial-homestuck-collection
+ commands:
+ - zypak-wrapper.sh /app/unofficial-homestuck-collection/unofficial-homestuck-collection --disable-gpu-sandbox "$@"
From 62d07b7ca412af2ed2e121ac3467ec9f69975566 Mon Sep 17 00:00:00 2001
From: Gio
Date: Fri, 4 Oct 2024 13:20:02 -0500
Subject: [PATCH 13/15] Additional flatpak pipeline fixes, notes
---
Justfile | 7 +++++--
RELEASE.md | 10 ++++++++++
....bambosh.UnofficialHomestuckCollection.metainfo.xml | 4 ++--
3 files changed, 17 insertions(+), 4 deletions(-)
create mode 100644 RELEASE.md
diff --git a/Justfile b/Justfile
index 3ba91b3..8566552 100644
--- a/Justfile
+++ b/Justfile
@@ -48,8 +48,11 @@ flatpak:
'
)
- commit_hash="$(git rev-list -n 1 $release_tag)"
- logparam "Release tag" "$release_tag" "has commit hash" "$commit_hash"
+ # commit_hash="$(git rev-list -n 1 $release_tag)"
+ # logparam "Release tag" "$release_tag" "has commit hash" "$commit_hash"
+
+ commit_hash="$(git rev-parse origin-gio/develop)"
+ logparam "Develop head (w/ metadata) has commit hash" "$commit_hash"
tarurl="$(echo $json_release | jq -r .url)"
diff --git a/RELEASE.md b/RELEASE.md
new file mode 100644
index 0000000..c146bcb
--- /dev/null
+++ b/RELEASE.md
@@ -0,0 +1,10 @@
+# Release procedure
+
+Notes for maintaining repository release cadence:
+
+1. Update version number in `package.json`. (Must at least bump patch version.)
+2. Merge update into develop (for prerelease) or master (for full release) to trigger build workflow.
+3. Write release notes and publish the draft release created by the workflow
+4. Update flatpak metadata info (see `just xml_release`)
+5. Commit updated flatpak metadata to `origin/develop`
+6. Create pull request against flatpak repo (`see just flatpak`) using latest gh release for the asset and the latest `origin/develop` metadata for release notes.
diff --git a/build/dev.bambosh.UnofficialHomestuckCollection.metainfo.xml b/build/dev.bambosh.UnofficialHomestuckCollection.metainfo.xml
index 34f4295..65c62c3 100644
--- a/build/dev.bambosh.UnofficialHomestuckCollection.metainfo.xml
+++ b/build/dev.bambosh.UnofficialHomestuckCollection.metainfo.xml
@@ -102,9 +102,9 @@
- https://bambosh.dev/unofficial-homestuck-collection/
+ https://homestuck.giovanh.com/unofficial-homestuck-collection/
https://github.com/Bambosh/unofficial-homestuck-collection/issues
- https://bambosh.dev/unofficial-homestuck-collection/faq.html
+ https://homestuck.giovanh.com/unofficial-homestuck-collection/faq.html
https://github.com/Bambosh/unofficial-homestuck-collection
Game
From 7e602bf62f520acf6b4b8c3a2349d611c64474bc Mon Sep 17 00:00:00 2001
From: Gio
Date: Fri, 4 Oct 2024 17:33:25 -0500
Subject: [PATCH 14/15] Disable excessive debug logging, bump version for
bugfix release.
---
package.json | 2 +-
src/components/UIElements/Notifications.vue | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/package.json b/package.json
index 3c52857..fcfd1bb 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,7 @@
"engines": {
"node": "18.20"
},
- "version": "2.5.5",
+ "version": "2.5.6",
"license": "GPL-3.0",
"repository": "github:Bambosh/unofficial-homestuck-collection",
"private": true,
diff --git a/src/components/UIElements/Notifications.vue b/src/components/UIElements/Notifications.vue
index bfb12e3..8fdbb88 100644
--- a/src/components/UIElements/Notifications.vue
+++ b/src/components/UIElements/Notifications.vue
@@ -197,13 +197,13 @@ export default {
latestTimestamp, nextTimestamp,
this.notifCollectionTimestampsIndex
)
- this.$logger.debug("notif_timestamps_between", notif_timestamps_between)
+ // this.$logger.debug("notif_timestamps_between", notif_timestamps_between)
const notifications_between = notif_timestamps_between
.map(t => this.notifCollectionTimestamps[t])
.flat() // would be a List> otherwise b/c multi timestamps
.filter(this.filterNotifBySetting)
- this.$logger.debug("notifications_between", notifications_between)
+ // this.$logger.debug("notifications_between", notifications_between)
// Group newsposts if too many
if (notif_timestamps_between.length <= this.maxActiveNotifs) {
From 2a89520e68672cc18bf0fcc8fb6ff75259ca67f7 Mon Sep 17 00:00:00 2001
From: Gio
Date: Fri, 4 Oct 2024 17:36:18 -0500
Subject: [PATCH 15/15] Update todo workflow version
---
.github/workflows/todo.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/todo.yml b/.github/workflows/todo.yml
index c7050c1..e0f3f5f 100644
--- a/.github/workflows/todo.yml
+++ b/.github/workflows/todo.yml
@@ -14,7 +14,7 @@ jobs:
ref: develop
- name: TODO to Issue
id: todo
- uses: alstr/todo-to-issue-action@v2.0
+ uses: alstr/todo-to-issue-action@v5.0
with:
REPO: ${{ github.repository }}
BEFORE: ${{ github.event.before }}