diff --git a/index.html b/index.html
index 0e34269..afc46f3 100644
--- a/index.html
+++ b/index.html
@@ -174,7 +174,7 @@
Plausible Deniability
GitHub Subdomain Registration
- "I have no idea how that got on my website, your honour!" 👨⚖️
+ "I have no idea how that got on my website, officer!" 🕵️♂️
@@ -202,9 +202,9 @@
Your repository must:
- - Be public
- - Have a valid index.html file in the root or docs folder
- - Not contain malicious code
+ - Be public (unless you've discovered time travel, then please DM us)
+ - Have a valid index.html file in the root or docs folder (we're not magicians)
+ - Not contain malicious code (we draw the line at mild mischief)
@@ -314,10 +314,6 @@
return;
}
- // Disable submit button and show loading spinner
- submitBtn.disabled = true;
- loading.style.display = 'block';
-
// Collect form data
const formData = {
name: document.getElementById('name').value || "Anonymous",
@@ -327,90 +323,58 @@
description: document.getElementById('description').value
};
- // Simulate API call with timeout
+ // Show loading spinner briefly for effect
+ submitBtn.disabled = true;
+ loading.style.display = 'block';
+
+ // Create GitHub issue
setTimeout(function() {
- // In a real application, this would be an actual API call
- // Example:
- // fetch('https://api.theradicalparty.com/register-subdomain', {
- // method: 'POST',
- // headers: {
- // 'Content-Type': 'application/json'
- // },
- // body: JSON.stringify(formData)
- // })
- // .then(response => response.json())
- // .then(data => { ... })
- // .catch(error => { ... });
-
- // For demonstration, randomly succeed or fail
- const isSuccess = Math.random() > 0.3; // 70% success rate for demo
-
// Hide loading spinner
loading.style.display = 'none';
- if (isSuccess) {
+ try {
+ // Format the issue title and body
+ const issueTitle = `Subdomain Request: ${formData.subdomain}.theradicalparty.com`;
+ const issueBody = `
+## Subdomain Request
+
+**Alt Name:** ${formData.name}
+**Alt Email:** ${formData.email === "anonymous@example.com" ? "None provided" : formData.email}
+**GitHub Repo:** ${formData.repo}
+**Desired Subdomain:** ${formData.subdomain}
+
+### Description
+${formData.description}
+
+---
+*Submitted via Plausible Deniability form*
+`;
+
+ // Create the GitHub issue URL
+ // Replace 'your-username/plausible-deniability' with your actual GitHub repo
+ const githubIssueUrl = `https://github.com/your-username/plausible-deniability/issues/new?title=${encodeURIComponent(issueTitle)}&body=${encodeURIComponent(issueBody)}&labels=subdomain-request`;
+
// Show success message
successMessage.style.display = 'block';
- // Reset form
+
+ // Open the GitHub issue in a new tab
+ window.open(githubIssueUrl, '_blank');
+
+ // Reset the form
form.reset();
- } else {
+ } catch (error) {
// Show error message
- errorText.textContent = "There was an error processing your request. The subdomain may already be taken or the GitHub repository couldn't be verified.";
+ errorText.textContent = "There was an error creating the GitHub issue. Please try again.";
errorMessage.style.display = 'block';
+ console.error("Error:", error);
}
// Re-enable submit button
submitBtn.disabled = false;
-
- // Log the form data (remove in production)
- console.log('Form submission:', formData);
- }, 2000); // Simulate 2-second processing time
+ }, 1000); // Show loading for 1 second for effect
});
- // Check for subdomain availability (could be implemented with an actual API endpoint)
- let typingTimer;
- const doneTypingInterval = 1000; // 1 second
-
- subdomainInput.addEventListener('keyup', function() {
- clearTimeout(typingTimer);
- if (this.value) {
- typingTimer = setTimeout(checkSubdomainAvailability, doneTypingInterval);
- }
- });
-
- function checkSubdomainAvailability() {
- const subdomain = subdomainInput.value;
-
- if (!isValidSubdomain(subdomain)) {
- return; // Don't check invalid subdomains
- }
-
- // In a real application, you would make an API call here
- // Example:
- // fetch(`https://api.theradicalparty.com/check-subdomain?name=${subdomain}`)
- // .then(response => response.json())
- // .then(data => {
- // if (!data.available) {
- // subdomainInput.setCustomValidity("This subdomain is already taken");
- // } else {
- // subdomainInput.setCustomValidity("");
- // }
- // });
-
- // For demonstration, randomly determine availability (remove in production)
- const blacklist = ['www', 'mail', 'admin', 'root', 'api'];
- if (blacklist.includes(subdomain)) {
- subdomainInput.setCustomValidity("This subdomain is reserved and not available");
- } else {
- // Randomly determine availability (90% chance of being available)
- const isAvailable = Math.random() > 0.1;
- if (!isAvailable) {
- subdomainInput.setCustomValidity("This subdomain is already taken");
- } else {
- subdomainInput.setCustomValidity("");
- }
- }
- }
+ // Check for subdomain availability is removed since this will be handled via GitHub issues
});