Merge MVC rewrite into master (#21)

* Just commit it all

* Require auth

* crap

* Update homepage

* Block AI scrapers

* Update cache update script

* Add dummy file

* Remove unnecessary lastfm config var

* Use withQueryParameters for LastFM API

* Fix embeds

* Update example env

* Smard
This commit is contained in:
Frankie B 2024-06-11 18:02:01 +01:00 committed by GitHub
commit c9299b5410
88 changed files with 1982 additions and 1661 deletions

View file

@ -111,6 +111,10 @@ .nav-wrapper {
grid-row-gap: 0;
}
.nav-wrapper div:nth-child(2) {
text-align: right;
}
.theme-selector label {
font-weight: bold;
}
@ -226,7 +230,7 @@ table.computers td ul {
padding-left: 20px;
}
table.computers section-title {
table.computers .section-title {
text-decoration: underline;
font-style: italic;
font-weight: bold;
@ -272,34 +276,46 @@ a {
text-decoration: underline dotted;
}
table.gb-entry-form tr td {
table.form tr td {
border: none;
}
table.gb-entry-form tr td label {
table.form tr td label {
padding-right: 5px;
}
table.gb-entry-form tr td span.text-danger {
table.form tr td span.text-danger {
padding-left: 5px;
color: var(--warning);
}
table.gb-entry-form tr td textarea,
table.gb-entry-form tr td input,
table.gb-entry-form tr td button{
margin-bottom: 5px;
margin-left: 10px;
input.file {
border: 0 !important;
}
table.form tr td textarea,
table.form tr td input,
table.form tr td button,
form.import input::file-selector-button,
form.import button {
background-color: var(--background);
border: var(--foreground) solid 1px;
}
table.gb-entry-form tr td button {
table.form label {
margin: 5px 0;
}
form.import button,
form.import input::file-selector-button,
table.form tr td button {
color: var(--foreground);
background-color: var(--background-secondary);
}
table.gb-entry-form tr td button:hover {
form.import button:hover,
form.import input::file-selector-button:hover,
table.form tr td button:hover {
color: var(--background);
background-color: var(--foreground);
}
@ -318,7 +334,7 @@ table.gb-entry-form-container tr td ul {
margin: 0;
}
table.gb-entry-form tbody tr td textarea {
table.form tbody tr td textarea {
width: 210px;
}
@ -490,20 +506,151 @@ #scheme-selector {
}
.music-top10 td {
.music-top10 td,
.music-top10 th {
border: none;
border-left: 1px dotted var(--foreground);
padding: 2px 5px
}
.music-top10 tr:nth-child(2) td {
.music-top10 tr:nth-child(1) th {
border-bottom: 1px dotted var(--foreground);
}
.music-top10 tr:nth-child(3) td {
.music-top10 tr:nth-child(2) td {
padding-top: 5px;
}
.music-top10 td:first-child {
.music-top10 td:first-child,
.music-top10 th:first-child {
border: none;
}
.music-top10 tr th:first-child {
text-align: right;
}
.music-top10 td {
white-space: nowrap; text-overflow:ellipsis; overflow: hidden;
}
.music-top10 tr td:first-child {
text-align: right;
}
.music-top10 tr td:nth-child(2),
.music-top10 tr td:nth-child(3) {
width: 50%;
}
.current-track {
width: 100%;
}
.current-track h2 {
margin: 0;
}
.info-section ul {
list-style-position: inside;
list-style-type: none;
padding-left: 0;
margin: 0;
}
.info-section ul li:before {
content: "◆ ";
}
.info-section h2 {
margin: 0;
}
.info-section p {
margin-top: 10px;
}
.contact-section {
display: grid;
grid-template-rows: 1fr 1fr;
}
.banner {
padding: 5px;
margin-top: 10px;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: 1fr;
grid-column-gap: 0;
grid-row-gap: 0;
}
.banner div:nth-child(1) {
text-align: left;
}
.banner div:nth-child(2) {
text-align: right;
}
.red-banner {
border: 3px solid var(--foreground);
background-color: var(--background-secondary);
}
.info-admin td,
.info-admin th {
border: 1px solid var(--foreground);
padding: 5px;
}
.info-admin th {
background-color: var(--background-secondary);
}
.info-admin th.blank {
border: none;
background-color: var(--background);
}
.info-admin button {
border: 1px solid var(--foreground);
background-color: var(--background);
color: var(--foreground);
}
.info-admin button:hover {
background-color: var(--foreground);
color: var(--background);
}
.info-admin button:active {
background-color: var(--background-secondary);
color: var(--foreground);
}
.info-admin-section h2 {
margin-bottom: 5px;
}
.fullwidth {
width: 100%;
}
.fullwidth td:last-child {
width: 0;
}
.guestbook-message {
text-wrap: wrap;
width: 100%;
}
td.diagonal-line {
background: linear-gradient(to right bottom, var(--background) 0%,var(--background) 49.9%,var(--foreground) 50%,var(--foreground) 51%,var(--background) 51.1%,var(--background) 100%);
}
form.import h2 {
margin: 10px 0 5px 0;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,31 +1,31 @@
// Define an array of strings
const neverSaid = [
"<td style=\"width: 105px\"><strong>ASM:</strong></td> <td>The Director liked all the props we got today.</td>",
"<td style=\"width: 105px\"><strong>PM:</strong></td> <td>Ah ha, a revolve. Terrific.</td>",
"<td style=\"width: 105px\"><strong>Chippie:</strong></td> <td>I don't know, let's look at the ground plan.</td>",
"<td style=\"width: 105px\"><strong>Set Designer:</strong></td> <td>Well, let's just have whatever is cheaper.</td>",
"<td style=\"width: 105px\"><strong>Sound:</strong></td> <td>Better turn that down a bit. We don't want to deafen them.</td>",
"<td style=\"width: 105px\"><strong>Director:</strong></td> <td>Sorry, my mistake.</td>",
"<td style=\"width: 105px\"><strong>Electrics:</strong></td> <td>This equipment is more complicated than we need.</td>",
"<td style=\"width: 105px\"><strong>Performer:</strong></td> <td>I really think my big scene should be cut.</td>",
"<td style=\"width: 105px\"><strong>SM:</strong></td> <td>Can we doo that scene change again please?",
"<td style=\"width: 105px\"><strong>LX designer:</strong></td> <td>Bit more light from those big chaps at the side. Yes that's right, the ones on stalks whatever they are called.</td>",
"<td style=\"width: 105px\"><strong>Electrics:</strong></td> <td>All the equipment works perfectly.</td>",
"<td style=\"width: 105px\"><strong>Musicians:</strong></td> <td>So what if that's the end of a call. Let's just finish this bit off.</td>",
"<td style=\"width: 105px\"><strong>Wardrobe:</strong></td> <td>Now, when exactly is the first dress rehearsal?",
"<td style=\"width: 105px\"><strong>Workshop:</strong></td> <td>I don't want anyone to know, but if you insist then yes, I admit it, I have just done an all-nighter.</td>",
"<td style=\"width: 105px\"><strong>Performer:</strong></td> <td>This costume is so comfortable.</td>",
"<td style=\"width: 105px\"><strong>Admin:</strong></td> <td>The level of overtime payments here are simply unacceptable. Our backstage staff deserve better.</td>",
"<td style=\"width: 105px\"><strong>Box Office:</strong></td> <td>Comps? No problem.</td>",
"<td style=\"width: 105px\"><strong>Set Designer:</strong></td> <td>You're right, it looks dreadful.</td>",
"<td style=\"width: 105px\"><strong>Flyman:</strong></td> <td>No, my lips are sealed. What I may or may not have seen remains a secret.</td>",
"<td style=\"width: 105px\"><strong>Electrics:</strong></td> <td>That had nothing to do with the computer, it was my fault.</td>",
"<td style=\"width: 105px\"><strong>Crew:</strong></td> <td>No, no, I'm sure that's our job.</td>",
"<td style=\"width: 105px\"><strong>SMgt:</strong></td> <td>Thanks, but I don't drink",
"<td style=\"width: 105px\"><strong>Performer:</strong></td> <td>Let me stand down here with my back to the audience.</td>",
"<td style=\"width: 105px\"><strong>Chippie:</strong></td> <td>I can't really manage those big fast power tools myself.</td>",
"<td style=\"width: 105px\"><strong>Chippie:</strong></td> <td>I prefer to use these little hand drills.</td>",
"<td style=\"width: 105px\"><strong>All:</strong></td> <td>Let's go and ask the Production Manager. He'll know.</td>"
"<strong>ASM:</strong> The Director liked all the props we got today.",
"<strong>PM:</strong> Ah ha, a revolve. Terrific.",
"<strong>Chippie:</strong> I don't know, let's look at the ground plan.",
"<strong>Set Designer:</strong> Well, let's just have whatever is cheaper.",
"<strong>Sound:</strong> Better turn that down a bit. We don't want to deafen them.",
"<strong>Director:</strong> Sorry, my mistake.",
"<strong>Electrics:</strong> This equipment is more complicated than we need.",
"<strong>Performer:</strong> I really think my big scene should be cut.",
"<strong>SM:</strong> Can we do that scene change again please?",
"<strong>LX designer:</strong> Bit more light from those big chaps at the side. Yes that's right, the ones on stalks whatever they are called.",
"<strong>Electrics:</strong> All the equipment works perfectly.",
"<strong>Musicians:</strong> So what if that's the end of a call. Let's just finish this bit off.",
"<strong>Wardrobe:</strong> Now, when exactly is the first dress rehearsal?",
"<strong>Workshop:</strong> I don't want anyone to know, but if you insist then yes, I admit it, I have just done an all-nighter.",
"<strong>Performer:</strong> This costume is so comfortable.",
"<strong>Admin:</strong> The level of overtime payments here are simply unacceptable. Our backstage staff deserve better.",
"<strong>Box Office:</strong> Comps? No problem.",
"<strong>Set Designer:</strong> You're right, it looks dreadful.",
"<strong>Flyman:</strong> No, my lips are sealed. What I may or may not have seen remains a secret.",
"<strong>Electrics:</strong> That had nothing to do with the computer, it was my fault.",
"<strong>Crew:</strong> No, no, I'm sure that's our job.",
"<strong>SMgt:</strong> Thanks, but I don't drink",
"<strong>Performer:</strong> Let me stand down here with my back to the audience.",
"<strong>Chippie:</strong> I can't really manage those big fast power tools myself.",
"<strong>Chippie:</strong> I prefer to use these little hand drills.",
"<strong>All:</strong> Let's go and ask the Production Manager. He'll know."
]
// Generate a random index into the array

View file

@ -3,3 +3,19 @@ Disallow: /admin
Disallow: /login
Disallow: /js
Disallow: /css
User-Agent: GPTBot
Disallow: /
User-Agent: ChatGPT-User
Disallow: /
User-Agent: Google-Extended
Disallow: /
User-Agent: CCBot
Disallow: /
User-Agent: PerplexityBot
Disallow: /