From 5a9a431ab0133e08dc0460ebbe3e4d24129e455a Mon Sep 17 00:00:00 2001 From: Chris Angelico Date: Fri, 14 Jun 2024 20:53:06 +1000 Subject: [PATCH] Expand landing page and add a FAQ --- modules/http/index.pike | 7 +++++++ templates/faq.md | 36 ++++++++++++++++++++++++++++++++++++ templates/index.md | 32 ++++++++++++++++++++++---------- 3 files changed, 65 insertions(+), 10 deletions(-) create mode 100644 templates/faq.md diff --git a/modules/http/index.pike b/modules/http/index.pike index b0d428df..a84d7b58 100644 --- a/modules/http/index.pike +++ b/modules/http/index.pike @@ -8,6 +8,8 @@ mapping(string:mixed)|Concurrent.Future http_request(Protocols.HTTP.Server.Reque { loglink = "[Log out](:.twitchlogout)"; yourname = "You are currently logged in as " + yourname + "."; + int id = (int)req->misc->session->user->id; + if (id && G->G->irc->id[id]) yourname += " [Manage your channel](/c/)"; } return render_template("index.md", ([ "botname": G->G->dbsettings->credentials->username, @@ -15,6 +17,10 @@ mapping(string:mixed)|Concurrent.Future http_request(Protocols.HTTP.Server.Reque ])); } +mapping(string:mixed)|Concurrent.Future faq(Protocols.HTTP.Server.Request req) { + return render_template("faq.md", ([])); +} + //Timing tests. Each performs exactly one database query; "ro" should be able to be resolved //from the fast local database, but "rw" will always go to the active (non-read-only) DB. __async__ string pingro(Protocols.HTTP.Server.Request req) { @@ -29,6 +35,7 @@ protected void create(string name) { ::create(name); G->G->http_endpoints[""] = http_request; + G->G->http_endpoints["faq"] = faq; G->G->http_endpoints["pingro"] = pingro; G->G->http_endpoints["pingrw"] = pingrw; } diff --git a/templates/faq.md b/templates/faq.md new file mode 100644 index 00000000..001518d7 --- /dev/null +++ b/templates/faq.md @@ -0,0 +1,36 @@ +# Frequently Asked Questions + + + +## So what's with the name? + +It's an Alice in Wonderland reference. When Alice and the Duchess were discussing +all manner of things and their morals, they determined that mustard was a mineral - +and one that was mined. And the moral of that became the motto of this bot: "The +more [work] there is of mine, the less there is of yours". + +Other names you'll see associated with this bot include StilleBot (the name of the +bot's software), Rosuav (the name of the bot's author), Pike (the programming +language the bot uses), and Chocolate Factory (the front end UI library used). + +## Is it really free? + +Yep. At the moment, I have no monetization plans; if you want to donate, you're +welcome to, but all features are available to everyone. In the future, I may offer +some sort of paid cosmetic enhancements, but all core features should always remain +free to use. + +## Your bot is speaking in my channel and I don't like it. + +Sorry about that! You can remove the bot from your channel by going to your [Master +Control Panel](/c/mastercontrol); only the broadcaster can do this, and it requires +confirmation. + +## Who makes this bot? + +The bot is the creation of Rosuav, found under that name on Twitch, Discord, GitHub, +and pretty much everywhere. Contact him with further questions. + +[The bot's source code](https://github.com/rosuav/stillebot) is available to anyone +who wishes to use it, learn from it, or borrow code from it. + diff --git a/templates/index.md b/templates/index.md index c3949b26..f73d7d97 100644 --- a/templates/index.md +++ b/templates/index.md @@ -1,20 +1,32 @@ # Mustard Mine -Mustard Mine is a Twitch channel bot. This one operates under the name "$$botname$$", -but [the source code](https://github.com/rosuav/stillebot) is available to anyone -who wishes to use it, learn from it, or borrow code from it. + -Information about each channel that this bot serves is available. -
Select a Twitch channel:
+Mustard Mine is a Twitch channel bot. It offers a wide variety of tools to streamers +and viewers, including: + +* Simple commands to give information +* Responses to stream support such as subscriptions and cheers +* Integrations with online shops (Ko-fi, Fourth Wall) +* Goal bars, including multi-leveled goal bars +* Hype Train tracking and reporting +* Management of channel point rewards +* Stream preparation eg setting title, category, tags +* On-screen alerts +* Raid target searching in various forms +* And, as they say, much much more! + +Unsure if you want to use this bot? Nearly all the features can be explored in [demo mode] +(/channels/demo) where you have the power of a moderator in a mythical channel! + +Interested? [Activate the bot here!](/activate) + +Want to learn more? Check out [our FAQ](/faq) or contact Rosuav on Twitch or Discord. $$yourname$$ $$loglink$$ -Additional features and toys available here: +Quick links: * [See who has which bit badges in your channel](/bitsbadges) (needs login) * [Emote checklist](/checklist) * [An alternate view to your follow list, good for picking raid targets](/raidfinder) -*
Hype train status for a Twitch channel:
-*
Emote showcase for any channel:
-* [Path to Affiliate streamer tracking](/affiliate). If you're helping to guide streamers to this milestone, this page can help with tracking and recommendations. * [OAuth scope trimmer to help you tame the wild mess of permissions that sites ask for](/scopetrim) -* [Curious what the bot can do for you? Try the demo!](https://mustardmine.com/channels/demo/)